// Capture mouse coordinates function hMsMv(e) { if (isVertical) m_x = (ns) ? e.pageY : event.clientY + document.body.scrollTop; else m_x = (ns) ? e.pageX : event.clientX + document.body.scrollLeft; return false; } function hMsUp(e) { if ((ns && e.which == 1) || ie) { if (st) clearTimeout(st); if (dragt) { dragt=0; dist_t=0; } } return true; } function moveThumb() { if (thumbPos < thumbStart) { thumbPos = thumbStart; } else if (thumbPos > thumbStart + scrollInLength - scrollLength) { thumbPos = thumbStart + scrollInLength - scrollLength; } eleMove('thumb', thumbPos); scrollPos = (thumbPos - thumbStart) / scrollTicks; hScrollTo(scrollPos*(eleWidth(mainLayer)/scrollInLength), mainLayer); } function dragScroll() { if (dragt > 0) { if (dist_t == 0) dist_t = m_x - thumbPos; thumbPos = m_x - dist_t; moveThumb(); } st = setTimeout("dragScroll()", 30); return false; } /* function clingScroll() { thumbPos = m_x; moveThumb(); } */ function hScroll(Nsign) { if (NOSCROLL) return; newPos = scrollPos + (Nsign * rate); testVal = (Nsign > 0) ? "newPos + mainLength <= eleWidth(mainLayer)" : "newPos > 0"; if (eval(testVal)) scrollPos = newPos; else (Nsign > 0) ? scrollPos = eleWidth(mainLayer) - mainLength : scrollPos = 0; thumbPos = thumbStart + scrollPos*(scrollInLength/eleWidth(mainLayer)); eleMove('thumb', thumbPos); hScrollTo(scrollPos, mainLayer); } function hScrollTo(fT, mainLayer) { if (isVertical) eleClip(mainLayer, 0, fT, mainWidth, fT+mainLength); else eleClip(mainLayer, fT, 0, fT+mainLength, mainWidth); eleMove(mainLayer, -fT + leftPos); } function eleWidth(eleId) { if (isVertical) { if (ie4) return eval('document.all.' + eleId + '.offsetHeight'); else if (ns4) return eval('document.' + eleId + '.document.height'); else if (docom) return document.getElementById(eleId).offsetHeight; } else { if (ie4) return eval('document.all.' + eleId + '.offsetWidth'); else if (ns4) return eval('document.' + eleId + '.document.width'); else if (docom) return document.getElementById(eleId).offsetWidth; } } function eleClip(eleId, x0, y0, x1, y1) { // alert(eleId+':'+x0+','+y0+','+x1+','+y1); if (ns4) { var ele = eval('document.' + eleId); ele.clip.top = y0; ele.clip.right = x1; ele.clip.bottom = y1; ele.clip.left = x0; } else if (ie4) { clipStr = 'rect(' + y0 + ',' + x1 + ',' + y1 + ',' + x0 + ')'; if (ie4) { // alert('document.all.' + eleId + '.style.clip = "' + clipStr + '"'); ele = eval('document.all.' + eleId + '.style.clip = "' + clipStr + '"'); } } else if (docom) document.getElementById(eleId).style.clip = 'rect(' + y0 + ',' + x1 + ',' + y1 + ',' + x0 + ')'; } function eleMove(eleId, offset) { dir = isVertical ? 'top' : 'left'; if (ns4) eval('document.' + eleId + '.'+dir+' = ' + offset); else if (ie4) eval('document.all.' + eleId + '.style.'+dir+' = ' + offset); else if (docom) eval('document.getElementById(eleId).style.'+dir+' = offset'); } function elePos(eleId, x, y) { if (ns4) eval('document.' + eleId + '.left = ' + x); else if (ie4) eval('document.all.' + eleId + '.style.left = ' + x); else if (docom) document.getElementById(eleId).style.left = x; if (ns4) eval('document.' + eleId + '.top = ' + y); else if (ie4) eval('document.all.' + eleId + '.style.top = ' + y); else if (docom) document.getElementById(eleId).style.top = y; } function reDraw() { if (ns4 && (winW!=window.innerWidth || winH!=window.innerHeight)) history.go(0); } window.onload = setup; window.offscreenBuffering = true; window.onresize = reDraw; if (dhtmlBrowser) { document.onmouseup = hMsUp; document.onmousemove = hMsMv; if (ns4) document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); }