/* *  Sudo Slider ver 1.0.11 - jQuery plugin *  Written by Erik Kristensen info@webbies.dk. *  Based on Easy Slider 1.7 by Alen Grakalic http://cssglobe.com/post/5780/easy-slider-17-numeric-navigation-jquery-slider * *	Dual licensed under the MIT *	and GPL licenses. * *  Built for jQuery library *	http://jquery.com * */(function(b){b.fn.sudoSlider=function(j){if(typeof(j)!="object"&&j!=""&&j){this.each(function(){b(this).trigger("sudoSliderEvent",[j])})}else{var r={prevNext:true,prevHtml:'<a href="#" class="prevBtn"> previous </a>',nextHtml:'<a href="#" class="nextBtn"> next </a>',controlsShow:true,controlsAttr:'id="controls"',controlsFadeSpeed:"400",controlsFade:true,insertAfter:true,firstShow:false,firstHtml:'<a href="#" class="firstBtn"> first </a>',lastShow:false,lastHtml:'<a href="#" class="lastBtn"> last </a>',numericAttr:'class="controls"',numericText:["1"],vertical:false,speed:"800",ease:"swing",auto:false,pause:"2000",continuous:false,clickableAni:false,numeric:false,updateBefore:false,history:false,speedhistory:"400",autoheight:true,customLink:false,fade:false,crossFade:true,fadespeed:"1000",ajax:false,loadingText:false,preloadAjax:false,startSlide:false,imgAjaxFunction:false,docAjaxFunction:false,beforeAniFunc:false,afterAniFunc:false,uncurrentFunc:false,currentFunc:false};var j=b.extend(r,j);var D=j.controlsFadeSpeed;var G=j.controlsFade;var w=j.firstShow;var s=j.lastShow;var c=j.vertical;var g=j.speed;var m=j.ease;var H=j.auto;var A=j.pause;var d=j.continuous;var u=j.prevNext;var h=j.numeric;var l=j.numericAttr;var f=j.numericText;var q=j.history;var k=j.speedhistory;var e=j.autoheight;var I=j.customLink;var o=j.fade;var t=j.crossFade;var C=j.fadespeed;var E=j.updateBefore;var i=j.ajax;var F=j.startSlide;var x=j.imgAjaxFunction;var v=j.docAjaxFunction;var n=j.beforeAniFunc;var z=j.afterAniFunc;var y=j.uncurrentFunc;var B=j.currentFunc;return this.each(function(){var ax=true;if(H){d=true}var M=b(this);var ai=M.children("ul");var ah=ai.children("li");var ap=ah.length;var an=ah.eq(0).width();var aA=M.height();if(i){if(ai.length==0){M.append("<ul></ul>");ai=M.children("ul")}if(i.length>ap){for(var az=1;az<=i.length-ap;az++){ai.append("<li><p>"+O()+"</p></li>")}ah=ai.children("li");ap=ah.length;an=ah.eq(0).width()}}function O(){var aF=["Spinning up the hamster","Programming the flux capacitor","Testing data on Timmy... ... ... We need another Timmy","Warming up Large Hadron Collider","It looks like you're waiting for something to load"];return j.loadingText?j.loadingText:(aF[Math.round(Math.random()*(aF.length-1))]+"...")}var ao=0;var ad=ao;var aw=ao;var aD=ap-1;var ay=true;var av=false;var J=false;var K=false;var U=0;var P=new Array();var W=false;var aE=false;M.css("overflow","hidden");if(M.css("position")=="static"){M.css("position","relative")}ah.css("float","left");for(var az=0;az<ap;az++){if(f[az]==undefined){f[az]=(az+1)}if(i&&i[az]==undefined){i[az]=false}}if(d){if(c){ai.prepend(ah.filter(":last-child").clone().css("margin-top","-"+aA+"px"));ai.append(ah.filter(":nth-child(2)").clone());ai.height((ap+1)*aA)}else{ai.prepend(ah.filter(":last-child").clone().css("margin-left","-"+an+"px"));ai.append(ah.filter(":nth-child(2)").clone());ai.width((ap+1)*an)}if(i){if(i[0]){aj("last",0,false,0)}if(i[ap-1]){aj("first",(ap-1),false,0);aj(aD,aD,false,0);i[ap-1]=false}}}else{if(c){ai.height(ap*aA)}else{ai.width(ap*an)}}if(j.controlsShow){var ab=b("<span "+j.controlsAttr+"></span>");if(j.insertAfter){b(M).after(ab)}else{b(M).before(ab)}var ac=j.controlsBefore;if(h){W=ab.prepend("<ol "+l+"></ol>").children();for(var az=0;az<ap;az++){P[az]=b(document.createElement("li")).attr({rel:(az+1)}).html('<a href="#"><span>'+f[az]+"</span></a>").appendTo(W).click(function(){aq(b(this).attr("rel")-1,true);return false})}}if(w){var ae=al(j.firstHtml,"first")}if(s){var T=al(j.lastHtml,"last")}if(u){var aC=al(j.nextHtml,"next");var R=al(j.prevHtml,"prev")}}if(j.preloadAjax){for(var az=0;az<=aD;az++){if(i[az]){aj(az,az,false,0);i[az]=false}}}function aq(aG,aF){if(!aE){if(o){V(aG,aF)}else{au(aG,aF,true)}}}function al(aG,aH){var aF=b(aG);ab.prepend(aF);aF.click(function(){aq(aH,true);return false});return aF}D=L(D);g=L(g);A=L(A);k=L(k);C=L(C);function L(aF){if(parseInt(aF)){var aG=parseInt(aF)}else{switch(aF){case"fast":var aG=200;break;case"normal":var aG=400;break;case"medium":var aG=400;break;case"slow":var aG=600;break;default:var aG=400}}return aG}function Z(aG,aF){aG.each(function(){var aI=(this.tagName.toLowerCase()==="img")?b(this):b("img",this),aJ=this,aH=0,aK=function(){if(typeof aF==="function"){aF(aJ)}};if(aI.length){aI.each(function(){var aL=this,aM=function(aN){if((aL.complete)||(aL.readyState=="complete"&&aN.type=="readystatechange")){if(++aH===aI.length){aK()}}else{if(aL.readyState===undefined){b(aL).attr("src",b(aL).attr("src"))}}};b(aL).bind("load readystatechange",function(aN){aM(aN)});aM({type:"readystatechange"})})}else{aK()}})}function X(aG){var aI=false;var aF=aG.length;var aH=aG.substr(aF-4,4);if(aH==".jpg"||aH==".png"||aH==".bmp"||aH==".gif"){aI=true}var aH=aG.substr(aF-5,5);if(aH==".jpeg"){aI=true}return aI}function af(aK,aJ,aF){if(aF){var aI=aC;var aG=T;var aL="next";var aH="last";var aM=s}else{var aI=R;var aG=ae;var aL="prev";var aH="first";var aM=w}if(!d){if(u){aI.fadeTo(aJ,aK,function(){if(aK==0){b(this).hide()}})}if(aM){aG.fadeTo(aJ,aK,function(){if(aK==0){b(this).hide()}})}if(I){b(I).filter(function(aN){return(b(this).attr("rel")==aL||b(this).attr("rel")==aH)}).fadeTo(aJ,aK,function(){if(aK==0){b(this).hide()}})}}}function N(aF,aG){if(aF==0){af(0,aG,false)}else{af(1,aG,false)}if(aF==aD){af(0,aG,true)}else{af(1,aG,true)}}function Q(aG){aG=parseInt((aG>aD)?aG=0:((aG<0)?aG=aD:aG))+1;for(var aF=0;aF<P.length;aF++){ar(P[aF],aG)}if(I){ar(I,aG)}}function ar(aG,aF){b(aG).filter(".current").removeClass("current").each(function(){if(b.isFunction(y)){y.call(this,b(this).attr("rel"))}});b(aG).filter(function(){return b(this).attr("rel")==aF}).addClass("current").each(function(aH){if(b.isFunction(B)){B.call(this,aF)}})}function Y(aG){var aH=0;for(var aF=0;aF<=ap;aF=aF+1){if(f[aF]==aG){aH=aF}}return aH}function S(aG,aH){if(aG==ap){aG=0}var aI=ah.eq(aG);var aF=aI.height();if(aF!=0){ak(aF,aH)}Z(aI,function(aJ){aF=b(aJ).height();if(aF!=0){ak(aF,aH)}})}function ak(aF,aG){M.animate({height:aF},{queue:false,duration:aG,easing:m})}function aB(){if(ao>aD){ao=0}if(ao<0){ao=aD}if(!E){Q(ao)}if(c){ai.css("margin-top",(ao*aA*-1))}else{ai.css("margin-left",(ao*an*-1))}ay=true;if(q&&av){window.location.hash=f[ao]}if(!J){if(b.isFunction(z)){z.call(ah.eq(ao),ao+1)}}}function ag(aF,aH){var aG=ao;switch(aF){case"next":aG=(aH>=aD)?(d?aG+1:aD):aG+1;break;case"prev":aG=(ao<=0)?(d?aG-1:0):aG-1;break;case"first":aG=0;break;case"last":aG=aD;break;default:aG=parseInt(aF);break}return aG}function aj(aI,aF,aL,aK){var aH=false;if(parseInt(aI)||aI==0){aH=ah.eq(aI)}else{if(aI=="last"){aH=b("li:last",M)}else{aH=b("li:first",M)}}var aG=(J)?(!t?parseInt(C*(2/5)):C):aK;var aJ=aF+1;if(X(i[aF])){aH.html(" ").append(b(new Image()).attr("src",i[aF]));Z(aH,function(aN){var aP=b(aN).children();var aO=aP.width();var aM=aP.height();aP.attr({oldheight:aM,oldwidth:aO});if(aO>an){aP.animate({width:an,height:(aM/aO)*an},0)}if(b.isFunction(x)){x.call(b(aN),aJ)}if(e&&aL){S(ao,aG)}})}else{aH.load(i[aF],function(aO,aM,aP){if(aM=="error"||!b(this).html()){b(this).html("Sorry but there was an error: "+(aP.status?aP.status:"no content")+" "+aP.statusText)}if(aM!="error"&&b.isFunction(v)){v.call(b(this),aJ)}var aN=b(this).height();if(e&&aL){S(aF,aG)}})}}function V(aJ,aI){if(aJ!=ao&&!aE){if(ay){K=false;if(aI){clearTimeout(at)}if(E){Q(ag(aJ,ad))}ay=!aI;var aK=(!aI&&!H&&q)?C*(k/g):C;var aM=ag(aJ,ad);if(aM>aD){aM=0}if(aM<0){aM=aD}if(G){N(aM,D)}if(e){if(i){if(!i[aM]){S(aM,C)}}else{S(aM,C)}}var aL=ah.eq(aM);if(b.isFunction(n)){n.call(aL,aM+1)}if(t){var aH=aL.clone().prependTo(M).css({"z-index":"100000",position:"absolute","list-style":"none",top:"0",left:"0"});if(i[aM]){aj(0,aM,false,aK);if(X(i[aM])){aj(aM+1,aM,false,aK);Z(ah.eq(aM+1),function(){if(e){S(aM,C)}})}else{aj(aM+1,aM,true,aK)}i[aM]=false}aH.hide().fadeIn(C,function(){ay=true;J=true;au(aJ,false,false);b(this).remove();if(q&&aI){window.location.hash=f[ao]}J=false;if(b.isFunction(z)){z.call(aL,aM+1)}})}else{var aG=parseInt((aK)*(3/5));var aF=aK-aG;M.children().fadeTo(aF,0.00001,function(){ay=true;J=true;au(aJ,false,false);ay=!aI;M.children().fadeTo(aG,1,function(){if(q&&aI){window.location.hash=f[ao]}ay=true;J=false;if(b.isFunction(z)){z.call(aL,aM+1)}})})}}}}function au(aG,aJ,aM){if(ay&&!aE){K=false;ay=(!aJ&&!H)?true:j.clickableAni;av=aJ;ad=ao;ao=ag(aG,ad);if(E){Q(ao)}var aL=Math.sqrt(Math.abs(ad-ao));var aK=parseInt(aL*g);if(!aJ&&!H){aK=parseInt(aL*k)}if(!aM){aK=0}var aI=ao;if(ao>aD){aI=0}if(ao<0){aI=aD}if(i){if(i[aI]){aj(aI,aI,true,aK);i[aI]=false;K=true}if(!J){var aF=0;if(ad>ao){for(a=ao;a<=ad;a++){if(a<=aD&&a>=0){if(i[a]){aj(a,a,false,aK);i[a]=false;aF++}}if(aF==10){a=ad}}}else{for(a=ad;a<=ao;a++){if(a<=aD&&a>=0){if(i[a]){aj(a,a,false,aK);i[a]=false;aF++}}if(aF==10){a=ao}}}}if((aI+1<=aD)&&!ax){if(i[aI+1]){aj(aI+1,aI+1,false,0);i[aI+1]=false}}if(aI-1>=0&&!ax){if(i[aI-1]){aj(aI-1,aI-1,false,0);i[aI-1]=false}}}if(!J){if(b.isFunction(n)){n.call(ah.eq(aI),aI+1);if(ao==-1||ao==ap){n.call(ai.children("li").eq((ao==-1)?0:-1),aI+1)}}}if(!c){if(e&&!J&&!K){S(ao,aK)}p=(ao*an*-1);ai.animate({marginLeft:p},{queue:false,duration:aK,easing:m,complete:aB})}else{p=(ao*aA*-1);ai.animate({marginTop:p},{queue:false,duration:aK,easing:m,complete:aB})}if(G){var aH=D;if(!aJ&&!H){aH=(k/g)*D}if(!aM){aH=0}if(J){aH=parseInt((C)*(3/5))}N(ao,aH)}if(aJ){clearTimeout(at)}if(H&&aG=="next"&&!aJ){at=aa(A+g)}}}var at;if(H){at=aa(A)}function aa(aF){return setTimeout(function(){aq("next",false)},aF)}if(I){b(I).live("click",function(){var aF=b(this).attr("rel");if(aF){am(aF)}return false})}M.bind("sudoSliderEvent",function(aG,aF){am(aF)});function am(aF){if(aF=="stop"){clearTimeout(at)}else{if(aF=="start"){at=aa(A);H=true}else{if(aF=="block"){ay=false}else{if(aF=="unblock"){ay=true}else{if(aF=="action"){alert("The slider just performed an action")}else{if(aF=="destroy"){ab.remove();aE=true;b(I).die("click");if(d){ai.children("li").eq(0).remove();ai.children("li").eq(-1).remove()}}else{if(ay){aq((aF==parseInt(aF))?aF-1:aF,true)}}}}}}}}ax=false;if(q){b.address.init(function(aG){var aF=Y(aG.value);au(aF,false,false)}).change(function(aG){var aF=Y(aG.value);if(aF!=ao){aq(aF,false)}})}else{if(F){au(F-1,false,false)}else{au(0,false,false)}}})}}})(jQuery);
