// Common Javascript functions to be used throughout the site

var my_timeout = 0;
// Define Node Types in case the browser does not define them.
if (!document.ELEMENT_NODE) {
	document.ELEMENT_NODE = 1;
	document.ATTRIBUTE_NODE = 2;
	document.TEXT_NODE = 3;
	document.CDATA_SECTION_NODE = 4;
	document.ENTITY_REFERENCE_NODE = 5;
	document.ENTITY_NODE = 6;
	document.PROCESSING_INSTRUCTION_NODE = 7;
	document.COMMENT_NODE = 8;
	document.DOCUMENT_NODE = 9;
	document.DOCUMENT_TYPE_NODE = 10;
	document.DOCUMENT_FRAGMENT_NODE = 11;
	document.NOTATION_NODE = 12;
}

function nada() {
  return;
}

function growImage(oName,fW,fH,lW,lH,stop) {
  // Parameters:
  // oName - Object Name (ID) for image tag
  // fW - First (initial) width of image
  // fH - First (initial) height of image
  // lW - Last (final) width of image
  // lH - Last (final) height of image
  // Stop - Boolean flag to stop current growth
  var growImg = document.getElementById(oName);
  if (stop) clearTimeout(my_timeout);
  
  var dW = parseInt(lW) - parseInt(fW);
  var dH = parseInt(lH) - parseInt(fH);

  if (dW < 0) {
    var newW = parseInt(growImg.width) + Math.floor(dW/8);
    if (newW < lW) newW = lW;
  } else {
    var newW = parseInt(growImg.width) + Math.ceil(dW/8);
    if (newW > lW) newW = lW;
  }
  if (dH < 0) {
    var newH = parseInt(growImg.height) + Math.floor(dH/8);
    if (newH < lH) newH = lH;
  } else {
    var newH = parseInt(growImg.height) + Math.ceil(dH/8);
    if (newH > lH) newH = lH;
  }
  growImg.width = newW;
  growImg.height = newH;
  if ((newW != lW) || (newH != lH)) {
    my_timeout = setTimeout(("growImage('"+oName+"',"+fW+","+fH+","+lW+","+lH+","+"false);"), 50);
  }
}

// Handle an AJAX XML reply by replacing every node below the indicated Div
// (in the XHTML) with every node below the indicated Tag.  
function handleAJAXNode(XMLNode, XHTMLNode) {
	if (XHTMLNode.childNodes && XHTMLNode.childNodes.length > 0)
		for (var i = (XHTMLNode.childNodes.length - 1); i > -1;)
      XHTMLNode.removeChild(XHTMLNode.childNodes[i--]);
	if (XMLNode.childNodes && XMLNode.childNodes.length > 0)
		for (i = 0, last = XMLNode.childNodes.length; i < last;)
			copyNodes(XMLNode.childNodes[i++], XHTMLNode);
  XHTMLNode.innerHTML = XHTMLNode.innerHTML;
}

// Copy from an XML document node to a XHTML DOM node.
function copyNodes (ajaxnode, copiednode) {
	switch (ajaxnode.nodeType) {
    case document.ELEMENT_NODE:
			var newNode = document.createElement(ajaxnode.nodeName);
			if (ajaxnode.attributes && ajaxnode.attributes.length > 0)
				for (var i = 0, last = ajaxnode.attributes.length; i < last;)
          newNode.setAttribute(ajaxnode.attributes[i].nodeName, ajaxnode.getAttribute(ajaxnode.attributes[i++].nodeName));
 			if (ajaxnode.childNodes && ajaxnode.childNodes.length > 0)
				for (i = 0, last = ajaxnode.childNodes.length; i < last;)
					copyNodes(ajaxnode.childNodes[i++], newNode);
			copiednode.appendChild(newNode);
      break;
    case document.TEXT_NODE:
    case document.CDATA_SECTION_NODE:
    case document.COMMENT_NODE:
      copiednode.appendChild(document.createTextNode(ajaxnode.nodeValue));
      break;
  }
}

// Hide/display a division when clicked by the user
function showMore(newsItem) {
  if (document.getElementById("m_"+newsItem).style.display == "none") {
    document.getElementById("c_"+newsItem).innerHTML = "(less)";
    document.getElementById("m_"+newsItem).style.display = "inline";
  } else {
    document.getElementById("c_"+newsItem).innerHTML = "(more)...";
    document.getElementById("m_"+newsItem).style.display = "none";
  }
}

