﻿(function($){
$.fn.marquee=function(_2){
var _3=[],_4=this.length;
function _5(_6,_7,_8){
var _9=_8.behavior,_a=_8.width,_b=_8.dir;
var r=0;
if(_9=="alternate"){
r=_6==1?_7[_8.widthAxis]-(_a*2):_a;
}else{
if(_9=="slide"){
if(_6==-1){
r=_b==-1?_7[_8.widthAxis]:_a;
}else{
r=_b==-1?_7[_8.widthAxis]-(_a*2):0;
}
}else{
r=_6==-1?_7[_8.widthAxis]:0;
}
}
return r;
};
function _d(){
var i=_3.length,_f=null,_10=null,_11={},_12=[],_13=false;
while(i--){
_f=_3[i];
_10=$(_f);
_11=_10.data("marqueeState");
if(_10.data("paused")!==true){
_f[_11.axis]+=(_11.scrollamount*_11.dir);
_13=_11.dir==-1?_f[_11.axis]<=_5(_11.dir*-1,_f,_11):_f[_11.axis]>=_5(_11.dir*-1,_f,_11);
if((_11.behavior=="scroll"&&_11.last==_f[_11.axis])||(_11.behavior=="alternate"&&_13&&_11.last!=-1)||(_11.behavior=="slide"&&_13&&_11.last!=-1)){
if(_11.behavior=="alternate"){
_11.dir*=-1;
}
_11.last=-1;
_10.trigger("stop");
_11.loops--;
if(_11.loops===0){
if(_11.behavior!="slide"){
_f[_11.axis]=_5(_11.dir,_f,_11);
}else{
_f[_11.axis]=_5(_11.dir*-1,_f,_11);
}
_10.trigger("end");
}else{
_12.push(_f);
_10.trigger("start");
_f[_11.axis]=_5(_11.dir,_f,_11);
}
}else{
_12.push(_f);
}
_11.last=_f[_11.axis];
_10.data("marqueeState",_11);
}else{
_12.push(_f);
}
}
_3=_12;
if(_3.length){
setTimeout(_d,25);
}
};
this.each(function(i){
var _15=$(this),_16=_15.attr("width")||_15.width(),_17=_15.attr("height")||_15.height(),_18=_15.after("<div "+(_2?"class=\""+_2+"\" ":"")+"style=\"display: block-inline; width: "+_16+"px; height: "+_17+"px; overflow: hidden;\"><div style=\"float: left; white-space: nowrap;\">"+_15.html()+"</div></div>").next(),_19=_18.get(0),_1a=0,_1b=(_15.attr("direction")||"left").toLowerCase(),_1c={dir:/down|right/.test(_1b)?-1:1,axis:/left|right/.test(_1b)?"scrollLeft":"scrollTop",widthAxis:/left|right/.test(_1b)?"scrollWidth":"scrollHeight",last:-1,loops:_15.attr("loop")||-1,scrollamount:_15.attr("scrollamount")||this.scrollAmount||2,behavior:(_15.attr("behavior")||"scroll").toLowerCase(),width:/left|right/.test(_1b)?_16:_17};
if(_15.attr("loop")==-1&&_1c.behavior=="slide"){
_1c.loops=1;
}
_15.remove();
if(/left|right/.test(_1b)){
_18.find("> div").css("padding","0 "+_16+"px");
}else{
_18.find("> div").css("padding",_17+"px 0");
}
_18.bind("stop",function(){
_18.data("paused",true);
}).bind("pause",function(){
_18.data("paused",true);
}).bind("start",function(){
_18.data("paused",false);
}).bind("unpause",function(){
_18.data("paused",false);
}).data("marqueeState",_1c);
_3.push(_19);
_19[_1c.axis]=_5(_1c.dir,_19,_1c);
_18.trigger("start");
if(i+1==_4){
_d();
}
});
return $(_3);
};
}(jQuery));