
$(document).ready(function(){
	
	//$(".ss3mount").click(function(){ss3pausetoggle($(this).parent());});


	$(".pause").click(function(){ss3pausetoggle($(this).parent().parent());});//need to replace nextall
	$(".next").click(function(){ss3clicknext($(this).parent().parent());});
	$(".prev").click(function(){ss3clickprev($(this).parent().parent());});
	
	$(".test").click(function(){ss3changetransition($(this).parent(),"test");});
	$(".slideh").click(function(){ss3changetransition($(this).parent(),"slideh");});
	$(".slidedown").click(function(){ss3changetransition($(this).parent(),"slidedown");});
	$(".slideup").click(function(){ss3changetransition($(this).parent(),"slideup");});
	$(".corner").click(function(){ss3changetransition($(this).parent(),"corner");});
	$(".crossfade").click(function(){ss3changetransition($(this).parent(),"crossfade");});
	
	$(".intup").click(function(){ss3intup($(this).parent());});
	$(".intdown").click(function(){ss3intdown($(this).parent());});
	$(".transup").click(function(){ss3transup($(this).parent());});
	$(".transdown").click(function(){ss3transdown($(this).parent());});

	$(".jumpto").click(function(){ss3jumpto($(this).parent(),$(this).attr("num"));});
	
});

function ss3changetransition(id,trans){id.data('anim',trans);}
function ss3intup(id){id.data('intervaldur',id.data('intervaldur')+250);}////ss3cleartimeout(id);
function ss3intdown(id){id.data('intervaldur',id.data('intervaldur')-250);}
function ss3transup(id){id.data('transdur',id.data('transdur')+250);}////ss3cleartimeout(id);
function ss3transdown(id){id.data('transdur',id.data('transdur')-250);}

function ss3jumpto(id,num){
	ss3cleartimeout(id);
	ss3move($(id).data('name'),num);
	ss3pauseon(id);
}

function ss3cleartimeout(id){
	timeout=id.data('timeout');
	clearTimeout(timeout);
}
function ss3clicknext(id){
	ss3cleartimeout(id);
	ss3move($(id).data('name'),"next");
	ss3pauseon(id);	
}
function ss3clickprev(id){	
	ss3cleartimeout(id);
	ss3move(id.data('name'),"prev");
	ss3pauseon(id);
}
function ss3next(id){ss3move(id,"next");}
function ss3prev(id){ss3move(id,"prev");}

function ss3pausetoggle(id){
	paused=!id.data('paused');
	if (paused==1){ss3pauseon(id);}else{ss3pauseoff(id);}
}
function ss3pauseon(id){

	//allframes=$(id+" > .ss3mount div.ss3frame");
	
	//alert ($(id+"> .paused").attr("src"));
	id.data('paused',1);
	ss3cleartimeout(id);
	showdebug(id,"paused");
	//id.pause.attr("src", "gfx/gennav/gal_pauseon.gif");
}