// Switch betwen divisions when clicked by the user
function switchDiv(newDiv, allDiv) {
  for(i=0; i<allDiv.length; i++) {
    document.getElementById(allDiv[i]).style.display = "none";
  }
  document.getElementById(newDiv).style.display = "inline";
}

// Print the date that this current document was last modified.
function printDateModified() {
  var days = new Array(8);
  days[1] = "Sunday";
  days[2] = "Monday";
  days[3] = "Tuesday";
  days[4] = "Wednesday";
  days[5] = "Thursday";
  days[6] = "Friday";
  days[7] = "Saturday";
  var months = new Array(13);
  months[1] = "January";
  months[2] = "February";
  months[3] = "March";
  months[4] = "April";
  months[5] = "May";
  months[6] = "June";
  months[7] = "July";
  months[8] = "August";
  months[9] = "September";
  months[10] = "October";
  months[11] = "November";
  months[12] = "December";
  var dateObj = new Date(document.lastModified);
  if (!isNaN(dateObj.getDay())) {
    var wday = days[dateObj.getDay() + 1];
    var lmonth = months[dateObj.getMonth() + 1];
    var date = dateObj.getDate();
    var fyear = dateObj.getYear();
    if (fyear < 2000) fyear = fyear + 1900;
    document.write(wday + ", " + lmonth + " " + date + ", " + fyear)
  } else {
    document.write("(Feature not supported by browser)");
  }
}

