/////////////////////////////////////////////////////////////////////////////
/////////// FUNCIONES DE VALIDACION DE FECHAS
//// colocar en el input ==> onblur="valAno(this)" // ==> onblur="valMes(this,formu.vf_dia)" // ==> onblur="valDia(this)"
function esDigito(sChr){
	var sCod = sChr.charCodeAt(0);
	return ((sCod > 47) && (sCod < 58));
}
//-- le paso el mes y el dia
function finMes(MTxt,DTxt){

	var nMes = parseInt(MTxt.value, 10);
	var nDia = parseInt(DTxt.value, 10);
	switch (nMes)
	{
		case 1: if(nDia <= 31) return true; break;
		case 2: if(nDia <= 29) return true; break;
		case 3: if(nDia <= 31) return true; break;
		case 4: if(nDia <= 30) return true; break;
		case 5: if(nDia <= 31) return true; break;
		case 6: if(nDia <= 30) return true; break;
		case 7: if(nDia <= 31) return true; break;
		case 8: if(nDia <= 31) return true; break;
		case 9: if(nDia <= 30) return true; break;
		case 10: if(nDia <= 31) return true; break;
		case 11: if(nDia <= 30) return true; break;
		case 12: if(nDia <= 31) return true; break;
	}
	return false;
}
function valDia(oTxt){
	var bOk = false;
	if (oTxt.value != "")
	{
		var nDia = parseInt(oTxt.value, 10);
		bOk = bOk || ((nDia >= 1) && (nDia <= 31));
		if (!bOk)
		{
			alert("D�a invalido en Fecha");
			oTxt.value = "";
			oTxt.focus();
		}
	}
	return bOk;
}

function valMes(mTxt,dTxt){
	var bOk = false;
	if (mTxt.value != "")
	{
		var nMes = parseInt(mTxt.value, 10);
		bOk = bOk || ((nMes >= 1) && (nMes <= 12));
		if (!bOk)
		{
			alert("Mes invalido en Fecha");
			mTxt.value = "";
			mTxt.focus();
			return false;
		}

		bOk = (finMes(mTxt,dTxt)) && bOk;
		if (!bOk)
		{
			alert("El Dia es invalido para el Mes ingresado en la Fecha");
			dTxt.value = "";
			dTxt.focus();
		}

	}
	return bOk;
}

function valAno(oTxt){
	var bOk = true;
	if (oTxt.value != "")
	{
		var nAno = oTxt.value;
		bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
		if (bOk)
		{
			for (var i = 0; i < nAno.length; i++)
			{
				bOk = bOk && esDigito(nAno.charAt(i));
			}
		}
		if (!bOk)
		{
			alert("A�o invalido en Fecha");
			oTxt.value = "";
			oTxt.focus();
		}
	}
	return bOk;
}
////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////
//// Funciones para validar que solamente envie el formulario una sola vez
/// colocar en el formulario que se quiera validar lo siguiente ==> onSubmit="return enviado()"
var cuenta=0;

function enviado(){
	if (cuenta == 0){
		cuenta++;
		return true;
	}
	else{
		alert("El Boton ya ha sido presionado, los datos estan siendo enviados, espere.... muchas gracias.");
		return false;
	}
}
///////////////////

//////////////////////////////////////////////////////////////////////////////////
//// Funciones para validar que ingrese solamente numeros en un campo
/// colocar en el input que se quiera validar lo siguiente ==> onKeyPress="return acceptNum(event)"
var nav4 = window.Event ? true : false;

function acceptNum(evt){
	// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	var key = nav4 ? evt.which : evt.keyCode;
	return (key <= 13 || (key >= 48 && key <= 57));
}
/////////////////////////

//////////////////////////////////////////////////////////////////////////////////
//// funcion que chequea que un formulario tenga todos los campos completos
//// recibe el  formulario a chequear
function existAnyFieldEmpty( f ){
	var c = f.elements.length;
	
	for (var i=0; i < c; i++){
		var e = f.elements[i];
		if ((e.type == 'input') && isBlanco(e.value)){
			e.className = 'input-error';
			alert("Para continuar debe completar el campo actual!!");
	  		e.focus();
	  		return true;
	 	}
	 	else
	 		e.className = 'input';
	}

 return false;
}

//////////////////////////////////////////////////////////////////////////////////
//// funcion que chequea los campos pasados por parametros no sean nulos
//// pasar los argumentos de la forma nombre_formu.nombre_campo
function hayVacios(){
	for (var i=0;i < hayVacios.arguments.length; i++){
	 	if (isBlanco(hayVacios.arguments[i].value)){
			alert("Debe Completar el Campo Actual!!");
	  		hayVacios.arguments[i].focus();
	  		return false;
	 	}
	}

 return true;
}
//--------------------------------------------------------------------------------------

//////////////////////////////////////////////////////////////////////////////////
//// funcion que chequea el parametro no sean blancos
//// recibe una cadena
function isBlanco(cadena){
	var s = new String(cadena);
	while (s.indexOf(" ") != -1){
 		s=s.replace(" ","")
	}
	if ( s.length == 0)	return true;
	else return false;
}
//--------------------------------------------------------------------------------------

//////////////////////////////////////////////////////////////////////////////////
//// funcion que chequea el email
//// recibe una cadena a evaluar
function isEmail(valor){
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
    	return true
	}
	else{
		return false;
	}
}
//--------------------------------------------------------------------------------------

//////////////////////////////////////////////////////////////////////////////////
//// funcion que pregunta si eliminar o no un registro
function confirmar_eliminar(){
	if(confirm("Esta seguro que quiere elimiar el Item seleccionado?"))
		return true;
	else
 		return false;
}
//--------------------------------------------------------------------------------------

