
$(document).ready(function(){
	
	//$(".ss3mount").click(function(){ss3pausetoggle($(this).parent());});

	$(".pause").click(function(){ss3pausetoggle($(this).parent());});//need to replace nextall
	$(".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");});
	
	
	$(".next").click(function(){ss3clicknext($(this).parent());});
	$(".prev").click(function(){ss3clickprev($(this).parent());});
	$(".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){
	id.data('paused',1);
	ss3cleartimeout(id);
	showdebug(id,"paused");
}
function ss3pauseoff(id){
	id.data('paused',0);
	ss3next(id.data('name'));
	showdebug(id,"playing");
}
function showdebug(id, txt){
	//$("div#debug").html(txt);
	$(id+" > .debug").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+" > .debug").css({"font-size":"11px"});//set mount dimensions
	
	intervaldur=parseInt(intervaldur);
	transdur=parseInt(transdur);
	
	w=$(id+" > .ss3mount div").width();
	h=$(id+" > .ss3mount div").height();
	c=$(id+" > .ss3mount div").size();
	bgpics=bgpics.split(",");
	$(id).data('bgpics',bgpics);
	
	$(id).data('name',id);
	$(id).data('cnt',c);
	$(id).data('cur',1);
	$(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").hide();
	$(id+" > .ss3mount div:nth-child(1)").show();
	
	if (paused==0){
		t=setTimeout('ss3next("'+id+'")',intervaldur); 
		$(id).data('timeout',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=nextorprev;
		if (newdiv==olddiv){
			return;
		}else if (newdiv>olddiv){
			nextorprev="next";
		}else{
			nextorprev="prev";
		}
	}
	
	$(id).data('cur',newdiv);

	showdebug(id," cur:"+cur+"/"+cnt+" w:"+w+" h:"+h+" paused:"+paused+" loop:"+loop+" anim:"+anim+" interval:"+intervaldur+" transition:"+transdur);
	
	allframes=$(id+" > .ss3mount div");
	newframe=$(id+" > .ss3mount div:nth-child("+newdiv+")");
	oldframe=$(id+" > .ss3mount div: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:.5},transdur);
			newframe.animate({marginLeft:''+w+'px',opacity:0},0);
			newframe.animate({marginLeft:'0px',opacity:1},transdur);
		}else{
			oldframe.animate({marginLeft:'0px'},0);
			oldframe.animate({marginLeft:''+w+'px',opacity:.5},transdur);
			newframe.animate({marginLeft:'-'+w+'px',opacity:0},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=="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;	
}



