// ************************* FUNCION EMAIL ********************************
// Verifica que el email sea valido y no este vacio

function email (emailStr,msg) {

var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var firstChars=validChars
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom="(" + firstChars + validChars + "*" + ")"
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)

if (matchArray==null) {
   alert(msg);
   return false;
}

var user=matchArray[1];
var domain=matchArray[2];

if (user.match(userPat)==null) {
    alert(msg);
    return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) { 
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert(msg);
		return false;
	    }
    }
    return true;
}

var domainArray=domain.match(domainPat);
if (domainArray==null) {
	alert(msg);
    return false;
}

var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length;
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>3) {
   alert(msg);
   return false;
}

if (domArr[domArr.length-1].length >= 2 && len < 2) {
   var errStr=msg;
   alert(errStr);
   return false;
}
return true;
}


//******************************** FUNCION QUE VALIDA FECHA ******************************


function isValidDate1(dateStr,nulo,msg) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4}|\d{4})$/;

   if (dateStr == "" && nulo == 0) {
         dateStr = "10/12/1990";
   }

var matchArray = dateStr.match(datePat); 

 if (matchArray == null) {
       alert(msg+"Fecha Invalida mm/yyyy");
       return false;}

month = matchArray[3]; 
day = matchArray[1];
year = matchArray[4];


if (month < 1 || month > 12) { 
	alert(msg+"\nEl Mes se Encuentra Entre 1 y 12 Meses mm/yyyy");
	return false;
}

if (day < 1 || day > 31) {
	alert(msg+"\nEl Día se Encuentra Entre 1 y 31 Días mm/yyyy");
	return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert(msg+"\nEl Mes "+month+" no Tiene 31 Días mm/yyyy")
	return false
}

if (month == 2) { 
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
		alert(msg+"\nFebrero de " + year + " no Tiene " + day + " Días mm/yyyy");
		return false;
	}
  }

if(year == false){
   alert(msg+"El Año Debe ser Distinto a 0");
    return false;}

  return true;
}


//**** funcion que evita que el campo solo contenga caracter espacio


 function vacio(q,msg) {
        q = String(q)
	for ( i = 0; i<q.length; i++ ) {
		if ( q.charAt(i) != "" ) {
				return true
        	}
	}
	alert(msg)
	return false
}

// ********************** VERIFICA EL LARGO DEL CAMPO ***********************************

// Campo es el nombre del campo a verificar y largo el numero maximo de caracteres

function largo(campo,largo){

 if (campo.length > largo){ 
     alert ("ATENCIÓN : Solo Puede Ingresar Hasta "+largo+" Caracteres");
     return false;}
  }

//******************************** FUNCION QUE VALIDA FECHA ******************************


function isValidDate(dateStr,nulo,msg) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4}|\d{4})$/;

   if (dateStr == "" && nulo == 0) {
         dateStr = "10/12/1990";
   }

var matchArray = dateStr.match(datePat); 

 if (matchArray == null) {
       alert(msg+"Fecha Invalida mm/yyyy");
       return false;}

month = matchArray[3]; 
day = matchArray[1];
year = matchArray[4];


if (month < 1 || month > 12) { 
	alert(msg+"\nEl Mes se Encuentra Entre 1 y 12 Meses mm/yyyy");
	return false;
}

if (day < 1 || day > 31) {
	alert(msg+"\nEl Día se Encuentra Entre 1 y 31 Días mm/yyyy");
	return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert(msg+"\nEl Mes "+month+" no Tiene 31 Días mm/yyyy")
	return false
}

if (month == 2) { 
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
		alert(msg+"\nFebrero de " + year + " no Tiene " + day + " Días mm/yyyy");
		return false;
	}
  }

if(year == false){
   alert(msg+"El Año Debe ser Distinto a 0");
    return false;}

  return true;
}




// ************** FUNCION QUE TRANSFORMA La " " a %20 ************************
function change_char(campo){
   var posicion = new String();
   var new_string = new String();
   var space = " ";
   var contador = 0;    

      for (var i=0; i < campo.length; i++){
              new_string = new_string + posicion;
              posicion = campo.substring(i, i + 1);
        if (space.indexOf(posicion) == -1)
            contador ++; 
        else
             posicion = "%20"; 
      }
   new_string = new_string + posicion;
   return new_string;
}


