(function(){var E=YAHOO.util;var A=E.Dom;var B=E.CustomEvent;var D=YAHOO.namespace("Media.Dtk");YAHOO.namespace("Media.Dtk.util");var C=function(F,G){if(!G){G=[]}else{if(!G instanceof Array){G=[G]}}var H=function(){};H.prototype=F.prototype;H.prototype.constructor=F;var I=new H();F.apply(I,G);return I};D.util.Manager=function(H){this.daemons={};this.stack=[];var F=[0];var I=H.prototype;if(typeof I.getId!=="function"){I.getId=function(){if(this.id){return this.id}return(this.id="daemon_"+(F[0]++))}}if(typeof I.toString!=="function"){I.toString=function(){return"Daemon "+this.getId()}}this.onCreate=new B("create",this);this.onDaemonEvent=new B("daemonEvent");this.daemonClass=H;var G=function(L){var K=this.stack;for(var J=K.length-1;J>-1;J--){if(K[J]){K[J].manager=null;if(typeof (K[J].unload)=="function"){K[J].unload()}this.daemons[K[J].getId()]=null;K[J]=null}}};E.Event.addListener(window,"unload",G,this,true)};D.util.Manager.prototype={daemonEvents:{},spawnDaemon:function(){var F=C(this.daemonClass,arguments);this.onCreate.fire(F);return F},idString:"Generic Daemon Manager",toString:function(){var F=[this.idString,"{\n"];for(var G in this.daemons){if(this.daemons[G] instanceof this.daemonClass){F.push("\t",G," : (",this.daemons[G].toString(),")\n")}}F.push("}");return F.join("")},init:function(){var J=this.spawnDaemon.apply(this,arguments);if(J&&J.manager!=this){var H=this.onDaemonEvent;J.manager=this;this.daemons[J.getId()]=J;this.stack.push(J);for(var I in J){if(J[I] instanceof B){if(!this.daemonEvents[I]){this.daemonEvents[I]=new B(J[I].type)}var F=this.daemonEvents[I];var G=function(K,L){F.scope=this;F.fire.apply(F,L);H.scope=this;H.type=K;H.fire.apply(H,L)};J[I].subscribe(G)}}}return J},initAll:function(K){if(typeof (K)!="function"){return[]}var M=K();var H=[];var F=M.length;var G=[null];var J=arguments.length;for(var I=1;I<J;I++){G.push(arguments[I])}for(var I=0;I<F;I++){G[0]=M[I];var L=this.init.apply(this,G);if(L){H.push(L)}}return H},getDaemonById:function(F){if(F.id){return this.getDaemonById(F.id)}return this.daemons[F]||null}}})();(function(){var $U=YAHOO.util;var $D=$U.Dom;var $E=$U.Event;var $S=$U.Scroll;var DTK=YAHOO.namespace("Media.Dtk");var Carousel;(function(){var addPageIndicators=function(){var n=$D.getElementsByClassName("scrollnav","div",this.getElement());n=n[0]||document.createElement("div");n.className="scrollnav";removeNavLinks.call(this);var p=this.pages.length;for(var x=0;x<p;x++){var a=this.navLinks[x]||document.createElement("a");a.href="#pg:"+(x+1);a.index=x;a.carousel=this;a.onmousedown=a.onclick=this.scrollTo_click;if(x==this.current){a.className="current"}n.appendChild(a);this.navLinks[x]=a}var s=this.scrollBody;s.parentNode.insertBefore(n,s);return };var removeNavLinks=function(){if(this.navLinks){for(var j=this.navLinks.length-1;j>-1;j--){var a=this.navLinks[j];if(a){a.onclick=null;a.onmousedown=null;a.onmouseup=null;a.carousel=null}a=null;this.navLinks[j]=null}}this.navLinks=[]};var addNavButtons=function(){if(this.prev||this.next){return }var p=document.createElement("a"),n=p.cloneNode(true);var i=this.getElement().id;n.href=p.href="#"+i;p.className="prev";n.className="next";var s=this.scrollBody;s.parentNode.insertBefore(p,s);s.parentNode.insertBefore(n,s);p.onmousedown=p.onclick=this.scrollPrev_click;n.onmousedown=n.onclick=this.scrollNext_click;this.prev=p;this.next=n;n.carousel=p.carousel=this;s=null};var updateNavState=function(){var l=this.navLinks.length;var current=this.current;if(current>=l){current=0}for(var x=0;x<l;x++){if(x==current){this.navLinks[x].className="current"}else{this.navLinks[x].className=""}}if(this.current==0&&!this.roundRobin){$D.addClass(this.prev,"off");$D.removeClass(this.next,"off");$D.setStyle(this.next,"cursor","");$D.setStyle(this.prev,"cursor","default")}else{if(this.current==(l-1)&&!this.roundRobin){$D.removeClass(this.prev,"off");$D.addClass(this.next,"off");$D.setStyle(this.prev,"cursor","");$D.setStyle(this.next,"cursor","default")}else{$D.removeClass(this.prev,"off");$D.removeClass(this.next,"off");$D.setStyle(this.next,"cursor","");$D.setStyle(this.prev,"cursor","")}}};var clickHandler=function(whichFn,fnFailure,fnArgs){return function(e){e=e||window.event;fnFailure=fnFailure||function(){return false};fnArgs=fnArgs||function(){};var a=$E.getTarget(e);if(!a||!a.carousel||fnFailure(a)){return true}if(!a.didMouseDown){a.carousel.autoPlay=false;a.carousel[whichFn](fnArgs(a))}else{a.blur()}a.didMouseDown=(e.type=="mousedown");a=null;$E.stopEvent(e);return false}};Carousel=function(el,args){var me=this;var currentScroll=0;this.getCurrentScroll=function(){return currentScroll};var ontween=function(e,data){currentScroll=this.anim.doMethod("scroll",this.animAttrs.scroll.from,this.animAttrs.scroll.to)[0]};var oncomplete=function(e,data){if(data[0].duration>=this.animDur){data=data[0];data.carousel=this;var _toString=data.toString;data.toString=function(){return _toString()+", current page:"+this.carousel.current};this.onPageChange.fire(data)}};var onclick=function(e){this.onClick.fire(e)};var _element=null;this.getElement=function(){return _element};this.init=function(el,args){el=$D.get(el);if(el){_element=el}$D.generateId(el,"carousel_");s=$D.getElementsByClassName("scrollbody","div",el)[0];if(typeof (args)=="object"){for(var i in args){this[i]=args[i]}}var me=this;var list=this.pages=$D.getElementsBy(function(el){return me.pageFinder(el)},this.pageTagName,el);var len=list.length;if(!el||!s||!len){return false}this.onScrollStart=new $U.CustomEvent("scrollstart",this);this.onPageChange=new $U.CustomEvent("scrollcomplete",this);this.onClick=new $U.CustomEvent("click",this);this.onAutoPlayStart=new $U.CustomEvent("autoplaystart",this);this.onAutoPlayStop=new $U.CustomEvent("autoplaystop",this);var r=$D.getRegion(list[0]);this.scrollDistance=r.right-r.left;this.scrollBody=s;$E.addListener(s,"click",onclick,this,true);var h=$D.getRegion(s.parentNode);h=(h.bottom-h.top)+"px";s.parentNode.style.height=h;s.style.height=h;s.style.position="absolute";var p=$D.getElementsByClassName("scrollpages","div",s)[0];var newFirst=list[0].cloneNode(true);list[0].parentNode.appendChild(newFirst);p.style.width=((len+1)*this.scrollDistance*1)+"px";p.style.position="absolute";var sl=Math.round(s.scrollLeft/this.scrollDistance);if(sl<0){sl=0}else{if(sl>=this.pages.length){sl=this.pages.length-1}}this.current=sl;this.scrollBody.scrollLeft=currentScroll=sl*this.scrollDistance;this.anim=new $S(this.scrollBody,this.animAttrs,this.animDur,this.easeMethod);this.anim.onTween.subscribe(ontween,this,true);this.anim.onComplete.subscribe(oncomplete,this,true);if(len>1){addNavButtons.call(this);addPageIndicators.call(this);updateNavState.call(this)}else{this.navLinks=[]}list=s=null;return true};var autoPlayTimeOut=0;var autoPlayFn=function(){me.autoPlay=(me.autoPlayDirection>0)?me.scrollNext():me.scrollPrev()};var autoPlaySubscribed=false;var autoPlayer=function(){clearTimeout(autoPlayTimeOut);if(me.autoPlay&&!me.roundRobin&&(me.current==me.pages.length-1&&me.autoPlayDirection>0||me.autoPlayDirection<=0&&me.current==0)){me.autoPlay=false}if(!me.autoPlay){me.onPageChange.unsubscribe(autoPlayer);autoPlaySubscribed=false;me.onAutoPlayStop.fire(me.current)}else{if(!autoPlaySubscribed){autoPlaySubscribed=true;me.onPageChange.subscribe(autoPlayer);autoPlayFn()}else{autoPlayTimeOut=window.setTimeout(autoPlayFn,me.autoPlayDur*1000)}}};this.autoPlayStart=function(){if(!this.autoPlay){this.onAutoPlayStart.fire(this.current)}this.autoPlay=true;autoPlayer()};this.autoPlayStop=function(){this.autoPlay=false;autoPlayer()};this.getData=function(url,postExecute){var id=this.getId();var me=this;var s=function(){me.getDataSuccess.apply(me,arguments)};var f=function(){me.getDataFailure.apply(me,arguments)};var callback={success:s,failure:f,argument:{postExecute:postExecute}};var oConObj=$U.Connect.asyncRequest("GET",url,callback,null)};this.getDataSuccess=function(o){if(o.responseText){var sText=o.responseText;sText=sText.replace(/<\!--.+-->/gim,"");var oArr=eval("("+sText+")");var createdPages=false,removedPages=false;if(oArr){var numPages=this.pages.length;var len=oArr.length;for(var i=0;i<len;i++){var pg=oArr[i].pgIdx;var html=oArr[i].pgHtml;var page;if(pg<numPages&&pg>=0){page=this.pages[pg]}else{var p=this.pages[numPages-1];page=p.cloneNode(false);p.parentNode.appendChild(page);this.pages[numPages++]=page;createdPages=true}page.innerHTML=html;if(oArr[i].attributes){for(var a in oArr[i].attributes){page.setAttribute(a,oArr[i].attributes[a])}}}while(i<numPages){this.pages[i].parentNode.removeChild(this.pages[i]);delete this.pages[i];removedPages=true;i++}if(createdPages||removedPages){addPageIndicators.call(this)}}if(o.argument.postExecute){o.argument.postExecute()}}};this.getDataFailure=function(o){};this.unload=function(){if(!this.navLinks){this.navLinks=[]}this.navLinks.push(_element,this.prev,this.next,this.scrollBody,this.anim);removeNavLinks.call(this);for(var j=this.pages.length-1;j>-1;j--){this.pages[j]=null}};this.animAttrs={scroll:{from:[0,0],to:[0,0]}};if(el){this.init(el,args)}};Carousel.prototype={pageFinder:function(el){return $D.hasClass(el,this.pageClassName)},pageTagName:"div",pageClassName:"scrollpage",easeMethod:$U.Easing.easeOut,roundRobin:false,animDur:1.5,autoPlayDur:5,onScrollStart:null,onPageChange:null,onClick:null,autoPlayDirection:1,onAutoPlayStart:null,onAutoPlayStop:null,scrollTo:function(index,from){if(this.roundRobin){if(index<0){index=this.pages.length-1;from=this.pages.length}else{if(index>this.pages.length){index=1;from=0}}}if((!index&&index!==0)||index>this.pages.length||index<0||index==this.current){return false}if(this.anim.isAnimated()){this.anim.stop()}this.onScrollStart.fire({to:index,from:this.current,toString:function(){return"from:"+this.from+", to:"+this.to}});var end=index*this.scrollDistance;var start=(typeof from!=="undefined")?(from*this.scrollDistance):this.getCurrentScroll();this.animAttrs.scroll.from=[start,0];this.animAttrs.scroll.to=[end,0];this.current=index;updateNavState.call(this);this.anim.attributes=this.animAttrs;this.anim.duration=this.animDur;var a=this.anim;window.setTimeout(function(){a.animate()},0);return true},scrollNext:function(){var ret=this.scrollTo(this.current+1);return ret},scrollNext_click:clickHandler("scrollNext"),scrollPrev:function(){var ret=this.scrollTo(this.current-1);return ret},scrollPrev_click:clickHandler("scrollPrev"),scrollTo_click:clickHandler("scrollTo",function(el){return(!el.index&&el.index!==0)},function(el){return el.index}),toString:function(){var el=this.getElement();if(el){return"Carousel #"+el.id+" ."+el.className}else{return"Carousel [Not Initiated]"}el=null},getId:function(){return this.getElement().id}}})();(function(){var CarouselMgr=function(){CarouselMgr.superclass.constructor.call(this,Carousel)};YAHOO.extend(CarouselMgr,DTK.util.Manager);CarouselMgr.prototype.initAll=function(cls,args){return CarouselMgr.superclass.initAll.call(this,function(){return $D.getElementsByClassName(cls||"dtk-carousel","div",document)},args)};CarouselMgr.prototype.getCarousel=CarouselMgr.prototype.getDaemonById;CarouselMgr.prototype.idString="Carousel Manager";DTK.CarouselMgr=new CarouselMgr()})()})()