/*
* Slides, A Slideshow Plugin for jQuery
* Intructions: http://slidesjs.com
* By: Nathan Searles, http://nathansearles.com
* Version: 1.1.8
* Updated: June 1st, 2011
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(function(A){A.fn.slides=function(B){B=A.extend({},A.fn.slides.option,B);return this.each(function(){A("."+B.container,A(this)).children().wrapAll('<div class="slides_control"/>');var V=A(this),J=A(".slides_control",V),Z=J.children().size(),Q=J.children().outerWidth(),M=J.children().outerHeight(),D=B.start-1,L=B.effect.indexOf(",")<0?B.effect:B.effect.replace(" ","").split(",")[0],S=B.effect.indexOf(",")<0?L:B.effect.replace(" ","").split(",")[1],O=0,N=0,C=0,P=0,U,H,I,X,W,T,K,F;function E(c,b,a){if(!H&&U){H=true;B.animationStart(P+1);switch(c){case"next":N=P;O=P+1;O=Z===O?0:O;X=Q*2;c=-Q*2;P=O;break;case"prev":N=P;O=P-1;O=O===-1?Z-1:O;X=0;c=0;P=O;break;case"pagination":O=parseInt(a,10);N=A("."+B.paginationClass+" li."+B.currentClass+" a",V).attr("href").match("[^#/]+$");if(O>N){X=Q*2;c=-Q*2;}else{X=0;c=0;}P=O;break;}if(b==="fade"){if(B.crossfade){J.children(":eq("+O+")",V).css({zIndex:10}).fadeIn(B.fadeSpeed,B.fadeEasing,function(){if(B.autoHeight){J.animate({height:J.children(":eq("+O+")",V).outerHeight()},B.autoHeightSpeed,function(){J.children(":eq("+N+")",V).css({display:"none",zIndex:0});J.children(":eq("+O+")",V).css({zIndex:0});B.animationComplete(O+1);H=false;});}else{J.children(":eq("+N+")",V).css({display:"none",zIndex:0});J.children(":eq("+O+")",V).css({zIndex:0});B.animationComplete(O+1);H=false;}});}else{J.children(":eq("+N+")",V).fadeOut(B.fadeSpeed,B.fadeEasing,function(){if(B.autoHeight){J.animate({height:J.children(":eq("+O+")",V).outerHeight()},B.autoHeightSpeed,function(){J.children(":eq("+O+")",V).fadeIn(B.fadeSpeed,B.fadeEasing);});}else{J.children(":eq("+O+")",V).fadeIn(B.fadeSpeed,B.fadeEasing,function(){if(A.browser.msie){A(this).get(0).style.removeAttribute("filter");}});}B.animationComplete(O+1);H=false;});}}else{J.children(":eq("+O+")").css({left:X,display:"block"});if(B.autoHeight){J.animate({left:c,height:J.children(":eq("+O+")").outerHeight()},B.slideSpeed,B.slideEasing,function(){J.css({left:-Q});J.children(":eq("+O+")").css({left:Q,zIndex:5});J.children(":eq("+N+")").css({left:Q,display:"none",zIndex:0});B.animationComplete(O+1);H=false;});}else{J.animate({left:c},B.slideSpeed,B.slideEasing,function(){J.css({left:-Q});J.children(":eq("+O+")").css({left:Q,zIndex:5});J.children(":eq("+N+")").css({left:Q,display:"none",zIndex:0});B.animationComplete(O+1);H=false;});
}
	}
		if(B.pagination){
			A("."+B.paginationClass+" li."+B.currentClass,V).removeClass(B.currentClass);
			A("."+B.paginationClass+" li:eq("+O+")",V).addClass(B.currentClass);
		}
	}
}
function R(){
	clearInterval(V.data("interval"));
}
function G(){
	if(B.pause){
		clearTimeout(V.data("pause"));
		clearInterval(V.data("interval"));
		K = setTimeout(function(){clearTimeout(V.data("pause"));
		F=setInterval(function(){E("next",L);},B.play);
		V.data("interval",F);},B.pause);
		V.data("pause",K);
	}else{
		R();
	}
}
if(Z<2){
	return ;
}
if(D<0){
	D=0;
}
if(D>Z){
	D=Z-1;
}
if(B.start){
	P=D;
}
if(B.randomize){
	J.randomize();
}
A("."+B.container,V).css({overflow:"hidden",position:"relative"});
J.children().css({position:"absolute",top:0,left:J.children().outerWidth(),zIndex:0,display:"none"});
J.css({position:"relative",width:(Q*3),height:M,left:-Q});
A("."+B.container,V).css({display:"block"});
if(B.autoHeight){
	J.children().css({height:"auto"});
	J.animate({height:J.children(":eq("+D+")").outerHeight()},B.autoHeightSpeed);
}
if(B.preload&&J.find("img:eq("+D+")").length){
	A("."+B.container,V).css({background:"url("+B.preloadImage+") no-repeat 50% 50%"});
	var Y=J.find("img:eq("+D+")").attr("src")+"?"+(new Date()).getTime();
	if(A("img",V).parent().attr("class")!="slides_control"){
		T=J.children(":eq(0)")[0].tagName.toLowerCase();
	}else{
		T=J.find("img:eq("+D+")");
	}
	J.find("img:eq("+D+")").attr("src",Y).load(function(){J.find(T+":eq("+D+")").fadeIn(B.fadeSpeed,B.fadeEasing,function(){A(this).css({zIndex:5});
	A("."+B.container,V).css({background:""});
	U=true;
	B.slidesLoaded();});});
}else{
	J.children(":eq("+D+")").fadeIn(B.fadeSpeed,B.fadeEasing,function(){
		U=true;
		B.slidesLoaded();
	});
}
if(B.bigTarget){
	J.children().css({cursor:"pointer"});
	J.children().click(function(){
		E("next",L);
		return false;
	});
}




if(B.hoverPause&&B.play){
	J.bind("mouseover",function(){R();});
	J.bind("mouseleave",function(){G();});
}



/*if(B.generateNextPrev){
	A("."+B.container,V).after('<a href="#" class="'+B.prev+'"></a>');
	A("."+B.prev,V).after('<a href="#" class="'+B.next+'"></a>');
}
A("."+B.next,V).click(function(a){
	a.preventDefault();
	if(B.play){
		G();
	}
	E("next",L);
});
A("."+B.prev,V).click(function(a){
	a.preventDefault();
	if(B.play){
		G();
	}
	E("prev",L);
});*/