// Determine which color is appropriate according to the Christian season.
function getCross() {
  // Set up the image files to be used.
  var theImages = new Array()
  theImages[0] = '../images/season_black.gif'
  theImages[1] = '../images/season_blue.gif'
  theImages[2] = '../images/season_gold.gif'
  theImages[3] = '../images/season_gray.gif'
  theImages[4] = '../images/season_green.gif'
  theImages[5] = '../images/season_purple.gif'
  theImages[6] = '../images/season_red.gif'
  theImages[7] = '../images/season_white.gif'
  
  // Define the colors as indices.
  var black = 0;
  var blue = 1;
  var gold = 2;
  var gray = 3;
  var green = 4;
  var purple = 5;
  var red = 6;
  var white = 7;
  
  // Define the Christian calendar.
  var cc = new Array;
  cc[cc.length] = new Array(new Date("May 29, 2005"), green);
  cc[cc.length] = new Array(new Date("November 1, 2005"), red);
  cc[cc.length] = new Array(new Date("November 6, 2005"), green);
  cc[cc.length] = new Array(new Date("November 20, 2005"), white);
  cc[cc.length] = new Array(new Date("November 27, 2005"), blue);
  cc[cc.length] = new Array(new Date("December 24, 2005"), white);
  cc[cc.length] = new Array(new Date("January 15, 2006"), green);
  cc[cc.length] = new Array(new Date("February 26, 2006"), white);
  cc[cc.length] = new Array(new Date("March 1, 2006"), gray);
  cc[cc.length] = new Array(new Date("March 2, 2006"), purple);
  cc[cc.length] = new Array(new Date("April 9, 2006"), red);
  cc[cc.length] = new Array(new Date("April 14, 2006"), black);
  cc[cc.length] = new Array(new Date("April 16, 2006"), white);
  cc[cc.length] = new Array(new Date("June 4, 2006"), red);
  cc[cc.length] = new Array(new Date("June 5, 2006"), white);
  cc[cc.length] = new Array(new Date("June 18, 2006"), green);
  cc[cc.length] = new Array(new Date("November 1, 2006"), red);
  cc[cc.length] = new Array(new Date("November 6, 2006"), green);
  cc[cc.length] = new Array(new Date("November 26, 2006"), white);
  cc[cc.length] = new Array(new Date("December 3, 2006"), blue);
  cc[cc.length] = new Array(new Date("December 24, 2006"), white);
  cc[cc.length] = new Array(new Date("January 14, 2007"), green);
  cc[cc.length] = new Array(new Date("February 18, 2007"), white);
  cc[cc.length] = new Array(new Date("February 21, 2007"), gray);
  cc[cc.length] = new Array(new Date("February 22, 2007"), purple);
  cc[cc.length] = new Array(new Date("April 1, 2007"), red);
  cc[cc.length] = new Array(new Date("April 6, 2007"), black);
  cc[cc.length] = new Array(new Date("April 8, 2007"), white);
  cc[cc.length] = new Array(new Date("May 27, 2007"), red);
  cc[cc.length] = new Array(new Date("June 3, 2007"), white);
  cc[cc.length] = new Array(new Date("June 10, 2007"), green);
  cc[cc.length] = new Array(new Date("November 1, 2007"), white);
  cc[cc.length] = new Array(new Date("November 11, 2007"), green);
  cc[cc.length] = new Array(new Date("November 25, 2007"), gold);
  cc[cc.length] = new Array(new Date("December 2, 2007"), blue);
  cc[cc.length] = new Array(new Date("December 24, 2007"), white);
  cc[cc.length] = new Array(new Date("January 20, 2008"), green);
  cc[cc.length] = new Array(new Date("February 3, 2008"), white);
  cc[cc.length] = new Array(new Date("February 6, 2008"), gray);
  cc[cc.length] = new Array(new Date("February 10, 2008"), purple);
  cc[cc.length] = new Array(new Date("March 16, 2008"), red);
  cc[cc.length] = new Array(new Date("March 21, 2008"), black);
  cc[cc.length] = new Array(new Date("March 23, 2008"), white);
  cc[cc.length] = new Array(new Date("May 11, 2008"), red);
  cc[cc.length] = new Array(new Date("May 18, 2008"), white);
  cc[cc.length] = new Array(new Date("May 25, 2008"), green);
  cc[cc.length] = new Array(new Date("November 1, 2008"), red);
  cc[cc.length] = new Array(new Date("November 9, 2008"), green);
  cc[cc.length] = new Array(new Date("November 27, 2008"), white);
  cc[cc.length] = new Array(new Date("November 30, 2008"), blue);
  cc[cc.length] = new Array(new Date("December 24, 2008"), white);
  cc[cc.length] = new Array(new Date("January 18, 2009"), green);
  cc[cc.length] = new Array(new Date("February 22, 2009"), gray);
  cc[cc.length] = new Array(new Date("February 23, 2009"), purple);
  cc[cc.length] = new Array(new Date("April 5, 2009"), red);
  cc[cc.length] = new Array(new Date("April 10, 2009"), black);
  cc[cc.length] = new Array(new Date("April 11, 2009"), white);
  cc[cc.length] = new Array(new Date("May 31, 2009"), red);
  cc[cc.length] = new Array(new Date("June 7, 2009"), white);
  cc[cc.length] = new Array(new Date("June 14, 2009"), green);
  cc[cc.length] = new Array(new Date("November 1, 2009"), white);
  cc[cc.length] = new Array(new Date("November 8, 2009"), green);
  cc[cc.length] = new Array(new Date("November 22, 2009"), gold);
  cc[cc.length] = new Array(new Date("November 26, 2009"), green);
  cc[cc.length] = new Array(new Date("November 29, 2009"), blue);
  cc[cc.length] = new Array(new Date("December 13, 2009"), purple);
  cc[cc.length] = new Array(new Date("December 24, 2009"), white);
  cc[cc.length] = new Array(new Date("January 17, 2010"), green);
  cc[cc.length] = new Array(new Date("February 14, 2010"), white);
  cc[cc.length] = new Array(new Date("February 17, 2010"), gray);
  cc[cc.length] = new Array(new Date("February 21, 2010"), purple);
  cc[cc.length] = new Array(new Date("March 28, 2010"), red);
  cc[cc.length] = new Array(new Date("April 2, 2010"), black);
  cc[cc.length] = new Array(new Date("April 4, 2010"), white);
  cc[cc.length] = new Array(new Date("May 23, 2010"), red);
  cc[cc.length] = new Array(new Date("May 30, 2010"), white);
  cc[cc.length] = new Array(new Date("June 6, 2010"), green);
  cc[cc.length] = new Array(new Date("October 31, 2010"), red);
  cc[cc.length] = new Array(new Date("November 1, 2010"), white);
  cc[cc.length] = new Array(new Date("November 7, 2010"), green);
  cc[cc.length] = new Array(new Date("November 21, 2010"), gold);
  cc[cc.length] = new Array(new Date("November 25, 2010"), green);
  cc[cc.length] = new Array(new Date("November 28, 2010"), blue);
  cc[cc.length] = new Array(new Date("December 24, 2010"), white);
  cc[cc.length] = new Array(new Date("January 16, 2011"), green);
  // Last Christian calendar entry.
  cc[cc.length] = new Array(new Date("December 31, 2099"), white);
  
  // Get the current date.
  var today = new Date();
  
  var j = 0
  var p = theImages.length;
  var preBuffer = new Array()
  for (i = 0; i < p; i++){
    preBuffer[i] = new Image()
    preBuffer[i].src = theImages[i]
  }
  var whichImage = 0;
  var seasonIndex = 0;
  while (today >= cc[seasonIndex][0]){
    whichImage = cc[seasonIndex][1];
    seasonIndex++;
  }
  
  return theImages[whichImage];
}
  
