function ValidaNulo(FormularioCampo) {
	if (FormularioCampo) {
		if (FormularioCampo.type != "select-one") {
			FormularioCampo.value = sTrim(FormularioCampo.value);
		}

		if (FormularioCampo.value == "" ) {
			if (FormularioCampo.type != "select-one") {
				alert("Debe rellenar el campo " + FormularioCampo.title);
			} else {
				alert("Debe seleccionar una opcion");
			}
			FormularioCampo.focus();
			return false;
		}
	}
	
	return true;
}

function ValidaNumerico(FormularioCampo) {
	if (FormularioCampo) {
		if (FormularioCampo.type != "select-one"){
			FormularioCampo.value = sTrim(FormularioCampo.value);
			if (isNaN(FormularioCampo.value)) {
				alert("El campo " + FormularioCampo.title + " debe contener un valor numerico y sin decimales.");
				FormularioCampo.focus();
				return false;
			}
		}
	}
	return true;
}

/*
function ValidaDinero(FormularioCampo) {
	if (FormularioCampo) {
		if (FormularioCampo.value != "") {
			if (!LeerValor(FormularioCampo.name)) {
				alert("El campo " + FormularioCampo.title + " debe contener un valor expresado en euros con la ',' para delimitar los centimos de euro");
				FormularioCampo.focus();
				return false;
			}
		}
	}
	return true;
}
*/

function ValidaPassword(FormularioCampo1, FormularioCampo2) {
	if (FormularioCampo1 && FormularioCampo2) {
		if (ValidaNulo(FormularioCampo1) && ValidaNulo(FormularioCampo2)) {
			if (FormularioCampo1.value != FormularioCampo2.value) {
				alert("No coinciden la "  + FormularioCampo2.title );
				FormularioCampo1.focus();
				return false;
			}
		} else {
		return false;
		}
	}
	
	return true;
}

function ValidaEmailConf(FormularioCampo1, FormularioCampo2) {
	if (FormularioCampo1 && FormularioCampo2) {
		if (ValidaNulo(FormularioCampo1) && ValidaNulo(FormularioCampo2)) {
			FormularioCampo1.value = String(FormularioCampo1.value).toLowerCase();
			FormularioCampo2.value = String(FormularioCampo2.value).toLowerCase();

			if (FormularioCampo1.value != FormularioCampo2.value) {
				alert("No coinciden la "  + FormularioCampo2.title );
				FormularioCampo1.focus();
				return false;
			}
		} else {
		return false;
		}
	}
	
	return true;
}

/* Valida que un campo contiene un nombre de email */
function ValidaEmail(FormularioCampo) {
	var re = new RegExp("^[a-z0-9]+([\.]?[a-z0-9_-]+)*@[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$");
	
	if (FormularioCampo) {
		FormularioCampo.value = String(FormularioCampo.value).toLowerCase();
		if(!re.test(FormularioCampo.value)){
			return ValErronea("El campo [" + FormularioCampo.title + "] debe contener un valor de email valido.", FormularioCampo);
		} 
	}

	return true;
}

function ValidaDos(FormularioCampo1, FormularioCampo2) {
	if (FormularioCampo1 && FormularioCampo2) {
		if(FormularioCampo1.value !="") {
			if(FormularioCampo2.value =="" ){
				alert("Al completar " + FormularioCampo1.title + "\ndebe tambien rellenar el campo " + FormularioCampo2.title);
				FormularioCampo2.focus();
				return false;
				} else {
					return true;
				}
				} else {
					return true;
				}
		}	else {
		return true;
	}
}

function ValidaCero(FormularioCampo) {
	if (FormularioCampo) {
		if (FormularioCampo.value == '0' ) {
			if (FormularioCampo.type != "select-one"){
				alert("Debe rellenar el campo " + FormularioCampo.title);
				} else {
				alert("Debe seleccionar una opcion");
			}
			FormularioCampo.focus();
			return false;
		}
	}
	return true;
}

function ValidaFecha(FormularioCampo) {
	if (FormularioCampo) {
		if (!EsFecha(FormularioCampo.value)) {
			alert("El campo " + FormularioCampo.title + " debe contener una fecha con el formato 'dd/mm/aaaa'");
			FormularioCampo.focus();
			return false;
		}
	}
	
	return true;
}