function fecha()
{
        today = new Date();
        day = today.getDay();

        if ( day == 0 ) { document.write("Domingo "); }
        if ( day == 1 ) { document.write("Lunes "); }
        if ( day == 2 ) { document.write("Martes "); }
        if ( day == 3 ) { document.write("Mi&eacute;rcoles "); }
        if ( day == 4 ) { document.write("Jueves "); }
        if ( day == 5 ) { document.write("Viernes "); }
        if ( day == 6 ) { document.write("S&aacute;bado "); }

        today = new Date();
        year = today.getYear();
		if ( year <= 200) {year = year + 1900;}
        if ( today.getMonth() == 0 ) { month = "Enero"; }
        if ( today.getMonth() == 1 ) { month = "Febrero"; }
        if ( today.getMonth() == 2 ) { month = "Marzo"; }
        if ( today.getMonth() == 3 ) { month = "Abril"; }
        if ( today.getMonth() == 4 ) { month = "Mayo"; }
        if ( today.getMonth() == 5 ) { month = "Junio"; }
        if ( today.getMonth() == 6 ) { month = "Julio"; }
        if ( today.getMonth() == 7 ) { month = "Agosto"; }
        if ( today.getMonth() == 8 ) { month = "Septiembre"; }
        if ( today.getMonth() == 9 ) { month = "Octubre"; }
        if ( today.getMonth() == 10 ) { month = "Noviembre"; }
        if ( today.getMonth() == 11 ) { month = "Diciembre"; }

       document.write( today.getDate(), " de ", month, " ", year);
}

function ReloadPage(NombrePagina,Parametro){
	
	param = Parametro.options[Parametro.selectedIndex].value;
	location.href = NombrePagina+"?CodigoReloadPage="+param;

}

function campo_num(e) { // 1
    tecla = (document.all) ? e.keyCode : e.which; // 2
    if (tecla==8 || tecla==0) return true; // 3
    patron =/[0-9\s]/; // 4
    te = String.fromCharCode(tecla); // 5
    return patron.test(te); // 6
}

function campo_num_dig(e) { // 1
    tecla = (document.all) ? e.keyCode : e.which; // 2
    if (tecla==8 || tecla==0) return true; // 3
    patron =/[0-9kK\s]/; // 4
    te = String.fromCharCode(tecla); // 5
    return patron.test(te); // 6
}

function getRadioButtonSelectedValue(ctrl){
	for(i=0;i<ctrl.length;i++)
		if(ctrl[i].checked) return ctrl[i].value;
}


function comprueba_extension(campo, tipo) { 
   var archivo = campo.value;
   if(tipo == "1"){ // IMAGENES
	   extensiones_permitidas = new Array(".gif", ".jpg", ".png"); 
	   referencia = "de la imagen";      
   }
   if(tipo == "2"){ // ARCHIVOS
	   extensiones_permitidas = new Array(".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".gif", ".jpg", ".png"); 
	   referencia = "del archivo";   
	}

   if (archivo == "") { // SI NO SE HA SELECCIONADO ARCHIVO
       return true; 
   }else{
		if(path(archivo, "" , 0) == false){
			alert("Error: Compruebe que el nombre "+ referencia +" sea válido, no se aceptan acentos.");
			return false;
	 	}
		else{
		    //recupero la extensión de este nombre de archivo 
      		extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase(); 
      		//alert (extension); 
      		//compruebo si la extensión está entre las permitidas 
      		permitida = false; 
      		for (var i = 0; i < extensiones_permitidas.length; i++) { 
         		if (extensiones_permitidas[i] == extension) { 
         			permitida = true; 
         			break; 
         		} 
      		} 
      		if (!permitida) { 
         		alert("Comprueba la extensión "+ referencia +" a subir. \nSólo se pueden subir archivos con extensiones: " + 										extensiones_permitidas.join()); return false; 
       		}else{ 
         		return true ;
 		    } 
   		} 
   }
   return true; 
} 

function path(campo,carac_extra,nulo){
 
  if (nulo == 1 && campo == ""){
    return false;}

  var ubicacion;
  var car_path = "abcdefghijklmnopqrstuvwxyzñ1234567890ÑAQZXSWEDCVFRTGBNHYMJUIKLOP:/-_.~?%=&+$\\ ";
  var caracteres = car_path + carac_extra;
  var contador = 0;    

     for (var i=0; i < campo.length; i++){
            ubicacion = campo.substring(i, i + 1);
            if (car_path.indexOf(ubicacion) != -1 ){
               contador ++;}
          else{ return false;}
  }
}

