jQuery(function(){
	jQuery("div.csw").prepend("<p class='loading'>Loading...<br /><img src='http://media.webamorphosis.com/webamorphosis//graphic/ajax-loader.gif' alt='loading...'/ ></p>")
});
	
var j=0;
jQuery.fn.codaSlider=function(settings){
	settings=jQuery.extend({easeFunc:"expoinout",easeTime:750,toolTip:false},settings);
	return this.each(function(){
		var container=jQuery(this);
		container.find("p.loading").remove();
		container.removeClass("csw").addClass("stripViewer");
		var panelWidth=container.find("div.panel").width();
		var panelCount=container.find("div.panel").size();
		var stripViewerWidth=panelWidth*panelCount;
		
		container.find("div.panelContainer").css("width",stripViewerWidth);
		var navWidth=panelCount*2;
		var cPanel=-1;
		var currentPage = location.hash.slice(1);
		//first try to see if you can find the element by it's title:
		if(location.hash && jQuery('div[title="' + currentPage + '"]').length) {
			for (var counter=0;counter < jQuery(".panel").size();counter++) {
				if (jQuery(".panel")[counter] == jQuery("*").filter('[title="' + currentPage + '"]')[0] ) {
					cPanel = counter;
				}
			}
			
			var panelPosition=-(panelWidth*(cPanel));
			
			var ht = jQuery(".panel")[cPanel].clientHeight;
			/*// Webywood change
			if (jQuery.browser.msie) {
				var ht = jQuery(this).find("div.panelContainer")[0].childNodes[cPanel].clientHeight;
			} else {
				var ht = jQuery(".panel")[cPanel].clientHeight;
			}
			*/
			if (ht < 400) {
				ht = 400;
			}
			jQuery(this).animate({height:ht},settings.easeTime,settings.easeFunc).find("div.panelContainer").css({left:panelPosition});
			
			//cPanel = jQuery('div[title="' + location.hash.slice(1) +'"]').index(this);
		}
		//then go by number:
		else if(location.hash&&parseInt(location.hash.slice(1))<panelCount) {
			//var cPanel=location.hash.slice(1);
			var cPanel=parseInt(location.hash.slice(1));
			var panelPosition=-(panelWidth*(cPanel));
			
			var ht = jQuery(".panel")[cPanel].clientHeight;
			/*// Webywood change
			if (jQuery.browser.msie) {
				var ht = jQuery(this).find("div.panelContainer")[0].childNodes[cPanel].clientHeight;
			} else {
				var ht = jQuery(this).find("div.panelContainer")[0].childNodes[cPanel*2-1].childNodes[1].clientHeight;
			}
			*/
			if (ht < 400) {
				ht = 400;
			}
			jQuery(this).animate({height:ht},settings.easeTime,settings.easeFunc).find("div.panelContainer").css({left:panelPosition});
		}
		//finally, just assume first panel:
		else {
			var cPanel=0;
			var ht = jQuery(".panel")[cPanel].clientHeight;
			/*
			// Webywood change
			if (jQuery.browser.msie) {
				var ht = jQuery(this).find("div.panelContainer")[0].clientHeight;
			} else {
				var ht = jQuery(this).find("div.panelContainer")[0].childNodes[cPanel*2-1].childNodes[1].clientHeight;
			} 
			*/
			if (ht < 400) {
				ht = 400;
			}
			jQuery(this).animate({height:ht},settings.easeTime,settings.easeFunc);
		};
		container.each(function(i){
			jQuery(this).before("<div class='stripNavL' id='stripNavL"+j+"'><a href='#'>Left</a><\/div>");
			//jQuery("div#stripNavL" + j +" a").css("paddingTop",ht);
			jQuery(this).after("<div class='stripNavR' id='stripNavR"+j+"'><a href='#'>Right</a><\/div>");
			//jQuery("div#stripNavR" + j +" a").css("paddingTop", ht);
			jQuery(this).before("<div class='stripNav' id='stripNav"+j+"'><ul><\/ul><\/div>");
			jQuery(this).find("div.panel").each(function(n){
				//OLD Number method -> jQuery("div#stripNav"+j+" ul").append("<li class='tab"+(n)+"'><a href='#"+(n)+"'>"+jQuery(this).attr("title")+"<\/a><\/li>");
				jQuery("div#stripNav"+j+" ul").append("<li class='tab"+(n)+"'><a href='#"+ jQuery(this).attr("title") +"'>"+jQuery(this).attr("title")+"<\/a><\/li>");	
			});
			jQuery("div#stripNav"+j+" a").each(function(z){
				navWidth+=jQuery(this).parent().width();
				jQuery(this).bind("click",function(){
					jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current");
					var panelPosition=-(panelWidth*z);
					cPanel=z;
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
         			var ht = jQuery(".panel")[cPanel].clientHeight;
         			/*
         			// Webywood change
					if (jQuery.browser.msie) {
						//my change
						// old: var ht = jQuery(this).parent().parent().parent().next().find("div.panelContainer")[0].clientHeight;
						var ht = jQuery(this).parent().parent().parent().next().find("div.panelContainer")[0].childNodes[cPanel].clientHeight;
	
					} else {
						var ht = jQuery(".panel")[cPanel].clientHeight;// <- faster and safer than next line
						//var ht = jQuery(this).parent().parent().parent().next().find("div.panelContainer")[0].childNodes[cPanel*2-1].childNodes[1].clientHeight;
					}*/
					if (ht < 400) {
						ht = 400;
					}
					jQuery(".panelContainer").animate({left:panelPosition},settings.easeTime,settings.easeFunc).parent().animate({height:ht},settings.easeTime,settings.easeFunc);
					//jQuery(this).parent().parent().parent().next().find("div.panelContainer").animate({left:panelPosition},settings.easeTime,settings.easeFunc).parent().animate({height:ht},settings.easeTime,settings.easeFunc);
				})
			});
			jQuery("div#stripNavL"+j+" a").click(function(){
				if(cPanel==0){
					var panelPosition=-(panelWidth*(panelCount-1));
					cPanel=panelCount-1;
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().parent().find("li:last a").addClass("current");
				}
				else{
					cPanel-=1;
					var panelPosition=-(panelWidth*(cPanel));
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().prev().find("a").addClass("current");
				};
				var ht = jQuery(".panel")[cPanel].clientHeight;
				/*
				// Webywood change
				if (jQuery.browser.msie) {
					var ht = jQuery(this).parent().parent().find("div.panelContainer")[0].childNodes[cPanel].clientHeight;
				} else {
					var ht=jQuery(this).parent().parent().find("div.panelContainer")[0].childNodes[cPanel*2-1].childNodes[1].clientHeight;
				}*/
				if (ht < 400) {
					ht = 400;
				}
				//jQuery(this).animate({paddingTop:ht}, settings.easeTime,settings.easeFunc).parent().parent().find("div.stripNavR").animate({paddingTop:ht}, settings.easeTime,settings.easeFunc);
				jQuery(this).parent().parent().find("div.panelContainer").animate({left:panelPosition},settings.easeTime,settings.easeFunc).parent().animate({height:ht},settings.easeTime,settings.easeFunc);
				location.hash=currentPage;
				//location = location + "/" + currentPage + "/";
				return false
			});
			jQuery("div#stripNavR"+j+" a").click(function(){
				if(cPanel==panelCount-1){
					var panelPosition=0;
					cPanel=0;
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().parent().find("a:eq(0)").addClass("current");
				}
				else{
					var panelPosition=-(panelWidth*(cPanel+1));
					cPanel+=1;
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().next().find("a").addClass("current");
				};
				var ht = jQuery(".panel")[cPanel].clientHeight;
				/*
				// Webywood change
				if (jQuery.browser.msie) {
					var ht = jQuery(this).parent().parent().find("div.panelContainer")[0].childNodes[cPanel].clientHeight;
				} else {
					var ht=jQuery(this).parent().parent().find("div.panelContainer")[0].childNodes[cPanel*2-1].childNodes[1].clientHeight;
				}*/
				if (ht < 400) {
					ht = 400;
				}
				//jQuery(this).animate({paddingTop:ht}, settings.easeTime,settings.easeFunc);
				//jQuery(this).parent().parent().find("div.stripNavL").animate({paddingTop:ht}, settings.easeTime,settings.easeFunc);
				jQuery(this).parent().parent().find("div.panelContainer").animate({left:panelPosition},settings.easeTime,settings.easeFunc).parent().animate({height:ht},settings.easeTime,settings.easeFunc);
				location.hash=currentPage;
				//location = location + "/" + cPanel + "/";
				return false
			});
			jQuery("a.cross-link").click(function(){
				jQuery('.stripNav ul li a[href="' + jQuery(this).attr("href") + '"]').trigger('click');
				//jQuery(this).parents().find(".stripNav ul li a:eq("+(parseInt(jQuery(this).attr("href").slice(1))-1)+")").trigger('click')
			});
			jQuery("div#stripNav"+j).css("width",navWidth);
			/*
			if(location.hash&&parseInt(location.hash.slice(1))<=panelCount){
				jQuery("div#stripNav"+j+" a:eq("+(location.hash.slice(1)-1)+")").addClass("current")}
			else{
				jQuery("div#stripNav"+j+" a:eq(0)").addClass("current")
			}*/
			jQuery("div#stripNav"+j+" a:eq("+ cPanel +")").addClass("current");
		});
		j++
	}
)};
