/**
* utilities.js contains a library of javascript functions for different purposes
* created by Gerardo Grinman
* date 05/11/2008
*/

/**
* findPosX -> Returns the left position of an object
*/
function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
	    while(1) 
	    {
	      curleft += obj.offsetLeft;
	      if(!obj.offsetParent)
	        break;
	      obj = obj.offsetParent;
	    }
	else if(obj.x)
	    curleft += obj.x;
	return curleft;
}

/**
* findPosY -> Returns the top position of an object
*/
function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
	    while(1)
	    {
	      curtop += obj.offsetTop;
	      if(!obj.offsetParent)
	        break;
	      obj = obj.offsetParent;
	    }
	else if(obj.y)
	    curtop += obj.y;
	return curtop;
}

/**
* Removes an element from another element
* element -> string
* from -> string
*/
function removeSpecificElement(elementToRemove, from) {
	var d = document.getElementById( from );
	d.removeChild( elementToRemove );
}

function removeFromArray(a, keyToRemove)
{
	var auxArr = new Array();
	for (key in a)
	{
		if (key != keyToRemove)
		{
			var item = a[key];
			auxArr[key] = item;
			//alert(key + " " + item['numero']);
		}
	}
	
	a.length = 0;
	
	for (key in auxArr)
	{
		//alert(auxArr[key]['numero']);
		a[key] = new Array();
		a[key] = auxArr[key];
	}
	
}

function detectBrowser()
{
	var browser=navigator.appName;
	var b_version=navigator.appVersion;
	var version=parseFloat(b_version);
	if ((browser=="Netscape"||browser=="Microsoft Internet Explorer") && (version>=4))
	{
		//alert("Your browser is good enough! " + browser);
		if (browser=="Microsoft Internet Explorer")
			return "MSIE";
		else
			return "OTHER";
	}
	else
	{
		alert("Para continuar jugando sin problemas tenes que actualizar tu Explorador!");
	}
}

/**
* Returns the first element of an array
* a -> Array
*/
function getArrayFirstElement(a)
{
	for (var element in a)
    {
    	if (element in Object.prototype) continue;

    	return a[element];
    }	
}

function serialize(v){
if(typeof(v)=='object' && v.constructor==Array){
var i,s='',c=0;
for(i in v){
  ++c;
  s+=serialize(i)+serialize(v[i]);
  }
s="a:"+c+":{"+s+"}";
return s;
}
else if(Number(v)==v){
return 'i:'+v+';';
}
else if(typeof(v)=='string'){
return 's:'+v.length+':"'+v+'";';
}
}

function checkOnlyDecimals(e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	
	if((keycode  == 0) || (keycode  == 8)|| (keycode  == 46))
		return true; 
		
	if ((keycode < 48) || (keycode  > 57))
		return false;
}

function checkOnlyIntegers(e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	
	if((keycode  == 0) || (keycode  == 8))
		return true; 
		
	if ((keycode < 48) || (keycode  > 57))
		return false;
}

function removeFromArray(a, keyToRemove)
{
	var auxArr = new Array();
	for (key in a)
	{
		if (key != keyToRemove)
		{
			var item = a[key];
			auxArr[key] = item;
		}
	}
	
	a.length = 0;
	
	for (key in auxArr)
	{
		a[key] = new Array();
		a[key] = auxArr[key];
	}	
}