
var isIE = navigator.userAgent.match(/MSIE/i) != null;

var galleryCount;
var galleryImageLoaded=new Array;
var galleryThumbLoaded=new Array;
var galleryThumbHover=new Array;
var galleryTimer;
var galleryCurrentSlide=0;
var galleryNotActivated=true;
var galleryNotSetUp=true;

// Define general characteristics before
var galleryThumbnailPadding=7; // pixels between thumbnails
var galleryThumbnailHoverBorderColor="#62729c";
var galleryThumbnailSelectedBorderColor="#2e3548";
var galleryShowImageTime=5000; // milliseconds to show each image;


function getInternetExplorerVersion(){
	var rv = -1; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer'){
		var ua = navigator.userAgent;
		var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null){
			rv = parseFloat( RegExp.$1 );
		}
	}
	return rv;
}

function fnSetUpGallery(){
	if(galleryNotSetUp){
		galleryNotSetUp=false;
		galleryCount=((galleryImage.length<galleryImageThumb.length?galleryImage.length:galleryImageThumb.length)<(galleryText.length<galleryTextCSS.length?galleryText.length:galleryTextCSS.length)?(galleryImage.length<galleryImageThumb.length?galleryImage.length:galleryImageThumb.length):(galleryText.length<galleryTextCSS.length?galleryText.length:galleryTextCSS.length))
		for(fSUPi=0;fSUPi<galleryCount;fSUPi++){
			$("#galleryPreloader").append("<img id=\"dynGalleryPreloadImage"+fSUPi+"\" onload=\"fnImageLoaded('"+fSUPi+"');\" src=\""+galleryImage[fSUPi]+"\">");
			$("#galleryPreloader").append("<img id=\"dynGalleryPreloadThumb"+fSUPi+"\" onload=\"fnThumbLoaded('"+fSUPi+"');\" src=\""+galleryImageThumb[fSUPi]+"\">");
			galleryImageLoaded[fSUPi]=0;
			galleryThumbLoaded[fSUPi]=0;
		}
	}
}

function fnImageLoaded(fILnum){
	if(galleryImageLoaded[fILnum]==0){
		galleryImageLoaded[fILnum]=1;
		fILloaded=1;
		
		
		for(fILi=0;fILi<galleryCount;fILi++){
			fILloaded=fILloaded*galleryImageLoaded[fILi];
			fILloaded=fILloaded*galleryThumbLoaded[fILi];
			
		}
		
		
		
		if(fILloaded==1&&galleryNotActivated){
			if(galleryNotActivated){fnActivateGallery();}
			galleryNotActivated=false;
		}
	}
}

function fnThumbLoaded(fITnum){
	if(galleryThumbLoaded[fITnum]==0){
		galleryThumbLoaded[fITnum]=1;
		fITloaded=1;
		
		
		for(fITi=0;fITi<galleryCount;fITi++){
			fITloaded=fITloaded*galleryImageLoaded[fITi];
			fITloaded=fITloaded*galleryThumbLoaded[fITi];
		}
		
		
		
		
		if(fITloaded==1&&galleryNotActivated){
			if(galleryNotActivated){fnActivateGallery();}
		}
	}
}
function fnActivateGallery(){
	if(galleryNotActivated){
		galleryNotActivated=false;
		if(!isIE){$("#galleryImage").addClass("classGallerySlideInvisible");}
		for(fAGi=0;fAGi<galleryCount;fAGi++){
			$("#galleryThumbnails").append("<div id=\"galleryThumbnail"+fAGi+"\" class=\"classGalleryThumbnail\" style=\"background-image:url('"+galleryImageThumb[fAGi]+"');margin-left:"+((fAGi==0)?"0":galleryThumbnailPadding)+"px;\" onclick=\"fnClickThumb('"+fAGi+"');\" onmouseover=\"fnMouseOverThumb('"+fAGi+"');\" onmouseout=\"fnMouseOutThumb('"+fAGi+"');\">&nbsp;</div>");
		}
		$("#galleryThumbnails").css("display","block");
		//galleryCurrentSlide=fnNextSlide(galleryCurrentSlide);
		galleryCurrentSlide++;
		if(galleryCurrentSlide>=galleryCount){
			galleryCurrentSlide=0;
		}
		if(getInternetExplorerVersion()>8){
			galleryTimer=setTimeout(function(){fnIE9transout(galleryCurrentSlide,1);} , 40);
		}else{
			galleryTimer=setTimeout(function(){fnShowSlide(galleryCurrentSlide);} , 1000);
		}
	}
}

function fnIE9transout(fITOslide,fITOframe){
	clearTimeout(galleryTimer);
	$("#galleryImage").css("opacity",(25-fITOframe)/25);
	if(fITOframe<25){
		galleryTimer=setTimeout(function(){fnIE9transout(galleryCurrentSlide,fITOframe+1);} , 40);
	}else{
		$("#galleryImage").css("background-image","url('"+galleryImage[galleryCurrentSlide]+"')");
		$("#galleryImage").html("<div style=\"position:absolute;"+galleryTextCSS[galleryCurrentSlide]+"\">"+galleryText[galleryCurrentSlide]+"</div>");
		fnSelectThumb(galleryCurrentSlide);
		galleryTimer=setTimeout(function(){fnIE9transin(galleryCurrentSlide,1);} , 40);
	}
}

