/* * * * * * * * * * * * * * * * * * *
 * Simple Javascript / Jquery gallery
 * Use: showIt(src);
 * Written by: flame2014@gmail.com
 * * * * * * * * * * * * * * * * * * */

var FG_CONFIG = Array();
FG_CONFIG['overlay'] = '#000000';
FG_CONFIG['background'] = '#ffffff';
FG_CONFIG['border'] = '#cccccc';
FG_CONFIG['basePath'] = '/images/';
FG_CONFIG['closeImage'] = 'icon-close.gif';
FG_CONFIG['nextImage'] = 'icon-next.gif';
FG_CONFIG['prevImage'] = 'icon-prev.gif';
FG_CONFIG['loaderImage'] = 'icon-loader.gif';
FG_CONFIG['effect'] = 'custom'; // show, fade, slide, custom
FG_CONFIG['slideImages'] = new Array();
FG_CONFIG['lastShown'] = '';

$(document).ready(function(){
	var img = new Image();
	img.src = FG_CONFIG['basePath'] + FG_CONFIG['loaderImage'];

	var img2 = new Image();
	img2.src = FG_CONFIG['basePath'] + FG_CONFIG['nextImage'];

	var img3 = new Image();
	img3.src = FG_CONFIG['basePath'] + FG_CONFIG['prevImage'];

	var img4 = new Image();
	img4.src = FG_CONFIG['basePath'] + FG_CONFIG['closeImage'];

});

function showIt(src, text)
	{
	if(src && src.length > 0)
		{
		createLoader();

  		var img = new Image();
		$(img).load(function(){createGallery(this);});
		//$(img).error(function (){});
		$(img).attr('src', src);
		$(img).attr('text', text);
		FG_CONFIG['lastShown'] = src;
		slideImage(0);
		}
	else
		{
		$('#fg_background').hide();
		$('#fg_photocontainer').hide();
		FG_CONFIG['lastShown'] = '';
		}

	return false;
	}
function createLoader()
	{
	if($('#fg_loader').length == 0)
		{
		var src = "<div id=\"fg_loader\" style=\"position: absolute; z-index:20001; background: "+FG_CONFIG['background']+"; border:1px solid "+FG_CONFIG['border']+"; padding: 3px 3px 3px 3px;\"><img src=\""+FG_CONFIG['basePath'] + FG_CONFIG['loaderImage']+"\" alt=\"Loader\" /></div>";

		$('body').append(src);
		}

	$('#fg_loader').show();
	var left = Math.round(($(document).width() - $('#fg_loader img').width()) / 2);
	var top  = $(window).scrollTop() + $(window).height() / 2;
	$('#fg_loader').css({'left':left+'px', 'top': top+'px'})
	}

function slideImage(ord)
	{
	var found = 0;
	txt = '';
	var start = 0;
	var lastimage = FG_CONFIG['lastShown'];
	lastimage = lastimage.replace(document.domain, '').replace("http://", '').replace("https://", '');
	for(i = start; i < FG_CONFIG['slideImages'].length; i++)
		{
		txt += lastimage + '=='+ FG_CONFIG['slideImages'][i] + "\n";
		if(lastimage == FG_CONFIG['slideImages'][i])
			{
			found = i;
			break;
			}
		}

	next = found+ord;
	if(next >= FG_CONFIG['slideImages'].length - 1)
		$('#fg_nextbutton').hide();
	else
		$('#fg_nextbutton').show();

	if(next <= 0)
		$('#fg_prevbutton').hide();
	else
		$('#fg_prevbutton').show();


	if(next >= FG_CONFIG['slideImages'].length)
		next = 0;
	if(next < 0)
		next = FG_CONFIG['slideImages'].length - 1;

	FG_CONFIG['lastShownPos'] = next;
	if(ord != 0)
		{
		$('#fg_photocontainer').hide();
		showIt(FG_CONFIG['slideImages'][next]);
		}
	}


function createGallery(imgObj)
	{
	// Galeria
	if($('#fg_imageholder').length == 0)
		{
		var src = "<div id=\"fg_background\" style=\"display: none; position: absolute; top: 0px; left: 0px; z-index:20000; background: "+FG_CONFIG['overlay']+"; filter:alpha(opacity=80);-moz-opacity:.80;opacity:.80;\"></div>";
		src += "<div id=\"fg_photocontainer\" style=\"display: none; position: absolute; top: 0px; left: 0px; z-index:20001; background: "+FG_CONFIG['background']+";\">";
		src += "<div id=\"fg_closebutton\" style=\"position:absolute;\"><a href=\"#\"><img src=\""+FG_CONFIG['basePath'] + FG_CONFIG['closeImage']+"\" alt=\"Zavriet\" style=\"border: 0px;\" /></a></div>";
		src += "<div style=\" border:1px solid "+FG_CONFIG['border']+"; padding: 3px 3px 3px 3px;\">";
		src += "	<img src=\"\" alt=\"Preview\" id=\"fg_imageholder\"/>";
		src += "</div></div>";

		$('body').append(src);
		$('#fg_closebutton a').click(function(){showIt(''); return false;});
		}
	// Prev next
	if(FG_CONFIG['slideImages'].length > 0)
		{
		if($('#fg_nextbutton').length == 0)
			{
			var src = "";
			src += "<div id=\"fg_nextbutton\" style=\"position:absolute;\"><a href=\"#\"><img src=\""+FG_CONFIG['basePath'] + FG_CONFIG['nextImage']+"\" alt=\"Next\" style=\"border: 0px;\" /></a></div>";
			src += "<div id=\"fg_prevbutton\" style=\"position:absolute;\"><a href=\"#\"><img src=\""+FG_CONFIG['basePath'] + FG_CONFIG['prevImage']+"\" alt=\"Prev\" style=\"border: 0px;\" /></a></div>";
			$('#fg_photocontainer').append(src);

			$('#fg_nextbutton a').click(function(){slideImage(+1); return false;});
			$('#fg_prevbutton a').click(function(){slideImage(-1); return false;});
			}
		}
	// Text information
	if(imgObj.text)
		{
		}

	$('#fg_imageholder').attr('src', imgObj.src);
	$('#fg_loader').hide();
	$('#fg_background').show();
	if(FG_CONFIG['effect'] == 'slide')
		$('#fg_photocontainer').slideDown('fast');
	if(FG_CONFIG['effect'] == 'fade')
		$('#fg_photocontainer').fadeIn();
	if(FG_CONFIG['effect'] == 'show')
		$('#fg_photocontainer').show();
	if(FG_CONFIG['effect'] == 'custom')
		$('#fg_photocontainer').animate({"height": "toggle", "opacity": "toggle"}, 800);


	$('#fg_background').height($(document).height());
	$('#fg_background').width($(document).width());

	var left = Math.round(($(document).width() - $('#fg_imageholder').width()) / 2);
	var top  = $(window).scrollTop() + 30;
	$('#fg_photocontainer').css({'left':left+'px', 'top': top+'px'});

	//placeButtons();
	left = $('#fg_photocontainer').width() - $('#fg_closebutton img').width() / 2;
	top  = -1*$('#fg_closebutton img').width() / 2;
	$('#fg_closebutton').css({'left':left+'px', 'top': top+'px'});

	if(FG_CONFIG['slideImages'].length > 0)
		{
		top = 30;
		left = -1 * $('#fg_prevbutton').width() - 10;
		$('#fg_prevbutton').css({'left':left+'px', 'top': top+'px'});

		left = $('#fg_photocontainer').width() + 10;
		$('#fg_nextbutton').css({'left':left+'px', 'top': top+'px'});
		}
	}