_GET=document.location.href.split("#");
_URL=_GET[0];

_SETHASH=new Object();

if(_GET[1]){
	_GET=_GET[1].split("&");
	for(i=0;i<_GET.length;i++){
		vars=_GET[i].split("=");
		if(vars[0]){
			if(vars[1]==null){
				value=1;
			}
			else {
				value=vars[1];
			}
			_SETHASH[vars[0]]=vars[1];
		}
	}
}
_GET=_SETHASH;

function setJSGET(varname,value){
	url=document.location.href.split("#");
	url=url[0]+"#";
	
	_GET[varname]=value;

	for(i in _GET){
		url+=i+'='+_GET[i]+'&';
	}
	if(url[(url.length-1)]=='&'){
		url=url.substr(0,(url.length-1));
	}
	document.location.href=url;	
}

function NAMEVAR(name,variable){
	return eval(name+"_"+variable);
}

function SlideToSection(name,section){
	if(NAMEVAR(name,'Settings')['SlideShow']=='1'){
		return;
	}
	
	if(!$(name+'_thumbslide')){
		return;	
	}
	
	setLeft=$(name+'_thumbslide').style.left;
	setLeft=parseFloat($(name+'_thumbslide').style.left.replace("px",""));
	
	setTop=$(name+'_thumbslide').style.top;
	setTop=parseFloat($(name+'_thumbslide').style.top.replace("px",""));

	if(setLeft){
		setLeft=NAMEVAR(name,'Sections')[section]['Left']-setLeft;
	}
	else {
		setLeft=NAMEVAR(name,'Sections')[section]['Left'];
	}
	
	if(setTop){
		setTop=NAMEVAR(name,'Sections')[section]['Top']-setTop;
	}
	else {
		setTop=NAMEVAR(name,'Sections')[section]['Top'];
	}
	
	new Effect.Move($(name+'_thumbslide'), {x:setLeft,y:setTop,duration:0.5, afterFinish: function()
		{
			NAMEVAR(name,'Settings')['SelectedSection']=section;
			setButtons(name);
		}
	});
	
}

function setButtons(name){
	if(NAMEVAR(name,'Settings')['SlideShow']=='1'){
		return;
	}
	if(!$(name+'_thumbslide')){
		return;	
	}
	
	if($(name+'_thumbslide_prev')){
		if(NAMEVAR(name,'Settings')['SelectedSection']<1){
			$(name+'_thumbslide_prev').style.display='none';
		}
		else {
			$(name+'_thumbslide_prev').style.display='block';
		}
	}
	
	if($(name+'_thumbslide_next')){
		if(NAMEVAR(name,'Settings')['SelectedSection']<(NAMEVAR(name,'Settings')['TotalSections']-1)){
			$(name+'_thumbslide_next').style.display='block';
		}
		else {
			$(name+'_thumbslide_next').style.display='none';
		}
	}
	
	if(NAMEVAR(name,'Settings')['SelectedImage']>=1){
		$(name+'_image_prev').style.display='block';
	}
	else {
		$(name+'_image_prev').style.display='none';
	}

	if(NAMEVAR(name,'Settings')['SelectedImage']<=(NAMEVAR(name,'Settings')['TotalImages']-2)){
		$(name+'_image_next').style.display='block';
	}
	else {
		$(name+'_image_next').style.display='none';
	}
}

function SlideThumbs(name,direction){
	switch(direction){
		case "left":
			if(NAMEVAR(name,'Settings')['SelectedSection']>0){
				SlideToSection(name,parseFloat(NAMEVAR(name,'Settings')['SelectedSection'])-1);
			}
		break;
		
		case "right":
			if(NAMEVAR(name,'Settings')['SelectedSection']<(NAMEVAR(name,'Settings')['TotalSections']-1)){
				SlideToSection(name,parseFloat(NAMEVAR(name,'Settings')['SelectedSection'])+1);
			}
		break;
	}
}

