/**
 * jQuery (a)Slideshow plugin
 *
 * Copyright (c) 2008 Trent Foley
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * @author 	Anton Shevchuk AntonShevchuk@gmail.com
 * @version 0.5.3
 */
(function(A){defaults={width:320,height:240,index:0,time:3000,title:true,panel:true,play:false,loop:true,effect:"fade",effecttime:1000,filter:true,nextclick:false,playclick:false,playhover:false,playhoverr:false,playframe:true,imgresize:false,imgcenter:true,imgajax:true,linkajax:false,help:'Plugin homepage: <a href="http://slideshow.hohli.com">(a)Slideshow</a><br/>Author homepage: <a href="http://anton.shevchuk.name">Anton Shevchuk</a>',controls:{hide:true,first:true,prev:true,play:true,next:true,last:true,help:true,counter:true}};A.fn.slideshow=function(C){var B=this;this.each(function(){var D=A(this);this.playFlag=false;this.playId=null;this.length=0;this.inited=new Array();this.build=function(){var E=this;D.wrapInner('<div class="slideshow"><div class="slideshow-content"></div></div>');D=D.find(".slideshow");if(this.options.filter){D.find(".slideshow-content > br").remove();D.find(".slideshow-content > p:empty").remove();D.find(".slideshow-content > div:empty").remove()}this.length=D.find(".slideshow-content > *").length;if(this.options.title){D.prepend('<div class="slideshow-label"></div>');D.find(".slideshow-label").css("width",this.options.width-26+"px")}if(this.options.panel){D.append('<div class="slideshow-panel-place"><div class="slideshow-panel"></div></div>');panel=D.find(".slideshow-panel");if(this.options.controls.first){panel.append('<a class="first button" href="#first">First</a>')}if(this.options.controls.prev){panel.append('<a class="prev button"  href="#prev">Prev</a>')}if(this.options.controls.play){panel.append('<a class="play button"  href="#play">Play</a>')}if(this.options.controls.next){panel.append('<a class="next button"  href="#next">Next</a>')}if(this.options.controls.last){panel.append('<a class="last button"  href="#last">Last</a>')}if(this.options.controls.help){panel.append('<a class="help button"  href="#help">Help</a>');panel.prepend('<div class="slideshow-help">'+this.options.help+"</div>");panel.find(".slideshow-help").css("width",this.options.width-4+"px")}if(this.options.controls.counter){panel.append('<span class="counter">'+(this.options.index+1)+" / "+this.length+"</span>")}if(this.options.controls.hide){D.find(".slideshow-panel-place").hover(function(){A(this).find(".slideshow-panel").fadeIn()},function(){A(this).find(".slideshow-panel").fadeOut()});panel.hide()}D.find(".slideshow-panel-place").css("width",this.options.width)}D.css("width",this.options.width+"px");D.find(".slideshow-content").css("width",this.options.width);D.find(".slideshow-content").css("height",this.options.height);D.find(".slideshow-content > *").each(function(){E._build(A(this))});this.init(this.options.index);D.find(".slideshow-content > *:not(:eq("+this.options.index+"))").hide();this.label();if(this.options.playframe){D.find(".slideshow-content").append('<div class="slideshow-frame"></div>');D.find(".slideshow-content").append('<div class="slideshow-shadow"></div>')}this.events();return true};this._build=function(E){E.css({margin:0,position:"absolute",display:"block",overflow:"hidden"});if(E.is("img")&&this.options.imgresize||E.is(":not(img)")){E.css({width:"100%",height:"100%"})}};this.events=function(){var E=this;if(E.options.nextclick){D.find(".slideshow-content").click(function(){E.stop();E.next();return false})}if(this.options.controls.first){D.find("a.first").click(function(){E.stop();E.goSlide(0);return false})}if(this.options.controls.prev){D.find("a.prev").click(function(){E.stop();E.prev();return false})}if(this.options.controls.play){D.find("a.play").click(function(){if(E.playFlag){E.stop()}else{E.play()}return false})}if(this.options.controls.next){D.find("a.next").click(function(){E.stop();E.next();return false})}if(this.options.controls.last){D.find("a.last").click(function(){E.stop();E.goSlide(E.length-1);return false})}if(this.options.controls.help){D.find("a.help").click(function(){E.stop();D.find(".slideshow-help").slideToggle();return false})}if(this.options.playframe){D.find(".slideshow-frame").click(function(){D.find(".slideshow-frame").remove();D.find(".slideshow-shadow").remove();if(E.options.playclick){setTimeout(function(F){E.play()},E.options.time)}return false})}if(this.options.playhover){D.hover(function(){if(!E.playFlag){E.play()}},function(){if(E.playFlag){E.stop()}})}if(this.options.playhoverr){D.hover(function(){if(E.playFlag){E.stop()}},function(){if(!E.playFlag){E.play()}})}};this.label=function(){if(!this.options.title){return false}label="";current=D.find(".slideshow-content > *:eq("+this.options.index+")");if(current.attr("alt")){label=current.attr("alt")}else{if(current.attr("title")){label=current.attr("title")}else{if(current.find("label:first").length>0){current.find("label:first").hide();label=current.find("label:first").html()}}}D.find(".slideshow-label").html(label)};this.prev=function(){if(this.options.index==0){i=(this.length-1)}else{i=this.options.index-1}this.goSlide(i)};this.play=function(){var E=this;this.playFlag=true;this.playId=setTimeout(function(F){E._play()},this.options.time);D.find("a.play").addClass("stop")};this._play=function(){var E=this;this.next();if(this.playFlag){if(this.options.index==(this.length-1)&&!this.options.loop){this.stop();return false}this.playId=setTimeout(function(F){E._play()},this.options.time)}};this.stop=function(){D.find("a.play").removeClass("stop");this.playFlag=false;clearTimeout(this.playId)};this.next=function(){if(this.options.index==(this.length-1)){i=0}else{i=this.options.index+1}this.goSlide(i)};this.init=function(K){for(var I=0,F=this.inited.length;I<F;I++){if(this.inited[I]===K){return true}}this.inited.push(K);slide=D.find(".slideshow-content > *:eq("+K+")");var L=this;if(slide.get(0).tagName=="A"){var E=slide.attr("href");var M=slide.attr("title");M=M.replace(/\"/i,"'");var H=document.domain;H=H.replace(/\./i,".");var G=new RegExp(".(png|gif|jpg|jpeg|svg)$","i");var J=new RegExp("^((https?://"+H+")|(?!http://))","i");if(this.options.imgajax&&G.test(E)){slide.replaceWith('<img src="'+E+'" alt="'+M+'"/>')}else{if(this.options.linkajax&&J.test(E)){A.get(E,function(N){slide.replaceWith("<div><label>"+M+"</label>"+N+"</div>")})}else{}}slide=D.find(".slideshow-content > *:eq("+K+")");this._build(slide)}if(this.options.playclick){A(slide).click(function(){if(L.playFlag){L.stop()}else{L.play()}return false})}};this.goSlide=function(I){this.init(I);var F=D.find(".slideshow-content > *:eq("+I+")");var H=D.find(".slideshow-content > *:eq("+this.options.index+")");H.css({zIndex:0});F.css({zIndex:1,top:0,left:0,opacity:1,width:this.options.width,height:this.options.height});this.options.index=I;if(this.options.effect=="random"){var G=Math.random();G=Math.floor(G*12)}else{G=-1}switch(true){case (this.options.effect=="scrollUp"||G==0):H.css({width:"100%"});F.css({top:0,height:0});prevAni={height:0,top:this.options.height};break;case (this.options.effect=="scrollDown"||G==1):H.css({width:"100%"});F.css({top:this.options.height,height:0});prevAni={height:0,top:0};break;case (this.options.effect=="scrollRight"||G==2):H.css({right:0,left:"",height:"100%"});F.css({right:"",left:0,height:"100%",width:"0%"});prevAni={width:0};break;case (this.options.effect=="scrollLeft"||G==3):H.css({right:"",left:0,height:"100%"});F.css({right:0,left:"",height:"100%",width:"0%"});prevAni={width:0};break;case (this.options.effect=="growX"||G==4):F.css({zIndex:2,opacity:1,left:this.options.width/2,width:"0%",height:"100%"});prevAni={opacity:0.8};break;case (this.options.effect=="growY"||G==5):F.css({opacity:1,top:this.options.height/2,width:"100%",height:"0%"});prevAni={opacity:0.8};break;case (this.options.effect=="zoom"||G==6):F.css({width:0,height:0,top:this.options.height/2,left:this.options.width/2});prevAni={width:0,height:0,top:this.options.height/2,left:this.options.width/2};break;case (this.options.effect=="zoomFade"||G==7):F.css({zIndex:1,opacity:0,width:0,height:0,top:this.options.height/2,left:this.options.width/2});prevAni={opacity:0,width:0,height:0,top:this.options.height/2,left:this.options.width/2};break;case (this.options.effect=="zoomTL"||G==8):F.css({zIndex:1,opacity:0,width:this.options.width/2,height:this.options.height/2,top:0,left:0});prevAni={opacity:0,width:0,height:0,top:this.options.height,left:this.options.width};break;case (this.options.effect=="zoomBR"||G==9):F.css({zIndex:1,opacity:0,width:this.options.width/2,height:this.options.height/2,top:this.options.height/2,left:this.options.width/2});prevAni={opacity:0,width:0,height:0,top:0,left:0};break;case (this.options.effect=="fade"||G==10):default:H.css({zIndex:0,opacity:1});F.css({zIndex:1,opacity:0});prevAni={opacity:0};break}var E=this;H.animate(prevAni,this.options.effecttime);F.show().animate({top:0,left:0,opacity:1,width:this.options.width,height:this.options.height},this.options.effecttime,function(){H.hide();E.label();E.counter()})};this.counter=function(){if(this.options.controls.counter){D.find(".slideshow-panel span.counter").html((this.options.index+1)+" / "+this.length)}};this.options=A.extend({},defaults,C);if(typeof (C)!="undefined"){if(typeof (C.controls)!="undefined"){this.options.controls=A.extend({},defaults.controls,C.controls)}}this.build();D.show();if(this.options.play){this.play()}return D});B.playSlide=function(){B.each(function(){this.play()})};B.stopSlide=function(){B.each(function(){this.stop()})};B.nextSlide=function(){B.each(function(){this.next()})};B.prevSlide=function(){B.each(function(){this.prev()})};return this}})(jQuery);