var $JssorPoint$;(function(){$JssorPoint$=function(x,y){this.x=typeof(x)=="number"?x:0;this.y=typeof(y)=="number"?y:0};var SDPointPrototype=$JssorPoint$.prototype;SDPointPrototype.$Plus=function(point){return new $JssorPoint$(this.x+point.x,this.y+point.y)};SDPointPrototype.$Minus=function(point){return new $JssorPoint$(this.x-point.x,this.y-point.y)};SDPointPrototype.$Times=function(factor){return new $JssorPoint$(this.x*factor,this.y*factor)};SDPointPrototype.$Divide=function(factor){return new $JssorPoint$(this.x/factor,this.y/factor)};SDPointPrototype.$Negate=function(){return new $JssorPoint$(-this.x,-this.y)};SDPointPrototype.$DistanceTo=function(point){return Math.sqrt(Math.pow(this.x-point.x,2)+Math.pow(this.y-point.y,2))};SDPointPrototype.$Apply=function(func){return new $JssorPoint$(func(this.x),func(this.y))};SDPointPrototype.$Equals=function(point){return(point instanceof $JssorPoint$)&&(this.x===point.x)&&(this.y===point.y)};SDPointPrototype.$ToString=function(){return "("+this.x+","+this.y+")"}})();var $JssorEasing$=window.$JssorEasing$={$EaseLinear:function(t){return t},$EaseGoBack:function(t){return 1-Math.abs((t*=2)-1)},$EaseSwing:function(t){return-Math.cos(t*Math.PI)/2+.5},$EaseInQuad:function(t){return t*t},$EaseOutQuad:function(t){return-t*(t-2)},$EaseInOutQuad:function(t){return(t*=2)<1?1/2*t*t:-1/2*(--t*(t-2)-1)},$EaseInCubic:function(t){return t*t*t},$EaseOutCubic:function(t){return(t-=1)*t*t+1},$EaseInOutCubic:function(t){return(t*=2)<1?1/2*t*t*t:1/2*((t-=2)*t*t+2)},$EaseInQuart:function(t){return t*t*t*t},$EaseOutQuart:function(t){return-((t-=1)*t*t*t-1)},$EaseInOutQuart:function(t){return(t*=2)<1?1/2*t*t*t*t:-1/2*((t-=2)*t*t*t-2)},$EaseInQuint:function(t){return t*t*t*t*t},$EaseOutQuint:function(t){return(t-=1)*t*t*t*t+1},$EaseInOutQuint:function(t){return(t*=2)<1?1/2*t*t*t*t*t:1/2*((t-=2)*t*t*t*t+2)},$EaseInSine:function(t){return 1-Math.cos(t*Math.PI/2)},$EaseOutSine:function(t){return Math.sin(t*Math.PI/2)},$EaseInOutSine:function(t){return-1/2*(Math.cos(Math.PI*t)-1)},$EaseInExpo:function(t){return t==0?0:Math.pow(2,10*(t-1))},$EaseOutExpo:function(t){return t==1?1:-Math.pow(2,-10*t)+1},$EaseInOutExpo:function(t){return t==0||t==1?t:(t*=2)<1?1/2*Math.pow(2,10*(t-1)):1/2*(-Math.pow(2,-10*--t)+2)},$EaseInCirc:function(t){return-(Math.sqrt(1-t*t)-1)},$EaseOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},$EaseInOutCirc:function(t){return(t*=2)<1?-1/2*(Math.sqrt(1-t*t)-1):1/2*(Math.sqrt(1-(t-=2)*t)+1)},$EaseInElastic:function(t){if(!t||t==1)
return t;var p=.3,s=.075;return-(Math.pow(2,10*(t-=1))*Math.sin((t-s)*2*Math.PI/p))},$EaseOutElastic:function(t){if(!t||t==1)
return t;var p=.3,s=.075;return Math.pow(2,-10*t)*Math.sin((t-s)*2*Math.PI/p)+1},$EaseInOutElastic:function(t){if(!t||t==1)
return t;var p=.45,s=.1125;return(t*=2)<1?-.5*Math.pow(2,10*(t-=1))*Math.sin((t-s)*2*Math.PI/p):Math.pow(2,-10*(t-=1))*Math.sin((t-s)*2*Math.PI/p)*.5+1},$EaseInBack:function(t){var s=1.70158;return t*t*((s+1)*t-s)},$EaseOutBack:function(t){var s=1.70158;return(t-=1)*t*((s+1)*t+s)+1},$EaseInOutBack:function(t){var s=1.70158;return(t*=2)<1?1/2*t*t*(((s*=1.525)+1)*t-s):1/2*((t-=2)*t*(((s*=1.525)+1)*t+s)+2)},$EaseInBounce:function(t){return 1-$JssorEasing$.$EaseOutBounce(1-t)},$EaseOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},$EaseInOutBounce:function(t){return t<1/2?$JssorEasing$.$EaseInBounce(t*2)*.5:$JssorEasing$.$EaseOutBounce(t*2-1)*.5+.5},$EaseInWave:function(t){return 1-Math.cos(t*Math.PI*2)},$EaseOutWave:function(t){return Math.sin(t*Math.PI*2)},$EaseOutJump:function(t){return 1-(((t*=2)<1)?(t=1-t)*t*t:(t-=1)*t*t)},$EaseInJump:function(t){return((t*=2)<1)?t*t*t:(t=2-t)*t*t}};var $JssorDirection$=window.$JssorDirection$={$TO_LEFT:0x0001,$TO_RIGHT:0x0002,$TO_TOP:0x0004,$TO_BOTTOM:0x0008,$HORIZONTAL:0x0003,$VERTICAL:0x000C,$LEFTRIGHT:0x0003,$TOPBOTOM:0x000C,$TOPLEFT:0x0005,$TOPRIGHT:0x0006,$BOTTOMLEFT:0x0009,$BOTTOMRIGHT:0x000A,$AROUND:0x000F,$GetDirectionHorizontal:function(direction){return direction&0x0003},$GetDirectionVertical:function(direction){return direction&0x000C},$ChessHorizontal:function(direction){return(~direction&0x0003)+(direction&0x000C)},$ChessVertical:function(direction){return(~direction&0x000C)+(direction&0x0003)},$IsToLeft:function(direction){return(direction&0x0003)==0x0001},$IsToRight:function(direction){return(direction&0x0003)==0x0002},$IsToTop:function(direction){return(direction&0x000C)==0x0004},$IsToBottom:function(direction){return(direction&0x000C)==0x0008},$IsHorizontal:function(direction){return(direction&0x0003)>0},$IsVertical:function(direction){return(direction&0x000C)>0}};var $JssorKeyCode$={$BACKSPACE:8,$COMMA:188,$DELETE:46,$DOWN:40,$END:35,$ENTER:13,$ESCAPE:27,$HOME:36,$LEFT:37,$NUMPAD_ADD:107,$NUMPAD_DECIMAL:110,$NUMPAD_DIVIDE:111,$NUMPAD_ENTER:108,$NUMPAD_MULTIPLY:106,$NUMPAD_SUBTRACT:109,$PAGE_DOWN:34,$PAGE_UP:33,$PERIOD:190,$RIGHT:39,$SPACE:32,$TAB:9,$UP:38};var $JssorAlignment$={$TopLeft:0x11,$TopCenter:0x12,$TopRight:0x14,$MiddleLeft:0x21,$MiddleCenter:0x22,$MiddleRight:0x24,$BottomLeft:0x41,$BottomCenter:0x42,$BottomRight:0x44,$IsTop:function(aligment){return aligment&0x10>0},$IsMiddle:function(alignment){return alignment&0x20>0},$IsBottom:function(alignment){return alignment&0x40>0},$IsLeft:function(alignment){return alignment&0x01>0},$IsCenter:function(alignment){return alignment&0x02>0},$IsRight:function(alignment){return alignment&0x04>0}};var $JssorMatrix$;var $JssorBrowser$={$UNKNOWN:0,$IE:1,$FIREFOX:2,$SAFARI:3,$CHROME:4,$OPERA:5};var $ROWSER_UNKNOWN$=0;var $ROWSER_IE$=1;var $ROWSER_FIREFOX$=2;var $ROWSER_SAFARI$=3;var $ROWSER_CHROME$=4;var $ROWSER_OPERA$=5;var $JssorAnimator$;var $JssorUtils$=window.$JssorUtils$=new function(){var self=this;var arrActiveX=["Msxml2.XMLHTTP","Msxml3.XMLHTTP","Microsoft.XMLHTTP"];var supportedImageFormats={"bmp":!1,"jpeg":!0,"jpg":!0,"png":!0,"tif":!1,"wdp":!1};var browser=$JssorBrowser$.$UNKNOWN;var browserRuntimeVersion=0;var browserEngineVersion=0;var browserJavascriptVersion=0;var webkitVersion=0;var app=navigator.appName;var ver=navigator.appVersion;var ua=navigator.userAgent;var urlParams={};function DetectBrowser(){if(!browser){if(app=="Microsoft Internet Explorer"&&!!window.attachEvent&&!!window.ActiveXObject){var ieOffset=ua.indexOf("MSIE");browser=$JssorBrowser$.$IE;browserEngineVersion=parseFloat(ua.substring(ieOffset+5,ua.indexOf(";",ieOffset)));browserRuntimeVersion=document.documentMode||browserEngineVersion}
else if(app=="Netscape"&&!!window.addEventListener){var ffOffset=ua.indexOf("Firefox");var saOffset=ua.indexOf("Safari");var chOffset=ua.indexOf("Chrome");var webkitOffset=ua.indexOf("AppleWebKit");if(ffOffset>=0){browser=$JssorBrowser$.$FIREFOX;browserRuntimeVersion=parseFloat(ua.substring(ffOffset+8))}
else if(saOffset>=0){var slash=ua.substring(0,saOffset).lastIndexOf("/");browser=(chOffset>=0)?$JssorBrowser$.$CHROME:$JssorBrowser$.$SAFARI;browserRuntimeVersion=parseFloat(ua.substring(slash+1,saOffset))}
if(webkitOffset>=0)
webkitVersion=parseFloat(ua.substring(webkitOffset+12))}
else{var match=/(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(ua);if(match){browser=$JssorBrowser$.$OPERA;browserRuntimeVersion=parseFloat(match[2])}}}}
function IsBrowserIE(){DetectBrowser();return browser==$ROWSER_IE$}
function IsBrowserIeQuirks(){return IsBrowserIE()&&(browserRuntimeVersion<6||document.compatMode=="BackCompat")}
function IsBrowserFireFox(){DetectBrowser();return browser==$ROWSER_FIREFOX$}
function IsBrowserSafari(){DetectBrowser();return browser==$ROWSER_SAFARI$}
function IsBrowserChrome(){DetectBrowser();return browser==$ROWSER_CHROME$}
function IsBrowserOpera(){DetectBrowser();return browser==$ROWSER_OPERA$}
function IsBrowserBadTransform(){return IsBrowserSafari()&&(webkitVersion>534)&&(webkitVersion<535)}
function IsBrowserSafeHWA(){return IsBrowserSafari()&&(webkitVersion<535)}
function IsBrowserIe9Earlier(){return IsBrowserIE()&&browserRuntimeVersion<9}
var _TransformProperty;function GetTransformProperty(elmt){if(!_TransformProperty){each(['transform','WebkitTransform','msTransform','MozTransform','OTransform'],function(property){if(!self.$IsUndefined(elmt.style[property])){_TransformProperty=property;return!0}});_TransformProperty=_TransformProperty||"transform"}
return _TransformProperty}
{}
function getOffsetParent(elmt,isFixed){if(isFixed&&elmt!=document.body){return document.body}else{return elmt.offsetParent}}
function toString(obj){return Object.prototype.toString.call(obj)}
var class2type;function each(object,callback){if(toString(object)=="[object Array]"){for(var i=0;i<object.length;i++){if(callback(object[i],i,object)){break}}}else{for(var name in object){if(callback(object[name],name,object)){break}}}}
function GetClass2Type(){if(!class2type){class2type={};each(["Boolean","Number","String","Function","Array","Date","RegExp","Object"],function(name){class2type["[object "+name+"]"]=name.toLowerCase()})}
return class2type}
function type(obj){return obj==null?String(obj):GetClass2Type()[toString(obj)]||"object"}
function isPlainObject(obj){if(!obj||type(obj)!=="object"||obj.nodeType||self.$IsWindow(obj)){return!1}
var hasOwn=Object.prototype.hasOwnProperty;try{if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return!1}}catch(e){return!1}
var key;for(key in obj){}
return key===undefined||hasOwn.call(obj,key)}
function Delay(code,delay){setTimeout(code,delay||0)}
function RemoveByReg(str,reg){var m=reg.exec(str);if(m){var header=str.substr(0,m.index);var tailer=str.substr(m.lastIndex+1,str.length-(m.lastIndex+1));str=header+tailer}
return str}
function BuildNewCss(oldCss,removeRegs,replaceValue){var css=(!oldCss||oldCss=="inherit")?"":oldCss;each(removeRegs,function(removeReg){var m=removeReg.exec(css);if(m){var header=css.substr(0,m.index);var tailer=css.substr(m.lastIndex+1,css.length-(m.lastIndex+1));css=header+tailer}});css=replaceValue+(css.indexOf(" ")!=0?" ":"")+css;return css}
function SetStyleFilterIE(elmt,value){if(browserRuntimeVersion<9){elmt.style.filter=value}}
function SetStyleMatrixIE(elmt,matrix,offset){if(browserJavascriptVersion<9){var oldFilterValue=elmt.style.filter;var matrixReg=new RegExp(/[\s]*progid:DXImageTransform\.Microsoft\.Matrix\([^\)]*\)/g);var matrixValue=matrix?"progid:DXImageTransform.Microsoft.Matrix("+"M11="+matrix[0][0]+", M12="+matrix[0][1]+", M21="+matrix[1][0]+", M22="+matrix[1][1]+", SizingMethod='auto expand')":"";var newFilterValue=BuildNewCss(oldFilterValue,[matrixReg],matrixValue);SetStyleFilterIE(elmt,newFilterValue);self.$SetStyleMarginTop(elmt,offset.y);self.$SetStyleMarginLeft(elmt,offset.x)}}
self.$IsBrowserIE=IsBrowserIE;self.$IsBrowserIeQuirks=IsBrowserIeQuirks;self.$IsBrowserFireFox=IsBrowserFireFox;self.$IsBrowserSafari=IsBrowserSafari;self.$IsBrowserChrome=IsBrowserChrome;self.$IsBrowserOpera=IsBrowserOpera;self.$IsBrowserBadTransform=IsBrowserBadTransform;self.$IsBrowserSafeHWA=IsBrowserSafeHWA;self.$IsBrowserIe9Earlier=IsBrowserIe9Earlier;self.$GetBrowserVersion=function(){return browserRuntimeVersion};self.$GetBrowserEngineVersion=function(){return browserEngineVersion||browserRuntimeVersion};self.$GetWebKitVersion=function(){return webkitVersion};self.$Delay=Delay;self.$GetElement=function(elmt){if(self.$IsString(elmt)){elmt=document.getElementById(elmt)}
return elmt};self.$GetElementPosition=function(elmt){elmt=self.$GetElement(elmt);var result=new $JssorPoint$();while(elmt){result.x+=elmt.offsetLeft;result.y+=elmt.offsetTop;var isFixed=self.$GetElementStyle(elmt).position=="fixed";if(isFixed){result=result.$Plus(self.$GetPageScroll(window))}
elmt=getOffsetParent(elmt,isFixed)}
return result};self.$GetElementSize=function(elmt){elmt=self.$GetElement(elmt);return new $JssorPoint$(elmt.clientWidth,elmt.clientHeight)};self.$GetElementStyle=function(elmt){elmt=self.$GetElement(elmt);if(elmt.currentStyle){return elmt.currentStyle}else if(window.getComputedStyle){return window.getComputedStyle(elmt,"")}else{$JssorDebug$.$Fail("Unknown elmt style, no known technique.")}};self.$GetEvent=function(event){return event?event:window.event};self.$GetEventSrcElement=function(event){event=self.$GetEvent(event);return event.target||event.srcElement||document};self.$GetEventDstElement=function(event){event=self.$GetEvent(event);return event.relatedTarget||event.toElement};self.$GetMousePosition=function(event){event=self.$GetEvent(event);var result=new $JssorPoint$();if(event.type=="DOMMouseScroll"&&IsBrowserFireFox()&&browserRuntimeVersion<3){result.x=event.screenX;result.y=event.screenY}else if(typeof(event.pageX)=="number"){result.x=event.pageX;result.y=event.pageY}else if(typeof(event.clientX)=="number"){result.x=event.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;result.y=event.clientY+document.body.scrollTop+document.documentElement.scrollTop}else{$JssorDebug$.$Fail("Unknown event mouse position, no known technique.")}
return result};self.$GetMouseScroll=function(event){event=self.$GetEvent(event);var delta=0;if(typeof(event.wheelDelta)=="number"){delta=event.wheelDelta}else if(typeof(event.detail)=="number"){delta=event.detail*-1}else{$JssorDebug$.$Fail("Unknown event mouse scroll, no known technique.")}
return delta?delta/Math.abs(delta):0};self.$GetPageScroll=function(window){var result=new $JssorPoint$();var docElmt=window.document.documentElement||{};var body=window.document.body||{};if(typeof(window.pageXOffset)=="number"){result.x=window.pageXOffset;result.y=window.pageYOffset}else if(body.scrollLeft||body.scrollTop){result.x=body.scrollLeft;result.y=body.scrollTop}else if(docElmt.scrollLeft||docElmt.scrollTop){result.x=docElmt.scrollLeft;result.y=docElmt.scrollTop}
return result};self.$GetWindowSize=function(window){var result=new $JssorPoint$();var checkElement=(IsBrowserIeQuirks()?window.document.body:window.document.documentElement);result.x=checkElement.clientWidth;result.y=checkElement.clientHeight;return result};self.$GetStyleOpacity=function(elmt){if(IsBrowserIE()&&browserEngineVersion<9){var match=/opacity=([^)]*)/.exec(elmt.style.filter||"");return match?(parseFloat(match[1])/100):1}
else return parseFloat(elmt.style.opacity||"1")};self.$SetStyleOpacity=self.$setElementOpacity=function(elmt,opacity,ie9EarlierForce){if(IsBrowserIE()&&browserEngineVersion<9){var finalFilter=elmt.style.filter||"";var alphaReg=new RegExp(/[\s]*alpha\([^\)]*\)/g);var ieOpacity=Math.round(100*opacity);var alphaFilter="";if(ieOpacity<100||ie9EarlierForce){alphaFilter="alpha(opacity="+ieOpacity+") "}
var newFilterValue=BuildNewCss(finalFilter,[alphaReg],alphaFilter);SetStyleFilterIE(elmt,newFilterValue)}
else{elmt.style.opacity=opacity==1?"":Math.round(opacity*100)/100}};function SetStyleTransformInternal(elmt,transform){var rotate=transform.$Rotate||0;var scale=transform.$Scale||1;if(IsBrowserIe9Earlier()){var matrix=self.$CreateMatrix(rotate/180*Math.PI,scale,scale);SetStyleMatrixIE(elmt,(!rotate&&scale==1)?null:matrix,self.$GetMatrixOffset(matrix,transform.$OriginalWidth,transform.$OriginalHeight))}
else{var transformProperty=GetTransformProperty(elmt);if(transformProperty){var transformValue="rotate("+rotate%360+"deg) scale("+scale+")";if($JssorUtils$.$IsBrowserChrome()&&webkitVersion>535)
transformValue+=" perspective(2000px)";elmt.style[transformProperty]=transformValue}}}
self.$SetStyleTransform=function(elmt,transform){if(IsBrowserBadTransform()){Delay(self.$CreateCallback(null,SetStyleTransformInternal,elmt,transform))}
else{SetStyleTransformInternal(elmt,transform)}};self.$SetStyleTransformOrigin=function(elmt,transformOrigin){var transformProperty=GetTransformProperty(elmt);if(transformProperty)
elmt.style[transformProperty+"Origin"]=transformOrigin};self.$SetStyleScale=function(elmt,scale){if(IsBrowserIE()&&browserEngineVersion<9||(browserEngineVersion<10&&IsBrowserIeQuirks())){elmt.style.zoom=(scale==1)?"":scale}
else{var transformProperty=GetTransformProperty(elmt);if(transformProperty){var transformValue="scale("+scale+")";var oldTransformValue=elmt.style[transformProperty];var scaleReg=new RegExp(/[\s]*scale\(.*?\)/g);var newTransformValue=BuildNewCss(oldTransformValue,[scaleReg],transformValue);elmt.style[transformProperty]=newTransformValue}}};self.$EnableHWA=function(elmt){if(!elmt.style[GetTransformProperty(elmt)]||elmt.style[GetTransformProperty(elmt)]=="none")
elmt.style[GetTransformProperty(elmt)]="perspective(2000px)"};self.$DisableHWA=function(elmt){elmt.style[GetTransformProperty(elmt)]="none"};self.$GetStyleFloat=function(elmt){return IsBrowserIE()?elmt.style.styleFloat:elmt.style.cssFloat};self.$SetStyleFloat=function(elmt,float){if(IsBrowserIE())
elmt.style.styleFloat=float;else elmt.style.cssFloat=float};var ie8OffsetWidth=0;var ie8OffsetHeight=0;var ie8WindowResizeCallbackHandlers;function Ie8WindowResizeFilter(window){var trigger=!0;var checkElement=(IsBrowserIeQuirks()?window.document.body:window.document.documentElement);if(checkElement){var widthChange=checkElement.offsetWidth-ie8OffsetWidth;var heightChange=checkElement.offsetHeight-ie8OffsetHeight;if(widthChange||heightChange){ie8OffsetWidth+=widthChange;ie8OffsetHeight+=heightChange}
else trigger=!1}
trigger&&each(ie8WindowResizeCallbackHandlers,function(handler){handler()})}
self.$OnWindowResize=function(window,handler){if(IsBrowserIE()&&browserEngineVersion<9){if(!ie8WindowResizeCallbackHandlers){ie8WindowResizeCallbackHandlers=[handler];handler=self.$CreateCallback(null,Ie8WindowResizeFilter,window)}
else{ie8WindowResizeCallbackHandlers.push(handler);return}}
self.$AddEvent(window,"resize",handler)};self.$AddEvent=function(elmt,eventName,handler,useCapture){elmt=self.$GetElement(elmt);if(elmt.addEventListener){if(eventName=="mousewheel"){elmt.addEventListener("DOMMouseScroll",handler,useCapture)}
elmt.addEventListener(eventName,handler,useCapture)}
else if(elmt.attachEvent){elmt.attachEvent("on"+eventName,handler);if(useCapture&&elmt.setCapture){elmt.setCapture()}}
$JssorDebug$.$Execute(function(){if(!elmt.addEventListener&&!elmt.attachEvent){$JssorDebug$.$Fail("Unable to attach event handler, no known technique.")}})};self.$RemoveEvent=function(elmt,eventName,handler,useCapture){elmt=self.$GetElement(elmt);if(elmt.removeEventListener){if(eventName=="mousewheel"){elmt.removeEventListener("DOMMouseScroll",handler,useCapture)}
elmt.removeEventListener(eventName,handler,useCapture)}
else if(elmt.detachEvent){elmt.detachEvent("on"+eventName,handler);if(useCapture&&elmt.releaseCapture){elmt.releaseCapture()}}
$JssorDebug$.$Execute(function(){if(!elmt.removeEventListener&&!elmt.detachEvent){$JssorDebug$.$Fail("Unable to detach event handler, no known technique.")}})};self.$FireEvent=function(elmt,eventName){$JssorDebug$.$Execute(function(){if(!document.createEvent&&!document.createEventObject){$JssorDebug$.$Fail("Unable to fire event, no known technique.")}
if(!elmt.dispatchEvent&&!elmt.fireEvent){$JssorDebug$.$Fail("Unable to fire event, no known technique.")}});var evento;if(document.createEvent){evento=document.createEvent("HTMLEvents");evento.initEvent(eventName,!1,!1);elmt.dispatchEvent(evento)}
else{var ieEventName="on"+eventName;evento=document.createEventObject();elmt.fireEvent(ieEventName,evento)}};self.$AddEventBrowserMouseUp=function(handler,userCapture){self.$AddEvent((IsBrowserIe9Earlier())?document:window,"mouseup",handler,userCapture)};self.$RemoveEventBrowserMouseUp=function(handler,userCapture){self.$RemoveEvent((IsBrowserIe9Earlier())?document:window,"mouseup",handler,userCapture)};self.$AddEventBrowserMouseDown=function(handler,userCapture){self.$AddEvent((IsBrowserIe9Earlier())?document:window,"mousedown",handler,userCapture)};self.$RemoveEventBrowserMouseDown=function(handler,userCapture){self.$RemoveEvent((IsBrowserIe9Earlier())?document:window,"mousedown",handler,userCapture)};self.$CancelEvent=function(event){event=self.$GetEvent(event);if(event.preventDefault){event.preventDefault()}
event.cancel=!0;event.returnValue=!1};self.$StopEvent=function(event){event=self.$GetEvent(event);if(event.stopPropagation){event.stopPropagation()}
event.cancelBubble=!0};self.$CreateCallback=function(object,method){var initialArgs=[];for(var i=2;i<arguments.length;i++){initialArgs.push(arguments[i])}
var callback=function(){var args=initialArgs.concat([]);for(var i=0;i<arguments.length;i++){args.push(arguments[i])}
return method.apply(object,args)};$JssorDebug$.$LiveStamp(callback,"callback_"+($JssorUtils$.$GetNow()&11111111));return callback};var _Freeer;self.$FreeElement=function(elmt){if(!_Freeer)
_Freeer=self.$CreateDivElement();if(elmt){$JssorUtils$.$AppendChild(_Freeer,elmt);$JssorUtils$.$ClearInnerHtml(_Freeer)}};self.$SetInnerText=function(elmt,text){var textNode=document.createTextNode(text);self.$ClearInnerHtml(elmt);elmt.appendChild(textNode)};self.$GetInnerText=function(elmt){return elmt.textContent||elmt.innerText};self.$GetInnerHtml=function(elmt){return elmt.innerHTML};self.$SetInnerHtml=function(elmt,html){elmt.innerHTML=html};self.$ClearInnerHtml=function(elmt){elmt.innerHTML=""};self.$EncodeHtml=function(text){var div=self.$CreateDivElement();self.$SetInnerText(div,text);return self.$GetInnerHtml(div)};self.$DecodeHtml=function(html){var div=self.$CreateDivElement();self.$SetInnerHtml(div,html);return self.$GetInnerText(div)};self.$SelectElement=function(elmt){var userSelection;if(window.getSelection){userSelection=window.getSelection()}
var theRange=null;if(document.createRange){theRange=document.createRange();theRange.selectNode(elmt)}
else{theRange=document.body.createTextRange();theRange.moveToElementText(elmt);theRange.select()}
if(userSelection)
userSelection.addRange(theRange)};self.$DeselectElements=function(){if(document.selection){document.selection.empty()}else if(window.getSelection){window.getSelection().removeAllRanges()}};self.$GetChildren=function(elmt){var children=[];for(var tmpEl=elmt.firstChild;tmpEl;tmpEl=tmpEl.nextSibling){if(tmpEl.nodeType==1){children.push(tmpEl)}}
return children};function FindFirstChildByAttribute(elmt,attrValue,attrName,deep){if(!attrName)
attrName="u";for(elmt=elmt?elmt.firstChild:null;elmt;elmt=elmt.nextSibling){if(elmt.nodeType==1){if(elmt.getAttribute(attrName)==attrValue)
return elmt;if(deep){var childRet=FindFirstChildByAttribute(elmt,attrValue,attrName,deep);if(childRet)
return childRet}}}}
self.$FindFirstChildByAttribute=FindFirstChildByAttribute;function FindChildrenByAttribute(elmt,attrValue,attrName,deep){if(!attrName)
attrName="u";var ret=[];for(elmt=elmt?elmt.firstChild:null;elmt;elmt=elmt.nextSibling){if(elmt.nodeType==1){if(elmt.getAttribute(attrName)==attrValue)
ret.push(elmt);if(deep){var childRet=FindChildrenByAttribute(elmt,attrValue,attrName,deep);if(childRet.length)
ret=ret.concat(childRet)}}}
return ret}
self.$FindChildrenByAttribute=FindChildrenByAttribute;function FindFirstChildByTag(elmt,tagName,deep){for(elmt=elmt?elmt.firstChild:null;elmt;elmt=elmt.nextSibling){if(elmt.nodeType==1){if(elmt.tagName==tagName)
return elmt;if(deep){var childRet=FindFirstChildByTag(elmt,tagName,deep);if(childRet)
return childRet}}}}
self.$FindFirstChildByTag=FindFirstChildByTag;function FindChildrenByTag(elmt,tagName,deep){var ret=[];for(elmt=elmt?elmt.firstChild:null;elmt;elmt=elmt.nextSibling){if(elmt.nodeType==1){if(!tagName||elmt.tagName==tagName)
ret.push(elmt);if(deep){var childRet=FindChildrenByTag(elmt,tagName,!0);if(childRet.length)
ret=ret.concat(childRet)}}}
return ret}
self.$FindChildrenByTag=FindChildrenByTag;self.$GetElementsByTagName=function(elmt,tagName){return elmt.getElementsByTagName(tagName)};self.$Extend=function(target){for(var i=1;i<arguments.length;i++){var options=arguments[i];if(options){for(var name in options){target[name]=options[name]}}}
return target};self.$Unextend=function(target,options){$JssorDebug$.$Assert(options);var unextended={};for(var name in target){if(target[name]!=options[name]){unextended[name]=target[name]}}
return unextended};self.$IsUndefined=function(obj){return type(obj)=="undefined"};self.$IsFunction=function(obj){return type(obj)=="function"};self.$IsArray=Array.isArray||function(obj){return type(obj)=="array"};self.$IsString=function(obj){return type(obj)=="string"};self.$IsNumeric=function(obj){return!isNaN(parseFloat(obj))&&isFinite(obj)};self.$IsWindow=function(obj){return obj!=null&&obj==obj.window};self.$Type=type;self.$Each=each;self.$IsPlainObject=isPlainObject;self.$CreateDivElement=function(doc){return self.$CreateElement("DIV",doc)};self.$CreateSpanElement=function(doc){return self.$CreateElement("SPAN",doc)};self.$CreateElement=function(tagName,doc){doc=doc||document;return doc.createElement(tagName)};self.$EmptyFunction=function(){};self.$GetAttribute=function(elmt,name){return elmt.getAttribute(name)};self.$SetAttribute=function(elmt,name,value){elmt.setAttribute(name,value)};self.$GetClassName=function(elmt){return elmt.className};self.$SetClassName=function(elmt,className){elmt.className=className?className:""};self.$GetStyleCursor=function(elmt){return elmt.style.cursor};self.$SetStyleCursor=function(elmt,cursor){elmt.style.cursor=cursor};self.$GetStyleDisplay=function(elmt){return elmt.style.display};self.$SetStyleDisplay=function(elmt,display){elmt.style.display=display||""};self.$GetStyleOverflow=function(elmt){return elmt.style.overflow};self.$SetStyleOverflow=function(elmt,overflow){elmt.style.overflow=overflow};self.$GetStyleOverflowX=function(elmt){return elmt.style.overflowX};self.$SetStyleOverflowX=function(elmt,overflow){elmt.style.overflowX=overflow};self.$GetStyleOverflowY=function(elmt){return elmt.style.overflowY};self.$SetStyleOverflowY=function(elmt,overflow){elmt.style.overflowY=overflow};self.$GetParentNode=function(elmt){return elmt.parentNode};self.$HideElement=function(elmt){self.$SetStyleDisplay(elmt,"none")};self.$HideElements=function(elmts){for(var i=0;i<elmts.length;i++){self.$HideElement(elmts[i])}};self.$ShowElement=function(elmt,show){self.$SetStyleDisplay(elmt,show==!1?"none":"")};self.$ShowElements=function(elmts){for(var i=0;i<elmts.length;i++){self.$ShowElement(elmts[i])}};self.$GetStylePosition=function(elmt){return elmt.style.position};self.$SetStylePosition=function(elmt,position){elmt.style.position=position};self.$GetStyleTop=function(elmt){return parseInt(elmt.style.top,10)};self.$SetStyleTop=function(elmt,top){elmt.style.top=top+"px"};self.$GetStyleRight=function(elmt){return parseInt(elmt.style.right,10)};self.$SetStyleRight=function(elmt,right){elmt.style.right=right+"px"};self.$GetStyleBottom=function(elmt){return parseInt(elmt.style.bottom,10)};self.$SetStyleBottom=function(elmt,bottom){elmt.style.bottom=bottom+"px"};self.$GetStyleLeft=function(elmt){return parseInt(elmt.style.left,10)};self.$SetStyleLeft=function(elmt,left){elmt.style.left=left+"px"};self.$GetStyleWidth=function(elmt){return parseInt(elmt.style.width,10)};self.$SetStyleWidth=function(elmt,width){elmt.style.width=Math.max(width,0)+"px"};self.$GetStyleHeight=function(elmt){return parseInt(elmt.style.height,10)};self.$SetStyleHeight=function(elmt,height){elmt.style.height=Math.max(height,0)+"px"};self.$GetStyleCssText=function(elmt){return elmt.style.cssText};self.$SetStyleCssText=function(elmt,cssText){elmt.style.cssText=cssText};self.$RemoveAttribute=function(elmt,attrbuteName){elmt.removeAttribute(attrbuteName)};self.$GetBorderWidth=function(elmt){return parseInt(elmt.style.borderWidth,10)};self.$SetBorderWdith=function(elmt,width){elmt.style.width=width+"px"};self.$GetStyleMarginLeft=function(elmt){return parseInt(elmt.style.marginLeft,10)||0};self.$SetStyleMarginLeft=function(elmt,marginLeft){elmt.style.marginLeft=marginLeft+"px"};self.$GetStyleMarginTop=function(elmt){return parseInt(elmt.style.marginTop,10)||0};self.$SetStyleMarginTop=function(elmt,marginTop){elmt.style.marginTop=marginTop+"px"};self.$GetStyleMarginBottom=function(elmt){return parseInt(elmt.style.marginBottom,10)||0};self.$SetStyleMarginBottom=function(elmt,marginBottom){elmt.style.marginBottom=marginBottom+"px"};self.$GetStyleMarginRight=function(elmt){return parseInt(elmt.style.marginRight,10)||0};self.$SetStyleMarginRight=function(elmt,marginRight){elmt.style.marginRight=marginRight+"px"};self.$GetStyleBorder=function(elmt){return elmt.style.border};self.$SetStyleBorder=function(elmt,border){elmt.style.border=border};self.$GetStyleBorderWidth=function(elmt){return parseInt(elmt.style.borderWidth)};self.$SetStyleBorderWidth=function(elmt,borderWidth){elmt.style.borderWidth=borderWidth+"px"};self.$GetStyleBorderStyle=function(elmt){return elmt.style.borderStyle};self.$SetStyleBorderStyle=function(elmt,borderStyle){elmt.style.borderStyle=borderStyle};self.$GetStyleBorderColor=function(elmt){return elmt.style.borderColor};self.$SetStyleBorderColor=function(elmt,borderColor){elmt.style.borderColor=borderColor};self.$GetStyleVibility=function(elmt){return elmt.style.vibility};self.$SetStyleVisibility=function(elmt,visibility){elmt.style.visibility=visibility};self.$GetStyleZIndex=function(elmt){return parseInt(elmt.style.zIndex)||0};self.$SetStyleZIndex=function(elmt,zIndex){elmt.style.zIndex=Math.ceil(zIndex)};self.$GetStyleBackgroundColor=function(elmt){return elmt.style.backgroundColor};self.$SetStyleBackgroundColor=function(elmt,backgroundColor){elmt.style.backgroundColor=backgroundColor};self.$GetStyleColor=function(elmt){return elmt.style.color};self.$SetStyleColor=function(elmt,color){elmt.style.color=color};self.$GetStyleBackgroundImage=function(elmt){return elmt.style.backgroundImage};self.$SetStyleBackgroundImage=function(elmt,backgroundImage){elmt.style.backgroundImage=backgroundImage};self.$CanClearClip=function(){return IsBrowserIE()&&browserRuntimeVersion<10};self.$SetStyleClip=function(elmt,clip){if(clip){elmt.style.clip="rect("+Math.round(clip.$Top)+"px "+Math.round(clip.$Right)+"px "+Math.round(clip.$Bottom)+"px "+Math.round(clip.$Left)+"px)"}
else{var cssText=self.$GetStyleCssText(elmt);var clipRegs=[new RegExp(/[\s]*clip: rect\(.*?\)[;]?/i),new RegExp(/[\s]*cliptop: .*?[;]?/i),new RegExp(/[\s]*clipright: .*?[;]?/i),new RegExp(/[\s]*clipbottom: .*?[;]?/i),new RegExp(/[\s]*clipleft: .*?[;]?/i)];var newCssText=BuildNewCss(cssText,clipRegs,"");$JssorUtils$.$SetStyleCssText(elmt,newCssText)}};self.$GetStyleZoom=function(elmt){return elmt.style.zoom};self.$SetStyleZoom=function(elmt,zoom){return elmt.style.zoom=zoom};self.$SetStyleClear=function(elmt,clear){elmt.style.clear=clear};self.$GetNow=function(){return new Date().getTime()};self.$AppendChild=function(elmt,child){elmt.appendChild(child)};self.$AppendChildren=function(elmt,children){each(children,function(child){self.$AppendChild(elmt,child)})};self.$InsertBefore=function(elmt,child,refObject){elmt.insertBefore(child,refObject)};self.$InsertAdjacentHtml=function(elmt,where,text){elmt.insertAdjacentHTML(where,text)};self.$RemoveChild=function(elmt,child){elmt.removeChild(child)};self.$RemoveChildren=function(elmt,children){each(children,function(child){self.$RemoveChild(elmt,child)})};self.$ClearChildren=function(elmt){self.$RemoveChildren(elmt,self.$GetChildren(elmt))};self.$ParseInt=function(str,radix){return parseInt(str,radix||10)};self.$ParseFloat=function(str){return parseFloat(str)};self.$IsChild=function(elmtA,elmtB){var body=document.body;while(elmtB&&elmtA!=elmtB&&body!=elmtB){try{elmtB=elmtB.parentNode}catch(e){return!1}}
return elmtA==elmtB};self.$ToLowerCase=function(value){if(value)
value=value.toLowerCase();return value};self.$CloneNode=function(elmt,deep){return elmt.cloneNode(deep)};function LoadImageCallback(callback,image,abort){image.onload=null;image.abort=null;if(callback)
callback(image,abort)}
self.$LoadImage=function(src,callback){if(self.$IsBrowserOpera()&&browserRuntimeVersion<11.6||!src){LoadImageCallback(callback,null)}
else{var image=new Image();image.onload=self.$CreateCallback(null,LoadImageCallback,callback,image);image.onabort=self.$CreateCallback(null,LoadImageCallback,callback,image,!0);image.src=src}};self.$LoadImages=function(imageElmts,mainImageElmt,callback){var _ImageLoading=imageElmts.length+1;function LoadImageCompleteEventHandler(image,abort){_ImageLoading--;if(mainImageElmt&&image&&image.src==mainImageElmt.src)
mainImageElmt=image;!_ImageLoading&&callback&&callback(mainImageElmt)}
$JssorUtils$.$Each(imageElmts,function(imageElmt){$JssorUtils$.$LoadImage(imageElmt.src,LoadImageCompleteEventHandler)});LoadImageCompleteEventHandler()};self.$BuildElement=function(template,tagName,replacer,createCopy){if(createCopy)
template=$JssorUtils$.$CloneNode(template,!0);var templateHolders=$JssorUtils$.$GetElementsByTagName(template,tagName);for(var j=templateHolders.length-1;j>-1;j--){var templateHolder=templateHolders[j];var replaceItem=$JssorUtils$.$CloneNode(replacer,!0);$JssorUtils$.$SetClassName(replaceItem,$JssorUtils$.$GetClassName(templateHolder));$JssorUtils$.$SetStyleCssText(replaceItem,$JssorUtils$.$GetStyleCssText(templateHolder));var thumbnailPlaceHolderParent=$JssorUtils$.$GetParentNode(templateHolder);$JssorUtils$.$InsertBefore(thumbnailPlaceHolderParent,replaceItem,templateHolder);$JssorUtils$.$RemoveChild(thumbnailPlaceHolderParent,templateHolder)}
return template};var _MouseDownButtons;var _MouseOverButtons=[];function JssorButtonEx(elmt){var _Self=this;var _OriginClassName;var _IsMouseDown;var _IsActive;function Highlight(){var className=_OriginClassName;if(_IsMouseDown){className+='dn'}
else if(_IsActive){className+="av"}
$JssorUtils$.$SetClassName(elmt,className)}
function OnMouseDown(event){_MouseDownButtons.push(_Self);_IsMouseDown=!0;Highlight()}
_Self.$MouseUp=function(){_IsMouseDown=!1;Highlight()};_Self.$Activate=function(activate){_IsActive=activate;Highlight()};{elmt=self.$GetElement(elmt);if(!_MouseDownButtons){self.$AddEventBrowserMouseUp(function(){var oldMouseDownButtons=_MouseDownButtons;_MouseDownButtons=[];each(oldMouseDownButtons,function(button){button.$MouseUp()})});_MouseDownButtons=[]}
_OriginClassName=self.$GetClassName(elmt);$JssorUtils$.$AddEvent(elmt,"mousedown",OnMouseDown)}}
self.$Buttonize=function(elmt){return new JssorButtonEx(elmt)};var StyleGetter={$Opacity:self.$GetStyleOpacity,$Top:self.$GetStyleTop,$Left:self.$GetStyleLeft,$Width:self.$GetStyleWidth,$Height:self.$GetStyleHeight,$Position:self.$GetStylePosition,$Display:self.$GetStyleDisplay,$ZIndex:self.$GetStyleZIndex};var _StyleSetterReserved={$Opacity:self.$SetStyleOpacity,$Top:self.$SetStyleTop,$Left:self.$SetStyleLeft,$Width:self.$SetStyleWidth,$Height:self.$SetStyleHeight,$Display:self.$SetStyleDisplay,$Clip:self.$SetStyleClip,$MarginLeft:self.$SetStyleMarginLeft,$MarginTop:self.$SetStyleMarginTop,$Transform:self.$SetStyleTransform,$Position:self.$SetStylePosition,$ZIndex:self.$SetStyleZIndex};function GetStyleSetter(){return _StyleSetterReserved}
function GetStyleSetterEx(){GetStyleSetter();_StyleSetterReserved.$Transform=_StyleSetterReserved.$Transform;return _StyleSetterReserved}
self.$GetStyleSetter=GetStyleSetter;self.$GetStyleSetterEx=GetStyleSetterEx;self.$GetStyles=function(elmt,originStyles){GetStyleSetter();var styles={};each(originStyles,function(value,key){if(StyleGetter[key]){styles[key]=StyleGetter[key](elmt)}});return styles};self.$SetStyles=function(elmt,styles){var styleSetter=GetStyleSetter();each(styles,function(value,key){styleSetter[key]&&styleSetter[key](elmt,value)})};self.$SetStylesEx=function(elmt,styles){GetStyleSetterEx();self.$SetStyles(elmt,styles)};$JssorMatrix$=new function(){var _This=this;function Multiply(ma,mb){var acs=ma[0].length;var rows=ma.length;var cols=mb[0].length;var matrix=[];for(var r=0;r<rows;r++){var row=matrix[r]=[];for(var c=0;c<cols;c++){var unitValue=0;for(var ac=0;ac<acs;ac++){unitValue+=ma[r][ac]*mb[ac][c]}
row[c]=unitValue}}
return matrix}
_This.$ScaleX=function(matrix,sx){return _This.$ScaleXY(matrix,sx,0)};_This.$ScaleY=function(matrix,sy){return _This.$ScaleXY(matrix,0,sy)};_This.$ScaleXY=function(matrix,sx,sy){return Multiply(matrix,[[sx,0],[0,sy]])};_This.$TransformPoint=function(matrix,p){var pMatrix=Multiply(matrix,[[p.x],[p.y]]);return new $JssorPoint$(pMatrix[0][0],pMatrix[1][0])}};self.$CreateMatrix=function(alpha,scaleX,scaleY){var cos=Math.cos(alpha);var sin=Math.sin(alpha);return[[cos*scaleX,-sin*scaleY],[sin*scaleX,cos*scaleY]]};self.$GetMatrixOffset=function(matrix,width,height){var p1=$JssorMatrix$.$TransformPoint(matrix,new $JssorPoint$(-width/2,-height/2));var p2=$JssorMatrix$.$TransformPoint(matrix,new $JssorPoint$(width/2,-height/2));var p3=$JssorMatrix$.$TransformPoint(matrix,new $JssorPoint$(width/2,height/2));var p4=$JssorMatrix$.$TransformPoint(matrix,new $JssorPoint$(-width/2,height/2));return new $JssorPoint$(Math.min(p1.x,p2.x,p3.x,p4.x)+width/2,Math.min(p1.y,p2.y,p3.y,p4.y)+height/2)}};$JssorAnimator$=function(delay,duration,options,elmt,fromStyles,toStyles){delay=delay||0;var _This=this;var _AutoPlay;var _Hiden;var _CombineMode;var _PlayToPosition;var _PlayDirection;var _NoStop;var _TimeStampLastFrame=0;var _SubEasings;var _SubRounds;var _SubDurings;var _Callback;var _Position_Current=0;var _Position_Display=0;var _Hooked;var _Position_InnerBegin=delay;var _Position_InnerEnd=delay+duration;var _Position_OuterBegin;var _Position_OuterEnd;var _LoopLength;var _NestedAnimators=[];var _StyleSetter;function GetPositionRange(position,begin,end){var range=0;if(position<begin)
range=-1;else if(position>end)
range=1;return range}
function GetInnerPositionRange(position){return GetPositionRange(position,_Position_InnerBegin,_Position_InnerEnd)}
function GetOuterPositionRange(position){return GetPositionRange(position,_Position_OuterBegin,_Position_OuterEnd)}
function Shift(offset){_Position_OuterBegin+=offset;_Position_OuterEnd+=offset;_Position_InnerBegin+=offset;_Position_InnerEnd+=offset;_Position_Current+=offset;_Position_Display+=offset;$JssorUtils$.$Each(_NestedAnimators,function(animator){animator,animator.$Shift(offset)})}
function Locate(position,relative){var offset=position-_Position_OuterBegin+delay*relative;Shift(offset);return _Position_OuterEnd}
function GoToPosition(positionOuter,force){var trimedPositionOuter=positionOuter;if(_LoopLength&&(trimedPositionOuter>=_Position_OuterEnd||trimedPositionOuter<=_Position_OuterBegin)){trimedPositionOuter=((trimedPositionOuter-_Position_OuterBegin)%_LoopLength+_LoopLength)%_LoopLength+_Position_OuterBegin}
if(!_Hooked||_NoStop||force||_Position_Current!=trimedPositionOuter){var positionToDisplay=Math.min(trimedPositionOuter,_Position_OuterEnd);positionToDisplay=Math.max(positionToDisplay,_Position_OuterBegin);if(!_Hooked||_NoStop||force||positionToDisplay!=_Position_Display){if(toStyles){var interPosition=(positionToDisplay-_Position_InnerBegin)/duration;if(options.$Optimize&&$JssorUtils$.$IsBrowserChrome())
interPosition=Math.round(interPosition*duration/16)/duration*16;if(options.$Reverse)
interPosition=1-interPosition;var currentStyles={};for(var key in toStyles){var round=_SubRounds[key]||1;var during=_SubDurings[key]||[0,1];var propertyInterPosition=(interPosition-during[0])/during[1];propertyInterPosition=Math.min(Math.max(propertyInterPosition,0),1);propertyInterPosition=propertyInterPosition*round;var floorPosition=Math.floor(propertyInterPosition);if(propertyInterPosition!=floorPosition)
propertyInterPosition-=floorPosition;var easing=_SubEasings[key]||_SubEasings.$Default;var easingValue=easing(propertyInterPosition);var currentPropertyValue;var value=fromStyles[key];var toValue=toStyles[key];if($JssorUtils$.$IsNumeric(toValue)){currentPropertyValue=value+(toValue-value)*easingValue}
else{currentPropertyValue=$JssorUtils$.$Extend({$Offset:{}},fromStyles[key]);$JssorUtils$.$Each(toValue.$Offset,function(rectX,n){var offsetValue=rectX*easingValue;currentPropertyValue.$Offset[n]=offsetValue;currentPropertyValue[n]+=offsetValue})}
currentStyles[key]=currentPropertyValue}
if(fromStyles.$Zoom){currentStyles.$Transform={$Rotate:currentStyles.$Rotate||0,$Scale:currentStyles.$Zoom,$OriginalWidth:options.$OriginalWidth,$OriginalHeight:options.$OriginalHeight}}
if(toStyles.$Clip&&options.$Move){var styleFrameNClipOffset=currentStyles.$Clip.$Offset;var offsetY=(styleFrameNClipOffset.$Top||0)+(styleFrameNClipOffset.$Bottom||0);var offsetX=(styleFrameNClipOffset.$Left||0)+(styleFrameNClipOffset.$Right||0);currentStyles.$Left=(currentStyles.$Left||0)+offsetX;currentStyles.$Top=(currentStyles.$Top||0)+offsetY;currentStyles.$Clip.$Left-=offsetX;currentStyles.$Clip.$Right-=offsetX;currentStyles.$Clip.$Top-=offsetY;currentStyles.$Clip.$Bottom-=offsetY}
if(currentStyles.$Clip&&$JssorUtils$.$CanClearClip()&&!currentStyles.$Clip.$Top&&!currentStyles.$Clip.$Left&&(currentStyles.$Clip.$Right==options.$OriginalWidth)&&(currentStyles.$Clip.$Bottom==options.$OriginalHeight))
currentStyles.$Clip=null;$JssorUtils$.$Each(currentStyles,function(value,key){_StyleSetter[key]&&_StyleSetter[key](elmt,value)})}
_This.$OnInnerOffsetChange(_Position_Display-_Position_InnerBegin,positionToDisplay-_Position_InnerBegin)}
_Position_Display=positionToDisplay;$JssorUtils$.$Each(_NestedAnimators,function(animator,i){var nestedAnimator=positionOuter<_Position_Current?_NestedAnimators[_NestedAnimators.length-i-1]:animator;nestedAnimator.$GoToPosition(positionOuter,force)});var positionOld=_Position_Current;var positionNew=positionOuter;_Position_Current=trimedPositionOuter;_Hooked=!0;_This.$OnPositionChange(positionOld,positionNew)}}
function Join(animator,combineMode){$JssorDebug$.$Execute(function(){if(combineMode!==0&&combineMode!==1)
$JssorDebug$.$Fail("Argument out of range, the value of 'combineMode' should be either 0 or 1.")});if(combineMode)
animator.$Locate(_Position_OuterEnd,1);_Position_OuterEnd=Math.max(_Position_OuterEnd,animator.$GetPosition_OuterEnd());_NestedAnimators.push(animator)}
function PlayFrame(){if(_AutoPlay){var now=$JssorUtils$.$GetNow();var timeOffset=Math.min(now-_TimeStampLastFrame,$JssorUtils$.$IsBrowserOpera()?80:20);var timePosition=_Position_Current+timeOffset*_PlayDirection;_TimeStampLastFrame=now;if(timePosition*_PlayDirection>=_PlayToPosition*_PlayDirection)
timePosition=_PlayToPosition;GoToPosition(timePosition);if(!_NoStop&&timePosition*_PlayDirection>=_PlayToPosition*_PlayDirection){Stop(_Callback)}
else{$JssorUtils$.$Delay(PlayFrame,options.$Interval)}}}
function PlayToPosition(toPosition,callback,noStop){if(!_AutoPlay){_AutoPlay=!0;_NoStop=noStop
_Callback=callback;toPosition=Math.max(toPosition,_Position_OuterBegin);toPosition=Math.min(toPosition,_Position_OuterEnd);_PlayToPosition=toPosition;_PlayDirection=_PlayToPosition<_Position_Current?-1:1;_This.$OnStart();_TimeStampLastFrame=$JssorUtils$.$GetNow();PlayFrame()}}
function Stop(callback){if(_AutoPlay){_NoStop=_AutoPlay=_Callback=!1;_This.$OnStop();if(callback)
callback()}}
_This.$Play=function(positionLength,callback,noStop){PlayToPosition(positionLength?_Position_Current+positionLength:_Position_OuterEnd,callback,noStop)};_This.$PlayToPosition=function(position,callback,noStop){PlayToPosition(position,callback,noStop)};_This.$PlayToBegin=function(callback,noStop){PlayToPosition(_Position_OuterBegin,callback,noStop)};_This.$PlayToEnd=function(callback,noStop){PlayToPosition(_Position_OuterEnd,callback,noStop)};_This.$Stop=function(){Stop()};_This.$Continue=function(toPosition){PlayToPosition(toPosition)};_This.$GetPosition=function(){return _Position_Current};_This.$GetPlayToPosition=function(){return _PlayToPosition};_This.$GetPosition_Display=function(){return _Position_Display};_This.$GoToPosition=GoToPosition;_This.$GoToBegin=function(){GoToPosition(_Position_OuterBegin,!0)};_This.$GoToEnd=function(){GoToPosition(_Position_OuterEnd,!0)};_This.$Move=function(offset){GoToPosition(_Position_Current+offset)};_This.$CombineMode=function(){return _CombineMode};_This.$GetDuration=function(){return duration};_This.$IsPlaying=function(){return _AutoPlay};_This.$IsOnTheWay=function(){return _Position_Current>_Position_InnerBegin&&_Position_Current<=_Position_InnerEnd};_This.$SetLoopLength=function(length){_LoopLength=length};_This.$Locate=Locate;_This.$Shift=Shift;_This.$Join=Join;_This.$Combine=function(animator){Join(animator,0)};_This.$Chain=function(animator){Join(animator,1)};_This.$GetPosition_InnerBegin=function(){return _Position_InnerBegin};_This.$GetPosition_InnerEnd=function(){return _Position_InnerEnd};_This.$GetPosition_OuterBegin=function(){return _Position_OuterBegin};_This.$GetPosition_OuterEnd=function(){return _Position_OuterEnd};_This.$OnPositionChange=$JssorUtils$.$EmptyFunction;_This.$OnStart=$JssorUtils$.$EmptyFunction;_This.$OnStop=$JssorUtils$.$EmptyFunction;_This.$OnInnerOffsetChange=$JssorUtils$.$EmptyFunction;_This.$Version=$JssorUtils$.$GetNow();{options=$JssorUtils$.$Extend({$Interval:15},options);$JssorDebug$.$Execute(function(){options=$JssorUtils$.$Extend({$LoopLength:undefined,$Setter:undefined,$Easing:undefined},options)});_LoopLength=options.$LoopLength;_StyleSetter=$JssorUtils$.$Extend({},$JssorUtils$.$GetStyleSetter(),options.$Setter);_Position_OuterBegin=_Position_InnerBegin=delay;_Position_OuterEnd=_Position_InnerEnd=delay+duration;var _SubRounds=options.$Round||{};var _SubDurings=options.$During||{};_SubEasings=$JssorUtils$.$Extend({$Default:$JssorUtils$.$IsFunction(options.$Easing)&&options.$Easing||$JssorEasing$.$EaseSwing},options.$Easing)}};function $JssorPlayerClass$(){var _SelfPlayer=this;var _PlayerControllers=[];function PlayerController(playerElement){var _SelfPlayerController=this;var _PlayerInstance;var _PlayerInstantces=[];function OnPlayerInstanceDataAvailable(event){var srcElement=$JssorUtils$.$GetEventSrcElement(event);_PlayerInstance=srcElement.pInstance;$JssorUtils$.$RemoveEvent(srcElement,"dataavailable",OnPlayerInstanceDataAvailable);$JssorUtils$.$Each(_PlayerInstantces,function(playerInstance){if(playerInstance!=_PlayerInstance){playerInstance.$Remove()}});playerElement.pTagName=_PlayerInstance.tagName;_PlayerInstantces=null}
function HandlePlayerInstance(playerInstanceElement){var playerHandler;if(!playerInstanceElement.pInstance){var playerHandlerAttribute=$JssorUtils$.$GetAttribute(playerInstanceElement,"pHandler");if($JssorPlayer$[playerHandlerAttribute]){$JssorUtils$.$AddEvent(playerInstanceElement,"dataavailable",OnPlayerInstanceDataAvailable);playerHandler=new $JssorPlayer$[playerHandlerAttribute](playerElement,playerInstanceElement);_PlayerInstantces.push(playerHandler);$JssorDebug$.$Execute(function(){if($JssorUtils$.$Type(playerHandler.$Remove)!="function"){$JssorDebug$.$Fail("'pRemove' interface not implemented for player handler '"+playerHandlerAttribute+"'.")}})}}
return playerHandler}
_SelfPlayerController.$InitPlayerController=function(){if(!playerElement.pInstance&&!HandlePlayerInstance(playerElement)){var playerInstanceElements=$JssorUtils$.$GetChildren(playerElement);$JssorUtils$.$Each(playerInstanceElements,function(playerInstanceElement){HandlePlayerInstance(playerInstanceElement)})}}}
_SelfPlayer.$EVT_SWITCH=21;_SelfPlayer.$FetchPlayers=function(elmt){elmt=elmt||document.body;var playerElements=$JssorUtils$.$FindChildrenByAttribute(elmt,"player",null,!0);$JssorUtils$.$Each(playerElements,function(playerElement){if(!_PlayerControllers[playerElement.pId]){playerElement.pId=_PlayerControllers.length;_PlayerControllers.push(new PlayerController(playerElement))}
var playerController=_PlayerControllers[playerElement.pId];playerController.$InitPlayerController()})}}