if(B.generatePagination){
	if(B.prependPagination){		
		V.prepend("<div id='pagination_placement' align='center'><div id='pagination'><a href='#' class='"+B.prev+"'></a><ul class="+B.paginationClass+"></ul><a href='#' class='"+B.next+"'></a></div></div>");
	}else{
		V.append("<div id='pagination_placement' align='center'><div id='pagination'><a href='#' class='"+B.prev+"'></a><ul class="+B.paginationClass+"></ul><a href='#' class='"+B.next+"'></a></div></div>");
	}
	//
	A("."+B.next,V).click(function(a){
		a.preventDefault();
		if(B.play){
			G();
		}
		E("next",L);
	});
	A("."+B.prev,V).click(function(a){
		a.preventDefault();
		if(B.play){
			G();
		}
		E("prev",L);
	});
	
	//
	J.children().each(
		function(){
			A("."+B.paginationClass,V).append('<li><a href="#'+C+'"></a></li>');
			C++;
		}
	);
	}else{
		A("."+B.paginationClass+" li a",V).each(
			function(){
				A(this).attr("href","#"+C);
				C++;
			}
		);
	}
	A("."+B.paginationClass+" li:eq("+D+")",V).addClass(B.currentClass);
	A("."+B.paginationClass+" li a",V).click(
		function(){
			if(B.play){
				G();
			}
			I=A(this).attr("href").match("[^#/]+$");
			if(P!=I){
				E("pagination",S,I);
			}
			return false;
		}
	);
	A("a.link",V).click(
		function(){
			if(B.play){
				G();
			}
			I=A(this).attr("href").match("[^#/]+$")-1;
			if(P!=I){
				E("pagination",S,I);
			}
			return false;
		}
	);
	if(B.play){
		F=setInterval(
			function(){
				E("next",L);
			},B.play
		);
		V.data("interval",F);
	}
}
);};
A.fn.slides.option={
	preload:false,
	preloadImage:"/img/loading.gif",
	container:"slides_container",
	generateNextPrev:false,
	next:"next",
	prev:"prev",
	pagination:true,
	generatePagination:true,
	prependPagination:false,
	paginationClass:"pagination",
	currentClass:"current",
	fadeSpeed:350,
	fadeEasing:"",
	slideSpeed:350,
	slideEasing:"",
	start:1,
	effect:"slide",
	crossfade:false,
	randomize:false,
	play:0,
	pause:0,
	hoverPause:false,
	autoHeight:false,
	autoHeightSpeed:350,
	bigTarget:false,
	animationStart:function(){},
	animationComplete:function(){},
	slidesLoaded:function(){}
};
A.fn.randomize=function(C){
	function B(){
		return(Math.round(Math.random())-0.5);
	}
	return(A(this).each(
		function(){
			var F=A(this);
			var E=F.children();
			var D=E.length;
			if(D>1){
				E.hide();
				var G=[];
				for(i=0;i<D;i++){
					G[G.length]=i;
				}
				G=G.sort(B);
				A.each(G,function(I,H){
					var K=E.eq(H);
					var J=K.clone(true);
					J.show().appendTo(F);
					if(C!==undefined){
						C(K,J);
					}
					K.remove();
				});
			}
		}));
	};
}
)(jQuery);