/*************************************************************************
  This code is from Dynamic Web Coding at www.dyn-web.com
  Copyright 2002-4 by Sharon Paine 
  See Terms of Use at www.dyn-web.com/bus/terms.html
  regarding conditions under which you may use this code.
  This notice must be retained in the code as is!
*************************************************************************/

function initGlideLayers(glideLyrs) {
  var i, el;
  
  // Pass in your layers as elements in an array.
  // arguments: id, amount to be visible (left), top, width, height
	// If you don't specify the top position (null), code calculates
	// based on height of previous layer, leaving a 2px gap
	//Example:
  //var glideLyrs = new Array();
  //glideLyrs[0] = new dynObj('glideDiv0', 20, 50, 100, 24);
  //glideLyrs[1] = new dynObj('glideDiv1', 20, null, 100, 24);
  //glideLyrs[2] = new dynObj('glideDiv2', 20, null, 100, 24);
  //glideLyrs[3] = new dynObj('glideDiv3', 20, null, 100, 24);
  
  for (i=0; glideLyrs[i]; i++) {
		// hold amount to be left visible 
		glideLyrs[i].xOff = glideLyrs[i].x;
		if ( !glideLyrs[i].y ) // position based on previous glideLyrs height and position
			if ( glideLyrs[i-1] ) glideLyrs[i].y = glideLyrs[i-1].y + glideLyrs[i-1].h + 2;	
		glideLyrs[i].shiftTo( -(glideLyrs[i].w - glideLyrs[i].xOff), glideLyrs[i].y );
		glideLyrs[i].show();
    el = dynObj.getElemRef( glideLyrs[i].id );
    if (el) {
      el.onmouseover = slideIntoView;
      el.onmouseout = slideOutOfView;
    }
  }  
  
}

function slideIntoView() {
  var glideLyr = dynObj.getInstance(this.id);
  glideLyr.slideTo(0, null, 250, -.8);
}

function slideOutOfView(e) {
  var glideLyr = dynObj.getInstance(this.id);
	e = e? e: window.event;
  var toEl = e.relatedTarget? e.relatedTarget: e.toElement;
  if ( toEl != glideLyr.el && !contained(toEl, glideLyr.el) ) 
	  glideLyr.slideTo( -(glideLyr.w - glideLyr.xOff), null, 300, -.8);
}

// returns true if oNode is contained by oCont (container)
function contained(oNode, oCont) {
  if (!oNode) return; // in case alt-tab away while hovering (prevent error)
  while ( oNode = oNode.parentNode ) if ( oNode == oCont ) return true;
  return false;
}

/*
  dw_lib.js - used with dw_glide.js, dw_glider.js, ...
  version date July 2004 
*/

dynObj.holder = {}; 
// constructor
function dynObj(id,x,y,w,h) {
  var el = dynObj.getElemRef(id);
  if (!el) return;  this.id = id; 
  dynObj.holder[this.id] = this; this.animString = "dynObj.holder." + this.id;
  var px = window.opera? 0: "px";
	this.x = x || 0;	if (x) el.style.left = this.x + px;
	this.y = y || 0;	if (y) el.style.top = this.y + px;
	this.w = w || el.offsetWidth || 0;	this.h = h || el.offsetHeight || 0;
	// if w/h passed, set style width/height
	if (w) el.style.width = w + px; if (h) el.style.height = h + px;
}

dynObj.getElemRef = function(id) { 
  var el = document.getElementById? document.getElementById(id): null;
  return el;
} 

