var sys = navigator.appName;
var vers = parseInt(navigator.appVersion);
var n4 = document.layers
var ie4Mac = (vers>=4) && (navigator.appVersion.indexOf("Mac")>-1) && (!n4)

function testScroll() {
  if (window._pageXOffset==null) {window._pageXOffset = window.pageXOffset
    window._pageYOffset = window.pageYOffset}
	document.body.unwatch("scrollTop")
	document.body.unwatch("scrollLeft")
	document.body.scrollTop = window.pageYOffset
	document.body.scrollLeft = window.pageXOffset
	window.document.body.scrollHeight = document.height
	window.document.body.scrollWidth = document.width
	document.body.watch("scrollTop",CheckScrollTop)
	document.body.watch("scrollLeft",CheckScrollLeft)
	document.body.clientWidth = window.innerWidth-20;
	document.body.clientHeight = window.innerHeight-20;
	if (((window.pageXOffset!=window._pageXOffset) || (window.pageYOffset!=window._pageYOffset)) && (window.onscroll))
		window.onscroll()
	window._pageXOffset = window.pageXOffset
	window._pageYOffset = window.pageYOffset
}

function CheckScrollTop(prop,temp,newValue) {return newValue}
function CheckScrollLeft(prop,temp,newValue) {return newValue}
function CheckTopChange(prop,temp,newValue) {this.NSLayer.owningElement.offsetTop = this.NSLayer.top = newValue
  return newValue}
function CheckLeftChange(prop,temp,newValue) {this.NSLayer.owningElement.offsetLeft= this.NSLayer.left = newValue
  return newValue}
function CheckWidthChange(prop,temp,newValue) {this.NSLayer.owningElement.offsetWidth = this.NSLayer.clip.width = newValue
  return newValue}
function CheckHeightChange(prop,temp,newValue) {this.NSLayer.owningElement.offsetHeight = this.NSLayer.clip.height = newValue
  return newValue}
function CheckColorChange(prop,temp,newValue) {this.NSLayer.bgColor = newValue
  return newValue}

function CheckClipChange(prop,temp,newValue) {var sText = newValue.substring(5)
	sText = sText.substring(0,sText.length-1)
	var aVal = sText.split(" ")
	this.NSLayer.clip.top = aVal[0]
	this.NSLayer.clip.width = aVal[1]
	this.NSLayer.clip.height = aVal[2]
	this.NSLayer.clip.left = aVal[3]
  return newValue}

function CheckZIndexChange(prop,temp,newValue) {this.NSLayer.zIndex = newValue
  return newValue}

function CheckContentChange(prop,temp,newValue) {this.NSLayer.document.open()
	this.NSLayer.document.write(newValue)
	this.NSLayer.document.close()
	this.NSLayer.document.owningElement = this.NSLayer.owningElement = this
	_extract(this.NSLayer, true)
  return newValue}
function CheckVisibilityChange(prop,temp,newValue) {if (newValue=="hidden")
		this.NSLayer.visibility = "hide";
	else if (newValue=="visible")
		this.NSLayer.visibility = "show";
	else if (newValue=="inherit")
		this.NSLayer.visibility = "inherit";
	else
		this.NSLayer.visibility = "";
  return newValue}
function CheckContains(el) {return (el==this)}
function _appendAll(obj, el, sName) {obj.all[sName] = el
  while (obj.offsetParent) {obj = obj.offsetParent
    obj.all[sName] = el}}

function _extractRoot(obj, par) {for (var intLoop = 0; intLoop< obj.images.length; intLoop++) {
		var i = obj.images[intLoop]
		i.offsetParent = par
		i.offsetLeft = i.x
		i.offsetTop = i.y
		i.offsetWidth = i.width
		i.offsetHeight = i.height
		i.tagName = "IMG"
		i.contains = CheckContains
		if (""!=i.name) {
			window.document.all[i.name] = i
      if (obj.owningElement) _appendAll(obj.owningElement, i, i.name)}
	}
	for (var intLoop = 0; intLoop< obj.anchors.length; intLoop++) {
		var i = obj.anchors[intLoop]
		i.contains = CheckContains
		i.offsetWidth=i.offsetHeight=0
		if (""!=i.name) {
			window.document.all[i.name] = i
			if (obj.owningElement) _appendAll(obj.owningElement, i, i.name)
		}
    obj.anchors[intLoop].offsetParent = par}

  for (var intLoop = 0; intLoop< obj.links.length; intLoop++) {
		var i=obj.links[intLoop]
		i.offsetWidth=0;i.offsetHeight=20
		i.contains = CheckContains
		i.innerText = obj.links[intLoop].text
		i.offsetParent = par
		i.offsetLeft = obj.links[intLoop].x
		i.offsetTop = obj.links[intLoop].y
	}

	for (var intLoop = 0; intLoop< obj.forms.length; intLoop++) {
		obj.forms[intLoop].offsetParent = par
		var sName = obj.forms[intLoop].name
		obj.forms[intLoop].tagName = "FORM"
		if (""!=sName) {
			window.document.all[sName] = obj.forms[intLoop]
			if (obj.owningElement) _appendAll(obj.owningElement, obj.forms[intLoop], sName)
		}
		for (var intElements = 0; intElements < obj.forms[intLoop].length; intElements++) {
			var i = obj.forms[intLoop][intElements]
			var sName = i.name
			i.offsetParent = par
//			i.tagName = _getInputTagName(i.type)
			if (""!=sName) {
				window.document.all[sName] = i
				if (obj.owningElement) _appendAll(obj.owningElement, i, sName)
//					obj.owningElement.all[sName] = window.document.all[sName]
			}
		}
	}
	if (obj.owningElement) {
		var sName = obj.owningElement.id
		window.document.all[sName] = obj.owningElement
		_appendAll(obj.owningElement.offsetParent, obj.owningElement, sName)
	}
}

