(function(b){b.slideFade={defaults:{plan:[],base:"",ext:"",hideDelay:0,hideSpeed:3000,firstDelay:0,showDelay:3000,showSpeed:4000,moveSpeed:4000,sleep:2000,autoStart:true,loop:true,random:false,maskColor:null,indicator:null,onBeforePreload:null,onAfterPreload:null,onStageReady:null,onBeginProcess:null,onBeforeHidingCue:null,onAfterHidingCue:null,onCompleteHidingCue:null,onBeforeShowingCue:null,onAfterShowingCue:null,onStartShowing:null,onCompleteProcess:null},fallbacks:{stageWidth:640,stageHeight:480,dir:"up",maskColor:"#FFFFFF",indicatorBgColor:"transparent",indicatorEffect:"fadeIn",indicatorDuration:300},namespace:"slideFade",cueWait:100};function a(i,f,h){var e=i.attr("id")||(new Date()).getTime(),g=b("#log"),d=[];f="["+e+"] ----- "+String(f);if(!console&&jQuery.isPlainObject(h)){b.each(h,function(j,k){d.push(j+":"+k)});d=d.join("<br />")}switch(true){case (typeof console.log==="function"):console.log(f);console.log(h);break;case (g.length>0):g.append("<div>"+f+"</div><div>"+d+"</div>");break;default:alert(f+"\n"+d)}}function c(J,k){var o={},p=J,z=false,f={},x=0,A=null,C=null,t=[],v=1,h=null;var n=function(L,K){var N=k[L],M=null;if(!b.isFunction(N)){return}M={stage:p,datas:f,last:C,current:A,order:t,loop:v};if(typeof K==="number"){setTimeout(function(){N(M)},K)}else{N(M)}},H=function(){var L=k,K=b.map(L.plan,function(N,M){return N.name});n("onBeforePreload");b.preload(K,{base:L.base,ext:L.ext,onComplete:function(M){var N=new Image();N.src=M.image;f[M.original]=N},onFinish:function(M){n("onAfterPreload");m();j();n("onStageReady");i()}})},q=function(){var P=p,M=P.width()||b.slideFade.fallbacks.width,L=P.height()||b.slideFade.fallbacks.height,K=P.css("position"),N=P.css("background-color"),O=k;P.empty().css({padding:0,position:/^(absolute|relative|fixed)$/.test(K)?K:"relative",width:M,height:L,overflow:"hidden"});if(O.indicator!==null){s()}P.prepend('<div id="slideFade_mask"></div>').find("#slideFade_mask").css({position:"absolute",top:0,left:0,zIndex:9999,width:M,height:L,overflow:"hidden",backgroundColor:(N.toLowerCase()==="transparent"?O.maskColor:N)})},s=function(){var P=p,O=P.width(),K=P.height(),L=k.indicator,Q=null,N=0,M=0;Q=b(L.selector);if(L.pos){N=L.pos.split(",");M=parseInt(N[1],10);N=parseInt(N[0],10)}else{N=(K-Q.height())/2;M=(O-Q.width())/2}P.append('<div id="slideFade_indicator"></div>').find("#slideFade_indicator").css({position:"absolute",top:0,left:0,zIndex:99999,width:O,height:K,overflow:"hidden",backgroundColor:(L.bgcolor?L.bgColor:b.slideFade.fallbacks.indicatorBgColor)}).append(Q).find(L.selector).css({position:"relative",top:N,left:M})[/^(?:fadeIn|slideDown|show)$/.test(L.effect)?L.effect:b.slideFade.fallbacks.indicatorEffect](typeof L.duration==="number"?L.duration:b.slideFade.fallbacks.indicatorDuration)},w=function(M){var N=p,K=N.width(),L=N.height(),O=[];M.top=M.left=M.deltaTop=M.deltaLeft=0;switch(true){case (M.dir==="up"):M.deltaTop=L-M.height;break;case (M.dir==="down"):M.top=L-M.height;break;case (M.dir==="left"):M.deltaLeft=K-M.width;break;case (M.dir==="right"):M.left=K-M.width;break;case (M.pos!==undefined):O=M.pos.split(",");M.top=M.deltaTop=parseInt(O[0],10);M.left=M.deltaLeft=parseInt(O[1],10);break;default:}return M},y=function(){var S=k.plan,R=f,M=[],O=0,Q=S.length;for(;O<Q;O+=1){var L=S[O],K=R[L.name],P={width:K.width,height:K.height,alt:L.alt!==undefined?L.alt:""},N={object:null,element:K,width:K.width,height:K.height};if(L.id_!==undefined){P.id=L.id_}if(L.class_!==undefined){P.className=L.class_}K=b(K).attr(P).get(0);switch(true){case (L.pos!==undefined&&/^\d{1,},\d{1,}$/.test(L.pos)):N.pos=L.pos;break;case (L.dir!==undefined):N.dir=L.dir.toLowerCase();break;default:N.dir=b.slideFade.fallbacks.dir}M.push(w(N))}f=M;return f},m=function(){var K=p,L=y();b.each(L,function(M,N){K.append(N.element)});x=K.children("img").each(function(M){var N=b(this),O=L[M];N.css({border:0,display:"none",position:"absolute",top:O.top,left:O.left});O.object=N}).length},j=function(){b("div",p).remove();z=true},E=function(){return C===null},I=function(){if(t.length<=0){t=G()}return t.shift()},G=function(){var M=0,O=x,P=O-1,L=[],K,N,Q=null;for(;M<=P;M+=1){L.push(M)}if(k.random){while(O){K=Math.floor(Math.random()*O);N=L[--O];L[O]=L[K];L[K]=N}if(C!==null&&C===L[0]){Q=L[0];L[0]=L[P];L[P]=Q}}return L},i=function(){var K=k;switch(true){case (K.autoStart===false):break;case (K.loop===false):break;case (E()):e();break;default:if(K.loop===true||v<=K.loop){setTimeout(e,K.sleep)}}},r=function(){C=A;A=null;if(t.length<=0){v++}},g=function(){var M=C===null?null:f[C],L=null,K=k;if(M===null){return null}n("onBeforeHidingCue");L=M.object;L.delay(K.hideDelay).animate({opacity:"toggle"},{duration:K.hideSpeed,complete:function(){n("onCompleteHidingCue");if(M.top!==M.deltaTop||M.left!==M.deltaLeft){L.css({top:M.top,left:M.left})}}});n("onAfterHidingCue")},u=function(){var L=I(),N=f[L],M=D(N),K=E()?k.firstDelay:k.showDelay;n("onBeforeShowingCue");A=L;n("onStartShowing",K);if(M.moveParam){N.object.delay(K).animate(M.showParam,M.showOption).animate(M.moveParam,M.moveOption)}else{N.object.delay(K).animate(M.showParam,M.showOption)}n("onAfterShowingCue")},D=function(O){var N=k,M=O.showParams,K=h,L="";if(!M){M={showParam:{opacity:"toggle"},moveParam:{}};if((O.top!==O.deltaTop)&&(O.top!==0||O.deltaTop!==0)){M.moveParam.top=O.deltaTop}if((O.left!==O.deltaLeft)&&(O.left!==0||O.deltaLeft!==0)){M.moveParam.left=O.deltaLeft}if(b.isEmptyObject(M.moveParam)){delete M.moveParam}O.showParams=M}if(!K){K={showOption:{duration:N.showSpeed,queue:true}};if(M.moveParam){K.moveOption={duration:N.moveSpeed,queue:false};L=N.showSpeed>=N.moveSpeed?"showOption":"moveOption"}else{L="showOption"}K[L].complete=function(){n("onCompleteProcess");r();i()};h=K}return b.extend(true,{},K,M)},e=function(){n("onBeginProcess");g();u()},d=function(K){if(z){K()}else{setTimeout(function(){d(K)},b.slideFade.cueWait)}},F=function(){var K=k;if(b.preload&&b.isArray(K.plan)&&K.plan.length>0){if(typeof K.loop!=="boolean"){K.loop=parseInt(K.loop,10)}K.maskColor=K.maskColor!==null?String(K.maskColor):b.slideFade.fallbacks.maskColor;q();H()}},B=function(){k.autoStart=true;i()},l=function(){k.autoStart=false};o.boot=function(){F()};o.start=function(){d(B)};o.stop=function(){d(l)};o.show=function(){d(u)};o.hide=function(){d(g)};return o}b.fn.slideFade=function(d){d=b.extend(true,{},b.slideFade.defaults,d);return this.each(function(){var e=b(this),f=null;if(e.data("slideFade")){return true}f=c(e,d);f.boot();e.data("slideFade",f)})}})(jQuery);
