// JavaScript Document
// Edited By RARCE 02/10/2007


function redirectWindow(page) 
{
	window.location.href=page;
}

function TieneValor(object)
{
	//Valida que el campo este completo	
	if (object.value == "")
	{
		alert('Debe completar el campo.');
		object.focus();
		return false;
	}
	return true;
}

function EsNumero(object)
{
	//Valida que el campo este completo y ademas sea un numero
	if (TieneValor(object))
	{
		if (isNaN(object.value) == true)
		{
			alert('Debe el valor del campo debe ser numerico.');
			object.focus();
			return false;
		}
		return true;
	}
	else 
		return false;
}

function EsMail(object)
{
	//Valida que el campo este completo y ademas sea un mail valido.	
	var filter = /^[A-Za-z][A-Za-z0-9_\.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;  //Agregue el \.
	
	if (TieneValor(object))
	{
		if (filter.test(object.value))
			return true;
		else
		{	
			alert("Ingrese una dirección de correo válida");
			object.focus();
			return false;
		}
	}
	return false
}

function EsAnioBisiesto(Anio)
{
	//Indica si un año es bisiesto o no. Si es xx y mayor a 20 se le asigna 19xx sino 20xx.
	var TmpAnio;
	
	TmpAnio = Anio;
	if ((TmpAnio < 100) && (TmpAnio > 20))
		TmpAnio = TmpAnio + 1900;
	else
		TmpAnio = TmpAnio + 2000;

	if (TmpAnio % 4 != 0)
		return false;
	else
	{
		if (TmpAnio % 100 == 0)
		{
			if (TmpAnio % 400 == 0)
			{
				//Si TmpAnio es divisible por 4, por 100 y 400 entonces es bisiesto
				return true;
			}
			else
			{
				//si es divisible por 4 y por 100 pero no lo es por 400 entonces no es bisiesto
				return false;
			}
		}
		else
		{	
			//Si es divisible por 4 y no es divisible por 100 entonces el año es bisiesto
			return true;
		}
	}
}


function EsFecha(object)
{
	//Indica si el campo esta completo y si es una fecha valida.
	var dia, mes, anio, febrero;
	
	if (!(TieneValor(object))) return false;
					 
	dia = object.value.split("/")[0];
	mes = object.value.split("/")[1];
	anio = object.value.split("/")[2];

	if ((isNaN(dia) == true) || (isNaN(mes) == true) || (isNaN(anio) == true) )
	{
		alert("La fecha introducida debe estar formada sólo por números");
		object.focus();
		return false;
	}
	
	if (EsAnioBisiesto(anio))
		febrero = 29;
	else
		febrero = 28;

	//El debe ser un numero entre 1 y 12
	if ((mes < 1) || (mes > 12))
	{
		alert("El mes introducido no es valido. Por favor, introduzca un mes correcto");
		object.focus();
		return false;
	}

	//Si el mes es febrero, los dias tiene que ir de 1 a febrero.
	if ((mes == 2) && ((dia < 1) || (dia > febrero)))
	{
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		object.focus();
		return false;
	}
	
	//Meses con 31 dias
	if (((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12)) && ((dia < 1) || (dia > 31)))
	{
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		object.focus();
		return false;
	}

	//Meses con 30 dias
	if (((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11)) && ((dia < 1) || (dia > 30)))
	{
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		object.focus();
		return false;
	}
	
	//Valido el año ingresado.
	if ((anio < 1900) || (anio > 2150))
	{
		alert("El año introducido no es valido. Por favor, introduzca un año entre 1900 y 2050");
		object.focus();
		return false;
	}
	
	return true;
} 

function OpcionSeleccionada(object)
{
	var checked, i;
	
	checked = false;
	
	for (i = 0; i < object.length; i++)
		if (object[i].checked == true) checked = true;

	if (checked == false)
	{
		alert("Debe seleccionar una opcion.");
		object[0].focus();
		return false;
	}
	return true;
}

function TipoCodigoPostal(object)
{
	//Funcion que analiza el Codigo Postal y devuelve si es del Interior o no y si es valido.	
	//Un codigo postal es valido si son todos digitos (4), o una convinacion de letras y numeros
	// XNNNNXXX (X = caracter, N = numero

	//Si es valido, es del interior si es mayor o igual a 1884, Capital y GBA si es menor.
	
	var CodigoPostal;
	var MAXCODPOSTAL = 1884;
	
	//Analizo valides del Codigo Postal
	if (isNaN(object.value) == true)
	{
		if ((object.value.length == 8) && (isNaN(object.value.substr(1,4)) == false))
			CodigoPostal = object.value.substr(1,4);
		else
			return "No valido";
	}
	else
		CodigoPostal = object.value;
	
	//Ya tengo el numero ahora me fijo si es del Interior o Capital
	if (parseInt(CodigoPostal) >= MAXCODPOSTAL)
		return "Interior";
	else
		return "Capital";
	
}