// JavaScript Document

function imageLoader(name,cb,useDefaultCb,subname){
	this.maxWidth=0;
	this.maxHeight=0;
	this.name = name;
	this.finishedCallback = '';
	if(cb)this.finishedCallback = cb;
	this.images = [];
	this.processedCt=0;
	this.ct=0;
	this.errorCt=0;
	this.append = false;
	this.subname = false;
	if(subname)this.subname = subname;
	this.fullyloaded = false;
	this.defaultCb=false;
	if(useDefaultCb==true) this.defaultCb = useDefaultCb;
	this.add = function(imageName,imageSrc,w,h,useBackground){
		var arr = [];
		arr.background = false;
		if(useBackground)arr.background = true;
		arr.name=imageName;
		arr.src = imageSrc;
		arr.linksrc = false;
		if(h)arr.ih=h;
		else arr.ih = this.maxHeight;
		if(w)arr.iw=w;
		else arr.iw = this.maxWidth;
		arr.clickable = false;
		this.images[imageName]=arr;
		this.ct++;
	}
	this.addclick = function(imageName,imageSrc,w,h,linksrc){
		var arr = [];
		arr.background = false;
		arr.name=imageName;
		arr.src = imageSrc;
		arr.linksrc = false;
		if(linksrc)arr.linksrc=linksrc;
		if(h)arr.ih=h;
		else arr.ih = this.maxHeight;
		if(w)arr.iw=w;
		else arr.iw = this.maxWidth;
		arr.clickable = true;
		this.images[imageName]=arr;
		this.ct++;
	}
	this.preload = function(){
		for(var imageName in this.images){
				this.images[imageName].obj = new Image();
				this.images[imageName].loaded = false;
				this.images[imageName].error  = false;
				this.images[imageName].obj.setAttribute('id',this.name+"xxx"+imageName);
				if(this.alt)this.images[imageName].obj.setAttribute('alt',this.alt);
				
				this.images[imageName].obj.onload = function(){
					var z = this.id.split("xxx");
					gsa.images[z[0]].images[z[1]].loaded=true;	
					gsa.images[z[0]].processedCt++;
					if(gsa.images[z[0]].processedCt==gsa.images[z[0]].ct){
						if(gsa.images[z[0]].finishedCallback!='')eval(gsa.images[z[0]].finishedCallback);
						if(gsa.images[z[0]].defaultCb) gsa.images[z[0]].defaultCallback();
						gsa.images[z[0]].fullyloaded = true;
					}
					gsa.images[z[0]].images[z[1]].zoom=false;
					var width = gsa.images[z[0]].images[z[1]].obj.width;
					var height = gsa.images[z[0]].images[z[1]].obj.height;
					gsa.images[z[0]].images[z[1]].w=width;
					gsa.images[z[0]].images[z[1]].h=height;
					var maxWidth = gsa.images[z[0]].images[z[1]].iw;
					var maxHeight = gsa.images[z[0]].images[z[1]].ih;
					if(height>maxHeight && maxHeight>0){
						width = setRatio(height,width,maxHeight);
						gsa.images[z[0]].images[z[1]].obj.width=width;
						gsa.images[z[0]].images[z[1]].obj.height=maxHeight;
						height = maxHeight;
						gsa.images[z[0]].images[z[1]].zoom=true;
					}
					if(width>maxWidth  && maxWidth>0){
						height = setRatio(width,height,maxWidth);
						gsa.images[z[0]].images[z[1]].obj.width=maxWidth;
						gsa.images[z[0]].images[z[1]].obj.height=height;
						gsa.images[z[0]].images[z[1]].zoom=true;
					}
				}
				this.images[imageName].obj.onerror = function(){
					var z = this.id.split("xxx");
					gsa.images[z[0]].images[z[1]].error=true;
					gsa.images[z[0]].errorCt++;
					gsa.images[z[0]].processedCt++;
					if(gsa.images[z[0]].processedCt==gsa.images[z[0]].ct){
						if(gsa.images[z[0]].finishCallback!='') eval(gsa.images[z[0]].finishedCallback);
						if(gsa.images[z[0]].defaultCb) gsa.images[z[0]].defaultCallback();
					}
				}
				this.images[imageName].obj.src = this.images[imageName].src;
		}
	}
	this.loadAll = function(){
		this.defaultCallback();
	}
	this.defaultCallback=function(){
		for(var imageName in this.images){
				var x = this.images[imageName].obj;
				var linksrc = this.images[imageName].linksrc;
				if(!document.getElementById("image"+imageName))alert('div not found '+imageName+' '+this.name);
				if(this.images[imageName].clickable){
					var n = this.name+imageName+"holder";
					if(linksrc!=false)
					var z = "<div style='text-align:center'><a href=\"javascript:fullImage('"+this.name+"','"+imageName+"','"+linksrc+"')\" id='"+n+"' ></a></div>";
					else
					var z = "<div style='text-align:center'><a href=\"javascript:fullImage('"+this.name+"','"+imageName+"')\" id='"+n+"' ></a></div>";
					sethtml("image"+imageName,z);
					document.getElementById(n).appendChild(x);
				}else
					document.getElementById("image"+imageName).appendChild(x);
		}
	}
	this.appendCallback=function(){
		for(var imageName in this.images){
				var x = this.images[imageName].obj;
				if(!document.getElementById(this.append))alert('div not found '+imageName);
				document.getElementById(this.append).appendChild(x);
		}
	}
}//  //  image loader
function getWidth(x) {return x.width;}
function getHeight(x) {return x.height;}
function appendTo(div,x){
		if(!document.getElementById(div))alert('div not found while appending '+div);
		document.getElementById(div).appendChild(x);
}
function addTo(div,x){
		if(!document.getElementById(div))alert('div not found while appending '+div);
		var r = gid(div);
		sethtml(div,r.innerHTML+x);
}
function displayGalleryThumbs(){
	var x = [];
	x.push("<table style=''><tr valign='center'><td align='center'>");
	x.push("</td>"); 
	x.push("<td align='center' style='font-size:16px; color:#FFFFFF; font-weight:500' >");
	if(gsa.photoAlbums[gsa.currentGallery])x.push(gsa.photoAlbums[gsa.gallery].album);
	x.push("</td>");
	x.push("<td><a href='javascript:closeAlbum()'><img src='../../build3/icons/closelabelo.png'/></a>"); 
	x.push("</td></tr><tr valign='center'><td>");
		x.push("<table>");
		var ii=0;
		for(var i=start;i<endit;i++){
			x.push("<tr><td class='imageThumbsDark' id='setThumbClass"+i+"'><a href=\"javascript:showBigImage('"+i+"')\" id='thumb"+ii+"' ></a></td></tr>");
			ii++;
		}
		x.push("</table>");
	x.push("</td><td id='displayLargeImage' style='width:600px' align='center'><img src='../../build3/icons/LOAD.png'/></td><td>");
		x.push("<table>");
		var iii=5;
		for(var ix=start2;ix<endit2;ix++){
			x.push("<tr><td class='imageThumbsDark' id='setThumbClass"+ix+"'><a href=\"javascript:showBigImage('"+ix+"')\" id='thumb"+iii+"' ></a></td></tr>");
			iii++;
		}
		x.push("</table>");
		x.push("<tr><td><a href='javascript:gsa.imageStorage.previousPage()' id='prevPageBtn' ><img src='../../build3/icons/PREV.png'/></a></td>");
		x.push("<td align='center' style='font-size:14px; font-weight:bold; color:#FFFFFF'>Page "+page+" of "+totalPages+"</td><td><a href='javascript:gsa.imageStorage.nextPage()' id='nextPageBtn' ><img src='../../build3/icons/NEXT.png'/></a></td></tr>");
		x.push("<tr><td></td><td  align='center' style='font-size:12px; color:#FFFFFF'><br>");
		if(gsa.photoAlbums[gsa.gallery])x.push(gsa.photoAlbums[gsa.gallery].Description);
		x.push("</td></tr>");
	x.push("</table>");
	gsa.panel.imageBig.setDim(830,500);
	gsa.panel.imageBig.follow = new followMe('imageBig');
	gsa.panel.imageBig.follow.dim(830,500);
	gsa.panel.imageBig.addContent(x.join(''));
	gsa.panel.imageBig.on(true);
	var imbig = gid('imageBig'); 
	imbig.style.border='0px';
	var imbigb = gid('imageBigBack'); 
	imbigb.style.zIndex=999998;
}
function fullSize(id,img){

		var w = gsa.images['gallery'+id].images[img].w;
		var h = gsa.images['gallery'+id].images[img].h;
		recreateObj('fullSize',true,w,h);
		var setz = gid('fullSize');
		setz.style.zIndex=9999999;
		setz.style.padding='10px';
		setz.style.textAlign='center';
		var adj = '';
		if(gsa.display.IEVersion=='7') adj='left:30px;'; 
		gsa.panel.fullSize.addContent("<img src='"+gsa.images['gallery'+id].images[img].src+"' onclick='gsa.panel.fullSize.off()' /><div style='position:absolute; top:0px;"+adj+"'><a href='javascript:gsa.panel.fullSize.off()'><img src='../icons/closelabelo.png'/></a></div>");
		gsa.panel.fullSize.on(true);
									  
}//  //  full size
function fullImage(id,img,linksrc){

		var w = gsa.images[id].images[img].w;
		var h = gsa.images[id].images[img].h;
		if(linksrc)
		recreateObj('fullSize',true,w,h+35);
		else
		recreateObj('fullSize',true,w,h+20);
		var setz = gid('fullSize');
		setz.style.zIndex=9999999;
		setz.style.padding='10px';
		setz.style.textAlign='center';
		var adj = '';
		if(gsa.display.IEVersion=='7') adj='left:30px;'; 
		var result="<br><img src='"+gsa.images[id].images[img].src+"' onclick='gsa.panel.fullSize.off()' />";
		
		if(linksrc) result = result+"<div style='margin-left:30px; padding-top:5px'><a href='http://"+linksrc+"' target='_blank' style='background-color:#CCCCCC; color:black' >click here to see this website</a></div>";
		result = result+"<div style='position:absolute; top:0px;"+adj+"'><a href='javascript:gsa.panel.fullSize.off()'><img src='../icons/closelabelo.png'/></a></div>";
		gsa.panel.fullSize.addContent(result);
		gsa.panel.fullSize.on(true);
									  
}//  //  full size
		