/*##########################################################################
Autor: Aracnea Net LTDA http://www.aracnea.net 
			 Cll 26 No. 4A-45 piso 14 Bogotá - Colombia - Sur América
			 Tel (57)+(1)+6084057  
Cliente: Inpsicon.com
Fecha : 13/13/2004
Sofware : Web Evolution JS Versión 1.3 - Validacion JavaScript para formularios
          Testiada en IE(4,5,6), Netscape(4.75 o >), Mozilla( 1.0 >)
Diseño e Implementacion de software: Edgar Morán edgar@aracnea.net
          
Aracnea Net LTDA 2002-2004 © Todos los derechos reservados
NOTA: La utilización de este software o partes del mismo sin previa autoriazación
escrita de Aracnea Net tedra las respectivas acciones legales en Colombia
y otros paises segun la leyes locales.
###########################################################################*/

/*** Funciones de Validación ***/
function validar_informacion(campo,mensaje,tipo,variable){	
	if (tipo=="checkbox"){ return validar_checkbox(campo,variable,mensaje) }
	if (tipo=="radio"){ return validar_radio(campo,mensaje) }
	if (tipo=="menu") campo=campo.options[campo.selectedIndex];			  
	if (tipo=="menu_multiple"){ if (campo.selectedIndex==-1) return imprimir_alerta(campo,mensaje,tipo); else return true; }		
  if (!tiene_informacion(campo)) return imprimir_alerta(campo,mensaje,tipo);
	if (tipo=="entero" || tipo=="flotante"){ if (!es_nuerico(campo,tipo)) return false; }	
	if (tipo=="dia" || tipo=="mes" || tipo=="ano"){if (!es_nuerico(campo,tipo)) return false;}
	if (tipo=="archivo"){for (i=1, valido=0;i<= variable[0] && valido==0;i++ ){ if(validar_extension(variable[i],campo)) valido=1;}
    if (valido==0){ imprimir_alerta(campo,"El archivo seleccionado debe ser del tipo indicado",tipo); return false; }}
	if (tipo=="correo") {if (!validar_correo(campo)) return false;}
	return true;		
}
function validar_checkbox(forma,nombre,mensaje){checkboxes=forma.elements[nombre];total=(typeof(checkboxes.length) != 'undefined') ? checkboxes.length : 0;
	if (total){	for (i=0;i<total;i++){if (checkboxes[i].checked==true) return true;}return imprimir_alerta(checkboxes[0],mensaje,"");}
	else {if (checkboxes.checked==true)	return true; return imprimir_alerta(checkboxes,mensaje,"");}
}
function validar_radio(radio,mensaje){total= (typeof(radio.length) != 'undefined') ? radio.length : 0;
	if (total){for (i=0;i<total;i++){	if (radio[i].checked==true) return true;}return imprimir_alerta(radio[0],mensaje,"radio");}
	else{if (radio.checked==true)	return true;return imprimir_alerta(radio,mensaje,"radio");}
}
function validar_extension(extension,campo){ myRe=new RegExp("."+ extension + "$"); myArray = myRe.exec(campo.value); if (myArray!=null) return true; else return false;}
function validar_correo(campo){
	myRe=/^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; str = campo.value;	myArray = myRe.exec(str);
	if (myArray!=null) return true;	else imprimir_alerta(campo,"Ingrese una dirección de correo válida. Ej micorreo@misitio.com","")
}
function tiene_informacion(campo){ for (i=0;i<campo.value.length ; i++){	if (campo.value.charAt(i)!=" "){	return true;}}	return false; }
function es_nuerico(campo,tipo){
	if (tipo=="flotante"){ if (isNaN(campo.value) || campo.value <= 0)
	return imprimir_alerta(campo,"El dato debe ser un numero mayor de 0. EJ  23.44","");}
	else if (tipo=="entero"){	myRe=new RegExp("[.]");	myArray = myRe.exec(campo.value);
		if (myArray!=null || isNaN(campo.value) || campo.value < 0)	return imprimir_alerta(campo,"El dato debe ser un numero entero mayor de 0. Ej 12","");}
	else if (tipo=="dia" || tipo=="mes" || tipo=="ano"){
		myRe=new RegExp("[.]"); myArray = myRe.exec(campo.value);
		if ((myArray!=null || isNaN(campo.value) || campo.value <= 0 || campo.value > 31) && tipo=="dia")
			return imprimir_alerta(campo,"El dia debe ser un numero entre 1 y 31. Ej 12","");
		else if ((myArray!=null || isNaN(campo.value) || campo.value <= 0 || campo.value > 12) && tipo=="mes")
			return imprimir_alerta(campo,"El mes debe ser un numero entre 1 y 12. Ej 12","");
		else if ((myArray!=null || isNaN(campo.value) || campo.value < 1000 || campo.value > 9999) && tipo=="ano"){
			return imprimir_alerta(campo,"El ano deber un numero de cuatro digitos entre 1000 y 9999. Ej 2003","");}
	}
	return true;
}
function imprimir_alerta(campo,mensaje,tipo){ alert(mensaje); if(tipo!="menu" && tipo!="menu_multiple" && tipo!="radio" ){ if (tipo!="archivo") campo.value="";  campo.focus();} return false}