function dw_Slidebar(barId,trackId,axis,x,y){var bar=document.getElementById(barId);var track=document.getElementById(trackId);this.barId=barId;this.trackId=trackId;this.axis=axis;this.x=x||0;this.y=y||0;dw_Slidebar.col[this.barId]=this;this.bar=bar;this.shiftTo(x,y);this.trkHt=track.offsetHeight;this.trkWd=track.offsetWidth;if(axis=='v'){this.maxY=this.trkHt-bar.offsetHeight-y;this.maxX=x;this.minX=x;this.minY=y;}else{this.maxX=this.trkWd-bar.offsetWidth-x;this.minX=x;this.maxY=y;this.minY=y;}
this.on_drag_start=this.on_drag=this.on_drag_end=this.on_slide_start=this.on_slide=this.on_slide_end=function(){}
bar.onmousedown=dw_Slidebar.prepDrag;track.onmousedown=function(e){dw_Slidebar.prepSlide(barId,e);}
this.bar=bar=null;track=null;}
dw_Slidebar.col={};dw_Slidebar.current=null;dw_Slidebar.prototype.slideDur=500;dw_Slidebar.prepSlide=function(barId,e){var _this=dw_Slidebar.col[barId];dw_Slidebar.current=_this;var bar=_this.bar=document.getElementById(barId);if(_this.timer){clearInterval(_this.timer);_this.timer=0;}
e=e?e:window.event;e.offX=(typeof e.layerX!="undefined")?e.layerX:e.offsetX;e.offY=(typeof e.layerY!="undefined")?e.layerY:e.offsetY;_this.startX=parseInt(bar.style.left);_this.startY=parseInt(bar.style.top);if(_this.axis=="v"){_this.destX=_this.startX;_this.destY=(e.offY<_this.startY)?e.offY:e.offY-bar.offsetHeight;_this.destY=Math.min(Math.max(_this.destY,_this.minY),_this.maxY);}else{_this.destX=(e.offX<_this.startX)?e.offX:e.offX-bar.offsetWidth;_this.destX=Math.min(Math.max(_this.destX,_this.minX),_this.maxX);_this.destY=_this.startY;}
_this.distX=_this.destX-_this.startX;_this.distY=_this.destY-_this.startY;_this.per=Math.PI/(2*_this.slideDur);_this.slideStartTime=new Date().getTime();_this.on_slide_start(_this.startX,_this.startY);_this.timer=setInterval("dw_Slidebar.doSlide()",10);}
dw_Slidebar.doSlide=function(){var _this=dw_Slidebar.current;var elapsed=new Date().getTime()-_this.slideStartTime;if(elapsed<_this.slideDur){var x=_this.startX+_this.distX*Math.sin(_this.per*elapsed);var y=_this.startY+_this.distY*Math.sin(_this.per*elapsed);_this.shiftTo(x,y);_this.on_slide(x,y);}else{clearInterval(_this.timer);_this.shiftTo(_this.destX,_this.destY);_this.on_slide(_this.destX,_this.destY);_this.on_slide_end(_this.destX,_this.destY);dw_Slidebar.current=null;}}
dw_Slidebar.prepDrag=function(e){var bar=this;var barId=this.id;var _this=dw_Slidebar.col[barId];dw_Slidebar.current=_this;_this.bar=bar;e=dw_Event.DOMit(e);if(_this.timer){clearInterval(_this.timer);_this.timer=0;}
_this.downX=e.clientX;_this.downY=e.clientY;_this.startX=parseInt(bar.style.left);_this.startY=parseInt(bar.style.top);_this.on_drag_start(_this.startX,_this.startY);dw_Event.add(document,"mousemove",dw_Slidebar.doDrag,true);dw_Event.add(document,"mouseup",dw_Slidebar.endDrag,true);e.stopPropagation();e.preventDefault();}
dw_Slidebar.doDrag=function(e){if(!dw_Slidebar.current)return;var _this=dw_Slidebar.current;var bar=_this.bar;e=dw_Event.DOMit(e);var nx=_this.startX+e.clientX-_this.downX;var ny=_this.startY+e.clientY-_this.downY;nx=Math.min(Math.max(_this.minX,nx),_this.maxX);ny=Math.min(Math.max(_this.minY,ny),_this.maxY);_this.shiftTo(nx,ny);_this.on_drag(nx,ny);e.preventDefault();e.stopPropagation();}
dw_Slidebar.endDrag=function(){if(!dw_Slidebar.current)return;var _this=dw_Slidebar.current;var bar=_this.bar;dw_Event.remove(document,"mousemove",dw_Slidebar.doDrag,true);dw_Event.remove(document,"mouseup",dw_Slidebar.endDrag,true);_this.on_drag_end(parseInt(bar.style.left),parseInt(bar.style.top));dw_Slidebar.current=null;}
dw_Slidebar.prototype.shiftTo=function(x,y){if(this.bar){this.bar.style.left=x+"px";this.bar.style.top=y+"px";}}
dw_scrollObj.prototype.setUpScrollbar=function(barId,trkId,axis,offx,offy,bSize){var scrollbar=new dw_Slidebar(barId,trkId,axis,offx,offy);if(axis=="v"){this.vBarId=barId;}else{this.hBarId=barId;}
scrollbar.wndoId=this.id;scrollbar.bSizeDragBar=(bSize==false)?false:true;if(scrollbar.bSizeDragBar){dw_Scrollbar_Co.setBarSize(this,scrollbar);}
dw_Scrollbar_Co.setEvents(this,scrollbar);}
dw_Scrollbar_Co={setBarSize:function(scrollObj,barObj){var lyr=document.getElementById(scrollObj.lyrId);var wn=document.getElementById(scrollObj.id);if(barObj.axis=='v'){var bar=document.getElementById(scrollObj.vBarId);bar.style.height=8;barObj.maxY=barObj.trkHt-bar.offsetHeight-barObj.minY;}else if(barObj.axis=='h'){var bar=document.getElementById(scrollObj.hBarId);bar.style.width=(scrollObj.wd>wn.offsetWidth)?barObj.trkWd/(scrollObj.wd/wn.offsetWidth)+"px":barObj.trkWd-(2*barObj.minX)+"px";barObj.maxX=barObj.trkWd-bar.offsetWidth-barObj.minX;}},resetBars:function(scrollObj){var barObj,bar;if(scrollObj.vBarId){barObj=dw_Slidebar.col[scrollObj.vBarId];bar=document.getElementById(scrollObj.vBarId);bar.style.left=barObj.minX+"px";bar.style.top=barObj.minY+"px";if(barObj.bSizeDragBar){dw_Scrollbar_Co.setBarSize(scrollObj,barObj);}}
if(scrollObj.hBarId){barObj=dw_Slidebar.col[scrollObj.hBarId];bar=document.getElementById(scrollObj.hBarId);bar.style.left=barObj.minX+"px";bar.style.top=barObj.minY+"px";if(barObj.bSizeDragBar){dw_Scrollbar_Co.setBarSize(scrollObj,barObj);}}},setEvents:function(scrollObj,barObj){this.addEvent(scrollObj,'on_load',function(){dw_Scrollbar_Co.resetBars(scrollObj);});this.addEvent(scrollObj,'on_scroll_start',function(){dw_Scrollbar_Co.getBarRefs(scrollObj)});this.addEvent(scrollObj,'on_glidescroll_start',function(){dw_Scrollbar_Co.getBarRefs(scrollObj)});this.addEvent(scrollObj,'on_scroll',function(x,y){dw_Scrollbar_Co.updateScrollbar(scrollObj,x,y)});this.addEvent(scrollObj,'on_glidescroll',function(x,y){dw_Scrollbar_Co.updateScrollbar(scrollObj,x,y)});this.addEvent(scrollObj,'on_scroll_stop',function(x,y){dw_Scrollbar_Co.updateScrollbar(scrollObj,x,y);});this.addEvent(scrollObj,'on_glidescroll_stop',function(x,y){dw_Scrollbar_Co.updateScrollbar(scrollObj,x,y);});this.addEvent(scrollObj,'on_scroll_end',function(x,y){dw_Scrollbar_Co.updateScrollbar(scrollObj,x,y);});this.addEvent(scrollObj,'on_glidescroll_end',function(x,y){dw_Scrollbar_Co.updateScrollbar(scrollObj,x,y);});this.addEvent(barObj,'on_slide_start',function(){dw_Scrollbar_Co.getWndoLyrRef(barObj)});this.addEvent(barObj,'on_drag_start',function(){dw_Scrollbar_Co.getWndoLyrRef(barObj)});this.addEvent(barObj,'on_slide',function(x,y){dw_Scrollbar_Co.updateScrollPosition(barObj,x,y)});this.addEvent(barObj,'on_drag',function(x,y){dw_Scrollbar_Co.updateScrollPosition(barObj,x,y)});this.addEvent(barObj,'on_slide_end',function(x,y){dw_Scrollbar_Co.updateScrollPosition(barObj,x,y);});this.addEvent(barObj,'on_drag_end',function(x,y){dw_Scrollbar_Co.updateScrollPosition(barObj,x,y);});},addEvent:function(o,ev,fp){var oldEv=o[ev];if(typeof oldEv!='function'){o[ev]=function(x,y){fp(x,y);}}else{o[ev]=function(x,y){oldEv(x,y);fp(x,y);}}},updateScrollbar:function(scrollObj,x,y){var nx,ny;if(scrollObj.vBar&&scrollObj.maxY){var vBar=scrollObj.vBar;ny=-(y*((vBar.maxY-vBar.minY)/scrollObj.maxY)-vBar.minY);ny=Math.min(Math.max(ny,vBar.minY),vBar.maxY);if(vBar.bar){nx=parseInt(vBar.bar.style.left);vBar.shiftTo(nx,ny);}}
if(scrollObj.hBar&&scrollObj.maxX){var hBar=scrollObj.hBar;nx=-(x*((hBar.maxX-hBar.minX)/scrollObj.maxX)-hBar.minX);nx=Math.min(Math.max(nx,hBar.minX),hBar.maxX);if(hBar.bar){ny=parseInt(hBar.bar.style.top);hBar.shiftTo(nx,ny);}}},updateScrollPosition:function(barObj,x,y){var nx,ny;var wndo=barObj.wndo;if(!wndo.lyr){wndo.lyr=document.getElementById(wndo.lyrId);}
if(barObj.axis=="v"){nx=wndo.x;ny=-(y-barObj.minY)*(wndo.maxY/(barObj.maxY-barObj.minY))||0;}else{ny=wndo.y;nx=-(x-barObj.minX)*(wndo.maxX/(barObj.maxX-barObj.minX))||0;}
wndo.shiftTo(nx,ny);},getBarRefs:function(scrollObj){if(scrollObj.vBarId){scrollObj.vBar=dw_Slidebar.col[scrollObj.vBarId];scrollObj.vBar.bar=document.getElementById(scrollObj.vBarId);}
if(scrollObj.hBarId){scrollObj.hBar=dw_Slidebar.col[scrollObj.hBarId];scrollObj.hBar.bar=document.getElementById(scrollObj.hBarId);}},getWndoLyrRef:function(barObj){var wndo=barObj.wndo=dw_scrollObj.col[barObj.wndoId];if(wndo&&!wndo.lyr){wndo.lyr=document.getElementById(wndo.lyrId);}}}