//////////////////////////////////////////////////////////////////////////////////
//// funcion que pregunta si actualizar o no un registro
function confirmar_state(){
	if(confirm("Cambiar estado?"))
		return true;
	else
 		return false;
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
///////////// Abre una nueva ventana 
function openPopUp( ventanaPadre, path_href, w, h, resizable, scrollbars ) {
	
	var name = '';
	var winleft = (screen.width - w) / 2;
	var wintop = (screen.height - h) / 2;
	var attrib = 'width='+ w +',height='+ h +',left='+ winleft +',top='+ wintop +
		',resizable=' + resizable + ',scrollbars=' + scrollbars + ',status=0,location=0,directories=0,toolbar=0,menubar=0';

	var ventana = window.open(path_href, name , attrib);
	ventana.opener = ventanaPadre;
	ventana.focus();

	return ventana;
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
///////////// cierra una ventana popup
///// si recibe parametro es para redirigir al padre
function closePopUp() {
	
	if((closePopUp.arguments.length > 0) && !isBlanco(closePopUp.arguments[0])){
		var path = closePopUp.arguments[0];
		window.opener.location.href = path;
	}

	window.opener.focus(); 
	window.close();
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
/////////////  busca el id en una lista desplegable
////////// recibe la lista donde buscar, y el id a buscar
function buscarEnListaDesplegable( lista, id ) {
	var id_buscado = new String( id );
	if(! lista) return false;
	if(lista.length <= 0) return false;
	
	for (aux = 0; aux < lista.length; aux++) {
		if(lista.options[aux].value == id_buscado)
			return true;
	}
	
	return false;
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
/////////////  FUNCION PARA INSERTAR UN ELEMETO EN LA LISTA SELECT
////////// recibe la lista donde buscar, y el par id valor
function insertarEnListaDesplegableOpener( ventana, listaId, id, value ) {
	var clave = new String( id );
	var valor = new String( value );
	var lista = $(listaId);
	if(!lista || isBlanco(clave)) return false;
	
	if(lista.length < 0) lista.length = 0;
	lista.options[lista.length] = new Option( valor, clave );
	ventana.close();	
	return true;
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
/////////////  FUNCION PARA ELIMINAR UN ELEMETO EN LA LISTA SELECT
////////// recibe la lista donde eliminar
function eliminarDeListaDesplegable( lista ) {
	if(!lista || lista.selectedIndex < 0) return false;
	
	var clave = lista.options[lista.selectedIndex].value;
	var aux = lista.length -1;
	
	for (aux; aux > -1; aux--) {
		if (lista.options[aux].value == clave) {
			lista.options[aux] = null;
		}
	}
	
	return true;
}
//--------------------------------------------------------------------------------------


///////////////////////////////////////////////////////////////////////////////////////////
/////////////  FUNCION PARA ELIMINAR LA LISTA SELECT
////////// recibe la lista 
function vaciarListaDesplegable( lista ) {
	if(!lista) return false;
	
	var aux = lista.length -1;
	for (aux; aux > -1; aux--) {
		lista.options[aux] = null;
	}
		
	return true;
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
///////////// FUNCION PARA CONTAR TODOS LOS ELEMETOS DE LA LISTA SELECT
function contarSeleccionadosListaDesplegable( lista ) {
	var cont = 0;
	if(! lista) return cont;
	for (aux = 0; aux < lista.length; aux++) {
		if(lista.options[aux].selected == true) cont++;
	}
	
	return cont;
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
///////////// FUNCION PARA SELECCIONAR TODOS LOS ELEMETOS DE LA LISTA SELECT
function selectAllElements( lista ) {
	
	if(! lista) return false;
	for (aux = 0; aux < lista.length; aux++) {
		lista.options[aux].selected = true;
	}
	
	return true;
}
//--------------------------------------------------------------------------------------

///////////////////////////////////////////////////////////////////////////////////////////
///////////// FUNCION PARA MENSAJES INFORMATIVOS, formulario de contacto
function showLoading( obj ) {
	obj.innerHTML =	'<div align="center" style="height:145px; padding:20px; overflow:hidden"><img src="'+ $('AJAXLoadingImage').src +'" border="0"></div>';	
}
//--------------------

//----------
function showErrorCentro( msg ) { 
	$('divContacto').innerHTML = '<div align="center" style="height:145px; overflow:visible">La informacion solicitada no se encuentra disponible.</div>';	
	return false;
}
//----------

//////////////////////////////////////////////////////////////////////////////////
//// valida que el usuario ingrese un mail, nombre y comentario
//// 
function validateContact( f ) {
	var error = "";
	//new Effect.Pulsate($('divContacto'), { pulses: 1 });
	
	if(isBlanco(f.nombre.value))
		error+="Error: El nombre es requerido. \n";
		
	if(!isEmail(f.email.value))
		error+="Error: Email invalido. \n";
	
	if(isBlanco(f.textoConsulta.value))
		error+="Error: El Comentario esta incompleto. \n";
	
	if(error != ""){
		alert(error);
	 	return false;
	}
	
	AJAXSendContacto( $('sendContacto').serialize() );
	
	return true;	
	
}
//--------------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////
///////////// FUNCION PRINCIPAL PARA RECARGAR EL CENTRO DE LA PAGINA
///////////// parametros: params -> los parametros a enviar, string
function AJAXSendContacto( params ) {

	if(params && !isBlanco(params)){
		new Ajax.Updater('divContacto', './cuerpo.php', 
					{
  						method: 'get',
						parameters: params,
						onLoading: showLoading( $('divContacto') ),
						onFailure: showErrorCentro						
					}
				);
		return true;
	}
	else{
		return false;
	}
}
//--------------------