function EsFecha(sfecha) {
	var fechaaux, dia, mes, anio, result;
	var dias_mes = new Array(12);
	dias_mes [0] = "0";
	dias_mes [1] = "31";
	dias_mes [2] = "28";
	dias_mes [3] = "31";
	dias_mes [4] = "30";
	dias_mes [5] = "31";
	dias_mes [6] = "30";
	dias_mes [7] = "31";
	dias_mes [8] = "31";
	dias_mes [9] = "30";
	dias_mes [10] = "31";
	dias_mes [11] = "30";
	dias_mes [12] = "31";
	result = false;
		
	if (sfecha=="") {
		result= true;
	}
	else {
		fechaaux = sfecha.split("/")
		if (fechaaux.length == 3) {
			dia = fechaaux[0];
			mes = fechaaux[1];
			anio = fechaaux[2];
			if (isNaN(dia) || isNaN(mes) || isNaN(anio) || parseInt(anio, 10)<=1900 || anio=="") {
				result = false;
			}
			else {
				dia = parseInt(dia, 10);
				mes = parseInt(mes, 10);
				anio = parseInt(anio, 10);
				if (mes>=1 && mes<=12) {
					if (esBisiesto(anio)) {
						dias_mes[2]=29;
					}
					if (dia>=1 && dia<=parseInt(dias_mes[mes], 10)) {
						result = true;
					}
				}
			}
		}
	}
	return result;
}

function esBisiesto(p_anio) {
	var anio = parseInt(p_anio, 10);

	if (anio % 4 == 0) {
		if (anio % 100 == 0) {
			if (anio % 400 == 0) {
				return true;
			} else {
				return false;
			}
		} else {
			return true;
		}
	} else {
		return false;
	}
}

function ValidaNC(FormularioCampo) {
	if (FormularioCampo){
	var sAuxNI = FormularioCampo.value;
	if (EsCIF(sAuxNI) || EsNIF(sAuxNI) || EsNIE(sAuxNI)){
		return true;
		} else {
		alert("El campo " + FormularioCampo.title + " debe contener un Nro. de documento valido");
				FormularioCampo.focus();
				return false;
				}
			}
}

function ValidaL(FormularioCampo) {
	if (FormularioCampo){
		var sAux = FormularioCampo.value;
		var sLong = FormularioCampo.maxLength;
			if (sAux.length != sLong && sAux.length > 0) {
				alert("El campo " + FormularioCampo.title + " debe tener una longitud de '" + sLong + "' caracteres");
				FormularioCampo.focus();
				return false;
				} else {
				return true;
				}
			}
return true;
}

function ValidaLmin(FormularioCampo, sN) {
	if (FormularioCampo){
		var sAux = FormularioCampo.value;
				if (sAux.length < sN) {
				alert("El campo " + FormularioCampo.title + " debe tener una longitud mínima de '" + sN + "' caracteres");
				FormularioCampo.focus();
				return false;
				} else {
				return true;
				}
			}
return true;
}

function ValidaCheck(FormularioCampo) {
	if (FormularioCampo){
		if (FormularioCampo.checked) {
		return true;
		} else {
			alert("La casilla " + FormularioCampo.title + " debe estar seleccionada");
			FormularioCampo.focus();
			return false;
		}
	}
}

function Contador (campo, limite) {
	if (campo.value.length > limite) campo.value = campo.value.substring(0, limite);
}

function ValidaHora(FormularioCampo) {
	if (FormularioCampo) {
		FormularioCampo.value = sTrim(FormularioCampo.value);
		var sAux = FormularioCampo.value;
		sAux = sAux.replace(".",":");
		var iPosDosP = sAux.search(":");
		var sHoras = "";
		var sMinutos = "";
		if (sAux != "") {
			if (iPosDosP > 0) {
				sHoras = new String(sAux.substring(0, iPosDosP));
				if ((iPosDosP + 1) < sAux.length) {
					sMinutos = new String(sAux.substring((iPosDosP + 1), sAux.length));
				} else {
					sMinutos = "0";
				}
			} else {
				sHoras = new String(sAux.substring(0, sAux.length));
				sMinutos = "0";
			}
			
			if (sHoras == "24") {
				sHoras = "0";
			}
			
			if (isNaN(sHoras) || isNaN(sMinutos)) {
				alert("El campo " + FormularioCampo.title + " debe contener un valor de hora del tipo hh:mm ");
				FormularioCampo.focus();
				return false;
			}
			
			if (parseInt(sHoras, 10) > 23 || parseInt(sHoras, 10) < 0 ||
				parseInt(sMinutos, 10) > 59 || parseInt(sMinutos, 10) < 0) {
				alert("El campo " + FormularioCampo.title + " debe contener un valor de hora del tipo hh:mm ");
				FormularioCampo.focus();
				return false;
			}
			
			if (sHoras.length == 1) {
				sHoras = "0" + sHoras;
			}
			
			if (sMinutos.length == 1) {
				sMinutos = "0" + sMinutos;
			}
			
			FormularioCampo.value = sHoras + ":" + sMinutos;
		}
	}
	return true;
}

function sTrim(sValor) {
	var sAux = sLTrim(sValor);
	sAux = sRTrim(sAux);
	return sAux;
}

function sLTrim(sValor) {
	var sAux = String(sValor.replace(/\s*/, ""));
	return sAux;
}

function sRTrim(sValor) {
	var sAux = String(sValor.replace(/\s*$/, ""));
	return sAux;
}

function ValErronea(pTextoAlert, pObjCampo) {
	if (pObjCampo.focus) pObjCampo.focus();
	alert(pTextoAlert);
	return false;
}


