
var fdSliderController;(function(){function fdSlider(inp,range,callback,classname,hide,tween,vertical){this._inp=inp;this._hideInput=hide;this._min=range[0]||0;this._max=range[1]||0;this._range=this._max-this._min;this._tween=tween;this._mouseX=0;this._timer=null;this._classname=classname;this._drag=false;this._kbEnabled=true;this._callback=callback;this._vertical=vertical;this._steps=inp.tagName.toLowerCase()=="input"?10:inp.options.length-1;this._resizeVal=0;this.NS_XHTML="http://www.w3.org/1999/xhtml";this.NS_STATE="http://www.w3.org/2005/07/aaa";this.events={stopevent:function(e){if(e==null)e=document.parentWindow.event;if(e.stopPropagation){e.stopPropagation();e.preventDefault();}
return false;},redrawEvent:function(e){if((self._vertical&&self.outerWrapper.offsetHeight!=self._resizeVal)||(!self._vertical&&self.outerWrapper.offsetWidth!=self._resizeVal)){self.events.redraw();};},redraw:function(){self.locate();try{var sW=self.outerWrapper.offsetWidth;var sH=self.outerWrapper.offsetHeight;var hW=self.handle.offsetWidth;var hH=self.handle.offsetHeight;var bH=self.bar.offsetHeight;var bW=self.bar.offsetWidth;var sI=self._steps;if(self._vertical){self.bar.style.height=Math.round(sH-hH)+"px";self.bar.style.left=Math.floor((sW-bW)/2)+"px";self.bar.style.top=Math.round(hH/2)+"px";self._incPx=(sH-hH)/sI<1?1:(sH-hH)/sI;}else{self.bar.style.width=Math.round(sW-hW)+"px";self.bar.style.left=Math.round(hW/2)+"px";self.bar.style.top=Math.floor((sH-bH)/2)+"px";self._incPx=(sW-hW)/sI<1?1:(sW-hW)/sI;};self.resetHandlePosition();self._resizeVal=(self._vertical)?sH:sW;}catch(err){};},onfocus:function(e){self.outerWrapper.className=self.outerWrapper.className.replace('focused','')+' focused';fdSliderController.addEvent(window,'DOMMouseScroll',self.events.trackmousewheel);fdSliderController.addEvent(document,'mousewheel',self.events.trackmousewheel);if(!window.opera)fdSliderController.addEvent(window,'mousewheel',self.events.trackmousewheel);self.doCallback();},onblur:function(e){self.outerWrapper.className=self.outerWrapper.className.replace(/focused|fd-fc-slider-hover|fd-slider-hover/g,'');fdSliderController.removeEvent(document,'mousewheel',self.events.trackmousewheel);fdSliderController.removeEvent(window,'DOMMouseScroll',self.events.trackmousewheel);if(!window.opera)fdSliderController.removeEvent(window,'mousewheel',self.events.trackmousewheel);},trackmousewheel:function(e){if(!self._kbEnabled)return;var delta=0;var e=e||window.event;if(e.wheelDelta){delta=e.wheelDelta/120;if(window.opera&&window.opera.version()<9.2)delta=-delta;}else if(e.detail){delta=-e.detail/3;};if(delta){var xtmp=self._vertical?self.handle.offsetTop:self.handle.offsetLeft;var wtmp=self._vertical?self.outerWrapper.offsetHeight-self.handle.offsetHeight:self.outerWrapper.offsetWidth-self.handle.offsetWidth;var inc=self._inp.tagName.toLowerCase()=="input"?Math.round(self._incPx/2)<1?1:Math.round(self._incPx/2):self._incPx;if(self._vertical)inc=-inc;if(delta<0){xtmp+=inc;xtmp=Math.ceil(xtmp);}else{xtmp-=inc;xtmp=Math.floor(xtmp);};if(xtmp<0)xtmp=0;else if(xtmp>wtmp)xtmp=wtmp;if(self._vertical)self.handle.style.top=xtmp+"px";else self.handle.style.left=xtmp+"px";self.updateInput(xtmp);};return self.events.stopevent(e);},onkeypress:function(e){if(e==null)e=document.parentWindow.event;if((e.keyCode>=35&&e.keyCode<=40)||!self._kbEnabled){return self.events.stopevent(e);};},onkeydown:function(e){if(!self._kbEnabled)return true;if(e==null)e=document.parentWindow.event;var kc=e.keyCode!=null?e.keyCode:e.charCode;if(kc<35||kc>40)return true;var xtmp=self._vertical?self.handle.offsetTop:self.handle.offsetLeft;var wtmp=self._vertical?self.outerWrapper.offsetHeight-self.handle.offsetHeight:self.outerWrapper.offsetWidth-self.handle.offsetWidth;var inc=self._inp.tagName.toLowerCase()=="input"?Math.round(self._incPx/2)<1?1:Math.round(self._incPx/2):self._incPx;if(self._vertical)inc=-inc;if(kc==37||kc==40){xtmp-=inc;xtmp=Math.floor(xtmp);}else if(kc==39||kc==38){xtmp+=inc;xtmp=Math.ceil(xtmp);}else if(kc==35){xtmp=wtmp;}else if(kc==36){xtmp=0;}
if(xtmp<0)xtmp=0;else if(xtmp>wtmp)xtmp=wtmp;self.handle.style[self._vertical?"top":"left"]=xtmp+"px";self.updateInput(xtmp);return self.events.stopevent(e);},onchange:function(e){self.resetHandlePosition();self.doCallback();return true;},onmouseover:function(e){this.className=this.className.replace(/fd\-slider\-hover/g,"")+' fd-slider-hover';},onmouseout:function(e){this.className=this.className.replace(/fd\-slider\-hover/g,"");},onHmouseup:function(e){e=e||window.event;fdSliderController.removeEvent(document,'mousemove',self.events.trackmouse);fdSliderController.removeEvent(document,'mouseup',self.events.onHmouseup);self._drag=false;self._kbEnabled=true;if(window.opera)try{setTimeout(function(){self.events.onfocus();},0);}catch(err){};return self.events.stopevent(e);},onHmousedown:function(e){e=e||window.event;self._mouseX=self._vertical?e.clientY:e.clientX;self.handleX=parseInt(self._vertical?self.handle.offsetTop:self.handle.offsetLeft)||0;self._drag=true;self._kbEnabled=false;fdSliderController.addEvent(document,'mousemove',self.events.trackmouse);fdSliderController.addEvent(document,'mouseup',self.events.onHmouseup);if(window.devicePixelRatio||(document.all&&!window.opera))try{setTimeout(function(){self.handle.focus();},0);}catch(err){};},onmouseup:function(e){e=e||window.event;fdSliderController.removeEvent(document,'mouseup',self.events.onmouseup);if(!self._tween){clearTimeout(self._timer);self._timer=null;self._kbEnabled=true;}
self.doCallback();return self.events.stopevent(e);},trackmouse:function(e){if(!e)var e=window.event;var x=self._vertical?self.handleX+(e.clientY-self._mouseX):self.handleX+(e.clientX-self._mouseX);if(x<0)x=0;var max=self._vertical?self.outerWrapper.offsetHeight-self.handle.offsetHeight:self.outerWrapper.offsetWidth-self.handle.offsetWidth;if(x>max)x=max;if(self._vertical)self.handle.style.top=x+"px";else self.handle.style.left=x+"px";self.updateInput(x);},onmousedown:function(e){var targ;if(!e)var e=window.event;if(e.target)targ=e.target;else if(e.srcElement)targ=e.srcElement;if(targ.nodeType==3)targ=targ.parentNode;if(targ.className.search("fd-slider-handle")!=-1){return true;};try{setTimeout(function(){self.handle.focus();},0);}catch(err){};clearTimeout(self._timer);self._timer=null;self._kbEnabled=false;self.locate();self._drag=false;var posx=0;var sLft=0;var sTop=0;if(document.documentElement&&document.documentElement.scrollTop){sTop=document.documentElement.scrollTop;sLft=document.documentElement.scrollLeft;}else if(document.body){sTop=document.body.scrollTop;sLft=document.body.scrollLeft;};if(e.pageX)posx=self._vertical?e.pageY:e.pageX;else if(e.clientX)posx=self._vertical?e.clientY+sTop:e.clientX+sLft;var diff=Math.round((self._vertical)?self.handle.offsetHeight/2:self.handle.offsetWidth/2);posx-=self._vertical?self._y+diff:self._x+diff;if(posx<0)posx=0;else if(!self._vertical&&posx>self.outerWrapper.offsetWidth-self.handle.offsetWidth)posx=self.outerWrapper.offsetWidth-self.handle.offsetWidth;else if(self._vertical&&posx>self.outerWrapper.offsetHeight-self.handle.offsetHeight)posx=self.outerWrapper.offsetHeight-self.handle.offsetHeight;if(self._tween){self.tweenTo(posx);}else{fdSliderController.addEvent(document,'mouseup',self.events.onmouseup);self._posx=posx;self.onTimer();};}};this.onTimer=function(){var xtmp=self._vertical?self.handle.offsetTop:self.handle.offsetLeft;if(self._posx<xtmp){xtmp-=self._incPx;xtmp=Math.floor(xtmp);if(xtmp<self._posx)xtmp=self._posx;}else{xtmp+=self._incPx;xtmp=Math.ceil(xtmp);if(xtmp>self._posx)xtmp=self._posx;};xtmp=Math.round(xtmp);self.handle.style[self._vertical?"top":"left"]=xtmp+"px";self.updateInput(xtmp);if(xtmp!=self._posx)self._timer=setTimeout(self.onTimer,200);else self._kbEnabled=true;};this.locate=function(){var curleft=0;var curtop=0;var obj=self.outerWrapper;try{while(obj.offsetParent){curleft+=obj.offsetLeft;curtop+=obj.offsetTop;obj=obj.offsetParent;};}catch(err){}
self._x=curleft;self._y=curtop;};this.tweenTo=function(x){self._kbEnabled=false;self._tweenX=parseInt(x);self._tweenB=parseInt(self._vertical?self.handle.style.top:self.handle.style.left);self._tweenC=self._tweenX-self._tweenB;self._tweenD=20;self._frame=0;if(!self._timer)self._timer=setTimeout(self.tween,50);};this.tween=function(){self._frame++;var c=self._tweenC;var d=20;var t=self._frame;var b=self._tweenB;var x=Math.ceil((t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b);self.handle.style[self._vertical?"top":"left"]=x+"px";self.updateInput(x);if(t!=d&&!self._md)self._timer=setTimeout(self.tween,20);else{self.handle.style[self._vertical?"top":"left"]=self._tweenX+"px";clearTimeout(self._timer);self._timer=null;self._kbEnabled=true;};};this.updateInput=function(x){var max=self._vertical?self.outerWrapper.offsetHeight-self.handle.offsetHeight:self.outerWrapper.offsetWidth-self.handle.offsetWidth;var inc=max/self._range;var val=Number(self._min)+Math.abs(Math.floor(x/inc));if(self._vertical)val=-val;if(val<self._min)val=self._min;else if(val>self._max)val=self._max;val=(val<=self._min+(self._max/2))?Math.round(val):Math.ceil(val);self.setInputValue(val);self.doCallback();};this.setInputValue=function(val){if(self._inp.tagName.toLowerCase()=="select"){try{self._inp.options[val].selected=true;self.setAttrNS(self.handle,self.NS_STATE,"valuenow",self._inp.options[val].value);self.setAttrNS(self.handle,self.NS_STATE,"valuetext",self._inp.options[val].text);}catch(err){};}else{self._inp.value=val;self.setAttrNS(self.handle,self.NS_STATE,"valuenow",val);self.setAttrNS(self.handle,self.NS_STATE,"valuetext",val);};};this.doCallback=function(){if(self._callback){var func;if(self._callback.indexOf(".")!=-1){var split=self._callback.split(".");func=window;for(var i=0,f;f=split[i];i++){if(f in func){func=func[f];}else{func="";break;};};}else if(self._callback in window){func=window[self._callback];};if(typeof func=="function"){func();};func=null;};};this.resetHandlePosition=function(){var value=self._inp.tagName.toLowerCase()=="input"?parseInt(self._inp.value,10):self._inp.selectedIndex;if(isNaN(value)||value<self._min)value=self._min;else if(value>self._max)value=self._max;self.setInputValue(value);var max=self._vertical?self.outerWrapper.offsetHeight-self.handle.offsetHeight:self.outerWrapper.offsetWidth-self.handle.offsetWidth;var inc=max/self._range;var tot=value-self._min;var pos=(tot*inc<(self._min+(self._range/2)))?Math.floor(tot*inc):Math.ceil(tot*inc);if(self._vertical){self.handle.style.top=Math.abs(max-pos)+"px";}else{self.handle.style.left=pos+"px";};};this.setAttrNS=function(elmTarget,uriNamespace,sAttrName,sAttrValue){if(typeof document.documentElement.setAttributeNS!='undefined'){elmTarget.setAttributeNS(uriNamespace,sAttrName,sAttrValue);}else{var nsMapping={"http://www.w3.org/1999/xhtml":"x:","http://www.w3.org/2005/07/aaa":"aaa:"};elmTarget.setAttribute(nsMapping[uriNamespace]+sAttrName,sAttrValue);};};this.findLabel=function(){var label;if(self._inp.parentNode&&self._inp.parentNode.tagName.toLowerCase()=="label")label=self._inp.parentNode;else{var labelList=document.getElementsByTagName('label');for(var lbl=0;lbl<labelList.length;lbl++){if((labelList[lbl]['htmlFor']&&labelList[lbl]['htmlFor']==self._inp.id)||(labelList[lbl].getAttribute('for')==self._inp.id)){label=labelList[lbl];break;};};};if(label&&!label.id){label.id=inp.id+"_label_"+fdSliderController.uniqueid++;};return label;};this.build=function(){if(self._hideInput)self._inp.style.display="none";else fdSliderController.addEvent(self._inp,'change',self.events.onchange);self.outerWrapper=document.createElement('div');self.outerWrapper.className="fd-slider"+(self._vertical?"-vertical ":" ")+self._classname;self.outerWrapper.id="fd-slider-"+inp.id;self.wrapper=document.createElement('span');self.wrapper.className="fd-slider-inner";self.bar=document.createElement('span');self.bar.className="fd-slider-bar";self.handle=document.createElement('button');self.handle.className="fd-slider-handle";self.handle.appendChild(document.createTextNode(" "));self.handle.setAttribute("type","button");self.handle.setAttribute("tabindex","0");self.outerWrapper.appendChild(self.wrapper);self.outerWrapper.appendChild(self.bar);self.outerWrapper.appendChild(self.handle);self._inp.parentNode.insertBefore(self.outerWrapper,self._inp);self.handle.setAttribute("tabindex","0");fdSliderController.addEvent(self.outerWrapper,"mouseover",self.events.onmouseover);fdSliderController.addEvent(self.outerWrapper,"mouseout",self.events.onmouseout);fdSliderController.addEvent(self.outerWrapper,"mousedown",self.events.onmousedown);fdSliderController.addEvent(self.handle,"keydown",self.events.onkeydown);fdSliderController.addEvent(self.handle,"keypress",self.events.onkeypress);fdSliderController.addEvent(self.handle,"focus",self.events.onfocus);fdSliderController.addEvent(self.handle,"blur",self.events.onblur);fdSliderController.addEvent(self.handle,"mousedown",self.events.onHmousedown);fdSliderController.addEvent(self.handle,"mouseup",self.events.onHmouseup);fdSliderController.addEvent(window,"resize",self.events.redrawEvent);self.setAttrNS(self.handle,self.NS_XHTML,"role","wairole:slider");self.setAttrNS(self.handle,self.NS_STATE,"valuemin",self._min);self.setAttrNS(self.handle,self.NS_STATE,"valuemax",self._max);var lbl=self.findLabel();if(lbl){self.setAttrNS(self.handle,self.NS_STATE,'labelledby',lbl.id);self.handle.id="fd-slider-handle-"+inp.id;lbl.setAttribute("for",self.handle.id);};if(document.getElementById("fd_slider_describedby")){self.setAttrNS(self.handle,self.NS_STATE,'describedby',"fd_slider_describedby");};self.events.redraw();};this.destroy=function(){try{self._callback=null;fdSliderController.removeEvent(self.outerWrapper,"mouseover",self.events.onmouseover);fdSliderController.removeEvent(self.outerWrapper,"mouseout",self.events.onmouseout);fdSliderController.removeEvent(self.outerWrapper,"mousedown",self.events.onmousedown);fdSliderController.removeEvent(self.handle,"keydown",self.events.onkeydown);fdSliderController.removeEvent(self.handle,"keypress",self.events.onkeypress);fdSliderController.removeEvent(self.handle,"focus",self.events.onfocus);fdSliderController.removeEvent(self.handle,"blur",self.events.onblur);fdSliderController.removeEvent(self.handle,"mousedown",self.events.onHmousedown);fdSliderController.removeEvent(self.handle,"mouseup",self.events.onHmouseup);fdSliderController.removeEvent(window,"resize",self.events.redraw);if(window.addEventListener&&!window.devicePixelRatio)window.removeEventListener('DOMMouseScroll',self.events.trackmousewheel,false);else{fdSliderController.removeEvent(document,"mousewheel",self.events.trackmousewheel);fdSliderController.removeEvent(window,"mousewheel",self.events.trackmousewheel);};}catch(err){}
self.wrapper=self.bar=self.handle=self.outerWrapper=self._timer=null;};var self=this;self.build();};fdSliderController={sliders:{},uniqueid:0,forms:{},addEvent:function(obj,type,fn){if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);}
obj.attachEvent("on"+type,obj[type+fn]);}else{obj.addEventListener(type,fn,true);}},removeEvent:function(obj,type,fn){if(obj.detachEvent){try{obj.detachEvent("on"+type,obj[type+fn]);obj[type+fn]=null;}catch(err){};}else{obj.removeEventListener(type,fn,true);}},onload:function(e){for(slider in fdSliderController.sliders){fdSliderController.sliders[slider].resetHandlePosition();}},joinNodeLists:function(){if(!arguments.length){return[];}
var nodeList=[];for(var i=0;i<arguments.length;i++){for(var j=0,item;item=arguments[i][j];j++){nodeList[nodeList.length]=item;};};return nodeList;},construct:function(e){var regExp_1=/fd_range_([-]{0,1}[0-9]+){1}_([-]{0,1}[0-9]+){1}/;var regExp_2=/fd_callback_([\S-]+)/;var regExp_3=/fd_classname_([a-zA-Z0-9_\-]+)/;var inputs=fdSliderController.joinNodeLists(document.getElementsByTagName('input'),document.getElementsByTagName('select'));var range,callback,classname,hide,tween,vertical;for(var i=0,inp;inp=inputs[i];i++){if((inp.tagName.toLowerCase()=="input"&&inp.type=="text"&&inp.className&&inp.className.search(regExp_1)!=-1)||(inp.tagName.toLowerCase()=="select"&&inp.className.search(/fd_slider/)!=-1)){if(!inp.id)inp.id=="sldr"+fdSliderController.uniqueid++;if(document.getElementById("fd-slider-"+inp.id))continue;if(inp.tagName.toLowerCase()=="select"){range=[0,inp.options.length-1];hide=true;}else{range=inp.className.match(regExp_1);range=[range[1],range[2]]
hide=inp.className.search(/fd_hide_input/ig)!=-1;};callback=inp.className.search(regExp_2)!=-1?inp.className.match(regExp_2)[1].replace("-","."):"";classname=inp.className.search(regExp_3)!=-1?inp.className.match(regExp_3)[1]:"";tween=inp.className.search(/fd_tween/ig)!=-1;vertical=inp.className.search(/fd_vertical/ig)!=-1;fdSliderController.sliders[inp.id]=new fdSlider(inp,range,callback,classname,hide,tween,vertical);};};},deconstruct:function(e){for(slider in fdSliderController.sliders){fdSliderController.sliders[slider].destroy();};fdSliderController.sliders=null;fdSliderController.removeEvent(window,"load",fdSliderController.construct);fdSliderController.removeEvent(window,"unload",fdSliderController.deconstruct);}}})();fdSliderController.addEvent(window,"unload",fdSliderController.deconstruct);fdSliderController.addEvent(window,"load",fdSliderController.construct);