
function ietruebody()
{
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function isEnterKey(e)
{

	e = e || window.event;

	var key;

	if(browser.isIE)
		key = e.keyCode;
	else
		key = e.which;

	if (key == 13)
		return true;
	else
		return false;
}

//function para contar elementos en los array que no tiene la propiedad length
function size(array)
{
	count = 0;
	for (var item in array)
	{
		count++;
	}
	return count;
}

function findPos(obj)
{
	var curleft = 0;
	var curtop =0;

	if (browser.isIE)
	{
		curleft = obj.getBoundingClientRect().left + ietruebody().scrollLeft;
		curtop = obj.getBoundingClientRect().top + ietruebody().scrollTop;
	}
	else
	{
		if (obj.offsetParent)
		{
			do
			{
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
	}
	return {x: curleft, y: curtop};
}

function findPos2(obj)
{
	var pos		= new Array();
	pos["x"]	= parseInt(obj.style.left);
	pos["y"]	= parseInt(obj.style.top);
	return pos;
}

function getDim(obj)
{
	return {width: obj.offsetWidth, height: obj.offsetHeight}
}

function getPointerPos(e)
{
	e = e || window.event;
	if(e.pageX || e.pageY)
		return  {x:e.pageX, y:e.pageY};
	else
		if (browser.isIE)
			return {x: e.clientX + ietruebody().scrollLeft , y:e.clientY + ietruebody().scrollTop};
		else
			return {x: e.clientX, y:e.clientY};
}

function isIn(coords, pos, dim)
{
	if ( (coords.x > pos.x) && (coords.x < (pos.x+dim.width)) )
		if ( (coords.y > pos.y) && (coords.y < (pos.y+dim.height)) )
			return true;
	return false;
}

function getList(ob)
{
	result = ob.id+":";
	if (ob.options.length)
	{
		for (var i = 0; i < ob.options.length; i++)
		{
			result += ob.options[i].value +":";
		}
	}
	return result;
}

function fromListToText(idList, idText)
{
	list		= document.getElementById(idList);
	textInput	= document.getElementById(idText);

	textInput.value = list.getAttribute('value');
}

function hideList(idList)
{
	lists = document.getElementsByTagName("div");
	for (i = 0; i < lists.length; i++)
		if (lists[i].id.indexOf(idList) != -1)
			lists[i].style.display = "none";
	return true;
}

function dump(arr,level)
{
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "&nbsp;&nbsp;&nbsp;&nbsp;";

	//Array/Hashes/Objects
	if(typeof(arr) == 'object')
		for(var item in arr)
		{
			var value = arr[item];
			//If it is an array,
			if(typeof(value) == 'object')
			{
				dumped_text += level_padding + "'" + item + "'<br/>";
				dumped_text += dump(value,level+1);
			}
			else
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"<br/>";
		}
	//Stings/Chars/Numbers etc.
	else
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";

	return dumped_text;
}

function delay(millis)
{
	var date = new Date();
	var curDate = null;
	do { curDate = new Date(); }while(curDate-date < millis);
}

function isInArray(val, arr)
{
	if ((arr == "")||(arr == " ")) return -1;
	z = 0;
	do
	{
		if (arr[z] == val) return z;
		z++;
	}while(arr[z]);

	return -1;
}

function arrayToString(arr, char)
{
	val = "";
	k = 0;
	while(arr[k])
	{
		if (arr[k+1])
			val = val + arr[k] + char;
		else
			val = val + arr[k];
		k++;
	}

	return val;
}

function getElementsByClassName(className, tag, elm)
{
	var testClass = new RegExp("(^|\s)" + className + "(\s|$)");
	tag = tag || "*";
	elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function cleanIdInput(idName)
{
	document.getElementById(idName).value = "";
}

function checkUncheckAll(theElement) 
{
	var theForm = theElement.form, z = 0;
	for(z=0; z<theForm.length;z++)
	{
    	if(theForm[z].type == 'checkbox' && theForm[z].name != 'checkall')
		{
	  		theForm[z].checked = theElement.checked;
	  	}
     }
}

function setActionToPostForm(formName, buttonName, msg, msgConfirm)
{
	var check = 0;
	for (i = 1; i < $(formName).checkPrint.length; i++) 
	{
		if ($(formName).checkPrint[i].checked == true)
		{
			check = 1;
			break;
		}	
	}
	 $(formName).action.value= buttonName;

	if (check == 1) 
	{
		makeSubmit(formName);
	}
	else
	{
		alert (msg);
	}
}

function setState(formName, state)
{
	$(formName).state.value= state;
	evalForm(formName);
}

function confirmation(string)
{
	if(confirm(string))
		return true;
	else
		return false;	
}

function fromCheckToString(checks, separator)
{
	var result = "";
	for(var z = 0; z < checks.form.elements.length; z++)
		if (checks.form.elements[z].id == checks.id)
			if (checks.form.elements[z].checked)
				result += separator+checks.form.elements[z].getAttribute("stringValue");
	return result;
}