function NextPrevImage(name,direction){
	switch(direction){
		case "prev":
			image=NAMEVAR(name,'Images')[parseFloat(NAMEVAR(name,'Settings')['SelectedImage'])-1];
			if(image && image['Id']){
				SelectImage(name,image['Id']);
			}
		break;
		
		case "next":
			image=NAMEVAR(name,'Images')[parseFloat(NAMEVAR(name,'Settings')['SelectedImage'])+1];
			if(image && image['Id']){
				SelectImage(name,image['Id']);
			}
		break;
	}
}
preloadedImages=new Object();
function SelectImage(name,imageid,startup){	
	image=0;
	imageVars=0;
	imagenumber=0;
	
	for(i in NAMEVAR(name,'Images')){
		if(NAMEVAR(name,'Images')[i]['Id']==imageid){
			imagenumber=i;
			imageVars=NAMEVAR(name,'Images')[i];
		}
	}
	if(imageVars){
		if($(name+'_Image_'+NAMEVAR(name,'Settings')['SelectedImageId'])){
			$(name+'_Image_'+NAMEVAR(name,'Settings')['SelectedImageId']).className='';
		}
		if($(name+'_Image_'+imageVars['Id'])){
			$(name+'_Image_'+imageVars['Id']).className='selected';
		}
		
		NAMEVAR(name,'Settings')['SelectedImage']=imagenumber;
		NAMEVAR(name,'Settings')['SelectedImageId']=imageVars['Id'];
		
		Effect.Fade(name+'_mainimage', { duration: 0.4 });
		if($(name+'_title')){
			Effect.Fade(name+'_title', { duration: 0.4 });
		 }
				
		var preloadImage = function(url, imagenumber,imageVars,name) {

			if(!preloadedImages[name]){
				preloadedImages[name]=new Object();
			}
			if(preloadedImages[name][url]){
				image=preloadedImages[name][url];
				if(NAMEVAR(name,'Settings')['Large_Height']){
					setmargin=((parseFloat(NAMEVAR(name,'Settings')['Large_Height'])-image.height)/2);
				}
				else {
					setmargin=0;	
				}
	
				setTimeout("$('"+name+"_mainimage').style.marginTop='"+setmargin+"px';SetImage('"+name+"',"+imagenumber+")",500);
			}
			else {
				var image = new Image();
				image.src = url;
				image.onload = function(e){
					if(!e || e.type=='load'){
						preloadedImages[name][url]=image;
						if(image.height<2 || image.width<2){
							window.location.reload(true);
						}
						if(NAMEVAR(name,'Settings')['Large_Height']){
							setmargin=((parseFloat(NAMEVAR(name,'Settings')['Large_Height'])-image.height)/2);
						}
						else {
							setmargin=0;	
						}
	
						setTimeout("$('"+name+"_mainimage').style.marginTop='"+setmargin+"px';SetImage('"+name+"',"+imagenumber+")",500);
					}
					else {
						alert('An unexpected error occurred. Try reloading the page.');
						Effect.Appear(name+'_mainimage', { duration: 0.4 });
					}
				}
			}
			return image;
		};
		
		var image = preloadImage(imageVars['Large'], imagenumber,imageVars,name);
					
		if(imageVars['Section']!==NAMEVAR(name,'Settings')['SelectedSection']){
			SlideToSection(name,(imageVars['Section']-1));
		}
		
		if(NAMEVAR(name,'Settings')['SlideShow']!=='1'){
			setJSGET(name+'_ImageId',imageid);
		}
	}
	else {
		if(startup){
			SelectImage(name,NAMEVAR(name,'Images')[0]['Id']);
		}
		else {
			alert('The image you selected no longer exists.');
		}
	}
}

function SetImage(name,imagenumber){	
	imageVars=NAMEVAR(name,'Images')[imagenumber];

	$(name+'_mainimage').innerHTML='<img src="'+imageVars['Large']+'" />';
	if($(name+'_title')){
		$(name+'_title').innerHTML=imageVars['Title'];
	}

	Effect.Appear(name+'_mainimage', { duration: 0.4 });
	if($(name+'_title')){
		Effect.Appear(name+'_title', { duration: 0.4 });
	}
	setButtons(name);

	if($('Image_CanBuy_'+NAMEVAR(name,'Images')[imagenumber]['Id']) && $('Image_CanBuy_'+NAMEVAR(name,'Images')[imagenumber]['Id']).value=='1'){
		$('image_buy').href="cart-add/"+NAMEVAR(name,'Images')[imagenumber]['Id'];
		$('image_buy').style.display='block';
	}
	else {
		$('image_buy').style.display='none';
	}
	
	if(NAMEVAR(name,'Settings')['SlideShow']=='1' && NAMEVAR(name,'Settings')['TotalImages']>1){
		if(NAMEVAR(name,'Settings')['SlideShow_Interval']>=1){
			interval=(parseFloat(NAMEVAR(name,'Settings')['SlideShow_Interval'])*1000);
		}
		else {
			interval=3;	
		}
		setTimeout("SlideShow('"+name+"');",interval);
	}
}

function Gallery_KeyPress(e,name){
	e = e || window.event;

	switch(e.keyCode){
		case 37: //Left Arrow
			NextPrevImage(name,'prev');
			break;
		case 39: //Right Arrow
			NextPrevImage(name,'next');
			break;
	}
}

function SlideShow(name,startup){
	if(startup){
		imagenum=0;	
	}
	else {
		imagenum=parseFloat(NAMEVAR(name,'Settings')['SelectedImage'])+1;
	}
	if(!NAMEVAR(name,'Images')[imagenum]){
		imagenum=0;
	}	
	imageid=NAMEVAR(name,'Images')[imagenum]['Id'];		

	if(NAMEVAR(name,'Settings')['SelectedImage']==imagenum && !startup){
		NAMEVAR(name,'Settings')['SlideShow']=0;
	}
	
	SelectImage(name,imageid);
}