function ss3pauseoff(id){
	//alert (id);
	id.data('paused',0);
	ss3next(id.data('name'));
	showdebug(id,"playing");
	//id.pause.attr("src", "gfx/gennav/gal_pauseoff.gif");
}
function showdebug(id,txt){
	$(id+" > .ss3debug").html(txt);
}
function showinfo(id,txt){
	$(id+" > .ss3textinfo").html(txt);
}
function jsf_init_ss3(id,anim,intervaldur,transdur,loop,paused,bgpics){
	id="#"+id;

	$(id+" > .ss3mount").css({"overflow":"hidden","position":"relative"});//set mount dimensions
	$(id+" > .ss3mount .ss3frame").css({"position":"absolute"});//set mount dimensions
	$(id+" > .ss3debug").css({"font-size":"11px"});
	$(id+" > .ss3nav").css({"float":"left","margin-left":"40px"});
	$(id+" > .ss3textinfo").css({"float":"left","margin-left":"10px","margin-top":"3px","font-size":"12px"});
	
	intervaldur=parseInt(intervaldur);
	transdur=parseInt(transdur);
	
	cur=1;
	w=$(id+" > .ss3mount div.ss3frame").width();
	h=$(id+" > .ss3mount div.ss3frame").height();
	cnt=$(id+" > .ss3mount div.ss3frame").size();

	
	//alert (c);
	bgpics=bgpics.split(",");
	$(id).data('bgpics',bgpics);
	
	$(id).data('name',id);
	$(id).data('cnt',cnt);
	$(id).data('cur',cur);
	$(id).data('anim',anim);
	$(id).data('w',w);
	$(id).data('h',h);
	$(id).data('intervaldur',intervaldur);
	$(id).data('transdur',transdur);
	$(id).data('loop',loop);
	$(id).data('paused',paused);

	$(id+" > .ss3mount").css({'width':w,'height':h});//set mount dimensions

	$(id+" > .ss3mount div.ss3frame").hide();
	$(id+" > .ss3mount div:nth-child(1)").show();

	if (cnt==0){
		showinfo(id,"slideshow has no content");
	}else if (paused==0){
		t=setTimeout('ss3next("'+id+'")',intervaldur); 
		$(id).data('timeout',t);
		
		showinfo(id,cur+"/"+cnt);

		t=" cur:"+cur+"/"+cnt+" w:"+w+" h:"+h+" paused:"+paused+" loop:"+loop+" anim:"+anim+" interval:"+intervaldur+" transition:"+transdur;
		showdebug(id,t);
	}	
}

