// JavaScript Document

//***********************************************************************************************
//El siguiente grupo de Funciones tiene la finalidad de validar una fecha
//ingresada en un Text Input
//Ejemplo del Input:<input name="fec" type="text" onblur="valFecha(this)" size="10">
//Creada: 18/05/2006
//Version. 1.0
//Revisada:18/05/2006
//***********************************************************************************************
//Funci&Oacute;n para crear un objeto XMLHttpRequest
function crearAjax() {
var Ajax

if (window.XMLHttpRequest) { // Intento de crear el objeto para Mozilla, Safari,...
Ajax = new XMLHttpRequest();
if (Ajax.overrideMimeType) {
//Se establece el tipo de contenido para el objeto
//http_request.overrideMimeType('text/xml');
//http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try { //Primero se prueba con la mas reciente versi&Oacute;n para IE
Ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try { //Si el explorer no esta actualizado se prueba con la versi&Oacute;n anterior
Ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!Ajax) {
alert('ˇPor favor, actualice su navegador!');
return false;
}
else
{
return Ajax;
}

}

function ActualizarInformacion (pagina, cmbDelimitador, divContenedora,detener)
{
var contenedor = document.getElementById(divContenedora);
var x = cmbDelimitador
var url_final = pagina+'?Id='+x
contenedor.innerHTML = '<img src="/imagenes/cargando.gif" />'
var objAjax = crearAjax()
objAjax.open("POST", url_final)
objAjax.onreadystatechange = function() {
if (objAjax.readyState == 4 && objAjax.status == 200) {
contenedor.innerHTML = objAjax.responseText;
}
}
objAjax.send(null);
}

function esDigito(sChr)
{
	var sCod = sChr.charCodeAt(0);
	return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt)
{
	var bOk = false;
	bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
	bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
	return bOk;
}
function finMes(oTxt)
{
	var nMes = parseInt(oTxt.value.substr(3, 2), 10);
	var nRes = 0;
	switch (nMes){
		case 1: nRes = 31; break;
		case 2: nRes = 29; break;
		case 3: nRes = 31; break;
		case 4: nRes = 30; break;
		case 5: nRes = 31; break;
		case 6: nRes = 30; break;
		case 7: nRes = 31; break;
		case 8: nRes = 31; break;
		case 9: nRes = 30; break;
		case 10: nRes = 31; break;
		case 11: nRes = 30; break;
		case 12: nRes = 31; break;
	}
	return nRes;
}

function valDia(oTxt)
{
	var bOk = false;
	var nDia = parseInt(oTxt.value.substr(0, 2), 10);
	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
	return bOk;
}
function valMes(oTxt)
{
	var bOk = false;
	var nMes = parseInt(oTxt.value.substr(3, 2), 10);
	bOk = bOk || ((nMes >= 1) && (nMes <= 12));
	return bOk;
}

function valAno(oTxt)
{
	var bOk = true;
	var nAno = oTxt.value.substr(6);
	bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
	if (bOk){
	for (var i = 0; i < nAno.length; i++){
	bOk = bOk && esDigito(nAno.charAt(i));
	}
	}
	return bOk;
}

function valFecha(oTxt)
{
	var bOk = true;
	if (oTxt.value != ""){
	bOk = bOk && (valAno(oTxt));
	bOk = bOk && (valMes(oTxt));
	bOk = bOk && (valDia(oTxt));
	bOk = bOk && (valSep(oTxt));
	if (!bOk){
	alert("Fecha invalida");
	oTxt.value = "";
	oTxt.focus();
	}
	}
}
//*************************************************************************************************************
//*************************************************************************************************************



//***********************************************************************************************
//La siguiente Funcion obliga que un input text solo acepte numeros
//<input type="text" name="name" size="12"  OnKeyPress="solonumeros()">
//Creada: 22/05/2006
//Version. 1.0
//Revisada:22/05/2006
//***********************************************************************************************
function solonumeros(){
 // if(( event.keyCode >= 97 && event.keyCode <= 122) || (event.keyCode >=65 && event.keyCode <=90)){
 if (event.keyCode < 48 || event.keyCode > 57){	 
    event.keyCode=0;
  }
}
//*************************************************************************************************************
//*************************************************************************************************************

function ValRut(objeto)
{
var rut=objeto.value;
suma=0;
mul=2;
i=0;
if (rut=="") return false;
for (i=rut.length-3;i>=0;i--){
suma=suma+parseInt(rut.charAt(i)) * mul;
mul = mul + 1;
if (mul==8) {mul=2;}
}

dv = rut.charAt(rut.length-1)

var dvr = ''+(11 - suma % 11);
if (dvr=='10') {
	dvr = 'K';
	dv = rut.charAt(rut.length-1).toUpperCase();
	}
else 
if (dvr=='11') {
	dvr = '0';
	}

if (rut.charAt(rut.length-2) != "-"|| dv != dvr)
{alert("Rut Invalido"); 
objeto.value="";
objeto.focus();
return false;}

return true;
}

function isEmailAddress(theElement, nombre_del_elemento )
{
var s = theElement.value;
var filter=/^[A-Za-z][A-Za-z0-9_.-]*@[A-Za-z0-9_-]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (s.length == 0 ) return true;
if (filter.test(s))
return true;
else
alert("Ingrese una direcci&Oacute;n de correo válida");
theElement.focus();
return false;
}

