//////////////////////////////////////////////////////////////////
//                    - DAWCONS ASOCIADOS -                     //
//                    -- DESARROLLO 2005 --                     //
//                             ---                              //
// Sección de Funciones y objetos de JavaScript para validación //
// de datos en formas ASPX.                                     //
//                                                              //
//////////////////////////////////////////////////////////////////

function valEntero(obj_txt, pDef, pMin, pMax, pMsg)
{
	// Descripción de Argumentos...
	// obj_txt -> Objeto de Caja de texto a validar.
	// pDef    -> Valor que indica el Default (opcional), un número se tomará como default (ejem: "0") y una "M" tomará como defaul el mínimo si es menor al rango y el máximo si es mayor.
	// pMin    -> Valor mínimo aceptado (opcional).
	// pMax    -> Valor máximo aceptado (opcional).
	// pMsg    -> Mensaje que se deberá desplegar al no ser válido el dato, "DEFAULT" mostrará un mensaje por default.
	//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	// Se cargan los valores por default...
	var sDef, sMax, sMin, sMsg;
	if(pDef != undefined) sDef = pDef;
	else sDef = "";
	if(pMin != undefined) sMin = pMin;
	else sMin = "";
	if(pMax != undefined) sMax = pMax;
	else sMax = "";
	if(pMsg != undefined) sMsg = pMsg;
	else sMsg = "";
	// Se valida que el dato sea entero...
	var bndVal = true;
	var iDat = parseInt(obj_txt.value, 10);
	if(isNaN(iDat))
	{
		if(sDef == "M") sDef = sMin;
		if(sDef == "A") sDef = obj_txt.valAnt;
		if(sMsg == "DEFAULT") sMsg = "El dato debe ser numérico.";
		bndVal = false;
	}
	else
	{
		// Se valida el Rango...
		if(sMin != "")
		{
			if(iDat < parseInt(sMin, 10))
			{
				if(sDef == "M") sDef = sMin;
				if(sDef == "A") sDef = obj_txt.valAnt;
				if(sMsg == "DEFAULT") sMsg = "El dato debe ser mayor o igual a " + sMin + ".";
				bndVal = false;
			}
		}
		if(sMax != "")
		{
			if(iDat > parseInt(sMax, 10))
			{
				if(sDef == "M") sDef = sMax;
				if(sDef == "A") sDef = obj_txt.valAnt;
				if(sMsg == "DEFAULT") sMsg = "El dato debe ser menor o igual a " + sMax + ".";
				bndVal = false;
			}
		}
	}
	if(bndVal)
	{
		obj_txt.value = iDat;
		return;
	}
	if(sMsg != "")
	{
		alert(sMsg);
		obj_txt.focus();
		obj_txt.select();
	}
	else
	{
		obj_txt.value = sDef;
	}
	return;
}// valEntero
function valFlotante(obj_txt, pDef, pMin, pMax, pMsg,pDec)
{
	// Descripción de Argumentos...
	// obj_txt -> Objeto de Caja de texto a validar.
	// pDef    -> Valor que indica el Default (opcional), un número se tomará como default (ejem: "0") y una "M" tomará como defaul el mínimo si es menor al rango y el máximo si es mayor.
	// pMin    -> Valor mínimo aceptado (opcional).
	// pMax    -> Valor máximo aceptado (opcional).
	// pMsg    -> Mensaje que se deberá desplegar al no ser válido el dato, "DEFAULT" mostrará un mensaje por default.
	// pDec    -> Numero de decimales que se permiten(opcional).
	//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	// Se cargan los valores por default...
	var sDef, sMax, sMin, sMsg;
	if(pDef != undefined) sDef = pDef;
	else sDef = "";
	if(pMin != undefined) sMin = pMin;
	else sMin = "";
	if(pMax != undefined) sMax = pMax;
	else sMax = "";
	if(pMsg != undefined) sMsg = pMsg;
	else sMsg = "";
	// Se valida que el dato sea entero...
	var bndVal = true;
	var iDat = parseFloat(obj_txt.value);
	if(isNaN(iDat))
	{
		if(sDef == "M") sDef = sMin;
		if(sDef == "A") sDef = obj_txt.valAnt;
		if(sMsg == "DEFAULT") sMsg = "El dato debe ser numerico.";
		bndVal = false;
	}
	else
	{
		// Se valida el Rango...
		if(sMin != "")
		{
			if(iDat < parseFloat(sMin))
			{
				if(sDef == "M") sDef = sMin;
				if(sDef == "A") sDef = obj_txt.valAnt;
				if(sMsg == "DEFAULT") sMsg = "El dato debe ser mayor o igual a " + sMin + ".";
				bndVal = false;
			}
		}
		if(sMax != "")
		{
			if(iDat > parseFloat(sMax))
			{
				if(sDef == "M") sDef = sMax;
				if(sDef == "A") sDef = obj_txt.valAnt;
				if(sMsg == "DEFAULT") sMsg = "El dato debe ser menor o igual a " + sMax + ".";
				bndVal = false;
			}
		}
	}
	if(bndVal)
	{
	    if (pDec)
	       obj_txt.value = iDat.toFixed(pDec);
	       else
	       obj_txt.value = iDat.toFixed(2);   
		
		return;
	}
	if(sMsg != "")
	{
		alert(sMsg);
		obj_txt.focus();
		obj_txt.value = sDef;
		obj_txt.select();
		
	}
	else
	{
		obj_txt.value = sDef;
	}
	return;
}// valFlotante
function valCargaValor(obj_txt)
{
	obj_txt.valAnt = obj_txt.value;
}// valCargaValor
function valAlfanumerico(pDato, pOtros)
{
	// Valida que el objeto solo tenga valores alfanuméricos.
	// pOtros puede ser un arreglo con otros caracteres aceptados. Ejemplo:
	//                      alert(valAlfanumerico(txtValor.value,[' ', '_']))
	if(pOtros == undefined) pOtros = "";
	var sVal = new String(pDato);
	// Se eliminan los Otros...
	var iCnt;
	for(iCnt = 0; iCnt < pOtros.length; iCnt++)
	{
		eval("sVal = sVal.replace(/"+ pOtros[iCnt] + "/g,\"\")");
	}
	sVal = sVal.toUpperCase();
	sVal = sVal.replace(/[A-Z]/g,"");
	sVal = sVal.replace(/[0-9]/g,"");
	if(sVal == "")
	{
		return(true);
	}
	return(false);
}// valAlfanumerico
function Trim(pStr)
{
	// Función que elimina los espacios finales de una cadena...
	var sStr = new String(pStr);
	sStr = sStr.replace(/^\s*/,"");
	sStr = sStr.replace(/\s*$/,"");
	return(sStr);
}// Trim



