/*

		dw_util.js

		utility functions (and 1 method for dynObj)

		version date: August 2002

		

		functions for getting window dimensions and scroll amount

		from http://13thparallel.com/?issue=2002.06&title=viewport

				

		This code is from Dynamic Web Coding 

    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.		

*/



// center in container (window or outer layer)

// NOTE: uses this.width/height properties of dynObj

// so make sure those have been obtained/set appropriately

// for type of content!!!!

dynObj.prototype.centerIn = function(outer) {

	var outWd, outHt, inWd, inHt, x, y;

	if (eval(outer)==window) {

		outWd=getWinWidth();

		outHt=getWinHeight();

	} else {

		outWd=outer.width;

		outHt=outer.height;

	}

	inWd=this.width;

	inHt=this.height;

	x=Math.round((outWd-inWd)/2);

	y=Math.round((outHt-inHt)/2);

	this.shiftTo(x,y);

}



// gets rendered height/width 

// for ns4, pass reference to layer. 

// for others, pass reference to layer or

// id of html element containing content (depends...)

function getWidth(obj,id) {

	var wd=0;

	if (document.getElementById||document.all) {

		var elem;

		if (id)	elem = (document.getElementById)? document.getElementById(id): document.all[id];

		else elem = obj;

		if (elem.offsetWidth) wd = elem.offsetWidth;

  } else if (obj.document) wd = obj.document.width;	// ns4

	return wd;

}



function getHeight(obj,id) {

	var ht=0;

	if (document.getElementById||document.all) {

    var elem;

		if (id)	elem = (document.getElementById)? document.getElementById(id): document.all[id];

		else elem = obj;

		if (elem.offsetHeight) ht = elem.offsetHeight;

  } else if (obj.document) ht = obj.document.height;	// ns4

	return ht;

}



// credit to http://www.13thparallel.com for the following 4 functions

// see http://13thparallel.com/?issue=2002.06&title=viewport

// returns width of window

function getWinWidth() {

	var winWd = 0;

	if (document.documentElement && document.documentElement.clientWidth) 

		winWd = document.documentElement.clientWidth;

	else if (document.body && document.body.clientWidth) 

		winWd = document.body.clientWidth;

	else if (document.body && document.body.offsetWidth) 

		winWd = document.body.offsetWidth; // ns6

	else if (window.innerWidth) winWd = window.innerWidth-18;

	return winWd;

}



// 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 scroll_y = 0;

	if (document.documentElement && document.documentElement.scrollTop)

		scroll_y = document.documentElement.scrollTop;

	else if (document.body && document.body.scrollTop) 

		scroll_y = document.body.scrollTop; 

	else if (window.pageYOffset)

		scroll_y = window.pageYOffset;

	else if (window.scrollY)

		scroll_y = window.scrollY;

	return scroll_y;

}



// returns amount of horizontal scroll

function getScrollX() {

	var scroll_x = 0;

	if (document.documentElement && document.documentElement.scrollLeft)

		scroll_x = document.documentElement.scrollLeft;

	else if (document.body && document.body.scrollLeft) 

		scroll_x = document.body.scrollLeft; 

	else if (window.pageXOffset)

		scroll_x = window.pageXOffset;

	else if (window.scrollX)

		scroll_x = window.scrollX;

	return scroll_x;

}
