/**
-------------------------------------------------------------------------------
@comment	Funciones genericas
@author		Varios
@date			29/03/2010
-------------------------------------------------------------------------------
*/


/**
---------------------------------------
@about	Alterna la clase del objeto
@author	Carolina Casanova Garcia
@date		21/12/2010
@param	objId			string		ID Objeto al cual alternar la clase
@param	nomClase1	string		Clase original de objeto
@param	nomClase2	string		Clase alterna de objeto
@return	boolean
*/
function alternarClase(objId, nomClase1, nomClase2)
{
	if (typeof document.getElementById(objId) != "undefined")
	{
		var obj = document.getElementById(objId);
		
		if (obj.className != nomClase1)
		{
			obj.className = nomClase1;
		}
		else
		{
			obj.className = nomClase2;
		}
	}
}

/**
---------------------------------------
@about	Averigua si objeto es tipo Array
@author	Alfredo Artiles <http://twitter.com/aartiles24>
@date		12/01/2009
@update	22/02/2010 ccasanova: Agregada comparacion NodeList.
@param	obj	object	El objeto a evaluar
@return	boolean
*/
function isArray(obj)
{
	//alert(Object.prototype.toString.call(obj));
	
	if (Object.prototype.toString.call(obj) === '[object Array]' || 
		 Object.prototype.toString.call(obj) === '[object NodeList]' || 
		 Object.prototype.toString.call(obj) === '[object HTMLCollection]')
	{
		return true;
	}
	else
	{
		return false;
	} 
}

/**
---------------------------------------
@about	Llena combo con elementos de array
@author	Carolina Casanova
@date		22/03/2010
@param	idObjCombo		string
@param	misValores		array
@param	misTextos		array
@param	sentidoDesc		boolean
@param	valorSel			mixed
@param	primerTexto		string
@return void
*/
function llenarCombo(idObjCombo, misValores, misTextos, sentidoDesc, valorSel, primerTexto)
{
	if (typeof document.getElementById(idObjCombo) == "object")
	{
		if (isArray(misValores))
		{
			if (isArray.length > 0)
			{
				var f		= 0;
				var cbo	= document.getElementById(idObjCombo);
				
				// Si no hay Textos, se usan los Valores
				misTextos = (!isArray(misTextos)) ? misTextos = misValores : misTextos;
				
				// Limpia combo
				cbo.length = 0;
				
				// Primer elemento
				if (primerTexto != "")
				{
					var opt = document.createElement("option");
					cbo.options.add(opt);
					opt.text		= primerTexto;
					opt.value	= "";
				}
				
				// Llena combo
				if (sentidoDesc)
				{
					misValores	= misValores.reverse();
					misTextos	= misTextos.reverse();
				}
				
				for (f = 0; f < misValores.length; f++)
				{
					var opt = document.createElement("option");
					cbo.options.add(opt);
					opt.text		= misTextos[f];
					opt.value	= misValores[f];
					
					if (valorSel == misValores[f])
					{
						opt.selected = true;
					}
				}
			}
		}
	}
}

/**
---------------------------------------
@param	str	string
@return	boolean
*/
function validarEmail(str) 
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(str))
	{
		return true;
	}
	else
	{
		return false;
	}
}

/**
---------------------------------------
@about	Muestra u Oculta el Objeto
@author	Carolina Casanova
@date		2006
@param	boo			boolean
@param	idObj		string
@return void
*/
function mostrar(boo, idObj)
{
	if (typeof document.getElementById(idObj) != "undefined")
	{
		var obj = document.getElementById(idObj);
		if (boo)
		{
			obj.style.display = "";
		}
		else
		{
			obj.style.display = "none";
		}
	}
}
