jQuery(function(){
	jQuery("div.csw").prepend("<p class='loading'>Loading...<br /><img src='/media/images/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);
		
		// and fix the back button
		var timer = setInterval(function() {
			var ha = location.hash.slice(1);
			if(ha != currentPage) {
				if(ha != '' && jQuery('div[title="' + currentPage + '"]').length) {
					for (var counter=0;counter < jQuery(".panel").size();counter++) {
						if (jQuery(".panel")[counter] == jQuery("*").filter('[title="' + ha + '"]')[0] ) {
							jQuery(".tab" + counter +" a").trigger('click');
						}
					}/*
					jQuery(container[0].previousSibling).find(".tab" + cPanel +" a").addClass("current").parent().parent().find("a").not(jQuery(container[0].previousSibling).find(".tab" + cPanel +" a")).removeClass("current");
					var panelPosition=-(panelWidth*cPanel);
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					var ht = jQuery(".panel")[cPanel].clientHeight;
					
					if (ht < 400) {
						ht = 400;
					}
					jQuery(".panelContainer").animate({left:panelPosition},settings.easeTime,settings.easeFunc).parent().animate({height:ht},settings.easeTime,settings.easeFunc);
					*/
				
				} else if(ha == '') {
					ha = jQuery(container[0]).children().find(".panel:first").attr("title")
					jQuery(".tab" + 0 +" a").trigger('click');
					if (location.replace == null)
						location.replace = location.assign;
					
					location.replace(location + "#" + currentPage);
					//location.hash=currentPage;
				//jQuery(container[0].previousSibling).find(".tab" + 0 +" a").trigger('click');
				/*
					cPanel=0;
					jQuery(container[0].previousSibling).find(".tab0 a").addClass("current").parent().parent().find("a").not(jQuery(container[0].previousSibling).find(".tab0 a")).removeClass("current");
					var panelPosition=-(panelWidth*0);
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					var ht = jQuery(".panel")[cPanel].clientHeight;
					
					if (ht < 400) {
						ht = 400;
					}
					jQuery(".panelContainer").animate({left:panelPosition},settings.easeTime,settings.easeFunc).parent().animate({height:ht},settings.easeTime,settings.easeFunc);
					*/
				}
			}
		}, 500);
		
		//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);
			/*Removed, done server-side: 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).children().attr("title") +"<\/a><\/li>");	
			});
			*/
			// This remains in order to get the click events:
			jQuery("div#stripNav"+j+" a").each(function(z){
				//navWidth+=jQuery(this).parent().width();
				jQuery(this).bind("click",function(){
					jQuery(this).parent().addClass("current").parent().find("li").not(jQuery(this).parent()).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("div.stripNav li.current").removeClass("current").parent().find("li:last").addClass("current");
				}
				else{
					cPanel-=1;
					var panelPosition=-(panelWidth*(cPanel));
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					jQuery("div.stripNav li.current").removeClass("current").prev().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("div.stripNav li.current").removeClass("current").parent().find("li:eq(0)").addClass("current");
				}
				else{
					var panelPosition=-(panelWidth*(cPanel+1));
					cPanel+=1;
					currentPage = jQuery(".panel")[cPanel].attributes.getNamedItem("title").nodeValue;
					jQuery("div.stripNav li.current").removeClass("current").next().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("div#stripNav"+j).css("width",navWidth);

			jQuery("div#stripNav"+j+" li:eq("+ cPanel +")").addClass("current");
		});
		j++
	}
)};