dynObj.getInstance = function(id) {
  var obj = dynObj.holder[id];
  if (!obj) obj = new dynObj(id);
  else if (!obj.el) obj.el = dynObj.getElemRef(id);
  return obj;
}

dynObj.prototype.shiftTo = function(x,y) {
  var el = this.el? this.el: dynObj.getElemRef(this.id)? dynObj.getElemRef(this.id): null;
  if (el) {
    if (x != null) el.style.left = (this.x = x) + "px";
    if (y != null) el.style.top = (this.y = y) + "px";
  }
}

dynObj.prototype.shiftBy = function(x,y) { this.shiftTo(this.x+x, this.y+y); }

dynObj.prototype.show = function() { 
  var el = this.el? this.el: dynObj.getElemRef(this.id)? dynObj.getElemRef(this.id): null;
  if (el) el.style.visibility = "visible"; 
}
dynObj.prototype.hide = function() { 
  var el = this.el? this.el: dynObj.getElemRef(this.id)? dynObj.getElemRef(this.id): null;
  if (el) el.style.visibility = "hidden"; 
}


// for time-based animations
// resources: www.13thparallel.org and www.youngpup.net (accelimation)
var dw_Bezier = {
  B1: function (t) { return t*t*t },
  B2: function (t) { return 3*t*t*(1-t) },
  B3: function (t) { return 3*t*(1-t)*(1-t) },
  B4: function (t) { return (1-t)*(1-t)*(1-t) },
  // returns current value based on percentage of time passed
  getValue: function (percent,startVal,endVal,c1,c2) {
    return endVal * this.B1(percent) + c2 * this.B2(percent) + c1 * this.B3(percent) + startVal * this.B4(percent);
  }
}

// adapted from accelimation.js by Aaron Boodman of www.youngpup.net
dw_Animation = {
  instances: [],
  add: function(fp) {
    this.instances[this.instances.length] = fp;
  	if (this.instances.length == 1) this.timerID = window.setInterval("dw_Animation.control()", 10);
  },
  
  remove: function(fp) {
    for (var i = 0; this.instances[i]; i++) {
  		if (fp == this.instances[i]) {
  			this.instances = this.instances.slice(0,i).concat( this.instances.slice(i+1) );
  			break;
  		}
  	}
  	if (this.instances.length == 0) {
  		window.clearInterval(this.timerID);	this.timerID = null;
  	}
  },
  
  control: function() {
    for (var i = 0; this.instances[i]; i++) {
  		if (typeof this.instances[i] == "function" ) this.instances[i]();
      else eval(this.instances[i]);
    }
  }
}

/*
  dw_glide.js - requires dw_lib.js
  version date July 2004 
*/

// acc is number between -1 and 1 ( -1 full decelerated, 1 full accelerated, 0 linear, i.e. no acceleration)
dynObj.prototype.slideTo = function (destX,destY,slideDur,acc,endFn) {
  if (!document.getElementById) return;
  this.slideDur = slideDur || .0001; var acc = -acc || 0;
  if (endFn) this.onSlideEnd = endFn;
  // hold destination values (check for movement on 1 axis only)
 	if (destX == null) this.destX = this.x;	else this.destX = destX;
  if (destY == null) this.destY = this.y; else this.destY = destY;
  this.startX = this.x; this.startY = this.y;
	this.st = new Date().getTime();
	// control points for bezier-controlled slide (see www.youngpup.net accelimation)
  this.xc1 = this.x + ( (1+acc) * (this.destX-this.x)/3 );
	this.xc2 = this.x + ( (2+acc) * (this.destX-this.x)/3 );
  this.yc1 = this.y + ( (1+acc) * (this.destY-this.y)/3 );
	this.yc2 = this.y + ( (2+acc) * (this.destY-this.y)/3 );
	this.sliding = true;
  this.onSlideStart();
  dw_Animation.add(this.animString + ".doSlide()");
}

dynObj.prototype.doSlide = function() {
	if (!this.sliding) return;	
	var elapsed = new Date().getTime() - this.st;
	if (elapsed < this.slideDur) {
    var x = dw_Bezier.getValue(elapsed/this.slideDur, this.startX, this.destX, this.xc1, this.xc2);
    var y = dw_Bezier.getValue(elapsed/this.slideDur, this.startY, this.destY, this.yc1, this.yc2);
		this.shiftTo( Math.round(x) ,Math.round(y) );
		this.onSlide();
	} else {	// if time's up
    dw_Animation.remove(this.animString + ".doSlide()");
		this.shiftTo(this.destX,this.destY);
		this.onSlide();
		this.sliding = false;
		this.onSlideEnd();
	}
}

