/*
Copyright 2010, KISSY UI Library v1.1.0
MIT Licensed
build: 896 Jul 22 10:00
*/
KISSY.add("switchable",function(c,k){function h(a,b){b=b||{};if(!("markupType"in b))if(b.panelCls)b.markupType=1;else if(b.panels)b.markupType=2;b=c.merge(h.Config,b);this.container=c.get(a);this.config=b;this.activeIndex=b.activeIndex;this._init()}var l=c.DOM,i=c.Event;h.Config={markupType:0,navCls:"ks-switchable-nav",contentCls:"ks-switchable-content",triggerCls:"ks-switchable-trigger",panelCls:"ks-switchable-panel",triggers:[],panels:[],hasTriggers:true,triggerType:"mouse",delay:0.1,activeIndex:0,
activeTriggerCls:"active",steps:1,viewSize:[]};h.Plugins=[];c.augment(h,c.EventTarget,{_init:function(){var a=this,b=a.config;if(a.fire("beforeInit")!==false){a._parseMarkup();b.hasTriggers&&a._bindTriggers();c.each(h.Plugins,function(d){d.init&&d.init(a)});a.fire("init")}},_parseMarkup:function(){var a=this.container,b=this.config,d,f=[],g=[];switch(b.markupType){case 0:if(d=c.get("."+b.navCls,a))f=l.children(d);d=c.get("."+b.contentCls,a);g=l.children(d);break;case 1:f=c.query("."+b.triggerCls,
a);g=c.query("."+b.panelCls,a);break;case 2:f=b.triggers;g=b.panels;break}a=g.length;this.length=a/b.steps;if(b.hasTriggers&&a>0&&f.length===0)f=this._generateTriggersMarkup(this.length);this.triggers=c.makeArray(f);this.panels=c.makeArray(g);this.content=d||g[0].parentNode},_generateTriggersMarkup:function(a){var b=this.config,d=l.create("<div>"),f,g;d.className=b.navCls;for(g=0;g<a;g++){f=l.create("<li>");if(g===this.activeIndex)f.className=b.activeTriggerCls;f.innerHTML=g+1;d.appendChild(f)}this.container.appendChild(d);
return l.children(d)},_bindTriggers:function(){var a=this,b=a.config,d=a.triggers,f,g,e=d.length;for(g=0;g<e;g++)(function(j){f=d[j];i.on(f,"click focus",function(){a._onFocusTrigger(j)});if(b.triggerType==="mouse"){i.on(f,"mouseenter",function(){a._onMouseEnterTrigger(j)});i.on(f,"mouseleave",function(){a._onMouseLeaveTrigger(j)})}})(g)},_onFocusTrigger:function(a){if(this._triggerIsValid()){this._cancelSwitchTimer();this.switchTo(a)}},_onMouseEnterTrigger:function(a){var b=this;if(b._triggerIsValid())b.switchTimer=
c.later(function(){b.switchTo(a)},b.config.delay*1E3)},_onMouseLeaveTrigger:function(){this._cancelSwitchTimer()},_triggerIsValid:function(a){return this.activeIndex!==a},_cancelSwitchTimer:function(){if(this.switchTimer){this.switchTimer.cancel();this.switchTimer=k}},switchTo:function(a,b){var d=this.config,f=this.triggers,g=this.panels,e=this.activeIndex,j=d.steps,o=e*j,p=a*j;if(!this._triggerIsValid())return this;if(this.fire("beforeSwitch",{toIndex:a})===false)return this;if(d.hasTriggers)this._switchTrigger(e>
-1?f[e]:null,f[a]);if(b===k)b=a>e?"forward":"backward";this._switchView(g.slice(o,o+j),g.slice(p,p+j),a,b);this.activeIndex=a;return this},_switchTrigger:function(a,b){var d=this.config.activeTriggerCls;a&&l.removeClass(a,d);l.addClass(b,d)},_switchView:function(a,b,d){l.css(a,"display","none");l.css(b,"display","block");this._fireOnSwitch(d)},_fireOnSwitch:function(a){this.fire("switch",{currentIndex:a})},prev:function(){var a=this.activeIndex;this.switchTo(a>0?a-1:this.length-1,"backward")},next:function(){var a=
this.activeIndex;this.switchTo(a<this.length-1?a+1:0,"forward")}});c.Switchable=h});
KISSY.add("switchable-autoplay",function(c,k){var h=c.Event,l=c.Switchable;c.mix(l.Config,{autoplay:false,interval:5,pauseOnHover:true});l.Plugins.push({name:"autoplay",init:function(i){var a=i.config,b=a.interval*1E3,d;if(a.autoplay){if(a.pauseOnHover){h.on(i.container,"mouseenter",function(){if(d){d.cancel();d=k}i.paused=true});h.on(i.container,"mouseleave",function(){d=c.later(function(){i.paused=false;d=k},b)})}i.autoplayTimer=c.later(function(){i.paused||i.switchTo(i.activeIndex<i.length-1?i.activeIndex+
1:0,"forward")},b,true)}}})});
KISSY.add("switchable-effect",function(c,k){var h=c.DOM,l=c.Anim,i=c.Switchable,a;c.mix(i.Config,{effect:"none",duration:0.5,easing:"easeNone"});i.Effects={none:function(b,d,f){h.css(b,"display","none");h.css(d,"display","block");f()},fade:function(b,d,f){b.length!==1&&c.error("fade effect only supports steps == 1.");var g=this,e=g.config,j=b[0],o=d[0];g.anim&&g.anim.stop(true);h.css(o,"opacity",1);g.anim=(new l(j,{opacity:0},e.duration,e.easing,function(){g.anim=k;h.css(o,"z-index",9);h.css(j,"z-index",
1);f()})).run()},scroll:function(b,d,f,g){var e=this;b=e.config;d=b.effect==="scrollx";var j={};j[d?"left":"top"]=-(e.viewSize[d?0:1]*g)+"px";e.anim&&e.anim.stop();e.anim=(new l(e.content,j,b.duration,b.easing,function(){e.anim=k;f()})).run()}};a=i.Effects;a.scrollx=a.scrolly=a.scroll;i.Plugins.push({name:"effect",init:function(b){var d=b.config,f=d.effect,g=b.panels,e=b.content,j=d.steps,o=b.activeIndex,p=g.length;b.viewSize=[d.viewSize[0]||g[0].offsetWidth*j,d.viewSize[1]||g[0].offsetHeight*j];
if(f!=="none"){c.each(g,function(r){h.css(r,"display","block")});switch(f){case "scrollx":case "scrolly":h.css(e,"position","absolute");h.css(e.parentNode,"position","relative");if(f==="scrollx"){h.css(g,"float","left");h.width(e,b.viewSize[0]*(p/j))}break;case "fade":var q=o*j,s=q+j-1,n;c.each(g,function(r,t){n=t>=q&&t<=s;h.css(r,{opacity:n?1:0,position:"absolute",zIndex:n?9:1})});break}}}});c.augment(i,{_switchView:function(b,d,f,g){var e=this,j=e.config.effect;(c.isFunction(j)?j:a[j]).call(e,b,
d,function(){e._fireOnSwitch(f)},f,g)}})});
KISSY.add("switchable-circular",function(c,k){function h(n,r,t,u,w){var m=this;n=m.config;r=m.length;var x=m.activeIndex,v=n.scrollType===q,y=v?f:g,z=m.viewSize[v?0:1];v=-z*u;var B={},C,A=w===p;if(C=A&&x===0&&u===r-1||w===o&&x===r-1&&u===0)v=l.call(m,m.panels,u,A,y,z);B[y]=v+j;m.anim&&m.anim.stop();m.anim=(new c.Anim(m.content,B,n.duration,n.easing,function(){C&&i.call(m,m.panels,u,A,y,z);m.anim=k;t()})).run()}function l(n,r,t,u,w){var m=this.config.steps;r=this.length;var x=t?r-1:0,v=(x+1)*m;for(m=
x*m;m<v;m++){a.css(n[m],b,d);a.css(n[m],u,(t?-1:1)*w*r)}return t?w:-w*r}function i(n,r,t,u,w){var m=this.config.steps;r=this.length;var x=t?r-1:0,v=(x+1)*m;for(m=x*m;m<v;m++){a.css(n[m],b,e);a.css(n[m],u,e)}a.css(this.content,u,t?-w*(r-1):e)}var a=c.DOM,b="position",d="relative",f="left",g="top",e="",j="px",o="forward",p="backward",q="scrollx",s=c.Switchable;c.mix(s.Config,{circular:false});s.Plugins.push({name:"circular",init:function(n){n=n.config;if(n.circular&&(n.effect===q||n.effect==="scrolly")){n.scrollType=
n.effect;n.effect=h}}})});
KISSY.add("switchable-lazyload",function(c){var k=c.DOM,h="beforeSwitch",l="img-src",i="textarea-data",a={},b=c.Switchable;a[l]="data-lazyload-src-custom";a[i]="ks-datalazyload-custom";c.mix(b.Config,{lazyDataType:"",lazyDataFlag:""});b.Plugins.push({name:"lazyload",init:function(d){function f(q){var s=j.steps;q=q.toIndex*s;e.loadCustomLazyData(d.panels.slice(q,q+s),o,p);g()&&d.detach(h,f)}function g(){var q,s,n,r=o===l;if(q=r?"img":o===i?"textarea":""){q=c.query(q,d.container);s=0;for(n=q.length;s<
n;s++)if(r?k.attr(q[s],p):k.hasClass(q[s],p))return false}return true}var e=c.DataLazyload,j=d.config,o=j.lazyDataType,p=j.lazyDataFlag||a[o];!e||!o||!p||d.on(h,f)}})});KISSY.add("tabs",function(c){function k(h,l){if(!(this instanceof k))return new k(h,l);k.superclass.constructor.call(this,h,l)}c.extend(k,c.Switchable);c.Tabs=k});
KISSY.add("slide",function(c){function k(l,i){if(!(this instanceof k))return new k(l,i);k.superclass.constructor.call(this,l,c.merge(h,i))}var h={autoplay:true,circular:true};c.extend(k,c.Switchable);c.Slide=k});
KISSY.add("carousel",function(c,k){function h(e,j){var o=this;if(!(o instanceof h))return new h(e,j);o.on("init",function(){l(o)});h.superclass.constructor.call(o,e,c.merge(g,j))}function l(e){var j=e.config,o=j.disableBtnCls;c.each(["prev","next"],function(p){var q=e[p+"Btn"]=c.get(b+j[p+"BtnCls"],e.container);a.on(q,"click",function(s){s.preventDefault();i.hasClass(q,o)||e[p]()})});j.circular||e.on("switch",function(p){p=p.currentIndex;p=p===0?e[d]:p===e.length-1?e[f]:k;i.removeClass([e[d],e[f]],
o);p&&i.addClass(p,o)});a.on(e.panels,"click focus",function(){e.fire("itemSelected",{item:this})})}var i=c.DOM,a=c.Event,b=".",d="prevBtn",f="nextBtn",g={circular:true,prevBtnCls:"ks-switchable-prev-btn",nextBtnCls:"ks-switchable-next-btn",disableBtnCls:"ks-switchable-disable-btn"};c.extend(h,c.Switchable);c.Carousel=h});
KISSY.add("accordion",function(c){function k(i,a){if(!(this instanceof k))return new k(i,a);k.superclass.constructor.call(this,i,c.merge(l,a))}var h=c.DOM,l={triggerType:"click",multiple:false};c.extend(k,c.Switchable);c.Accordion=k;c.augment(k,{_triggerIsValid:function(i){return this.activeIndex!==i||this.config.multiple},_switchView:function(i,a,b){var d=this.config,f=a[0];if(d.multiple){h.toggleClass(this.triggers[b],d.activeTriggerCls);h.css(f,"display",f.style.display=="none"?"block":"none");
this._fireOnSwitch(b)}else k.superclass._switchView.call(this,i,a,b)}})});

