function dw_scrollObj(wndoId, lyrId, horizId){if(!document.getElementById) return;var wn = document.getElementById(wndoId);
this.id = wndoId; dw_scrollObj.col[this.id] = this;this.animString = "dw_scrollObj.col." + this.id;this.load(lyrId, horizId);
if(wn.addEventListener){wn.addEventListener('DOMMouseScroll', dw_scrollObj.doOnMouseWheel, false);}wn.onmousewheel = dw_scrollObj.doOnMouseWheel;}
dw_scrollObj.col ={};dw_scrollObj.defaultSpeed = dw_scrollObj.prototype.speed = 100;dw_scrollObj.defaultSlideDur = dw_scrollObj.prototype.slideDur = 500;
dw_scrollObj.prototype.on_load = function(){}
dw_scrollObj.prototype.on_scroll = function(){}
dw_scrollObj.prototype.on_scroll_start = function(){}
dw_scrollObj.prototype.on_scroll_stop = function(){}
dw_scrollObj.prototype.on_scroll_end = function(){}
dw_scrollObj.prototype.on_glidescroll = function(){}
dw_scrollObj.prototype.on_glidescroll_start = function(){}
dw_scrollObj.prototype.on_glidescroll_stop = function(){}
dw_scrollObj.prototype.on_glidescroll_end = function(){}
dw_scrollObj.prototype.load = function(lyrId, horizId){var wndo, lyr;if(this.lyrId){lyr = document.getElementById(this.lyrId);lyr.style.visibility = "hidden";}
this.lyr = lyr = document.getElementById(lyrId);this.lyr.style.position = 'absolute'; 
this.lyrId = lyrId;this.horizId = horizId || null;wndo = document.getElementById(this.id);
this.y = 0; this.x = 0; this.shiftTo(0,0);this.maxY =(lyr.offsetHeight - wndo.offsetHeight > 0)? lyr.offsetHeight - wndo.offsetHeight: 0;
this.wd = horizId? document.getElementById(horizId).offsetWidth: lyr.offsetWidth;
this.maxX =(this.wd - wndo.offsetWidth > 0)? this.wd - wndo.offsetWidth: 0;lyr.style.visibility = "visible";this.ready = true; this.on_load();}
dw_scrollObj.prototype.shiftTo = function(x, y){if(this.lyr){this.lyr.style.left =(this.x = x) + "px";this.lyr.style.top =(this.y = y) + "px";}}
dw_scrollObj.prototype.getX = function(){return this.x;}
dw_scrollObj.prototype.getY = function(){return this.y;}
dw_scrollObj.prototype.updateDims = function(){var wndo = document.getElementById(this.id);var lyr = document.getElementById(this.lyrId);
this.maxY =(lyr.offsetHeight - wndo.offsetHeight > 0)? lyr.offsetHeight - wndo.offsetHeight: 0;
this.wd = this.horizId? document.getElementById(this.horizId).offsetWidth: lyr.offsetWidth;
this.maxX =(this.wd - wndo.offsetWidth > 0)? this.wd - wndo.offsetWidth: 0;}
dw_scrollObj.prototype.initScrollVals = function(deg, speed){if(!this.ready) return; 
if(this.timerId){clearInterval(this.timerId); this.timerId = 0;}
this.speed = speed || dw_scrollObj.defaultSpeed;this.fx =(deg == 0)? -1:(deg == 180)? 1: 0;this.fy =(deg == 90)? 1:(deg == 270)? -1: 0;
this.endX =(deg == 90 || deg == 270)? this.x:(deg == 0)? -this.maxX: 0;this.endY =(deg == 0 || deg == 180)? this.y:(deg == 90)? 0: -this.maxY;
this.lyr = document.getElementById(this.lyrId);this.lastTime = new Date().getTime();this.on_scroll_start(this.x, this.y);this.timerId = setInterval(this.animString + ".scroll()", 10);}
dw_scrollObj.prototype.scroll = function(){var now = new Date().getTime();var d =(now - this.lastTime)/1000 * this.speed;if(d > 0){var x = this.x + Math.round(this.fx * d);var y = this.y + Math.round(this.fy * d);
if((this.fx == -1 && x > -this.maxX) ||(this.fx == 1 && x < 0) ||(this.fy == -1 && y > -this.maxY) ||(this.fy == 1 && y < 0)){
this.lastTime = now;this.shiftTo(x, y);this.on_scroll(x, y);}else{clearInterval(this.timerId); this.timerId = 0;
this.shiftTo(this.endX, this.endY);this.on_scroll_end(this.endX, this.endY);}}}
dw_scrollObj.prototype.ceaseScroll = function(){if(!this.ready) return;if(this.timerId){clearInterval(this.timerId); this.timerId = 0;}this.on_scroll_stop(this.x, this.y);}
dw_scrollObj.prototype.initScrollByVals = function(dx, dy, dur){if(!this.ready || this.sliding) return;
this.startX = this.x; this.startY = this.y;this.destX = this.destY = this.distX = this.distY = 0;if(dy < 0){this.distY =(this.startY + dy >= -this.maxY)? dy: -(this.startY  + this.maxY);}else if(dy > 0){
this.distY =(this.startY + dy <= 0)? dy: -this.startY;}if(dx < 0){this.distX =(this.startX + dx >= -this.maxX)? dx: -(this.startX + this.maxX);}else if(dx > 0){
this.distX =(this.startX + dx <= 0)? dx: -this.startX;}
this.destX = this.startX + this.distX; this.destY = this.startY + this.distY;this.glideScrollPrep(this.destX, this.destY, dur);}
dw_scrollObj.prototype.initScrollToVals = function(destX, destY, dur){
if(!this.ready || this.sliding) return;this.startX = this.x; this.startY = this.y;this.destX = -Math.max(Math.min(destX, this.maxX), 0);
this.destY = -Math.max(Math.min(destY, this.maxY), 0);this.distY = this.destY - this.startY;this.distX = this.destX - this.startX;this.glideScrollPrep(this.destX, this.destY, dur);}
dw_scrollObj.prototype.glideScrollPrep = function(destX, destY, dur){this.slideDur = dur || dw_scrollObj.defaultSlideDur;
this.per = Math.PI/(2 * this.slideDur); this.sliding = true;this.lyr = document.getElementById(this.lyrId);this.startTime = new Date().getTime();this.timerId = setInterval(this.animString + ".doGlideScroll()",10);
this.on_glidescroll_start(this.startX, this.startY);}
dw_scrollObj.prototype.doGlideScroll = function(){var elapsed = new Date().getTime() - this.startTime;if(elapsed < this.slideDur){
var x = this.startX + Math.round(this.distX * Math.sin(this.per*elapsed));var y = this.startY + Math.round(this.distY * Math.sin(this.per*elapsed));
this.shiftTo(x, y);this.on_glidescroll(x, y);}else{clearInterval(this.timerId); this.timerId = 0; this.sliding = false;
this.shiftTo(this.destX, this.destY);this.on_glidescroll_stop(this.destX, this.destY);if(this.distX &&(this.destX == 0 || this.destX == -this.maxX) 
  || this.distY &&(this.destY == 0 || this.destY == -this.maxY)){this.on_glidescroll_end(this.destX, this.destY);}}}
dw_scrollObj.handleMouseWheel = function(id, delta){var wndo = dw_scrollObj.col[id];var x = wndo.x;var y = wndo.y;
wndo.on_scroll_start(x,y);var ny;ny = 12  * delta + y
ny =(ny < 0 && ny >= -wndo.maxY)? ny:(ny < -wndo.maxY)? -wndo.maxY: 0;wndo.shiftTo(x, ny);wndo.on_scroll(x, ny);}
dw_scrollObj.doOnMouseWheel = function(e){var delta = 0;if(!e) e = window.event;if(e.wheelDelta){delta = e.wheelDelta/120;
if(window.opera) delta = -delta;}else if(e.detail){ delta = -e.detail/3;}
if(delta){dw_scrollObj.handleMouseWheel(this.id, delta);}if(e.preventDefault) e.preventDefault();e.returnValue = false;}
dw_scrollObj.GeckoTableBugFix = function(){}
function dw_getLayerOffset(el, oCont, sOff){var off = "offset" + sOff.charAt(0).toUpperCase() + sOff.slice(1);
var val = el[off];while((el = el.offsetParent) != oCont)
val += el[off];var clientOff = off.replace("offset", "client");if(el[clientOff]) val += el[clientOff];return val;}