﻿// JScript File

   function scroller(id, w, h, num, axis) {
   
   this.id = id; 
   this.el = document.getElementById ? document.getElementById(id) : null; 
   if(!this.el)return; 
   this.css = this.el.style; 
   this.css.left = this.x = 0; 
   this.css.top = this.y = 0; 
   this.w = w; 
   this.h = h; 
   this.num = num; 
   this.axis = axis || "v"; 
   this.ctr = 0; 
   this.pause = 5000; 
   this.speed = 60; 
   this.lastTime = new Date().getTime(); 
   this.check = 0; 
   this.index = scrollers.ar.length; 
   scrollers.ar[this.index] = this; 
   this.active = true; 
   }
;
 
scroller.prototype.setTiming = function(speed, pause) {
   this.speed = speed; 
   this.pause = pause; 
   }
;
 
scroller.prototype.controlScroll = function() {
   if(this.ctr > this.num - 1) {
      this.shiftTo(0, 0); 
      this.ctr = 1; 
      }
   else {
      switch(this.axis) {
         case "v" : if(this.y >- this.h * this.ctr) {
            var ny = this.y +- 1 * this.elapsed / 5000 * this.speed; 
            ny = Math.max(ny, - this.h * this.ctr); 
            this.shiftTo(0, ny); 
            }
         else this.doPause(); 
         break; 
         case "h" : if(this.x >- this.w * this.ctr) {
            var nx = this.x +- 1 * this.elapsed / 1000 * this.speed; 
            nx = Math.max(nx, - this.w * this.ctr); 
            this.shiftTo(nx, 0); 
            }
         else this.doPause(); 
         break; 
         }
      }
   }
;
 
scroller.prototype.doPause = function() {
   this.check += this.elapsed; 
   if(this.check >= this.pause) {
      this.ctr++; 
      this.check = 0; 
      }
   }
;
 
scroller.prototype.shiftTo = function(x, y) {
   this.css.left = (this.x = x) + "px"; 
   this.css.top = (this.y = y) + "px"; 
   }
;
 
scrollers = {
   }
;
 
scrollers.ar = []; 

scrollers.timer = window.setInterval("scrollers.control()", 10); 
scrollers.control = function() {
   var oCurrent; 
   for(var i = 0; oCurrent = scrollers.ar[i]; i++) {
      if(oCurrent.active && scrollers.ready) {
         var now = new Date().getTime(); 
         oCurrent.elapsed = now - oCurrent.lastTime; 
         oCurrent.lastTime = now; 
         oCurrent.controlScroll(); 
         }
      }
   }
; 

scrollers.GeckoTableFix = function() {
   var ua = navigator.userAgent; 
   if(ua.indexOf("Gecko") >- 1 && ua.indexOf("Firefox") ==- 1 && ua.toLowerCase().indexOf("like gecko") ==- 1) {
      scrollers.hold = []; 
      for(var i = 0; arguments[i]; i++) {
         var wndo = document.getElementById(arguments[i]); 
         var holderId = wndo.parentNode.id; 
         var holder = document.getElementById(holderId); 
         document.body.appendChild(holder.removeChild(wndo)); 
         wndo.style.zIndex = 1000; 
         var pos = getPageOffsets(holder); 
         wndo.style.left = pos.x + "px"; 
         wndo.style.top = pos.y + "px"; 
         scrollers.hold[i] = [arguments[i], holderId]; 
         }
      window.addEventListener("resize", scrollers.rePosition, true); 
      }
   }
; 

scrollers.rePosition = function() {
   if(scrollers.hold) {
      for(var i = 0; scrollers.hold[i]; i++) {
         var wndo = document.getElementById(scrollers.hold[i][0]); 
         var holder = document.getElementById(scrollers.hold[i][1]); 
         var pos = getPageOffsets(holder); 
         wndo.style.left = pos.x + "px"; 
         wndo.style.top = pos.y + "px"; 
         }
      }
   }
; 

function getPageOffsets(el) {
   var left = el.offsetLeft; 
   var top = el.offsetTop; 
   if(el.offsetParent && el.offsetParent.clientLeft || el.offsetParent.clientTop) {
      left += el.offsetParent.clientLeft; 
      top += el.offsetParent.clientTop; 
      }
   while(el = el.offsetParent) {
      left += el.offsetLeft; 
      top += el.offsetTop; 
      }
   return {
      x : left, y : top}
   ; 
   }
; 

function contained(oNode, oCont) {
   if(!oNode)return; 
   while(oNode = oNode.parentNode)if(oNode == oCont)return true; 
   return false; 
   }
; 

scrollers.ready=true;