function fnIE9transin(fITIslide,fITIframe){
	clearTimeout(galleryTimer);
	$("#galleryImage").css("opacity",fITIframe/25);
	if(fITIframe<25){
		galleryTimer=setTimeout(function(){fnIE9transin(galleryCurrentSlide,fITIframe+1);} , 40);
	}else{
		galleryCurrentSlide++;
		if(galleryCurrentSlide>=galleryCount){
			galleryCurrentSlide=0;
		}
		galleryTimer=setTimeout(function(){fnIE9transout(galleryCurrentSlide,1);} , galleryShowImageTime+40);
	}	
}


function fnMouseOverThumb(fMOvTnum){
	for(fMOvTi=0;fMOvTi<galleryCount;fMOvTi++){
		if(fMOvTi==fMOvTnum){
			galleryThumbHover[fMOvTi]=true;
		}else{
			galleryThumbHover[fMOvTi]=false;
		}
		$("#galleryThumbnail"+fMOvTi).css("border",((galleryThumbHover[fMOvTi])?galleryThumbnailHoverBorderColor+" 2px solid":((fMOvTi==galleryCurrentSlide)?galleryThumbnailSelectedBorderColor+" 2px solid":"none")));
		$("#galleryThumbnail"+fMOvTi).css("padding",((galleryThumbHover[fMOvTi])?"0":((fMOvTi==galleryCurrentSlide)?"0":"2px")));
		$("#galleryThumbnail"+fMOvTi).css("background-position",((galleryThumbHover[fMOvTi])?"0 0":((fMOvTi==galleryCurrentSlide)?"0 0":"2px 2px")));		
	}
}
function fnMouseOutThumb(fMOuTnum){
	galleryThumbHover[fMOuTnum]=false;
	
	for(fMOuTi=0;fMOuTi<galleryCount;fMOuTi++){
		$("#galleryThumbnail"+fMOuTi).css("border",((galleryThumbHover[fMOuTi])?galleryThumbnailHoverBorderColor+" 2px solid":((fMOuTi==galleryCurrentSlide)?galleryThumbnailSelectedBorderColor+" 2px solid":"none")));
		$("#galleryThumbnail"+fMOuTi).css("padding",((galleryThumbHover[fMOuTi])?"0":((fMOuTi==galleryCurrentSlide)?"0":"2px")));
		$("#galleryThumbnail"+fMOuTi).css("background-position",((galleryThumbHover[fMOuTi])?"0 0":((fMOuTi==galleryCurrentSlide)?"0 0":"2px 2px")));		
	}
	
}
function fnClickThumb(fMCTnum){
	clearTimeout(galleryTimer);
	galleryCurrentSlide=fMCTnum;
	if(!isIE){$("#galleryImage").addClass("classGallerySlideInvisible");}
	if(getInternetExplorerVersion()>8){
		galleryTimer=setTimeout(function(){fnIE9transout(galleryCurrentSlide,1);} , 40);
	}else{
		galleryTimer=setTimeout(function(){fnShowSlide(galleryCurrentSlide);} , 1000);
	}
}

function fnNextSlide(fNSnum){
	fNSnum++;
	if(fNSnum<galleryCount){
		return fNSnum;
	}else{
		return 0;
	}
}

function fnShowSlide(fSSnum){
	clearTimeout(galleryTimer);
	$("#galleryImage").css("background-image","url('"+galleryImage[fSSnum]+"')");
	$("#galleryImage").html("<div style=\"position:absolute;"+galleryTextCSS[fSSnum]+"\">"+galleryText[fSSnum]+"</div>");
	fnSelectThumb(fSSnum);
	if(!isIE){$("#galleryImage").removeClass("classGallerySlideInvisible");}
	galleryTimer=setTimeout(function(){fnNextSlide();} , 1000+galleryShowImageTime);
}

function fnSelectThumb(fSTnum){
	for(fSTi=0;fSTi<galleryCount;fSTi++){
		$("#galleryThumbnail"+fSTi).css("border",((galleryThumbHover[fSTi])?galleryThumbnailHoverBorderColor+" 2px solid":((fSTi==fSTnum)?galleryThumbnailSelectedBorderColor+" 2px solid":"none")));
		$("#galleryThumbnail"+fSTi).css("padding",((galleryThumbHover[fSTi])?"0":((fSTi==fSTnum)?"0":"2px")));
		$("#galleryThumbnail"+fSTi).css("background-position",((galleryThumbHover[fSTi])?"0 0":((fSTi==fSTnum)?"0 0":"2px 2px")));
	}
}

function fnNextSlide(){
	clearTimeout(galleryTimer);
	if(!isIE){$("#galleryImage").addClass("classGallerySlideInvisible");}
	//galleryCurrentSlide=fnNextSlide(galleryCurrentSlide);
	galleryCurrentSlide++;
	if(galleryCurrentSlide>=galleryCount){
		galleryCurrentSlide=0;
	}
	galleryTimer=setTimeout(function(){fnShowSlide(galleryCurrentSlide);} , 1000);
}
