(function(a){defaults={width:320,height:240,index:0,time:3000,history:false,title:true,titleshow:false,callback:null,panel:true,play:false,loop:true,effect:"fade",effecttime:1000,filter:true,nextclick:false,playclick:false,playhover:false,playhoverr:false,playframe:true,loadframe:true,fullscreen:false,imgresize:false,imgzoom:true,imgcenter:true,imgajax:true,imglink: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.playId=null;this.playFlag=false;this.playFrame=false;this.goToFlag=false;this.length=0;this.inited=new Array();this.titles=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()}if(this.options.fullscreen){a("body").css({overflow:"hidden",padding:0});this.options.width=a(window).width();this.options.height=(a(window).height()>a(document).height())?a(window).height():a(document).height();d.addClass("slideshow-fullscreen")}this.length=d.find(".slideshow-content > *").length;if(this.options.title){d.prepend('<div class="slideshow-label-place"><div class="slideshow-label slideshow-opacity"></div></div>');if(!this.options.titleshow){d.find(".slideshow-label-place").hover(function(){a(this).find(".slideshow-label").fadeIn()},function(){a(this).find(".slideshow-label").fadeOut()});d.find(".slideshow-label").hide()}d.find(".slideshow-label-place").css("width",this.options.width);d.prepend('<div class="slideshow-title"></div>');d.find(".slideshow-title").hide()}if(this.options.panel){d.append('<div class="slideshow-panel-place"><div class="slideshow-panel slideshow-opacity"></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>")}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,height:this.options.height});var f=d.find(".slideshow-content");f.css({width:this.options.width,height:this.options.height});if(this.options.playframe){this.playFrame=true;d.append('<div class="slideshow-shadow slideshow-opacity slideshow-frame"><div></div></div>')}if(this.options.loadframe){d.append('<div class="slideshow-shadow slideshow-opacity slideshow-load"><div></div></div>')}d.find(".slideshow-shadow").css({width:this.options.width,height:this.options.height});this.events();d.find(".slideshow-content > *").each(function(){a(this).wrap('<div class="slideshow-slide"></div>')});if(this.options.play){this.play()}this.init(this.options.index);d.find(".slideshow-slide:eq("+this.options.index+")").show();this._label();if(this.options.history){setInterval(function(){e._check()},300)}return true};this.init=function(o){for(var m=0,h=this.inited.length;m<h;m++){if(this.inited[m]===o){return true}}this.inited.push(o);slide=d.find(".slideshow-slide:eq("+o+")");var p=this;var r="";var q=false;var f=slide.contents().attr("name");if(f!=""){var j=new RegExp("^((https?|ftp)://)","i");if(j.test(f)){q=f}}if(slide.contents().is("a")){var e=slide.contents().attr("href");var k=document.domain;k=k.replace(/\./i,".");var g=new RegExp(".(png|gif|jpg|jpeg|svg)$","i");var n=new RegExp("^((https?://"+k+")|(?!http://))","i");r=slide.contents().attr("title");if(r.length==0){r=slide.contents().html()}r=r.replace(/\"/i,"'");if(this.options.imgajax&&g.test(e)){var l=new Image();l.alt=r;this._load(a(l),e,o);slide.contents().replaceWith(l)}else{if(this.options.linkajax&&n.test(e)){a.get(e,function(s){p.goToSlide(o);slide.contents().replaceWith("<div>"+s+"</div>")})}else{this.goToSlide(o)}}}else{if(slide.contents().is("img")){if(a.browser.msie){var l=new Image();l.alt=slide.contents().attr("alt");this._load(a(l),slide.contents().attr("src"),o);slide.contents().replaceWith(l)}else{this._load(slide.contents(),slide.contents().attr("src"),o)}}else{this.goToSlide(o)}if(slide.contents().attr("alt")){r=slide.contents().attr("alt")}else{if(slide.contents().attr("title")){r=slide.contents().attr("title")}else{if(slide.find("label:first").length>0){slide.find("label:first").hide();r=slide.find("label:first").html()}}}}if(q){r='<a href="'+q+'" title="'+r+'">View</a>'}this.titles[o]=r;if(this.options.imglink&&q){a(slide).css({cursor:"pointer"}).click(function(){document.location=q;return false})}if(this.options.playclick){a(slide).css({cursor:"pointer"}).click(function(){if(p.playId){p.stop()}else{p.play()}return false})}return false};this._load=function(f,j,g){var h=d.find(".slideshow-load").show();var e=this;f.load(function(){e._zoom(f);e._resize(f);e._center(f);e.goToSlide(g);h.hide()}).error(function(){h.hide()}).attr("src",j);if(f.get(0).complete){e._zoom(f);e._resize(f);e._center(f);e.goToSlide(g);h.hide()}return f};this._resize=function(e){if(!this.options.imgresize&&!this.options.fullscreen){return false}e.get(0).width=this.options.width;e.get(0).height=this.options.height;e.css({width:this.options.width,height:this.options.height});return e};this._zoom=function(j){if(!this.options.imgzoom){return false}var h=j.get(0).width;var g=j.get(0).height;var k=this.options.width/h;var f=this.options.height/g;var e=(f>k)?f:k;h=h*e;g=g*e;j.css({width:h,height:g});j.get(0).width=h;j.get(0).height=g;return j};this._center=function(j){if(!this.options.imgcenter){return false}var f=j.get(0).width?j.get(0).width:j.get(0).offsetWidth;var e=j.get(0).height?j.get(0).height:j.get(0).offsetHeight;var h=0;var g=0;if(f!=this.options.width){h=(Math.ceil((this.options.width-f)/2))+"px"}if(e!=this.options.height){g=(Math.ceil((this.options.height-e)/2))+"px"}j.css({left:h,top:g,position:"relative"});return j};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.goToSlide(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.playId){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.goToSlide(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();if(e.options.playclick){setTimeout(function(){e.play()},e.options.time)}return false})}if(this.options.playhover){d.hover(function(){if(!e.playId){e.play()}},function(){if(e.playId){e.stop()}})}if(this.options.playhoverr){d.hover(function(){if(e.playId){e.stop()}},function(){if(!e.playId){e.play()}})}};this._label=function(){var e=this.getTitle();if(this.options.callback){this.options.callback(this.options.index,e)}if(!this.options.title){return false}d.find(".slideshow-label").html(e);e=d.find(".slideshow-label").contents().attr("title");link=d.find(".slideshow-label").contents().attr("href");if(link){e='<a href="'+link+'" title="'+e+'">'+e+"</a>"}d.find(".slideshow-title").html(e)};this._hash=function(){if(this.options.history){document.location.hash="slide-"+(this.options.index+1)}};this._check=function(){if(this.goToFlag){return false}var g=document.location.hash;g=g.length?g.substr(1):"";if(g.length==0){this.goToSlide(0)}else{var e=new RegExp("slide-([0-9]+)","i");if(!e.test(g)){return false}var f=e.exec(g);if(f){f=parseInt(f[1])-1;if(f>=0&&f<this.length&&f!=this.options.index){if(this.playFrame){a(this).find(".slideshow-frame").remove()}this.stop();this.goToSlide(f)}}}};this.getTitle=function(){return this.titles[this.options.index]};this.prev=function(){if(this.options.index==0){i=(this.length-1)}else{i=this.options.index-1}this.goToSlide(i)};this.play=function(){var e=this;this.playFlag=true;this.playId=setTimeout(function(){e.next()},this.options.time);d.find("a.play").addClass("stop")};this._play=function(){var e=this;if(this.options.index==(this.length-1)){this.stop();if(this.options.loop){this.play()}return false}this.playId=setTimeout(function(){e.next()},this.options.time);return true};this.stop=function(){this.playFlag=false;d.find("a.play").removeClass("stop");clearTimeout(this.playId);this.playId=null};this.next=function(){if(this.options.index==(this.length-1)){i=0}else{i=this.options.index+1}this.goToSlide(i)};this.goToSlide=function(e){switch(true){case (this.options.index==e):case (!this.init(e,true)):return false;default:this.goToFlag=true;this._goToSlide(e);return true}};this._goToSlide=function(j){var f=d.find(".slideshow-content > *:eq("+j+")");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=j;if(this.options.effect=="random"){var g=Math.random();g=Math.floor(g*12)}else{g=-1}switch(true){case (g==0||this.options.effect=="scrollUp"):h.css({width:"100%"});f.css({top:0,height:0});prevAni={height:0,top:this.options.height};break;case (g==1||this.options.effect=="scrollDown"):h.css({width:"100%"});f.css({top:this.options.height,height:0});prevAni={height:0,top:0};break;case (g==2||this.options.effect=="scrollRight"):h.css({right:0,left:"",height:"100%"});f.css({right:"",left:0,height:"100%",width:"0%"});prevAni={width:0};break;case (g==3||this.options.effect=="scrollLeft"):h.css({right:"",left:0,height:"100%"});f.css({right:0,left:"",height:"100%",width:"0%"});prevAni={width:0};break;case (g==4||this.options.effect=="growX"):f.css({zIndex:2,opacity:1,left:this.options.width/2,width:"0%",height:"100%"});prevAni={opacity:0.8};break;case (g==5||this.options.effect=="growY"):f.css({opacity:1,top:this.options.height/2,width:"100%",height:"0%"});prevAni={opacity:0.8};break;case (g==6||this.options.effect=="zoom"):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 (g==7||this.options.effect=="zoomFade"):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 (g==8||this.options.effect=="zoomTL"):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 (g==9||this.options.effect=="zoomBR"):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 (g==10||this.options.effect=="fade"):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();if(e.playFlag){e._play()}e._label();e._counter();e._hash();e.goToFlag=false})};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();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()})};b.getTitle=function(){b.each(function(){this.getTitle()})};b.goToSlide=function(d){b.each(function(){this.goToSlide(d)})};return this}})(jQuery);

