var defaultSliderLength=100;var defaultOrientation='horizontal';var slidersList={};var getElement=function(id){return(document.all?document.all[id]:document.getElementById(id));};function sliderLeft(elem,pos){if(!(elem=getElement(elem)))return 0;if(elem.style&&(typeof(elem.style.left)=='string')){if(typeof(pos)=='number'&&!isNaN(pos))elem.style.left=pos+'px';else{pos=parseInt(elem.style.left);if(isNaN(pos))pos=0;}}else if(elem.style&& elem.style.pixelLeft){if(typeof(pos)=='number'&&!isNaN(pos))elem.style.pixelLeft=pos;else pos=elem.style.pixelLeft;}return pos;}function sliderTop(elem,pos){if(!(elem=getElement(elem)))return 0;if(elem.style&&(typeof(elem.style.top)=='string')){if(typeof(pos)=='number'&&!isNaN(pos))elem.style.top=pos+'px';else{pos=parseInt(elem.style.top);if(isNaN(pos))pos=0;}}else if(elem.style&& elem.style.pixelTop){if(typeof(pos)=='number'&&!isNaN(pos))elem.style.pixelTop=pos;else pos=elem.style.pixelTop;}return pos;}function moveSlider(evnt){var evnt=(!evnt)?window.event:evnt;if(mouseover){var slider2=getAttrAsElement(slider,'slider2');x=slider.startOffsetX+evnt.screenX;y=slider.startOffsetY+evnt.screenY;if(x>slider.xMax)x=slider.xMax;if(x<0)x=0;if(y>slider.yMax)y=slider.yMax;if(y<0)y=0;if(slider.type=='min'){if(x>sliderLeft(slider2.id)){x=sliderLeft(slider2.id);}if(y>sliderTop(slider2.id)){y=sliderTop(slider2.id);}}else{if(x<sliderLeft(slider2.id)){x=sliderLeft(slider2.id);}if(y<sliderTop(slider2.id)){y=sliderTop(slider2.id);}}sliderLeft(slider.id,x);sliderTop(slider.id,y);sliderVal=x+y;sliderPos=(slider.distance/ display.valuecount)*Math.round(display.valuecount*sliderVal/ slider.distance);v=Math.round((sliderPos*slider.scale+slider.from)*Math.pow(10,display.decimals))/Math.pow(10,display.decimals);display.value=v;var valueText=GetValue(slider.displayType,v);getAttrAsElement(display,'display').innerHTML=valueText;setSliderAltText(slider.id,valueText);return false;}return;}function setSliderValue(sliderid,val){slider=slidersList[sliderid];if(!slider)return;initSlider(slider);slider2=getAttrAsElement(slider,'slider2');display=getAttrAsElement(slider,'display');x=parseInt((val-slider.from)/slider.scale);y=parseInt((val-slider.from)/slider.scale);if(x>slider.xMax)x=slider.xMax;if(x<0)x=0;if(y>slider.yMax)y=slider.yMax;if(y<0)y=0;if(slider.type=='min'){if(x>sliderLeft(slider2.id)){x=sliderLeft(slider2.id);}if(y>sliderTop(slider2.id)){y=sliderTop(slider2.id);}}else{if(x<sliderLeft(slider2.id)){x=sliderLeft(slider2.id);}if(y<sliderTop(slider2.id)){y=sliderTop(slider2.id);}}sliderLeft(slider.id,x);sliderTop(slider.id,y);sliderVal=x+y;sliderPos=(slider.distance/ display.valuecount)*Math.round(display.valuecount*sliderVal/ slider.distance);v=Math.round((sliderPos*slider.scale+slider.from)*Math.pow(10,display.decimals))/Math.pow(10,display.decimals);display.value=v;var valueText=GetValue(slider.displayType,v);getAttrAsElement(display,'display').innerHTML=valueText;setSliderAltText(slider.id,valueText);}function slide(evnt){if(!evnt)evnt=window.event;slider=(evnt.target)?evnt.target:evnt.srcElement;if(slider.getAttribute('slider'))slider=getElement(slider.getAttribute('slider'));slider.type=getSliderType(slider);orientation=getSliderOrientation(slider);slider.distance=readAttrAsInt(slider,'distance',defaultSliderLength);display=getAttrAsElement(slider,'display');display.sliderId=slider.id;display.decimals=readAttrAsInt(display,'decimals',0);display.valuecount=readAttrAsInt(display,'valuecount',slider.distance+1);from=readAttrAsFloat(display,'from',0);to=readAttrAsFloat(display,'to',slider.distance);slider.scale=(to-from)/slider.distance;if(orientation=='vertical'){slider.from=to;slider.xMax=0;slider.yMax=slider.distance;slider.scale=-slider.scale;}else{slider.from=from;slider.xMax=slider.distance;slider.yMax=0;}slider.startOffsetX=sliderLeft(slider.id)-evnt.screenX;slider.startOffsetY=sliderTop(slider.id)-evnt.screenY;mouseover=true;document.onmousemove=moveSlider;document.onmouseup=sliderMouseUp;return false;}function initSlider(item){item.type=getSliderType(item);orientation=getSliderOrientation(item);item.distance=readAttrAsInt(item,'distance',defaultSliderLength);displayItem=getAttrAsElement(item,'display');displayItem.sliderId=item.id;displayItem.decimals=readAttrAsInt(displayItem,'decimals',0);displayItem.valuecount=readAttrAsInt(displayItem,'valuecount',item.distance+1);from=readAttrAsFloat(displayItem,'from',0);to=readAttrAsFloat(displayItem,'to',item.distance);item.scale=(to-from)/item.distance;if(orientation=='vertical'){item.from=to;item.xMax=0;item.yMax=item.distance;item.scale=-item.scale;}else{item.from=from;item.xMax=item.distance;item.yMax=0;}item.startOffsetX=sliderLeft(item.id);item.startOffsetY=sliderTop(item.id);}function sliderMouseUp(){if(mouseover){v=(display.value)?display.value:0;pos=(v-slider.from)/(slider.scale);if(slider.yMax==0){pos=(pos>slider.xMax)?slider.xMax:pos;pos=(pos<0)?0:pos;sliderLeft(slider.id,pos);}if(slider.xMax==0){pos=(pos>slider.yMax)?slider.yMax:pos;pos=(pos<0)?0:pos;sliderTop(slider.id,pos);}if(document.removeEventListener){document.removeEventListener('mousemove',moveSlider,false);document.removeEventListener('mouseup',sliderMouseUp,false);}else if(document.detachEvent){document.detachEvent('onmousemove',moveSlider);document.detachEvent('onmouseup',sliderMouseUp);}filter();}mouseover=false;}function setSliderAltText(elem,text){if(!(elem=getElement(elem)))return 0;if(elem){elem.setAttribute('title',text);}}function getSliderOrientation(elem){var ori=elem.getAttribute('orientation');return((ori=='horizontal'||ori=='vertical')?ori:defaultOrientation);}function getSliderType(elem){var t=elem.getAttribute('slidertype')return((t=='min'||t=='max')?t:'min');}function getAttrAsElement(elem,attr){var id=(elem[attr]?elem[attr]:elem.getAttribute(attr));return getElement(id);}function readAttr(elem,attr,defaultVal){var val=(elem[attr]?elem[attr]:elem.getAttribute(attr));return(val?val:defaultVal);}function readAttrAsInt(elem,attr,defaultVal){var val=(elem[attr]?elem[attr]:elem.getAttribute(attr));val=parseInt(val);return(val?val:defaultVal);}function readAttrAsFloat(elem,attr,defaultVal){var val=(elem[attr]?elem[attr]:elem.getAttribute(attr));val=parseFloat(val);return(val?val:defaultVal);}function getSliderValue(id,defaultVal){sl=slidersList[id];if(!sl)return defaultVal;slDisplay=getAttrAsElement(sl,'display');return(slDisplay?slDisplay.value:defaultVal);}function focusDisplay(evnt){if(!evnt)evnt=window.event;display=(evnt.target)?evnt.target:evnt.srcElement;lock=display.getAttribute('typelock');if(lock=='on'){display.blur();}return}function setupSliders(sliders){for(i=0;i<sliders.length;i++){var sliderItem=getElement(sliders[i]);if(sliderItem){sliderItem.onmousedown=slide;setupSliderDisplay(sliderItem);slidersList[sliders[i]]=sliderItem;}}}function setupSliderDisplay(sliderElem){var type=sliderElem.displayType=readAttr(sliderElem,'displayType','TIME');var itemDisplay=getAttrAsElement(sliderElem,'display');if(itemDisplay){var min=readAttr(itemDisplay,'min'),max=readAttr(itemDisplay,'max'),val=readAttr(itemDisplay,'defaultVal');itemDisplay.from=(type=='DATE'?parseDateToDays(min):parseInt(min,10));itemDisplay.to=(type=='DATE'?parseDateToDays(max):parseInt(max,10));itemDisplay.value=(type=='DATE'?parseDateToDays(val):parseInt(val,10));itemDisplay.valuecount=(!itemDisplay.valuecount?(itemDisplay.to-itemDisplay.from):itemDisplay.valuecount);var valueText=GetValue(type,itemDisplay.value);getAttrAsElement(itemDisplay,'display').innerHTML=valueText;setSliderAltText(sliderElem.id,valueText);}}function parseDateToDays(dateString){var strs=dateString.split('-');var dt=new Date();y=(strs.length>0?parseInt(strs[0],10):now.getFullYear());m=(strs.length>1?parseInt(strs[1],10):1);d=(strs.length>2?parseInt(strs[2],10):1);dt=new Date(y,(m-1),d);return dateToDays(dt);}function dateToDays(dt){return Math.floor(dt.getTime()/(1000*60*60*24));}function daysToDate(days){var ms=(days*(1000*60*60*24))var dt=new Date();dt.setTime(ms);return dt;}function GetValue(type,val){var retVal=val;switch(type){case'TIME':retVal=GetTime(val);break;case'DATE':retVal=GetDate(val);break;case'MONEY':retVal=GetMoney(val);break;}return retVal;}function GetTime(val){return((val<10)?"0":"")+val+":00";}function GetDate(val){var dt=daysToDate(val);return WriteDate(dt,'d MMM');}function GetMoney(val){return CURRENCY_PATTERN.replace('%1',val);}function WriteDate(dt,fmt){var d=dt.getDate();var m=dt.getMonth()+1;var y=dt.getFullYear();var outString=fmt;outString=outString.replace('dd',pad(d,2));outString=outString.replace('d',d);outString=outString.replace('MMM',GetMonthAbbr(m));outString=outString.replace('MMMM',GetMonthName(m));outString=outString.replace('yyyy',y);return outString;}function GetMonthName(month){return MonthNames[month-1];}function GetMonthAbbr(month){return MonthAbbr[month-1];}function pad(number,len){var str=''+number;while(str.length<len){str='0'+str;}return str;}
