StepTimingFunction={timingFunctionForStepCount:function(a){return function(b){return((b*(a-1))>>0)/((a-1))
}}};DownloadCounter=Class.create();Object.extend(DownloadCounter.prototype,{initialize:function(a){this._url=a;
this.loadData();this._isCounting=true},setIsCounting:function(a){this._isCounting=a
},stop:function(){if(this._isCounting){if(this._drawTimeout){window.clearTimeout(this._drawTimeout)
}this.setIsCounting(false);if(this._delegate&&typeof this._delegate.counterDidStop==="function"){this._delegate.counterDidStop(this)
}}},start:function(){if(!this._isCounting){this.loadData();this.setIsCounting(true);
if(this._delegate&&typeof this._delegate.counterDidStart==="function"){this._delegate.counterDidStart(this)
}}},isCounting:function(){return this._isCounting},_delegate:null,setDelegate:function(a){this._delegate=a
},delegate:function(){return this._delegate},loadData:function(){if(this._nextUpdateTimeout){window.clearTimeout(this._nextUpdateTimeout);
this._nextUpdateTimeout=null}new Ajax.Request((this._url+"?r="+Math.random()),{method:"get",onSuccess:this.dataRequestDidFinishLoading.bind(this)})
},dataRequestDidFinishLoading:function(o){var k=o.responseText.split("|"),n,d,j,g,l,h,b,f,e,m,a,i,c;
localServerBasedReferenceTime=Date.parse(o.getResponseHeader("Date"));if(k.length===3){n=k[0].split(" ");
d=n[1];date=n[0].split("-");this.setRate(parseInt(k[2])/3600000);l=date[0];g=date[1];
j=date[2];a=Date.parse(g+" "+l+", "+j+" "+d+" GMT-0700");e=new Date(a+3600000);
m=e.getTime()-a+1000;this._nextUpdateTimeout=setTimeout(this.loadData.bind(this),m);
if(typeof localServerBasedReferenceTime==="number"){this._lastReferenceTime=localServerBasedReferenceTime
}else{b=new Date();this._lastReferenceTime=b.getTime()}f=this._lastReferenceTime-a;
i=Math.floor(parseInt(k[1])+f*(this._rate));this.setCurrentCount(i);this.setNeedsDisplayIfNeeded()
}},setNeedsDisplayIfNeeded:function(){if(!this._drawTimeout){this._drawTimeout=setTimeout(this.draw.bind(this),this._drawRefreshRate)
}},setElement:function(c){this._element=c;var b=this._element.getElementsByClassName("digitGroupSeparator");
if(b.length>0){var a=b[0];this._element.removeChild(a);this.setDigitGroupSeparatorTemplateElement(a)
}this._element.empty();this.createDigitElementsIfNeeded();this.setNeedsDisplayIfNeeded()
},setDigitGroupSeparatorTemplateElement:function(a){this._digitGroupSeparatorTemplateElement=a
},_currentCount:0,setCurrentCount:function(a){if(a!==this._currentCount){this._currentCount=a;
this.createDigitElementsIfNeeded()}},digitTemplateElement:function(){if(!this._digitTemplateElement){this._digitTemplateElement=document.createElement("span");
$(this._digitTemplateElement).addClassName("digit");var a=document.createElement("div"),b=document.createElement("div"),c=document.createElement("div");
$(a).addClassName("digitText");$(b).addClassName("digitImage");this._digitTemplateElement.appendChild(a);
this._digitTemplateElement.appendChild(b);$(c).addClassName("digitImageElement");
b.appendChild(c.cloneNode(true));b.appendChild(c)}return this._digitTemplateElement
},createDigitElementsIfNeeded:function(){if(this._element&&(!this._digitElements||this._digitElements.length!==this._currentCount.toString().length)){this._element.empty();
this._createDigitElements()}},_createDigitElements:function(){if(!this._digitElements){this._digitElements=[]
}var e=0,b=(this._maxCount&&this._currentCount>=this._maxCount)?this._maxCount.toString().length:this._currentCount.toString().length,c=document.createDocumentFragment(),a,h=this.digitTemplateElement(),g=this._digitGroupSeparatorTemplateElement,d=(this._maxCount&&this._currentCount>=this._maxCount)?String(this._maxCount):String(this._currentCount),f;
if(!g){g=document.createElement("span");$(g).addClassName("digitGroupSeparator")
}for(e=0+this._digitElements.length;e<b;e++){a=h.cloneNode(true);f=parseInt(d.charAt(b-(e+1)));
a.lastChild.style.top="-"+(f*(this._digitImageAnimationCount*this._digitImageHeight))+"px";
this._digitElements[e]=a;if(e>0&&((e)%3==0)){c.insertBefore(g.cloneNode(true),c.firstChild)
}c.insertBefore(a,c.firstChild)}this._element.insertBefore(c,this._element.firstChild)
},currentCount:function(){return this._currentCount},setRate:function(a){this._rate=a
},rate:function(){return this._rate},_drawRefreshRate:50,_digitImageHeight:52,setDigitImageHeight:function(a){this._digitImageHeight=a
},_digitImageAnimationCount:7,setDigitImageAnimationCount:function(a){this._digitImageAnimationCount=a
},_maxCount:false,setMaxCount:function(a){this._maxCount=a},draw:function(){window.clearTimeout(this._drawTimeout);
this._drawTimeout=null;var h=this._drawRefreshRate,e,j,k,c,a,l,o,b,n,d,m,p=this._digitImageHeight*this._digitImageAnimationCount,g,f=this._digitElements,q;
if(this._element){m=String(this._currentCount);this._currentCount=this._currentCount+Math.floor(this._rate*h);
if(this._delegate&&typeof this._delegate.counterDidReachValue==="function"){this._delegate.counterDidReachValue(this,this._currentCount)
}if(this._maxCount&&this._currentCount>=this._maxCount){this._isCounting=false}if(!this._isCounting){return
}e=(this._maxCount&&this._currentCount>=this._maxCount)?String(this._maxCount):String(this._currentCount);
j=e.length;k=j-1;for(c=k;c>=0;c--){l=parseInt(e.charAt(c));o=parseInt(m.charAt(c));
if(l!==o){if(!((k-c)<f.length)){this._createDigitElements()}a=f[k-c].lastChild;
if(a.___animating!==true){n=o*p;if(l>o){b=l*p}else{b=(o+(10-o)+l)*p}if(a.style.top!==(d="-"+n+"px")){a.style.top=d
}g=1+((b-n)/this._digitImageHeight);a.___animating=true;q=new Effect.Move(a,{x:0,y:(-1*b),duration:0.4,mode:"absolute",transition:StepTimingFunction.timingFunctionForStepCount(g)});
q.__element=a;q.finish=function(){this.__element.___animating=false}}}}}this._lastReferenceTime=(this._lastReferenceTime+h);
this.setNeedsDisplayIfNeeded()}});