function _extract(obj, bRefresh) {
	// This function is called recursively for nested layers

// Add walk up tree to add to collections code... ugh
	obj.document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP | Event.MOUSEMOVE | Event.KEYDOWN | Event.KEYPRESS | Event.KEYUP)
	obj.document.onmousedown = _NSLayerBubbling;
	obj.document.onmouseup = _NSLayerBubbling;
	obj.document.onmousemove = _NSLayerBubbling;
	obj.document.onkeydown = _NSLayerBubbling;
	obj.document.onkeypress = _NSLayerBubbling;
	obj.document.onkeyup = _NSLayerBubbling;

	obj.document._type = "document" // internal variable to track state
	// Hookup event handlers to establish event bubbling.
	if (bRefresh==null) {
		if (""!=obj.id)
			document.all[obj.id] =  new Object
		var newEl = document.all[obj.id]
		newEl.all = new Object
		obj.document.owningElement= obj.owningElement = newEl

		newEl.id = obj.id
		newEl.style = new Object
		newEl.NSLayer = newEl.style.NSLayer = obj
		newEl.offsetTop = parseInt(obj.top)
		newEl.offsetLeft = parseInt(obj.left)
		obj._type = "layer" // internal variable
		if (obj.parentLayer.owningElement!=null)
			newEl.offsetParent = obj.parentLayer.owningElement
		else
			newEl.offsetParent = document.body
		newEl.style.pixelTop = parseInt(obj.top)
		newEl.style.pixelLeft = parseInt(obj.left)
		if (null!=obj.clip) {
			newEl.style.pixelWidth = obj.clip.width   // estimation
			newEl.style.pixelHeight = obj.clip.height
		}
		newEl.style.clip = "rect(" + obj.clip.top + " " + obj.clip.width + " " + obj.clip.height + " " + obj.clip.left + ")"
		newEl.offsetWidth = newEl.style.pixelWidth  // estimation
		newEl.offsetHeight = newEl.style.pixelHeight
		newEl.contains = CheckContains;
		if (obj.visibility=="hide")
			newEl.style.visibility = "hidden";
		else if (obj.visibility=="show")
			newEl.style.visibility = "visible";
		else if (obj.visibility=="inherit")
			newEl.style.visibility = "inherit";
		else
			newEl.style.visibility = "";
		newEl.style.zIndex = obj.zIndex
		newEl.style.backgroundColor = obj.bgColor;
		newEl.style.backgroundImage = "url("+obj.background+")";

		newEl.innerHTML = ""

		newEl.style.watch("visibility",CheckVisibilityChange)
		newEl.style.watch("pixelTop",CheckTopChange)
		newEl.style.watch("pixelLeft",CheckLeftChange)
		newEl.style.watch("pixelWidth",CheckWidthChange)
		newEl.style.watch("pixelHeight",CheckHeightChange)
		newEl.style.watch("backgroundColor",CheckColorChange)
		newEl.style.watch("zIndex",CheckZIndexChange)
		newEl.style.watch("clip",CheckClipChange)
		newEl.watch("innerHTML",CheckContentChange)
	}
	_extractRoot(obj.document,newEl)

	for (var intLayer = 0; intLayer< obj.document.layers.length; intLayer++)
		_extract(obj.document.layers[intLayer])  // Nested layers, go get them.

}


function _NSLayerBubbling(ev) {
	// Bubble through any positioned elements.
	this.routeEvent(ev);
	// Fire on positioned element
//	if (!window.event.cancelBubble)
//		if (null!=this.owningElement["on"+ev.type]) this.owningElement["on"+ev.type]()
}


function setup() {
	if (4>vers) return;  // Can't help old browsers
	if ("Netscape"==sys) {
		document.all = null;
		document.all = new Array;
		document.body = new Object;
		document.body.clientWidth = window.innerWidth-20; document.body.clientHeight = window.innerHeight-20
		document.body.scrollTop = window.pageXOffset; document.body.scrollLeft = window.pageYOffset
		document.body.watch("scrollTop",CheckScrollTop)
		document.body.watch("scrollLeft",CheckScrollLeft)
		document.body.offsetParent = null
		document.body.offsetLeft = document.body.offsetTop = 0
		document.body.all = new Object
		document.parentWindow = window
		_extractRoot(document,document.body)

		for (var intLayer = 0; intLayer< document.layers.length; intLayer++) {
			_extract(document.layers[intLayer])  // Nested layers, go get them.
		}

//    _setupBubbling();
//    testScroll()
//    setInterval("testScroll()",50)
		document.readyState = "complete"
	}
	return
}

//window.onload = setup; // Initialize when loaded
if ("Netscape"==sys)
	document.readyState = "loading"

var sRepeat=null
function doMarquee(dir, src, amount) {
	if (amount==null) amount=10
		document.all[src].style.pixelLeft-=amount
		if (-document.all[src].style.pixelLeft>=document.all[src].offsetWidth)
			document.all[src].style.pixelLeft=document.all[src].offsetParent.offsetWidth
	return false
}

function RunMarquee(sDir,sWhich) {
  clearInterval(sRepeat)
  iAmount=5
  sRepeat = setInterval("doMarquee('"+sDir+"','"+sWhich+"'," + iAmount+")",80)
}

function doLoad() {
  setup()
  doMarquee('right','s1',-780)
  RunMarquee("right","s1")
}
//window.onload = doLoad