dynObj.prototype.slideBy = function(dx,dy,slideDur,acc,endFn) {
	var destX=this.x+dx; var destY=this.y+dy;
	this.slideTo(destX,destY,slideDur,acc,endFn);
}

dynObj.prototype.onSlideStart = function () {}
dynObj.prototype.onSlide = function () {}
dynObj.prototype.onSlideEnd = function () { if (this.el) this.el = null; }

/*
		dw_glider.js - requires dw_lib.js
		glide to maintain window location on scroll
		version date: September 2003 

		This code is from Dynamic Web Coding at www.dyn-web.com
    See Terms of Use at http://www.dyn-web.com/bus/terms.html
    Permission granted to use this code 
    as long as this entire notice is included.	
    
    Resources: ypChaser by Aaron Boodman (www.youngpup.net)
    DHTML chaser tutorial at DHTML Lab - www.webreference.com/dhtml		
*/

Glider.holder = [];
function Glider(id,x,y,w,h,d,ac) {
	this.glideDur = d || 1000; this.origX = x; this.origY = y; this.ac = -ac || 0;
	this.baseObj = dynObj;
	this.baseObj(id,x,y,w,h);
  Glider.holder[Glider.holder.length] = this;
  if (!Glider.winHt) Glider.winHt = getWinHeight();
}
Glider.prototype = new dynObj;
Glider.prototype.onGlideInit = function () {}

Glider.prototype.checkGlider = function() {
	var destY = getScrollY() + this.origY;
	if (destY != this.y) {
		if (destY != this.dy) {
			this.dy = destY;
			this.glideInit();
      this.onGlideInit();
		} 
		this.glide();
	}
}

Glider.prototype.glideInit = function() {
	this.gt = new Date().getTime();
	var distY = this.dy - this.y;
	if ( Math.abs(distY) > Glider.winHt ) {	// distance greater than window height?
		this.gsy = (distY > 0)? this.dy - Glider.winHt: this.dy + Glider.winHt;
	} else this.gsy = this.y;
  this.g_yc1 = this.gsy + ( (1+this.ac) * (this.dy - this.gsy)/3 );
	this.g_yc2 = this.gsy + ( (2+this.ac) * (this.dy - this.gsy)/3 );
}

Glider.prototype.glide = function() {
	var elapsed = new Date().getTime() - this.gt;
  if (elapsed < this.glideDur) {
    var y = dw_Bezier.getValue( elapsed/this.glideDur, this.gsy, this.dy, this.g_yc1, this.g_yc2 );
    this.shiftTo(null,y);
  } else this.shiftTo(null,this.dy);
}

Glider.control = function() {
  for (var i=0; Glider.holder[i]; i++) {
    var curObj = Glider.holder[i];
    if (curObj) curObj.checkGlider();
  }
}
//Glider.timer = setInterval("Glider.control()",20);
dw_Animation.add(Glider.control);

// returns height of window
function getWinHeight() {
	var winHt = 0;
	if (window.innerHeight) winHt = window.innerHeight-18;
	else if (document.documentElement && document.documentElement.clientHeight) 
		winHt = document.documentElement.clientHeight;
	else if (document.body && document.body.clientHeight) 
		winHt = document.body.clientHeight;
	return winHt;
}	

// returns amount of vertical scroll
function getScrollY() {
	var sy = 0;
	if (document.documentElement && document.documentElement.scrollTop)
		sy = document.documentElement.scrollTop;
	else if (document.body && document.body.scrollTop) 
		sy = document.body.scrollTop; 
	else if (window.pageYOffset)
		sy = window.pageYOffset;
	else if (window.scrollY)
		sy = window.scrollY;
	return sy;
}

// onresize, get window height
if (window.addEventListener)
  window.addEventListener("resize", function(){ Glider.winHt = getWinHeight(); }, "false");
else if (window.attachEvent)
  window.attachEvent("onresize", function(){ Glider.winHt = getWinHeight(); } );
