
$(document).ready(function(){
	
	// JS enabled, so hide scrollbar and show icon navigation
    
	$('.ss04shell .iconnavnext').click(function(){ss04iconsnext($(this).parents('.ss04shell:first'));});
	$('.ss04shell .iconnavprev').click(function(){ss04iconsprev($(this).parents('.ss04shell:first'));});
	
	$(".ss04shell .pause").click(function(){ss04pausetoggle($(this).parents('.ss04shell:first'));});
	$(".ss04shell .next").click(function(){ss04clicknext($(this).parents('.ss04shell:first'));});
	$(".ss04shell .prev").click(function(){ss04clickprev($(this).parents('.ss04shell:first'));});
	
	$(".ss04shell .slidehandfade").click(function(){ss04changetransition($(this).parents('.ss04shell:first'),"slidehandfade");});
	$(".ss04shell .slideh").click(function(){ss04changetransition($(this).parents('.ss04shell:first'),"slideh");});
	$(".ss04shell .slidedown").click(function(){ss04changetransition($(this).parents('.ss04shell:first'),"slidedown");});
	$(".ss04shell .slideup").click(function(){ss04changetransition($(this).parents('.ss04shell:first'),"slideup");});
	$(".ss04shell .corner").click(function(){ss04changetransition($(this).parents('.ss04shell:first'),"corner");});
	$(".ss04shell .crossfade").click(function(){ss04changetransition($(this).parents('.ss04shell:first'),"crossfade");});
	
	$(".ss04shell .intup").click(function(){ss04intup($(this).parents('.ss04shell:first'));});
	$(".ss04shell .intdown").click(function(){ss04intdown($(this).parents('.ss04shell:first'));});
	$(".ss04shell .transup").click(function(){ss04transup($(this).parents('.ss04shell:first'));});
	$(".ss04shell .transdown").click(function(){ss04transdown($(this).parents('.ss04shell:first'));});

	$(".ss04shell .jumpto").click(function(){ss04jumpto($(this).parents('.ss04shell:first'),$(this).attr("num"));});
	$(".ss04shell .iconjumpto").click(function(){ss04jumpto($(this).parents('.ss04shell:first'),$(this).attr("num"));});
});


