hansonDodge = new Object();

/*
** isInferior - true if browser is inferior, false if browser is good.
*/
hansonDodge.isInferior = parseFloat(navigator.appVersion.substr(navigator.appVersion.indexOf('MSIE')+5, 3)) < 7;

/* 
** getRealLeft returns the accurate left pixel position relative to the left of the document.
*/
hansonDodge.getRealLeft = function(element) {
	var realLeft = 0;
	while (element.offsetParent) {
		realLeft += element.offsetLeft;
		element = element.offsetParent;
	}
	return realLeft;
}


/* 
** getRealTop returns the accurate top pixel position relative to the top of the document.
*/
hansonDodge.getRealTop = function(element) {
	var realTop = 0;
	while (element.offsetParent) {
		realTop += element.offsetTop;
		element = element.offsetParent;
	}
	return realTop;
}

/*
* Returns an object with properties for the current width and height of the browser window
* as well the horizontal and vertical offsets.
* The properies of the return value are: width, height, xOffset and yOffset
*/
hansonDodge.getWindowSize = function() {
	if ( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		windowWidth = window.innerWidth;
		windowHeight = window.innerHeight;
	} else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		//alert('IE 6+, in standards compliance mode.');
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		//alert('IE 4 mode.');
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	
	if ( window.pageXOffset && typeof(window.pageXOffset) == 'number' ) {
		windowXOffset = window.pageXOffset;
		windowYOffset = window.pageYOffset;
	} else if (document.documentElement && typeof(document.documentElement.scrollLeft) == 'number' ) {
		windowXOffset = document.documentElement.scrollLeft;
		windowYOffset = document.documentElement.scrollTop;
	}
	
	var dimensions = new Object();
	dimensions.width = windowWidth;
	dimensions.height = windowHeight;
	dimensions.xOffset = windowXOffset;
	dimensions.yOffset = windowYOffset;
	
	return dimensions;
}

/* Centers element on the stage. */
hansonDodge.center = function(element) {
	if (typeof(element) == 'object' && typeof(element.style) == 'object') {
		if (element.style.position != 'absolute') {
			element.style.position == 'absolute';
		}
		windowDimensions = hansonDodge.getWindowSize();
		element.style.left = (windowDimensions.width / 2) - (element.offsetWidth / 2) + windowDimensions.xOffset + 'px';
		element.style.top = (windowDimensions.height / 2) - (element.offsetHeight / 2) + windowDimensions.yOffset + 'px';
	}
}

/*
** 
*/

hansonDodge.dropShadow = new Object();

hansonDodge.dropShadow.opacity = 0.2;
hansonDodge.dropShadow.offsetX = 3;
hansonDodge.dropShadow.offsetY = 3;

hansonDodge.dropShadow.createShadow = function(elementId) {
	var currentElement = document.getElementById(elementId);
			
	if (currentElement && typeof(currentElement.style) == 'object') {
		if (!document.getElementById(elementId+'_shadow')) {
			var shadow = document.createElement('div');
			shadow.id = elementId+'_shadow';
			shadow.style.display = 'none';
			shadow.style.background = '#000';
			if (typeof(shadow.style.filter) == 'string') {
				shadow.style.filter = 'alpha(opacity='+parseInt(hansonDodge.dropShadow.opacity*100)+')';
			} else {
				shadow.style.opacity = hansonDodge.dropShadow.opacity;
			}
			shadow.style.position = 'absolute';
			if (currentElement.style.zIndex) {
				shadow.style.zIndex = parseInt(currentElement.style.zIndex)-10;
				//alert(shadow.style.zIndex);
			} else {
				shadow.style.zIndex = 99;
				currentElement.style.zIndex = 100;
			}
			shadow.style.top = hansonDodge.getRealTop(currentElement) + hansonDodge.dropShadow.offsetY + 'px';
			shadow.style.left = hansonDodge.getRealLeft(currentElement) + hansonDodge.dropShadow.offsetX + 'px';
			shadow.style.width = currentElement.offsetWidth + 'px';
			shadow.style.height = currentElement.offsetHeight + 'px';
			var wrapper = document.getElementById('wrapper');
			if (wrapper && typeof(wrapper) == 'object')  {
				document.getElementById('wrapper').appendChild(shadow);
			} else {
				document.body.appendChild(shadow);
			}
			shadow.style.display = 'block'
		}
	}
}

hansonDodge.dropShadow.destroyShadow = function(elementId) {
	var shadow = document.getElementById(elementId+'_shadow');
	if (shadow && typeof(shadow) == 'object') {
		shadow.parentNode.removeChild(shadow);
	}
}