// hide the animated layers for those sites w/js turned on
document.write("<style type='text/css'>");
document.write("#sponsorshipCopy, #eventCopy, #constructionMessage { visibility:hidden; }");
document.write("</style>");

WM_netscapeCssFixCheckIn();  // fix for the netscape 4 resize problem

// vars for animation
var eventTargetY = 0;
var sponsorTargetX = 480;
var delay = 40;
var vel = 5;
var accel = 5;
var eventOn=false;
var sponsorOn=false;

function slideEvent(){
	distToTarget = eventTargetY - teaserLayers["event"].getY();
//	teaserLayers["event"].moveBy(0, vel);	// smooth move
	teaserLayers["event"].moveBy(0, (distToTarget/accel));	// ease in
	if (distToTarget > vel) {
		setTimeout("slideEvent()", delay);
	}
	else {
		teaserLayers["event"].setY(eventTargetY);
	}
}

function slideSponsorship(){
	distToTarget = sponsorTargetX - teaserLayers["sponsorship"].getX();
//	teaserLayers["sponsorship"].moveBy(vel, 0);	// smooth move
	teaserLayers["sponsorship"].moveBy((distToTarget/accel), 0);	// ease in
	if (distToTarget > vel) {
		setTimeout("slideSponsorship()", delay);
	}
	else {
		teaserLayers["sponsorship"].setX(sponsorTargetX);
	}
}

function showEvent() {
	if (initialized && !eventOn) {
		eventOn = true;
		teaserLayers["event"].setY(-300);
		teaserLayers["event"].setVisibility("visible");
		slideEvent();
	}
}

function hideEvent() {
	if (initialized) {
		teaserLayers["event"].setVisibility("hidden");
		eventOn=false;
	}
}

function showSponsorship() {
	if (initialized && !sponsorOn) {
		sponsorOn = true;
		teaserLayers["sponsorship"].setX(-300);
		teaserLayers["sponsorship"].setVisibility("visible");
		slideSponsorship();
	}
}

function hideSponsorship() {
	if (initialized) {
		teaserLayers["sponsorship"].setVisibility("hidden");
		sponsorOn=false;
	}
}

function handleNavOver(strSection) {
	if (initialized) {
		for (sec in navLayers) {
				navLayers[sec].setVisibility("hidden");
		}
		navLayers[strSection].setVisibility("visible");
	}
}

function handleNavOut(strSection) {
	if (initialized) {
		navLayers[strSection].setVisibility("hidden");
	}
}

function handleNavClick() {
	if (initialized) {
		constructionMessage.setVisibility("visible");
	}
}


///////////////////////////////////////////////////
// netscape resize fix - thanks to webmonkey.com
///////////////////////////////////////////////////
function WM_netscapeCssFix() {
  /*
    Source: Webmonkey Code Library
    (http://www.hotwired.com/webmonkey/javascript/code_library/)

    Author: Taylor
    Author Email: taylor@wired.com
    Author URL: http://www.taylor.org/
    */

  if (document.WM.WM_netscapeCssFix.initWindowWidth != window.innerWidth || document.WM.WM_netscapeCssFix.initWindowHeight != window.innerHeight) {
    document.location = document.location;
  }
}

function WM_netscapeCssFixCheckIn() {
  if ((navigator.appName == 'Netscape') && (parseInt(navigator.appVersion) == 4)) {
    if (typeof document.WM == 'undefined'){
      document.WM = new Object;
    }
    if (typeof document.WM.WM_scaleFont == 'undefined') {
      document.WM.WM_netscapeCssFix = new Object;
      document.WM.WM_netscapeCssFix.initWindowWidth = window.innerWidth;
      document.WM.WM_netscapeCssFix.initWindowHeight = window.innerHeight;
    }
    window.onresize = WM_netscapeCssFix;
  }
}