function ss3move(id,nextorprev){
	
	cnt=$(id).data('cnt');
	cur=$(id).data('cur');
	anim=$(id).data('anim');
	w=$(id).data('w');
	h=$(id).data('h');
	intervaldur=$(id).data('intervaldur');
	transdur=$(id).data('transdur');
	loop=$(id).data('loop');
	paused=$(id).data('paused');
	bgpics=$(id).data('bgpics');


	if (intervaldur<250){intervaldur=250;}
	if (transdur>intervaldur){transdur=intervaldur;}
	if (transdur<250){transdur=250;}

	$(id).data('intervaldur',intervaldur);
	$(id).data('transdur',transdur);
	
	olddiv=cur;
	if (nextorprev=="next"){
		if (loop==0 && cur==cnt){return;}
		newdiv=jsf_nextinloop(cnt,cur);
	}else if (nextorprev=="prev"){
		if (loop==0 && cur==1){return;}
		newdiv=jsf_previnloop(cnt,cur);
	}else{//assume number
		
		newdiv=parseInt(nextorprev);
		if (newdiv==olddiv){
			return;
		}else if (newdiv>olddiv){
			nextorprev="next";
		}else{
			nextorprev="prev";
		}
	}
	cur=newdiv;
	
	$(id).data('cur',newdiv);
	
	
	//$(id+" .ss3textinfo").html(cur+"/"+cnt);
	showinfo(id,cur+"/"+cnt);
	showdebug(id," cur:"+cur+"/"+cnt+" w:"+w+" h:"+h+" paused:"+paused+" loop:"+loop+" anim:"+anim+" interval:"+intervaldur+" transition:"+transdur);
	
	allframes=$(id+" > .ss3mount div.ss3frame");
	newframe=$(id+" > .ss3mount div.ss3frame:nth-child("+newdiv+")");
	oldframe=$(id+" > .ss3mount div.ss3frame:nth-child("+olddiv+")");
	framemount=$(id+" > .ss3mount");
	bgurl=bgpics[olddiv-1];

	framemount.css({'background-image':''});
	allframes.hide();
	allframes.animate({marginLeft:'0px',marginTop:'0px',opacity:1},0);
	newframe.show();

	if (anim=="test"){

		/*	WORKS : wipe accross then down
		newframe.animate({width:'0',height:'1'},0);
		newframe.animate({width:'100%'},transdur);
		newframe.animate({height:'100%'},transdur);
		 */

		/*	WORKS : slideh with fade in and out */
		oldframe.show();
		if (nextorprev=="next"){
			oldframe.animate({marginLeft:'0px'},0);
			oldframe.animate({marginLeft:'-'+w+'px',opacity:0},transdur);
			newframe.animate({marginLeft:''+w+'px',opacity:1},0);
			newframe.animate({marginLeft:'0px',opacity:1},transdur);
		}else{
			oldframe.animate({marginLeft:'0px'},0);
			oldframe.animate({marginLeft:''+w+'px',opacity:0},transdur);
			newframe.animate({marginLeft:'-'+w+'px',opacity:1},0);
			newframe.animate({marginLeft:'0px',opacity:1},transdur);
		}
		
		
		//oldframe.show();
		//oldframe.animate({width:'100%'},0);
		//oldframe.animate({width:'0'},transdur);
		
		/*
		$(id+" div:nth-child("+newdiv+")").fadeto(0,0);
		$(id+" div:nth-child("+newdiv+")").fadein(transdur);
		 * 	$(id+" div:nth-child("+newdiv+")").slideDown(transdur);
		$(id+" div:nth-child("+olddiv+")").animate({width:'toggle'},200);
		$(id+" div:nth-child("+newdiv+")").animate({width:'toggle'},200);
		*/
	}else if (anim=="slidehandfade"){
		
		
		
	}else if (anim=="crossfade"){
		newframe.animate({opacity:0},0);
		newframe.animate({opacity:1},transdur);
		if (bgpics.length>1){framemount.css({'background-image':'url('+bgurl+')','background-repeat':'no-repeat'});}

	}else if (anim=="fadein"){
		newframe.animate({opacity:0},0);
		newframe.animate({opacity:1},transdur);
		
	}else if (anim=="wipedown"){
		newframe.animate({height:'0'},0);
		newframe.animate({height:'100%'},transdur);
		if (bgpics.length>1){framemount.css({'background-image':'url('+bgurl+')','background-repeat':'no-repeat'});}
		
	}else if (anim=="slideh"){
		oldframe.show();
		if (nextorprev=="next"){
			oldframe.animate({marginLeft:'0px'},0);
			oldframe.animate({marginLeft:'-'+w+'px'},transdur);
			newframe.animate({marginLeft:''+w+'px'},0);
			newframe.animate({marginLeft:'0px'},transdur);
		}else{
			oldframe.animate({marginLeft:'0px'},0);
			oldframe.animate({marginLeft:''+w+'px'},transdur);
			newframe.animate({marginLeft:'-'+w+'px'},0);
			newframe.animate({marginLeft:'0px'},transdur);
		}

	}else if (anim=="slidedown" || anim=="slideup"){
		oldframe.show();
		if ((nextorprev=="next" && anim=="slideup") || (nextorprev=="prev" && anim=="slidedown")){
			oldframe.animate({marginTop:'0px'},0);
			oldframe.animate({marginTop:'-'+h+'px'},transdur);
			newframe.animate({marginTop:''+h+'px'},0);
			newframe.animate({marginTop:'0px'},transdur);
		}else{
			oldframe.animate({marginTop:'0px'},0);
			oldframe.animate({marginTop:''+h+'px'},transdur);
			newframe.animate({marginTop:'-'+h+'px'},0);
			newframe.animate({marginTop:'0px'},transdur);
		}
		
	}else if (anim=="corner"){
		newframe.animate({width:'0',height:'0'},0);
		newframe.animate({width:'100%',height:'100%'},transdur);
		if (bgpics.length>1){framemount.css({'background-image':'url('+bgurl+')','background-repeat':'no-repeat'});}
			
	}else{
		
	}
	
	
	if (paused==0){
		t=setTimeout('ss3next("'+id+'")',intervaldur);
		$(id).data('timeout',t)
	}
}


function jsf_nextinloop(tot,cur){
	cur++;
	if (cur>tot){cur=1;}
	return cur;	
}
function jsf_previnloop(tot,cur){
	cur--;
	if (cur<1){cur=tot;}
	return cur;	
}



