/* 
* Class name      : DOMUtils.js
* Description     : utilities for forms
*                    1. Utils - (getElem) 
*                    2. Show/Hide/Fade - (show, hide, setOpacity, fade, fadeIn, fadeInToStopOpacity, fadeOut)
*                    3. Positioning - (findPos, showAndPositionElm, setTop, setLeft)
*                    4. DIVs - (setHeight, setWidth, setScroll)
*
*                   CODE DEPENDENCIES:
*                    1. Logger.js 
*                    					
* Version         : 1.0
* Date            : 10/01/2010
* Copyright notice: MYCOMPANY (C) 2010
*
* Author 	Date      		Version  	Description
* ----------------------------------------------------------------------------
* GAP Jr 	10/01/2010   	1.0  	First Release
*/

function getElm(eID) {
	alert(eID);
	return document.getElementById(eID);
}

function show(eID) {
	getElm(eID).style.display='block';
}

function hide(eID) {
	getElm(eID).style.display='none';
}

/** NOTE: 
 *  Add an 'hide' entry for all select box ID's.
 *  IE6 treats selects as top-most elements and
 *  as such they will bleed through overlapping
 *  DIVs 
**/
function showIESelectBoxes(formArray) {	 
	var arLen=formArray.length;
	for ( var i=0, len=arLen; i<len; ++i )
	{
		var formElement = formArray[i];
		getElm(formElement).style.display='block';
	}
}

/** NOTE: 
 *  Add an 'hide' entry for all select box ID's.
 *  IE6 treats selects as top-most elements and
 *  as such they will bleed through overlapping
 *  DIVs 
**/
function hideIESelectBoxes(formArray) {

	 var arLen=formArray.length;
	for ( var i=0, len=arLen; i<len; ++i )
	{
		var formElement = formArray[i];
		getElm(formElement).style.display='none';
	}
}


function setOpacity(eID, opacityLevel) {
	var eStyle = getElm(eID).style;
	eStyle.opacity = opacityLevel / 100;
	eStyle.filter = 'alpha(opacity='+opacityLevel+')';
}

function fade(eID, startOpacity, stopOpacity, duration) {
	var speed = Math.round(duration / 100);
	var timer = 0;
	if (startOpacity < stopOpacity){
		for (var i=startOpacity; i<=stopOpacity; i++) {
			setTimeout("setOpacity('"+eID+"',"+i+")", timer * speed);
			timer++;
		}return;
	}
	for (var i=startOpacity; i>=stopOpacity; i--) {
		setTimeout("setOpacity('"+eID+"',"+i+")", timer * speed);
		timer++;
	}
}

function fadeIn(eID) {
	setOpacity(eID, 0); show(eID); var timer = 0;
	for (var i=1; i<=100; i++) {
		setTimeout("setOpacity('"+eID+"',"+i+")", timer * 5);
		timer++;
	}
}


function fadeInToStopOpacity(eID, stopOpacity) {
	if (document.documentMode!=8)
	{
		setOpacity(eID, 0); show(eID); var timer = 0;
		for (var i=1; i<=stopOpacity; i++) {
			setTimeout("setOpacity('"+eID+"',"+i+")", timer * 5);
			timer++;
		}
	}
	else
	{
		setOpacity(eID,stopOpacity);
		show(eID);
	}
}

function fadeOut(eID) {
	if (document.documentMode!=8)
	{
		var timer = 0;
		for (var i=100; i>=1; i--) {
			setTimeout("setOpacity('"+eID+"',"+i+")", timer * 3);
			timer++;
		}
		setTimeout("hide('"+eID+"')", 310);
	}
	else
	{
		setOpacity(eID,50);
		setTimeout("hide('"+eID+"')",150);		
	}
}

function findPos(EID) { 
	var obj = EID
	var curleft = curtop = 0; 
	if (obj.offsetParent) { 
	        curleft = obj.offsetLeft; 
	        curtop = obj.offsetTop; 
	        while (obj = obj.offsetParent) { 
	                curleft += obj.offsetLeft; 
	                curtop += obj.offsetTop; 
	        } 
	} 
	return [curleft,curtop]; 
}		           
			           
function showAndPositionElm(EID, ElmToShow, XOffSet, YOffSet)
{
		//form object
	if(!EID)//error condition
	{
		txt="There was an error on this page  invoking <showAndPositionElm>.\n\n";
		txt+='Error description: "EID(Element ID)" is null or not defined\n\n';
		txt+="Click OK to continue.\n\n";
		if(_Logger.log("ERROR")) alert("ERROR.DOMUtils.js\n\n"+txt);	
	}
	var FormObj = EID;
	
	var pos = findPos(FormObj); 	
	var xCoord = eval(pos[0]+(XOffSet)); 
	var yCoord = eval(pos[1]+(YOffSet));
	
	if(ElmToShow)
	{
		//position element
		setTop(ElmToShow.id,yCoord);
		setLeft(ElmToShow.id,xCoord);
		//display element
		show(ElmToShow.id);
	}
}

function setTop(eID, yPos) {
	getElm(eID).style.top=yPos+"px";
}
function setLeft(eID, xPos) {
	getElm(eID).style.left=xPos+"px";
}

function setScroll(eID, scrollSetting)
{
	getElm(eID).style.overflow=scrollSetting;
}

function setHeight(eID, divHeight)
{
	getElm(eID).style.height=divHeight+"px";
	
}

function setWidth(eID, divWidth)
{
	getElm(eID).style.width=divWidth+="px";
	
}

