function Slider(name){this.leftValue=0;this.rightValue=1;this.defaultValue=0;this.offsetX=0;this.offsetY=0;this.maxSlide=172;this.buttonWidth=15;this.buttonHeight=28;this.buttonImg="sliderbutton.gif";this.buttonHiliteImg="sliderhibutton.gif";this.imgPath="";this.orientation="h";this.writeSlider=Slider.writeSlider;this.placeSlider=Slider.placeSlider;this.makeEventHandler=Slider.makeEventHandler;this.isPrototype=Slider.isPrototype;this.getValue=Slider.getValue;this.setValue=Slider.setValue;this.MouseOver=Slider.MouseOver;this.MouseOut=Slider.MouseOut;this.MouseDown=Slider.MouseDown;this.MouseUp=Slider.MouseUp;this.MouseSlide=Slider.MouseSlide;this.onmouseover=null;this.onmouseout=null;this.onmousedown=null;this.onmouseup=null;this.onslide=null;this.onchange=null;this.onclick=null;this.onmousemove=null;if(!window.sliders)window.sliders=new Array();this.name=name||"slider"+window.sliders.length;window.sliders[window.sliders.length]=this;window.sliders[this.name]=this;if(!window.sliderDrag)window.sliderDrag=new Object();}
Slider.writeSlider=function(){var proto=this.prototype||this;if(!proto.loImg||!proto.hiImg){proto.loImg=new Image(proto.buttonWidth,proto.buttonHeight);proto.hiImg=new Image(proto.buttonWidth,proto.buttonHeight);proto.loImg.src=proto.imgPath + proto.buttonImg;proto.hiImg.src=proto.imgPath +(proto.buttonHiliteImg||proto.buttonImg);if(proto.buttonOverImg){proto.ovImg=new Image(proto.buttonWidth,proto.buttonHeight);proto.ovImg.src=proto.imgPath + proto.buttonOverImg;}
}
if(proto !=this){this.loImg=proto.loImg;this.hiImg=proto.hiImg;if(proto.ovImg)this.ovImg=proto.ovImg;this.orientation=proto.orientation;this.maxSlide=proto.maxSlide;}
var style='<STYLE TYPE="text/css"><!--\n' +'#'+this.name+'Button{visibility:hidden;position:absolute;width:'+ proto.buttonWidth +'px;height:'+ proto.buttonHeight +'px;z-index:1;}\n' +'--></STYLE>';var content='<DIV ID="'+this.name+'Button">'+'<IMG ID="'+this.name+'ButtonImg" SRC="'+proto.loImg.src+'" WIDTH='+proto.buttonWidth+' HEIGHT='+proto.buttonHeight+'>'+'</DIV>';if(document.getElementById||document.layers||document.all){document.writeln(style);document.writeln(content);}
if(document.layers){this.button=document.layers[this.name+"Button"];this.button.img=this.button.document.images[0];this.button.clip.width=proto.buttonWidth;this.button.clip.height=proto.buttonHeight;this.button.captureEvents(Event.MOUSEOVER|Event.MOUSEDOWN|Event.MOUSEOUT);this.button.onmousedown=this.MouseDown;this.button.onmouseout=this.MouseOut;this.button.onmouseover=this.MouseOver;}
else if(document.all){this.button=document.all[this.name+"Button"];this.button.img=document.all[this.name+"ButtonImg"];this.button.style.pixelWidth=proto.buttonWidth;this.button.style.pixelHeight=proto.buttonHeight;this.button.onmousedown=this.MouseDown;this.button.onmouseout=this.MouseOut;this.button.onmouseover=this.MouseOver;}
else if(document.getElementById){this.button=document.getElementById(this.name+"Button");this.button.img=document.getElementById(this.name+"ButtonImg");this.button.style.width=proto.buttonWidth +"px";this.button.style.height=proto.buttonHeight +"px";this.button.addEventListener("mousedown",this.MouseDown,false);this.button.addEventListener("mouseout",this.MouseOut,false);this.button.addEventListener("mouseover",this.MouseOver,false);}
this.onmouseover=this.makeEventHandler(this.onmouseover);this.onmouseout=this.makeEventHandler(this.onmouseout);this.onmousedown=this.makeEventHandler(this.onmousedown);this.onmouseup=this.makeEventHandler(this.onmouseup);this.onslide=this.makeEventHandler(this.onslide);this.onchange=this.makeEventHandler(this.onchange);this.onclick=this.makeEventHandler(this.onclick);this.button.slider=this;if(document.all||document.getElementById)this.button=this.button.style;}
Slider.placeSlider=function(imgName,layer){var proto=this.prototype||this;var doc=(document.layers&&layer)?((typeof(layer)=='string')? document.layers[layer].document:layer.document):document;imgName=imgName||this.name+'RailImg';this.rail=(typeof(imgName)=='string')? doc.images[imgName]:imgName;var x=proto.offsetX;var y=proto.offsetY;if(document.layers){this.button.left=x;this.button.top=y;}
else if(document.all){this.button.pixelLeft=x;this.button.pixelTop=y;}
else if(document.getElementById){this.button.left=x+"px";this.button.top=y+"px";}
this.offset=(proto.orientation=="h")? y:x;this.setValue(this.defaultValue,true);this.button.visibility="inherit";}
Slider.isPrototype=function(){for(var i=0;i<window.sliders.length;i++){window.sliders[i].prototype=window.sliders[i].prototype||this;}
}
Slider.MouseOver=function(e){if(this.slider.ovImg){this.img.src=this.slider.ovImg.src;}
if(this.slider.onmouseover){var evtX=evtY=0;if(!e)e=window.event;if(typeof(e.pageX)=='number'){evtX=e.pageX;evtY=e.pageY;}
else if(typeof(e.clientX)=='number'){evtX=e.clientX +(document.body.scrollLeft||0);evtY=e.clientY +(document.body.scrollTop||0);}
CatchSliderMouseMove(evtX,evtY);}
}
Slider.MouseOut=function(e){if(this.slider.ovImg){this.img.src=this.slider.loImg.src;}
if(this.slider.onmouseout){}
if(this.slider.onmouseover){HideSliderTooltip();}
}
Slider.MouseDown=function(e){if(mutexCounter.getLocks()!=0)return false;var slider=this.slider;window.sliderDrag.dragLayer=this;window.sliderDrag.dragged=false;if(document.layers){if(e.which>1)return true;window.sliderDrag.offX=e.pageX - this.left + slider.offset;window.sliderDrag.offY=e.pageY - this.top + slider.offset;}
else if(document.all){window.sliderDrag.offX=window.event.clientX - this.style.pixelLeft + slider.offset;window.sliderDrag.offY=window.event.clientY - this.style.pixelTop + slider.offset;window.event.cancelBubble=true;}
else if(document.getElementById){if(e.button>0)return true;window.sliderDrag.offX=e.pageX - parseInt(this.style.left)+ slider.offset;window.sliderDrag.offY=e.pageY - parseInt(this.style.top)+ slider.offset;if(e.cancelable)e.preventDefault();e.stopPropagation();}
document.onmousemove=slider.MouseSlide;document.onmouseup=slider.MouseUp;if(document.captureEvents){document.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);}
this.img.src=slider.hiImg.src;if(slider.onmousedown){var evtX=evtY=0;if(!e)e=window.event;if(typeof(e.pageX)=='number'){evtX=e.pageX;evtY=e.pageY;}
else if(typeof(e.clientX)=='number'){evtX=e.clientX +(document.body.scrollLeft||0);evtY=e.clientY +(document.body.scrollTop||0);}
createZoomDIV(evtX,evtY);}
return false;}
Slider.MouseUp=function(e){var l=window.sliderDrag.dragLayer;var slider=l.slider;document.onmousemove=null;document.onmouseup=null;if(document.releaseEvents){document.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);}
window.sliderDrag.dragLayer=null;l.img.src=slider.loImg.src;if(slider.onchange){slider.onchange(e);}
if(slider.onmouseup){var evtX=evtY=0;if(!e)e=window.event;if(typeof(e.pageX)=='number'){evtX=e.pageX;evtY=e.pageY;}
else if(typeof(e.clientX)=='number'){evtX=e.clientX +(document.body.scrollLeft||0);evtY=e.clientY +(document.body.scrollTop||0);}
loadZoomMap(evtX,evtY);}
if(!window.sliderDrag.dragged&&slider.onclick){slider.onclick(e);}
return false;}
Slider.MouseSlide=function(e){var l=window.sliderDrag.dragLayer;var slider=l.slider;window.sliderDrag.dragged=true;if(document.layers){if(slider.orientation=="v"){l.left=Math.max(Math.min(e.pageX - window.sliderDrag.offX,slider.maxSlide),0)+ slider.offset;}
else
{l.top=Math.max(Math.min(e.pageY - window.sliderDrag.offY,slider.maxSlide),0)+ slider.offset;}
}
else if(document.all){if(slider.orientation=="v"){l.style.pixelLeft=document.body.scrollLeft + document.documentElement.scrollLeft + Math.max(Math.min(window.event.clientX - window.sliderDrag.offX,slider.maxSlide),0)+ slider.offset;}
else
{l.style.pixelTop=document.documentElement.scrollTop + Math.max(Math.min(window.event.clientY - window.sliderDrag.offY,slider.maxSlide),0)+ slider.offset;}
window.event.cancelBubble=true;}
else if(document.getElementById){if(slider.orientation=="v"){l.style.left=(Math.max(Math.min(e.pageX - window.sliderDrag.offX,slider.maxSlide),0)+ slider.offset)+"px";}
else
{l.style.top=(Math.max(Math.min(e.pageY - window.sliderDrag.offY,slider.maxSlide),0)+ slider.offset)+"px";}
if(e.cancelable){e.preventDefault();}
e.stopPropagation();}
if(slider.onchange){slider.onchange(e);}
if(slider.onslide){slider.onslide(e);}
if(slider.onmousemove){var evtX=evtY=0;if(!e)e=window.event;if(typeof(e.pageX)=='number'){evtX=e.pageX;evtY=e.pageY;}
else if(typeof(e.clientX)=='number'){evtX=e.clientX +(document.body.scrollLeft||0);evtY=e.clientY +(document.body.scrollTop||0);}
CatchSliderMouseMove(evtX,evtY);}
if(slider.onmousedown){var evtX=evtY=0;if(!e)e=window.event;if(typeof(e.pageX)=='number'){evtX=e.pageX;evtY=e.pageY;}
else if(typeof(e.clientX)=='number'){evtX=e.clientX +(document.body.scrollLeft||0);evtY=e.clientY +(document.body.scrollTop||0);}
}
return false;}
Slider.getValue=function(){var pos=(this.orientation=="v")? parseInt(this.button.left):parseInt(this.button.top);return this.leftValue +(this.rightValue-this.leftValue)*(pos-this.offset)/this.maxSlide;}
Slider.setValue=function(value,ignore){if(typeof(value)=="string"){value=parseFloat(value);}
if(isNaN(value)){value=this.defaultValue;}
var rangeValue=(this.rightValue>=this.leftValue)?Math.min(Math.max(value,this.leftValue),this.rightValue)- this.leftValue:Math.max(Math.min(value,this.leftValue),this.rightValue)- this.leftValue;if(document.layers){if(this.orientation=="v"){this.button.left=this.maxSlide*rangeValue/(this.rightValue-this.leftValue)+ this.offset;}
else
{this.button.top=this.maxSlide*rangeValue/(this.rightValue-this.leftValue)+ this.offset;}
}
else if(document.getElementById){if(this.orientation=="v"){this.button.left=this.maxSlide*rangeValue/(this.rightValue-this.leftValue)+ this.offset +"px";}
else
{this.button.top=this.maxSlide*rangeValue/(this.rightValue-this.leftValue)+ this.offset +"px";}
}
else if(document.all){if(this.orientation=="v"){this.button.pixelLeft=this.maxSlide*rangeValue/(this.rightValue-this.leftValue)+ this.offset;}
else
{this.button.pixelTopt=this.maxSlide*rangeValue/(this.rightValue-this.leftValue)+ this.offset;}
}
if(this.onchange&&(!ignore)){this.onchange(null);}
}
Slider.makeEventHandler=function(f){return(typeof(f)=="string")? new Function('e',f):((typeof(f)=="function")? f:null);}
function toDecimals(val,n){if(isNaN(n)){return val;}
if(n<=0){return Math.round(val);}
for(var m=0;m<n;m++){val*=10;}
val=Math.round(val);valstr=val.toString();len=valstr.length;if(len>n){valstr=valstr.substring(0,len-n)+"."+ valstr.substring(len-n,len);}
else
{while(valstr.length<n){valstr="0" + valstr;}
valstr="0." + valstr;}
return valstr;}