function jsf_ss04init(id,anim,intervaldur,transdur,loop,paused,bgpics,mainnavwidth,iconnavwidth,iconcount,iconwidth,iconheight){
	
	id="#"+id;	
	var cur=1;
	var cnt=$(id+" .ss04mount div.ss04frame").size();
	if (cnt<2){
		paused=1;
		$(id+" .pause").css({"display":"none"});
		$(id+" .ss04nav .prev").animate({opacity:0},0);
		$(id+" .ss04nav .next").animate({opacity:0},0);
		$(id+" .ss04nav .counttext").animate({opacity:0},0);		
	}
	var framewidth=$(id+" .ss04mount div.ss04frame").width();
	var frameheight=$(id+" .ss04mount div.ss04frame").height();

	//$(id+" .ss04mount").css({"overflow":"hidden","position":"relative"});
	
	/*
	$(id+" .ss04debug").css({"font-size":"11px"});
	$(id+" .ss04nav").css({"margin-bottom":"15px","text-align":"center","background-color":"#eeeeee","width":mainnavwidth+"px"});
	$(id+" .ss04nav .prev").css({"float":"left"});
	$(id+" .ss04nav .next").css({"float":"right"});
	$(id+" .counttext").css({"float":"left","margin-left":"10px","margin-top":"8px","font-size":"12px"});
	$(id+" .pause").css({"float":"right","margin-right":"10px","margin-top":"8px","font-size":"12px"});
	$(id+" table").css({"border-collapse":"collapse"});
	$(id+" .iconnavholder").css({"margin-bottom":"15px"});
	$(id+" .iconnavprev").css({"float":"left","background-color":"#eeeeee"});
	$(id+" .iconnavnext").css({"float":"left","background-color":"#eeeeee"});
	$(id+" .iconmaskholder").css({"float":"left","display":"block","background-color":"#eeeeee"});
	$(id+" .iconmask").css({"overflow":"auto","position":"absolute"});
	$(id+" .icontable").css({"position":"absolute"});
	$(id+" .iconmask").css({'overflow':'hidden', "width":iconsviswidth+"px","height":iconheight+"px"});
	$(id+" .iconmaskholder").css({"width":iconsviswidth+"px","height":iconheight+"px"});
	$(id+" .iconholder").css({"width":iconwidth+"px","height":iconheight+"px","text-align":"center","padding":"6px 0px"});
	$(id+" .oborder").css({"border":"1px solid #aaaaaa","width":(iw+10)+"px"});
	$(id+" .iborder").css({"border":"3px solid #ffffff"});
	var lp=(iconwidth-$(id+" .oborder").outerWidth())/2;
	$(id+" .oborder").css({"marginLeft":lp});
*/
	if (bgpics!="")	{
		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',framewidth);
	$(id).data('h',frameheight);
	$(id).data('intervaldur',intervaldur);
	$(id).data('transdur',transdur);
	$(id).data('loop',loop);
	$(id).data('paused',paused);

	$(id).data('iconscur',0);
	$(id).data('iconwidth',iconwidth);
	$(id).data('iconscrollqty',iconcount);
	
	$(id+" .ss04mount").css({'width':framewidth,'height':frameheight});//set mount dimensions
	$(id+" .ss04mount div.ss04frame").hide();
	$(id+" .ss04mount div:nth-child(1)").show();

	if (paused==0){setTimeout('ss04next("'+id+'")',intervaldur);}

	ss04showiconnav($(id));
	ss04updateinfo(id);
}

function ss04move(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);

	//ss04showdebug(id," cur:"+cur+"/"+cnt+" w:"+w+" h:"+h+" paused:"+paused+" loop:"+loop+" anim:"+anim+" interval:"+intervaldur+" transition:"+transdur);
	
	allframes=$(id+" .ss04mount div.ss04frame");
	newframe=$(id+" .ss04mount div.ss04frame:nth-child("+newdiv+")");
	oldframe=$(id+" .ss04mount div.ss04frame:nth-child("+olddiv+")");
	framemount=$(id+" .ss04mount");
	bgurl=bgpics[olddiv-1];

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

	if (anim=="slidehandfade"){

		/*	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('ss04next("'+id+'")',intervaldur);
		$(id).data('timeout',t)
	}
	ss04iconnavupdate(id);
	ss04updateinfo(id);
}
function ss04changetransition(id,trans){id.data('anim',trans);}
function ss04intup(id){id.data('intervaldur',id.data('intervaldur')+250);}////ss04cleartimeout(id);
function ss04intdown(id){id.data('intervaldur',id.data('intervaldur')-250);}
function ss04transup(id){id.data('transdur',id.data('transdur')+250);}////ss04cleartimeout(id);
function ss04transdown(id){id.data('transdur',id.data('transdur')-250);}

function ss04jumpto(id,num){
	ss04cleartimeout(id);
	ss04move($(id).data('name'),num);
	ss04pauseon(id);
}
function ss04cleartimeout(id){
	timeout=id.data('timeout');
	clearTimeout(timeout);
}
function ss04clicknext(id){
	ss04cleartimeout(id);
	ss04move($(id).data('name'),"next");
	ss04pauseon(id);	
}
function ss04clickprev(id){	
	ss04cleartimeout(id);
	ss04move(id.data('name'),"prev");
	ss04pauseon(id);
}
function ss04next(id){ss04move(id,"next");}
function ss04prev(id){ss04move(id,"prev");}

function ss04pausetoggle(id){
	paused=!id.data('paused');
	if (paused==1){ss04pauseon(id);}else{ss04pauseoff(id);}
	
}
function ss04pauseon(id){
	//allframes=$(id+" > .ss04mount div.ss04frame");
	//alert ($(id+"> .paused").attr("src"));
	id.data('paused',1);
	ss04cleartimeout(id);	
	ss04updateinfo(id);
	
	//ss04showdebug(id,"paused");
	//id.pause.attr("src", "gfx/gennav/gal_pauseon.gif");
}
function ss04pauseoff(id){
	//alert (id);
	id.data('paused',0);
	ss04next(id.data('name'));
	//ss04showdebug(id,"playing");
	//id.pause.attr("src", "gfx/gennav/gal_pauseoff.gif");
}
function ss04showdebug(id,txt){
	$(id+" > .ss04debug").html(txt);
}
function ss04updateinfo(id){
	cnt=$(id).data('cnt');
	cur=$(id).data('cur');
	paused=$(id).data('paused');
	txt=cur+"/"+cnt;
	
	if (paused==0){
		t="";
	}else{
		t="play";
		id='#'+$(id).attr('id');//todo need to make sure all referrencing same
	}
	$(id+" .counttext").html(txt);
	$(id+" .pause").html(t);
}
function ss04iconsnext(id){
	obj=id;
	cnt=id.data('cnt');
	cur=id.data('iconscur');
	iw=id.data('iconwidth');
	qty=id.data('iconscrollqty');
	id='#'+id.attr('id');
	next=cur+qty;
	if (next<cnt){
		newpos=next*iw;
		$(id).data('iconscur',next);
		$(id+' .icontable').animate({'left':-newpos},500);
		ss04showiconnav(obj);
	}
}
function ss04iconsprev(id){
	obj=id;
	cnt=id.data('cnt');
	cur=id.data('iconscur');
	iw=id.data('iconwidth');
	qty=id.data('iconscrollqty');
	id='#'+id.attr('id');
	next=cur-qty;
	if (next>=0){
		newpos=next*iw;
		$(id).data('iconscur',next);
		$(id+' .icontable').animate({'left':-newpos},500);
		ss04showiconnav(obj);
	}
}
function ss04showiconnav(id){
	cnt=id.data('cnt');
	cur=id.data('iconscur');
	iw=id.data('iconwidth');
	qty=id.data('iconscrollqty');
	id='#'+id.attr('id');

	if (cur+qty<cnt){
		$(id+' .iconnavnext img').animate({'opacity':1},300);
	}else{
		$(id+' .iconnavnext img').animate({'opacity':0},300);
	}
	if (cur>1){
		$(id+' .iconnavprev img').animate({'opacity':1},300);
	}else{
		$(id+' .iconnavprev img').animate({'opacity':0},300);
	}
	ss04styleicons(id);
}
function ss04iconnavupdate(id){	
	cur=$(id).data('cur');
	iconpos=$(id).data('iconscur');
	iw=$(id).data('iconwidth');
	iconqty=$(id).data('iconscrollqty');
	if (cur<iconpos+1 || cur>iconpos+iconqty){
		next=iconqty*(Math.floor((cur-1)/iconqty));
		newpos=next*iw;
		$(id).data('iconscur',next);
		$(id+' .icontable').animate({'left':-newpos},300);
		ss04showiconnav($(id));
	}
	ss04styleicons(id);
}
function ss04styleicons(id){
	active=$(id).data('cur');

	$(id+" .icontable .oborder").css({"border":"1px solid #cccccc"});
	$(id+" .icontable td:nth-child("+active+") .oborder").css({"border":"1px solid #666666"});
	/*
	$(id+" .jumptonavholder .jumpto").css({"background-color":"#eeeeee"});
	$(id+" .jumptonavholder .jumpto:nth-child("+active+")").css({"background-color":"#dddddd"});
*/

	$(id+" .jumptonavholder .jumpto").removeClass("on");
	$(id+" .jumptonavholder .jumpto:nth-child("+active+")").addClass("on");
}

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;	
}


