function CyberSlider(B,M,D,L,T,Q,R,Y,H,C,J,S,P,E,X,G,W,Z,V,F){this.pContainer=document.getElementById(B);if(!this.pContainer){throw (new TypeError("Container ID must exist, could not create slider object"))}this.pContainer.style.cssFloat="left";this.pContainer.style.margin="0";this.pContainer.style.width=C;this.pContainer.style.height=J;var U=B+"_lowpointer";var K=B+"_highpointer";var I=B+"_track";var O=B+"_activeoverlay";var N=false;if(H!=null&&H!=""){N=true}var A='<div id="'+I+'" style="height:'+J+"px;width:"+C+"px;background:url("+Y+");position:relative;overflow:hidden;"+S+'">'+(N?'   <div id="'+O+'" style="background:url('+H+");width:0px; height:"+J+'px;position:absolute;"></div>':"")+'   <div id="'+U+'" style="background:url('+P+");width:"+X+"px; height:"+G+'px;position:absolute; cursor: pointer;"></div>'+(M?'   <div id="'+K+'" style="background:url('+E+");width:"+X+"px; height:"+G+'px;position:absolute; cursor: pointer;"></div>':"")+"</div>";
this.pContainer.innerHTML=A;this.pTrack=document.getElementById(I);if(!this.pTrack){throw (new TypeError("Could not create new slider track."))}this.pTrack.iRealLowBound=D;this.pTrack.iRealHighBound=L;if(T<=0){T=1}D=Math.round(parseFloat(D)/parseFloat(T));L=Math.round(parseFloat(L)/parseFloat(T));Q=Math.round(parseFloat(Q)/parseFloat(T));R=Math.round(parseFloat(R)/parseFloat(T));this.pTrack.strContainerId=B;this.pTrack.iLowBound=D;this.pTrack.iHighBound=L;this.pTrack.iResolution=T;this.pTrack.iStartLowAt=Q;this.pTrack.iStartHighAt=R;
this.pTrack.strBgImage=Y;this.pTrack.iBgWidth=C-W-Z;this.pTrack.iBgHeight=J;this.pTrack.iFgWidth=X;this.pTrack.iFgHeight=G;this.pTrack.onMoveComplete=V;this.pTrack.onMove=F;this.pTrack.pMyself=this;this.pTrack.iDistance=this.pTrack.iBgWidth-X;this.pTrack.xMax=0;this.pTrack.yMax=0;this.pTrack.xMin=W;this.pTrack.yMin=0;this.pTrack.bInDrag=false;this.pTrack.iNumElements=L-D;this.pTrack.fLowValue=Q;this.pTrack.fHighValue=R;this.pTrack.iEffectiveBound=0;this.pTrack.bRangeSlider=M;this.pTrack.bActiveOverlay=N;this.pTrack.scale=((this.pTrack.iHighBound-this.pTrack.iLowBound)/this.pTrack.iDistance);
this.pTrack.iEffectiveBound=D;this.pTrack.xMax=this.pTrack.iDistance;this.pTrack.yMax=0;this.pTrack.pLowPointer=document.getElementById(U);if(!this.pTrack.pLowPointer){throw (new TypeError("Could not create new low slider pointer."))}if(this.pTrack.bRangeSlider){this.pTrack.pHighPointer=document.getElementById(K);if(!this.pTrack.pHighPointer){throw (new TypeError("Could not create new high slider pointer."))}}if(this.pTrack.bActiveOverlay){this.pTrack.pActiveOverlayPointer=document.getElementById(O);if(!this.pTrack.pActiveOverlayPointer){throw (new TypeError("Could not create new active overlay pointer."))
}this.pTrack.pActiveOverlayPointer.pTrack=this.pTrack}this.pTrack.pLowPointer.pTrack=this.pTrack;if(this.pTrack.bRangeSlider){this.pTrack.pHighPointer.pTrack=this.pTrack}this.pTrack.pLowPointer.startOffsetX=0;this.pTrack.pLowPointer.startOffsetY=0;this.pTrack.pLowPointer.iHiLoInd=0;if(this.pTrack.bRangeSlider){this.pTrack.pHighPointer.startOffsetX=0;this.pTrack.pHighPointer.startOffsetY=0;this.pTrack.pHighPointer.iHiLoInd=1;this.pTrack.pHighPointer.onmousedown=cyberSliderHandleOnMouseDown}this.pTrack.pLowPointer.onmousedown=cyberSliderHandleOnMouseDown;
this.pTrack.onmousedown=cyberSliderHandleTrackOnClick;if(this.pTrack.bActiveOverlay){this.pTrack.pActiveOverlayPointer.onmousedown=cyberSliderHandleOverlayOnClick}this.SetValues=function(a,e,c){var b=Math.round(parseFloat(a)/parseFloat(T));var d=Math.round(parseFloat(e)/parseFloat(T));this.realSetValues(b,d,c)};this.realSetValues=function(a,f,d){if(this.pTrack.bRangeSlider&&a>f){var c=a;a=f;f=c}if(a>this.pTrack.iHighBound){a=this.pTrack.iHighBound}if(a<this.pTrack.iLowBound){a=this.pTrack.iLowBound}if(this.pTrack.bRangeSlider){if(f>this.pTrack.iHighBound){f=this.pTrack.iHighBound
}if(f<this.pTrack.iLowBound){f=this.pTrack.iLowBound}this.pTrack.fHighValue=f}this.pTrack.fLowValue=a;var e=(a-this.pTrack.iEffectiveBound)/this.pTrack.scale;if(this.pTrack.bRangeSlider){var b=(f-this.pTrack.iEffectiveBound)/this.pTrack.scale}this.getSetObjectLeft(this.pTrack.pLowPointer,Math.round(e+this.pTrack.xMin));if(this.pTrack.bRangeSlider){this.getSetObjectLeft(this.pTrack.pHighPointer,Math.round(b+this.pTrack.xMin))}if(this.pTrack.bActiveOverlay){if(this.pTrack.bRangeSlider){this.pTrack.pActiveOverlayPointer.style.left=this.getSetObjectLeft(this.pTrack.pLowPointer)+this.pTrack.iFgWidth+"px";
this.pTrack.pActiveOverlayPointer.style.width=this.getSetObjectLeft(this.pTrack.pHighPointer)-this.getSetObjectLeft(this.pTrack.pLowPointer)+"px"}else{this.pTrack.pActiveOverlayPointer.style.left=this.pTrack.xMin;this.pTrack.pActiveOverlayPointer.style.width=this.getSetObjectLeft(this.pTrack.pLowPointer)+"px"}}if(d&&this.pTrack.onMoveComplete){this.pTrack.onMoveComplete(this)}};this.GetLowValue=function(){var a=(this.pTrack.fLowValue*this.pTrack.iResolution);if(a<this.pTrack.iRealLowBound){a=this.pTrack.iRealLowBound
}return a};this.GetHighValue=function(){var a=(this.pTrack.fHighValue*this.pTrack.iResolution);if(a>this.pTrack.iRealHighBound){a=this.pTrack.iRealHighBound}return a};this.Destroy=function(){if(document.removeEventListener){document.removeEventListener("mousemove",cyberSliderHandleOnMouseMove,false);document.removeEventListener("mouseup",cyberSliderHandleOnMouseUp,false)}else{if(document.detachEvent){document.detachEvent("onmousemove",cyberSliderHandleOnMouseMove);document.detachEvent("onmouseup",cyberSliderHandleOnMouseUp)
}}this.pTrack.pLowPointer.onmousedown=null;if(this.pTrack.bRangeSlider){this.pTrack.pHighPointer.onmousedown=null}this.pTrack.onclick=null;this.pContainer.innerHTML=""};this.getSetObjectLeft=function(a,b){if(a.style&&(typeof (a.style.left)=="string")){if(typeof (b)=="number"){a.style.left=b+"px"}else{b=parseInt(a.style.left);if(isNaN(b)){b=0}}}else{if(a.style&&a.style.pixelLeft){if(typeof (b)=="number"){a.style.pixelLeft=b}else{b=a.style.pixelLeft}}}return b};this.findPosY=function(b){var a=0;if(document.getElementById||document.all){if(!b.offsetParent){a+=b.offsetTop
}while(b.offsetParent){a+=b.offsetTop;b=b.offsetParent}}else{if(document.layers){a+=b.y}}return a};this.findPosX=function(a){var b=0;if(document.getElementById||document.all){while(a.offsetParent){b+=a.offsetLeft;a=a.offsetParent}}else{if(document.layers){b+=a.x}}return b};this.getSetObjectTop=function(a,b){if(a.style&&(typeof (a.style.top)=="string")){if(typeof (b)=="number"){a.style.top=b+"px"}else{b=parseInt(a.style.top);if(isNaN(b)){b=0}}}else{if(a.style&&a.style.pixelTop){if(typeof (b)=="number"){a.style.pixelTop=b
}else{b=a.style.pixelTop}}}return b};this.HandleTrackOnClick=function(b){var g=0;if(b.pageX){g=b.pageX}else{if(b.clientX){g=b.clientX+(document.body.scrollLeft?document.body.scrollLeft:0)}}var e=g-this.findPosX(this.pTrack)-(this.pTrack.iFgWidth/2)-this.pTrack.xMin;var c=Math.round((e*this.pTrack.scale+this.pTrack.iEffectiveBound));var d=(c-this.pTrack.iEffectiveBound)/(this.pTrack.scale);if(d>this.pTrack.xMax){d=this.pTrack.xMax}if(d<this.pTrack.xMin){d=0}if(this.pTrack.bRangeSlider){var f=this.findPosX(this.pTrack.pLowPointer);
var a=this.findPosX(this.pTrack.pHighPointer);if(Math.abs(g-f)>Math.abs(g-a)){this.getSetObjectLeft(this.pTrack.pHighPointer,Math.round(d+this.pTrack.xMin));this.pTrack.fHighValue=c}else{this.getSetObjectLeft(this.pTrack.pLowPointer,Math.round(d+this.pTrack.xMin));if(this.getSetObjectLeft(this.pTrack.pLowPointer)>this.getSetObjectLeft(this.pTrack.pHighPointer)){this.getSetObjectLeft(this.pTrack.pLowPointer,this.getSetObjectLeft(this.pTrack.pHighPointer));this.getSetObjectLeft(this.pTrack.pHighPointer,Math.round(d+this.pTrack.xMin));
this.pTrack.fHighValue=c}else{this.pTrack.fLowValue=c}}}else{this.getSetObjectLeft(this.pTrack.pLowPointer,Math.round(d+this.pTrack.xMin));this.pTrack.fLowValue=c}if(this.pTrack.bActiveOverlay){if(this.pTrack.bRangeSlider){this.pTrack.pActiveOverlayPointer.style.left=this.getSetObjectLeft(this.pTrack.pLowPointer)+this.pTrack.iFgWidth+"px";this.pTrack.pActiveOverlayPointer.style.width=this.getSetObjectLeft(this.pTrack.pHighPointer)-this.getSetObjectLeft(this.pTrack.pLowPointer)+"px"}else{this.pTrack.pActiveOverlayPointer.style.left=this.pTrack.xMin;
this.pTrack.pActiveOverlayPointer.style.width=this.getSetObjectLeft(this.pTrack.pLowPointer)+"px"}}if(this.pTrack.onMoveComplete){this.pTrack.onMoveComplete(this)}};this.HandleOnMouseDown=function(a){if(g_pCurrentMovingPointer){g_pCurrentMovingPointer.startOffsetX=this.getSetObjectLeft(g_pCurrentMovingPointer)-a.screenX;g_pCurrentMovingPointer.startOffsetY=this.getSetObjectTop(g_pCurrentMovingPointer)-a.screenY;if(this.pTrack.pHighPointer){g_pCurrentMovingPointer.startHiX=this.getSetObjectLeft(this.pTrack.pHighPointer)
}else{g_pCurrentMovingPointer.startHiX=this.pTrack.xMax}if(this.pTrack.pLowPointer){g_pCurrentMovingPointer.startLoX=this.getSetObjectLeft(this.pTrack.pLowPointer)}else{g_pCurrentMovingPointer.startHiX=this.pTrack.xMin}this.pTrack.bInDrag=true;if(window.addEventListener){document.addEventListener("mousemove",cyberSliderHandleOnMouseMove,false);document.addEventListener("mouseup",cyberSliderHandleOnMouseUp,false)}else{document.attachEvent("onmouseup",cyberSliderHandleOnMouseUp);document.attachEvent("onmousemove",cyberSliderHandleOnMouseMove)
}}return false};this.HandleOnMouseMove=function(b){if(this.pTrack.bInDrag&&g_pCurrentMovingPointer){var a=g_pCurrentMovingPointer.startOffsetX+b.screenX;if(a>this.pTrack.xMax+this.pTrack.xMin){a=this.pTrack.xMax+this.pTrack.xMin}if(a<this.pTrack.xMin){a=this.pTrack.xMin}var d=a;var e=(parseFloat(this.pTrack.iDistance)/parseFloat(this.pTrack.iNumElements))*Math.round(parseFloat(this.pTrack.iNumElements)*parseFloat(d)/parseFloat(this.pTrack.iDistance));var c=Math.round((e*this.pTrack.scale+this.pTrack.iEffectiveBound));
if(g_pCurrentMovingPointer.iHiLoInd){if(c<this.pTrack.fLowValue){return }this.pTrack.fHighValue=c;if(this.pTrack.bRangeSlider&&a<g_pCurrentMovingPointer.startLoX){a=this.getSetObjectLeft(this.pTrack.pLowPointer)}}else{if(this.pTrack.bRangeSlider&&c>this.pTrack.fHighValue){return }this.pTrack.fLowValue=c;if(this.pTrack.bRangeSlider&&a>g_pCurrentMovingPointer.startHiX){a=this.getSetObjectLeft(this.pTrack.pHighPointer)}}this.getSetObjectLeft(g_pCurrentMovingPointer,a);if(this.pTrack.bActiveOverlay){if(this.pTrack.bRangeSlider){this.pTrack.pActiveOverlayPointer.style.left=this.getSetObjectLeft(this.pTrack.pLowPointer)+this.pTrack.iFgWidth+"px";
this.pTrack.pActiveOverlayPointer.style.width=this.getSetObjectLeft(this.pTrack.pHighPointer)-this.getSetObjectLeft(this.pTrack.pLowPointer)+"px"}else{this.pTrack.pActiveOverlayPointer.style.left=this.pTrack.xMin;this.pTrack.pActiveOverlayPointer.style.width=this.getSetObjectLeft(this.pTrack.pLowPointer)+"px"}}if(this.pTrack.onMove){this.pTrack.onMove(this)}return false}return };this.HandleOnMouseUp=function(a){if(this.pTrack.bInDrag&&g_pCurrentMovingPointer){var c=null;if(g_pCurrentMovingPointer.iHiLoInd){c=(this.pTrack.fHighValue)?this.pTrack.fHighValue:0
}else{c=(this.pTrack.fLowValue)?this.pTrack.fLowValue:0}var f=(c-this.pTrack.iEffectiveBound)/(this.pTrack.scale);f=(f>this.pTrack.xMax)?this.pTrack.xMax:f;f=(f<this.pTrack.xMin)?this.pTrack.xMin:f;if(g_pCurrentMovingPointer){var b=this.findPosX(g_pCurrentMovingPointer);if(!this.pTrack.bRangeSlider||g_pCurrentMovingPointer.iHiLoInd){var e=this.findPosX(this.pTrack.pLowPointer);if(b<e){f+=(this.pTrack.iFgWidth/2)}}else{var d=this.findPosX(this.pTrack.pHighPointer);if(b>=d){f-=(this.pTrack.iFgWidth/2)}}this.getSetObjectLeft(g_pCurrentMovingPointer,f)
}if(document.removeEventListener){document.removeEventListener("mousemove",cyberSliderHandleOnMouseMove,false);document.removeEventListener("mouseup",cyberSliderHandleOnMouseUp,false)}else{if(document.detachEvent){document.detachEvent("onmousemove",cyberSliderHandleOnMouseMove);document.detachEvent("onmouseup",cyberSliderHandleOnMouseUp)}}}this.pTrack.bInDrag=false;this.realSetValues(this.pTrack.fLowValue,this.pTrack.fHighValue,true)};this.realSetValues(Q,R,false)}var g_pCurrentMovingPointer=null;
function cyberSliderHandleOnMouseDown(A){if(!A){A=window.event}var B=(A.target)?A.target:A.srcElement;if(B&&B.pTrack){g_pCurrentMovingPointer=B;return B.pTrack.pMyself.HandleOnMouseDown(A)}}function cyberSliderHandleOnMouseMove(A){if(!A){A=window.event}var B=g_pCurrentMovingPointer;if(B&&B.pTrack){return B.pTrack.pMyself.HandleOnMouseMove(A)}}function cyberSliderHandleOnMouseUp(A){if(!A){A=window.event}var B=g_pCurrentMovingPointer;if(B&&B.pTrack){return B.pTrack.pMyself.HandleOnMouseUp(A)}}function cyberSliderHandleTrackOnClick(A){if(!A){A=window.event
}var B=(A.target)?A.target:A.srcElement;if(B&&B.pMyself){return B.pMyself.HandleTrackOnClick(A)}}function cyberSliderHandleOverlayOnClick(A){if(!A){A=window.event}var B=(A.target)?A.target:A.srcElement;if(B&&B.pTrack){return B.pTrack.pMyself.HandleTrackOnClick(A)}};

	function commify(Num) {
			var newNum = "";
			var newNum2 = "";
			var count = 0;
			
			//Explicitly convert value to string to access string properties (length, charAt)
			Num = Num.toString()
			
			//Don't need to do anything if value is less than 1000 (3 digits)
			if (Num.length <= 3) {
				return Num;
			}

			//this loop actually adds the commas 
			for (var k = Num.length-1; k >= 0; k--) {
				var oneChar = Num.charAt(k);
				
				if (count == 3) {
					newNum += ",";
					newNum += oneChar;
					count = 1;
					continue;
				} else {
					newNum += oneChar;
					count ++;
				}
			} //but now the string is reversed!

			//re-reverse the string
			for (var k = newNum.length-1; k >= 0; k--) {
				var oneChar = newNum.charAt(k);
				newNum2 += oneChar;
			}

			return newNum2;
		}