// begin absolutely positioned scrollable area object scripts /* Horizontal scroll added by BrownBear (www.devsoftware.com) Extension developed by David G. Miles (www.z3roadster.net/dreamweaver) Original Scrollable Area code developed by Thomas Brattli To add more shock to your site, visit www.DHTML Shock.com */ function verifyCompatibleBrowser() { this.ver = navigator.appVersion; this.dom = document.getElementById ? 1 : 0; this.ie5 = (this.ver.indexOf("MSIE 5")> - 1 && this.dom)? 1 : 0; this.ie4 = (document.all && !this.dom) ? 1 : 0; this.ns5 = (this.dom && parseInt(this.ver) >= 5) ? 1 : 0; this.ns4 = (document.layers && !this.dom) ? 1 : 0; this.bw = (this.ie5 || this.ie4 || this.ns4 || this.ns5); this.ie = (this.ie5 || this.ie4); return this; } bw = new verifyCompatibleBrowser() var speed=50; var loop, timer; function ConstructObject(obj, nest) { nest = (!nest) ? '' : 'document.' + nest + '.'; this.el = bw.dom ? document.getElementById(obj) : bw.ie4 ? document.all[obj] : bw.ns4 ? eval(nest + 'document.' + obj) : 0; this.css = bw.dom ? document.getElementById(obj).style : bw.ie4 ? document.all[obj].style : bw.ns4 ? eval(nest + 'document.' + obj) : 0; this.scrollHeight = bw.ns4 ? this.css.document.height : this.el.offsetHeight; this.clipHeight = bw.ns4 ? this.css.clip.height : this.el.offsetHeight; this.up = MoveAreaUp; this.down = MoveAreaDown; this.scrollWidth = bw.ns4 ? this.css.document.width : this.el.offsetWidth; this.clipWidth = bw.ns4 ? this.css.clip.width : this.el.offsetWidth; this.left = MoveAreaLeft; this.right = MoveAreaRight; this.MoveArea=MoveArea; this.x=0; this.y=0; this.obj = obj + "Object"; eval(this.obj + "=this"); return this; } function MoveArea(x,y) { //alert('x: ' + x + ' y: ' + y); this.x = x; this.y = y; this.css.left = this.x + "px"; this.css.top = this.y + "px"; } function MoveAreaDown(move) { if(this.y>-this.scrollHeight+objContainer.clipHeight){ this.MoveArea(this.x,this.y-move); if(loop) setTimeout(this.obj+".down("+move+")",speed); } } function MoveAreaUp(move) { if(this.y<0){ this.MoveArea(this.x,this.y-move); if(loop) setTimeout(this.obj+".up("+move+")",speed); } } function MoveAreaRight(move) { if(-this.x + objContainer.clipWidth < this.scrollWidth) { this.MoveArea(this.x-move, this.y); if(loop) { setTimeout(this.obj + ".right(" + move + ")", speed); } } //window.status = "right no action " + this.x; } function MoveAreaLeft(move) { if(this.x < 0) { this.MoveArea(this.x-move, this.y) if(loop) { setTimeout(this.obj + ".left(" + move + ")", speed) } } //window.status = "left no action " + this.x; } function PerformScroll(direction,speed) { if(initialised){ loop=true; if(direction == 0) { if(speed>0) objScroller.down(speed); else objScroller.up(speed); } else { if(speed>0) objScroller.right(speed); else objScroller.left(speed); } } } function CeaseScroll(){ loop=false; if(timer) clearTimeout(timer); } var initialised; var started = false; function InitialiseScrollableArea() { objContainer = new ConstructObject('timebarWindow'); objScroller = new ConstructObject('timebar','timebarWindow'); objScroller.MoveArea(0,0); objContainer.css.visibility='visible'; initialised=true; } // end absolutely positioned scrollable area object scripts function setMilestone(obj, text, image) { //alert(numOfMilestones); for (i=1; i <= numOfMilestones; i++) { var mId = 'milestone_'+i; document.getElementById(mId).className = ""; } obj.className = "selected"; mDivImage = document.getElementById('milestone'); mDivText = document.getElementById('milestoneText'); mImage = new Image(); mImage.src = image; mDivImage.style.backgroundImage = "url("+image+")"; mDivText.removeChild(mDivText.firstChild); var div = document.createElement("div"); var text = document.createTextNode(text); div.appendChild(text); mDivText.appendChild(div); }