
function target(e){if(e.target)return e.target;if(e.srcElement)return e.srcElement;return null;}
function drawSliderByVal(slider,i){var knob=slider.getElementsByTagName('img')[i];var x=slider.unitWidth*(slider.vals[i]-slider.min)-(knob.clientWidth/2);knob.style.left=x+"px";}
function setSliderByClientX(slider,clientX,i,snapOut){var knob=slider.getElementsByTagName('img')[i];var x=clientX-findPosX(slider)+knob.clientWidth/2;slider.vals[i]=(x/slider.unitWidth)+slider.min;if(snapOut&&i==0)
slider.vals[i]=Math.floor(slider.vals[i]/slider.snap)*slider.snap;else if(snapOut&&i==1)
slider.vals[i]=Math.ceil(slider.vals[i]/slider.snap)*slider.snap;if(slider.vals.length>1){if(i==0&&slider.vals[0]>=slider.vals[1]-slider.snap){slider.vals[0]=slider.vals[1]-slider.snap;}else if(i==1&&slider.vals[1]<=slider.vals[0]+slider.snap){slider.vals[1]=slider.vals[0]+slider.snap;}}
if(slider.vals[i]>slider.max)slider.vals[i]=slider.max;if(slider.vals[i]<slider.min)slider.vals[i]=slider.min;drawSliderByVal(slider,i);if(slider.snap&&slider.snap>1){slider.vals[i]=Math.round(slider.vals[i]/slider.snap)*slider.snap;}
slider.onchange(slider.vals,slider.num);}
function sliderMouseMove(e){if(activeSlider<0||!activeImg)return;setSliderByClientX(activeImg.parentNode,e.clientX-clickOffsetX,activeKnob);stopEvent(e);}
function sliderFromEvent(e){if(!e&&window.event)e=window.event;if(!e)return false;var el=target(e);if(!el.id||!el.id.match(/slider\d+/))el=el.parentNode;if(!el)return false;if(!el.id||!el.id.match(/slider\d+/))return false;return el;}
function knobFromEvent(e){if(!e&&window.event)e=window.event;if(!e)return false;var knob=target(e);var el=knob.parentNode;if(!el||!el.id||!el.id.match(/slider\d+/))return false;return knob;}
function closestKnobFromEvent(e){if(!e&&window.event)e=window.event;if(!e)return false;var s=document.getElementById('slider01');var ks=s.getElementsByTagName('img');if(!ks)return false;var knob=(findPosX(ks[0])-e.clientX>e.clientX-findPosX(ks[1]))?ks[0]:ks[1];return knob;}
function attachSliderEvents(){var divs=document.getElementsByTagName('div');var divNum;for(var i=0;i<divs.length;i++){var d=divs[i];if(divNum=d.id.match(/\bslider(\d+)\b/)){divNum=parseInt(divNum[1]);var s=slider[divNum];d.min=s.min;d.max=s.max;d.vals=typeof(s.val)=='number'?[s.val]:s.vals;d.snap=s.snap;d.onchange=slider[divNum].onchange;d.num=divNum;d.unitWidth=d.scrollWidth/(d.max-d.min);var knobs=d.getElementsByTagName('img');for(var n=0;n<d.vals.length;n++){knobs[n].num=n;if(d.vals[n]<s.min||d.vals[n]>s.max)
d.vals[n]=(n==0)?s.min:s.max;drawSliderByVal(d,n);}
d.style.visibility='visible';d.onchange(d.vals,divNum);addAnEvent(d,'mousedown',function(e){var k=knobFromEvent(e);if(k){clickOffsetX=e.clientX-findPosX(k);}else{var t=target(e);if(!t)return;k=closestKnobFromEvent(e);if(!k)return;clickOffsetX=6;if(t.className=='sldbg'){setSliderByClientX(k.parentNode,e.clientX-clickOffsetX,k.num)}else{setSliderByClientX(k.parentNode,e.clientX-clickOffsetX,k.num,true)
stopEvent(e);return;}};activeSlider=k.parentNode.num;activeKnob=k.num;activeImg=k;activeImg.src=sliderHImg.src;stopEvent(e);});addAnEvent(document,'mouseup',function(e){if(activeSlider!=-1){var slider=activeImg.parentNode;if(typeof(slider.snap)!='undefined'){slider.vals[activeKnob]=Math.round(slider.vals[activeKnob]/slider.snap)*slider.snap;drawSliderByVal(slider,activeKnob);slider.onchange(slider.vals,slider.num);}
activeSlider=-1;activeKnob=-1;activeImg.src=sliderImg.src;activeImg=null;stopEvent(e);}});addAnEvent(d,'mouseover',function(e){var t=target(e);if(t&&t.tagName=='IMG'&&t.src==sliderImg.src)
t.src=sliderHImg.src;});addAnEvent(d,'mouseout',function(e){var t=target(e);if(!activeImg&&t&&t.tagName=='IMG'&&t.src==sliderHImg.src)
t.src=sliderImg.src;});}}}
function stopEvent(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}}
addAnEvent(window,'load',attachSliderEvents);addAnEvent(document,'mousemove',sliderMouseMove);var activeSlider=-1;var activeKnob=-1;var activeImg=null;var clickOffsetX=-1;function findPosX(obj)
{var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft
obj=obj.offsetParent;}}
else if(obj.x)
curleft+=obj.x;return curleft;}
function addAnEvent(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}}