/**
 * jQuery (a)Slideshow plugin
 *
 * @author 	Anton Shevchuk AntonShevchuk@gmail.com
 * @version 0.5.5
 */
(function(a){defaults={width:320,height:240,index:0,time:5000,title:false,titleshow:false,panel:false,play:true,loop:true,effect:"fade",effecttime:1000,filter:true,nextclick:false,playclick:false,playhover:false,playhoverr:false,playframe:false,fullscreen:false,imgresize:false,imgcenter:true,imgajax:true,imglink:false,preloadImg:true,help:"",controls:{hide:false,first:false,prev:true,play:false,next:true,last:false,help:false,counter:false}};a.fn.slideshow=function(c){var b=this;this.each(function(){var e=a(this);var d;this.playFlag=false;this.playId=null;this.length=0;this.inited=new Array();this.build=function(){var f=this;e.wrapInner('<div class="slideshow"><div class="slideshow-content"></div></div><div class="no" id="no-img"></div>');d=e.find("#no-img");d.empty();e=e.find(".slideshow");if(this.options.filter){e.find(".slideshow-content > br").remove();e.find(".slideshow-content > p:empty").remove();e.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();e.addClass("slideshow-fullscreen")}this.length=e.find(".slideshow-content > *").length;if(this.options.preloadImg){this.preloadImages()}if(this.options.title){e.prepend('<div class="slideshow-label-place"><div class="slideshow-label slideshow-opacity"></div></div>');if(!this.options.titleshow){e.find(".slideshow-label-place").hover(function(){a(this).find(".slideshow-label").fadeIn()},function(){a(this).find(".slideshow-label").fadeOut()});e.find(".slideshow-label").hide()}e.find(".slideshow-label-place").css("width",this.options.width)}if(this.options.panel){e.append('<div class="slideshow-panel-place"><div class="slideshow-panel slideshow-opacity"></div></div>');panel=e.find(".slideshow-panel");if(this.options.controls.first){panel.append('<a class="first button" href="#first">&raquo; первый</a>')}if(this.options.controls.prev){panel.append('<a class="prev button"  href="#prev">&lt; предыдущий</a>')}if(this.options.controls.play){panel.append('<a class="play button"  href="#play">запустить</a>')}if(this.options.controls.next){panel.append('<a class="next button"  href="#next">следующий &gt;</a>')}if(this.options.controls.last){panel.append('<a class="last button"  href="#last">последний &raquo;</a>')}if(this.options.controls.help){panel.append('<a class="help button"  href="#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){e.find(".slideshow-panel-place").hover(function(){a(this).find(".slideshow-panel").fadeIn()},function(){a(this).find(".slideshow-panel").fadeOut()});panel.hide()}e.find(".slideshow-panel-place").css("width",this.options.width)}e.css("width",this.options.width+"px");e.find(".slideshow-content").css("width",this.options.width);e.find(".slideshow-content").css("height",this.options.height);e.find(".slideshow-content > *").each(function(){f._build(a(this))});this.init(this.options.index);e.find(".slideshow-content > *:not(:eq("+this.options.index+"))").hide();this.label();if(this.options.playframe){e.find(".slideshow-content").append('<div class="slideshow-shadow slideshow-opacity"><div class="slideshow-frame"></div></div>')}this.events();return true};this._build=function(f){f.css({margin:0,position:"absolute",display:"block",overflow:"hidden"});if(f.is("img")&&this.options.imgresize||f.is(":not(img)")){f.css({width:"100%",height:"100%"})}};this.events=function(){var f=this;if(f.options.nextclick){e.find(".slideshow-content").click(function(){f.stop();f.next();return false})}if(this.options.controls.first){e.find("a.first").click(function(){f.stop();f.goSlide(0);return false})}if(this.options.controls.prev){e.find("a.prev").click(function(){f.stop();f.prev();return false})}if(this.options.controls.play){e.find("a.play").click(function(){if(f.playFlag){f.stop()}else{f.play()}return false})}if(this.options.controls.next){e.find("a.next").click(function(){f.stop();f.next();return false})}if(this.options.controls.last){e.find("a.last").click(function(){f.stop();f.goSlide(f.length-1);return false})}if(this.options.controls.help){e.find("a.help").click(function(){f.stop();e.find(".slideshow-help").slideToggle();return false})}if(this.options.playframe){e.find(".slideshow-frame").click(function(){e.find(".slideshow-frame").remove();e.find(".slideshow-shadow").remove();if(f.options.playclick){setTimeout(function(g){f.play()},f.options.time)}return false})}if(this.options.playhover){e.hover(function(){if(!f.playFlag){f.play()}},function(){if(f.playFlag){f.stop()}})}if(this.options.playhoverr){e.hover(function(){if(f.playFlag){f.stop()}},function(){if(!f.playFlag){f.play()}})}};this.label=function(){if(!this.options.title){return false}label="";current=e.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()}}}e.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 f=this;this.playFlag=true;this.playId=setTimeout(function(g){f._play()},this.options.time);e.find("a.play").addClass("stop")};this._play=function(){var f=this;this.next();if(this.playFlag){if(this.options.index==(this.length-1)&&!this.options.loop){this.stop();return false}this.playId=setTimeout(function(g){f._play()},this.options.time)}};this.stop=function(){e.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.preloadImages=function(){var f=e.find(".slideshow-content > *");for(var g=0;g<f.size();g++){d.append('<img src="'+f.eq(g).attr("href")+'" width="'+this.options.width+'" height="'+this.options.height+'" />')}};this.init=function(m){for(var k=0,h=this.inited.length;k<h;k++){if(this.inited[k]===m){return true}}this.inited.push(m);slide=e.find(".slideshow-content > *:eq("+m+")");var n=this;if(slide.get(0).tagName=="A"){var o=slide.attr("title");var f=slide.attr("name");var g=slide.attr("href");var j=document.domain;j=j.replace(/\./i,".");var l=new RegExp("^((https?://"+j+")|(?!http://))","i");if(this.options.imgajax){if(this.options.imglink){slide.replaceWith('<a href="/clients?category='+f+'"><img src="'+g+'" alt="'+o+'" width="'+this.options.width+'" height="'+this.options.height+'" /></a>')}else{slide.replaceWith('<img src="'+g+'" alt="'+o+'" width="'+this.options.width+'" height="'+this.options.height+'" />')}}else{}slide=e.find(".slideshow-content > *:eq("+m+")");this._build(slide)}if(this.options.playclick){a(slide).click(function(){if(n.playFlag){n.stop()}else{n.play()}return false})}};this.goSlide=function(k){if(this.options.index==k){return}this.init(k);var g=e.find(".slideshow-content > *:eq("+k+")");var j=e.find(".slideshow-content > *:eq("+this.options.index+")");j.css({zIndex:0});g.css({zIndex:1,top:0,left:0,opacity:1,width:this.options.width,height:this.options.height});this.options.index=k;if(this.options.effect=="random"){var h=Math.random();h=Math.floor(h*12)}else{h=-1}switch(true){case (this.options.effect=="scrollUp"||h==0):j.css({width:"100%"});g.css({top:0,height:0});prevAni={height:0,top:this.options.height};break;case (this.options.effect=="scrollDown"||h==1):j.css({width:"100%"});g.css({top:this.options.height,height:0});prevAni={height:0,top:0};break;case (this.options.effect=="scrollRight"||h==2):j.css({right:0,left:"",height:"100%"});g.css({right:"",left:0,height:"100%",width:"0%"});prevAni={width:0};break;case (this.options.effect=="scrollLeft"||h==3):j.css({right:"",left:0,height:"100%"});g.css({right:0,left:"",height:"100%",width:"0%"});prevAni={width:0};break;case (this.options.effect=="growX"||h==4):g.css({zIndex:2,opacity:1,left:this.options.width/2,width:"0%",height:"100%"});prevAni={opacity:0.8};break;case (this.options.effect=="growY"||h==5):g.css({opacity:1,top:this.options.height/2,width:"100%",height:"0%"});prevAni={opacity:0.8};break;case (this.options.effect=="zoom"||h==6):g.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"||h==7):g.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"||h==8):g.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"||h==9):g.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"||h==10):default:j.css({zIndex:0,opacity:1});g.css({zIndex:1,opacity:0});prevAni={opacity:0};break}var f=this;j.animate(prevAni,this.options.effecttime);g.show().animate({top:0,left:0,opacity:1,width:this.options.width,height:this.options.height},this.options.effecttime,function(){j.hide();f.label();f.counter()})};this.counter=function(){if(this.options.controls.counter){e.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();e.show();if(this.options.play){this.play()}return e});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);