// much praise and thanks to dr.dom!!!!
// This object has been adapted for use on Laika.org by the folks at Planetmouse Inc. (http://planetmouse.com)
function pnhGetLayerX() {
	if (document.layers) { return this.layer.left; }
	else if (document.all) { return parseInt(this.layer.style.left); }
	else if (document.getElementById) {	return parseInt(document.defaultView.getComputedStyle(this.layer, null).getPropertyValue('left')); }
	else { return null; }
}
function pnhGetLayerY() {
	if (document.layers) { return this.layer.top; }
	else if (document.all) { return parseInt(this.layer.style.top);}
	else if (document.getElementById) { return parseInt(document.defaultView.getComputedStyle(this.layer, null).getPropertyValue('top')); }
	else { return null;	}
}
function pnhSetLayerX(iPixels) {
	if (document.layers) { this.layer.left = iPixels; }
	else if (document.all) { this.layer.style.left = iPixels; }
	else if (document.getElementById) { this.layer.style.left = iPixels + "px"; }
	else { /* ???? */ }
}
function pnhSetLayerY(iPixels) {
	if (document.layers) { this.layer.top = iPixels; }
	else if (document.all) { this.layer.style.top = iPixels; }
	else if (document.getElementById) { this.layer.style.top = iPixels + "px"; }
	else { /* ???? */ }
}
function pnhSetLayerZ(iIndex) {
	if (document.layers) { this.layer.zIndex = iIndex; }
	else if (document.all) { this.layer.style.zIndex = iIndex; }
	else if (document.getElementById) { this.layer.style.zIndex = iIndex; }
	else { /* ???? */ }
}
function pnhLayerMoveBy(iLeft,iTop) {
	if (document.layers) { this.layer.top = this.getY() + iTop; this.layer.left = this.getX() + iLeft; }
	else if (document.all) { this.layer.style.pixelTop = this.getY() + iTop; this.layer.style.pixelLeft = this.getX() + iLeft; }
	else if (document.getElementById) { this.layer.style.top =  this.getY() + iTop; this.layer.style.left = this.getX() + iLeft; }
	else { /* ???? */ }
}
function pnhRewriteLayerHTML(sHTML, iWidth) {
	// width is a must have for Navigator 4.x - otherwise text won't wrap at same width as it had previous to the rewrite
	if (document.layers) {
		sHTML = "<table cellpadding='0' cellspacing='0' border='0' width='" + iWidth + "'><tr><td width='" + iWidth + "'>" + sHTML + "</td></td></table>";
	 	this.layer.document.open();
		this.layer.document.write(sHTML);
		this.layer.document.close();
	}
	else if ((document.getElementById) || (document.all)) { this.layer.innerHTML = sHTML; }
	else { /* ???? */ }
}
function pnhSetLayerVis(sVisibility) {
	if (document.layers) { this.layer.visibility = sVisibility; }
	else if ((document.all) || (document.getElementById)) { this.layer.style.visibility = sVisibility; }
	else { /* ???? */ }
}

function pnhLayerObject(sLayerName,aNesting) {
	// STEP 1: get ahold of the DOM object
	if (document.getElementById) {
		this.layer = document.getElementById(sLayerName); // should this be "sLayerId"?
	} else if (document.all) {
		this.layer = document.all[sLayerName];
	} else if (document.layers) {
		var layernesting = "";
		// aNesting is an array of parent layers starting outermost to closest
		if (aNesting) {
			for (i=0;i<aNesting.length;i++) {
				// alert(aNesting.length);
				layernesting = layernesting + "document.layers['" + aNesting[i] + "'].";
			}
		}
		// alert(layernesting + "document.layers['" + sLayerName + "']");
		this.layer = eval(layernesting + "document.layers['" + sLayerName + "']");
	} else { }
	
	// STEP 2: hook in the functions
	this.getX = pnhGetLayerX;
	this.getY = pnhGetLayerY;

	this.setX = pnhSetLayerX;
	this.setY = pnhSetLayerY;
	this.moveBy = pnhLayerMoveBy;	

	this.setZ = pnhSetLayerZ;
	this.setHTML = pnhRewriteLayerHTML;
	this.setVisibility = pnhSetLayerVis;
	
}



