﻿/*****************************ESTANDAR*****************************************/
////verificacion email
/* dice si cadena es texto no vacio o no                                     */
function vacio(cadena)
  {                                    // DECLARACION DE CONSTANTES
    var blanco = " \n\t" + String.fromCharCode(13); // blancos
                                       // DECLARACION DE VARIABLES
    var i;                             // indice en cadena
    var es_vacio;                      // cadena es vacio o no
    for(i = 0, es_vacio = true; (i < cadena.length) && es_vacio; i++) // INICIO
      es_vacio = blanco.indexOf(cadena.charAt(i)) != - 1;
    return(es_vacio);
  }


/* dice si cadena es un email (alfanum@alfanum.alfanum[.alfanum]) o no, don- */
/* de alfanum son caracteres alfanumericos u otros                           */
function email(cadena, varios)
  {                                    // DECLARACION-INICIALIZACION VARIABLES
    var i, j;                          // indice en cadena
    var es_email = 0 < cadena.length;  // cadena es email o no
    if( varios.length == 0 ) otros = "-_.";
    //alert( carac_email+"  "+otros );
    i = salta_alfanumerico(cadena, 0, otros); // INICIO
    if(es_email = 0 < i)               // lee "alfanum*"
      if(es_email = (i < cadena.length))
        if(es_email = cadena.charAt(i) == '@') // lee "alfanum@*"
          {
            i++;
            if( varios.length == 0 ) otros = "-_";  //obligamos a que haya al menos un punto
            j = salta_alfanumerico(cadena, i, otros);
            if(es_email = i < j)       // lee "alfanum@alfanum*"
              if(es_email = j < cadena.length)
                if(es_email = cadena.charAt(j) == '\.')
                  {                    // lee "alfanum@alfanum.*"
                    j++;
                    i = salta_alfanumerico(cadena, j, otros);
                    if(es_email = j < i) // lee "alfanum@alfanum.alfanum*"
                      while(es_email && (i < cadena.length))
                        if(es_email = cadena.charAt(i) == '\.')
                          {
                            i++;
                            j = salta_alfanumerico(cadena, i, otros);
                            if(es_email = i < j) // lee "alfanum@alfanum.alfanum[.alfanum]*"
                              i = j;
                          }
                  }
          }
    return(es_email);
  }

/* salta caracteres alfanumericos y otros a partir de  cadena[i]  y  da  si- */
/* guiente posicion                                                          */
function salta_alfanumerico(cadena, i, otros)
  {                                    // DECLARACION DE VARIABLES
    var j;                             // indice en cadena
    var car;                           // caracter de cadena
    var alfanum;                       // cadena[j] es alfanumerico u otros
    for(j = i, alfanum = true; (j < cadena.length) && alfanum; j++) // INICIO
      {
        car = cadena.charAt(j);
        alfanum = alfanumerico(car) || (otros.indexOf(car) != -1);
      }
    if(!alfanum)                       // lee "alfanumX"
      j--;
    return(j);
  }
  
/* dice si car es alfanumerico                                               */
function alfanumerico(car)
  {
    return(alfabetico(car) || numerico(car));
  }


/* dice si car es alfabetico                                                 */
function alfabetico(car)               // DECLARACION DE CONSTANTES
  {                                    // caracteres alfabeticos
    var alfa = "ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuvwxyz";
    return(alfa.indexOf(car) != - 1);  // INICIO
  }


/* dice si car es numerico                                                   */
function numerico(car)
  {                                    // DECLARACION DE CONSTANTES
    var num = "0123456789";            // caracteres numericos
    return(num.indexOf(car) != - 1);   // INICIO
  }
  
function es_entero( cadena ) {
	  for(j = 0; (j < cadena.length); j++) // INICIO
      {
        car = cadena.charAt(j);
        if( ! numerico(car) ) return false;
      }
      return true;
}

function vector_checkbox( ckb_checkbox ) {  // se le debe pasar => form['checkbox[]'] 
		var int_max = ckb_checkbox.length;
		var int_selec = 0; 
		for (var int_i = 0; int_i < int_max; ++int_i) { 
			if( ckb_checkbox[int_i].checked == true  ) ++int_selec;
		} 
		return int_selec;
}

function es_fecha( fecha ) {
		if ( fecha.length != 10 ) return false;
		
		for(j = 0; (j < fecha.length); j++)  {
        	car = fecha.charAt(j);
        	if( j==2 || j==5 ) {
        		if( car != '/' ) return false;
        	} else {
        		if( ! numerico(car) ) return false; 
        	}
      	}
		return true;
}
/*****************************FIN ESTANDAR**************************************/
/*****************************VREIFICACIONES*****************************************/
	function comprueba_acceso( form ) {
			if( vacio( form.txt_l.value ) || vacio( form.txt_p.value ) ) {
				alert('Por favor, introduzca todos los campos.');	
				return false;
			}
			form.submit();	
			return true;
	}
	
	function muestra( id ) {
	    obj = document.getElementById(id);
	    if (obj.style.display == "block") {
	        obj.style.display = "none"
	    }
	    else {
	        obj.style.display = "block"
	    }
	    obj = null;
	}
	
	function confirmar( cadena ) {
		if( confirm( cadena ) ) {
			return true;
		} else {
			return false;
		}
	}
	
	function confirmar_form( cadena, form ) {
		if( confirm( cadena ) ) {
			form.submit();
			return true;
		} else {
			return false;
		}
	}
	
	function comprueba_grupo(form){
		if( vacio( form.txt_nom.value ) || vacio( form.txt_codigo.value ) ) {
			alert("Por favor, introduzca todos los campos.");	
		} else {
			form.submit();
		}
		return true;
	}
	
	function comprueba_usuario(form){
		if( vacio( form.txt_login.value ) || vacio( form.txt_nivel.value ) || form.desp_grupos.value == -1 || vacio( form.txt_clave.value ) || vacio( form.txt_clave2.value ) ) {
			alert("Por favor, introduzca todos los campos.");	
		} else if( form.txt_clave.value != form.txt_clave2.value ) {
			alert("Las dos <claves> introducidas son diferentes.");
		} else if( !es_entero(form.txt_nivel.value) ){
			alert("Por favor, introduzca únicamente números en el campo <Nivel>.");
		} else {
			form.submit();
		}
		return true;
	}
	
	function comprueba_contacto(form) {
		if( vacio( form.txt_codigo.value ) || vacio( form.txt_nom.value ) || vacio( form.txt_mail.value ) || vacio( form.txt_contacto.value ) ) {
			alert("Por favor, introduzca todos los campos obligatorios.");	
		} else if( !email( form.txt_mail.value, "" ) ) {
			alert("Por favor, introduzca un email válido.");
		} else {
			form.submit();
		}
		return true;	
	}
	
	function RecorrerForm(form){
		var datos = "";
		for ( var i = 0; i < form.elements.length; ++i )
		{
			if( form.elements[i].type == "select-one" || form.elements[i].type == "text" ) {
				datos += form.elements[i].name + "=" + form.elements[i].value + "&" ;
			}
		}
		
		return datos;
	}
	
	function comprueba_niveles(form, indice, pg, alto){ 
		if( eval('form.int_indice'+indice+'.value') == "-1" || eval('form.int_indice'+indice+'.value') == "-1_" ) {
			alert("Por favor, seleccione algún índice.");
			return false;
		}
		var datos = RecorrerForm(form);
		indice++;
		envia_datos(datos, pg+'.ajax.php?n='+indice, 'capa_'+pg, alto);
		return true;
	}
	
	function debug ( form ) {
		var cadena = '';
		for( i=0; i < form.elements.length; ++i ) {
			cadena += form.elements[i].name;
		}
		alert(cadena);
	}
	
	function comprueba_buscador(form, pg, aux){
		var cont = 0;
		var tamany_max = 20480000;
		var tamany = 0;
		var max = form.max.value;
		for( var i = 0; i < max; ++i ) {
			/* si existe (que no haya sido filtrado) y esta seleccionado */
			if( eval("form.arc"+i) != undefined && eval("form.arc"+i+".checked") ) {
				archivo = eval("form.arc"+i+".value").split("_");
				tamany += parseInt(archivo[(archivo.length-1)]);
				cont++;
			}
		}
		/* aux marca si venimos de borrar archivos, entonces no hay que comprobar el tamany */
		if( cont == 0 || ( tamany == 0 && aux == 1 ) ) {
			alert('Por favor, seleccione algún documento.');
			return false;
		}
		if( aux == 1 && tamany >= tamany_max ) {
			alert('El tamaño máximo de descarga es de 20MB. Por favor, descarguelo por partes.');
			return false;
		}
		
		form.action = pg;
		form.submit();
		
		cont = null;
		tamany_max = null;
		tamany = null;
		max = null;
		archivo = null;
		return true;
	}
	
	function comprueba_clasificar(form) {
		if( vacio(form.txt_archivo.value) || vacio(form.txt_nivel.value) || vacio(form.txt_fecha.value) || form.sl_grupos.value == -1 || vacio(form.txt_carpeta.value) ) {
			alert('Introduzca todos los campos obligatorios.');
			return false;
		}
		if( !es_entero(form.txt_nivel.value) ) {
			alert('Introduzca únicamente números en el nivel de seguridad.');
			return false;
		}
		if( !es_fecha(form.txt_fecha.value) ) {
			alert('Introduzca una fecha correcta con el formato dd/mm/aaaa.');
			return false;
		}
		form.submit();
		return true;
	}
	
	function comprueba_correo(form) {
		if( (!form.rd_correo[0].checked && !form.rd_correo[1].checked) || vacio(form.txt_archivo.value) || vacio(form.txt_nivel.value) || vacio(form.txt_fecha.value) || form.sl_grupos.value == -1 || vacio(form.txt_fechac.value) ) {
			alert('Introduzca todos los campos obligatorios.');
			return false;
		}
		if( !es_entero(form.txt_nivel.value) ) {
			alert('Introduzca únicamente nœmeros en el nivel de seguridad.');
			return false;
		} 
		if( !es_fecha(form.txt_fecha.value) || !es_fecha(form.txt_fechac.value) ) {
			alert('Introduzca las fechas correctamente con el formato dd/mm/aaaa.');
			return false;
		}
		form.submit();
		return true;
	}
	
	function seleccionar_todo(nombre){
	   var form = document.getElementById(nombre);
	   for (i=0;i<form.elements.length;i++)
		  if(form.elements[i].type == "checkbox")
			 form.elements[i].checked = 1;
			 
		form = null;
	} 
	
	function comprueba_envio_email(form){
		if( vacio(form.txt_asunto.value) || vacio(form.txt_texto.value) ) {
			if( form.ck_aste[0].checked ) 
				alert('Introduzca el asunto y texto del mensaje.');
			else
				alert('Introduzca el asunto y texto del mensaje para aquellos contactos seleccionados que no tengan uno por defecto.');
			return false;
		}
	
		var cont = 0;
		for (i=0;i<form.elements.length;i++)
		  if(form.elements[i].type == "checkbox")
			 if(form.elements[i].checked)
			 	cont++;
			 
		if( cont < 1 ) {
			alert('Por favor, seleccione algœn contacto para enviar el email.');
			return false;
		} else if( cont > 50 ) {
			alert('El máximo de contactos permitidos por email es 50.\nSi necesita enviarlo a más de 50 contactos, puede enviar varios emails.' );
			return false;
		}
		
		form.submit();
		cont = null;
		i = null;
		return true;
	}
	
	function deseleccionar_todo(nombre){
	   var form = document.getElementById(nombre);
	   for (i=0;i<form.elements.length;i++)
		  if(form.elements[i].type == "checkbox")
			 form.elements[i].checked=0
		
		form = null;
	}
	
	function comprueba_busqueda(form){
		// niveles
		if( document.getElementById('bsc_1').style.display == "block" ) {
			if( form.int_indice0.value == "-1_" ) {
				alert('Introduzca algún índice para realizar la búsqueda.');
				return false;
			}
		}
		// niveles independientes
		if( document.getElementById('bsc_2').style.display == "block" ) {
			if( vacio(form.txt_indices0.value) && vacio(form.txt_indices1.value) && vacio(form.txt_indices2.value) && vacio(form.txt_indices3.value) && vacio(form.txt_indices4.value) && vacio(form.txt_indices5.value) ) {
				alert('Introduzca un valor en algún índice para realizar la búsqueda.');
				return false;
			}
		}
		// carpeta (principal)
		if( document.getElementById('bsc_3').style.display == "block" ) {
			if( vacio(form.txt_carpeta.value) ) {
				alert('Introduzca algún valor en el campo <carpeta>.');
				return false;
			}
		}
		// descripción
		if( document.getElementById('bsc_4').style.display == "block" ) {
			if( vacio(form.txt_desc.value) ) {
				alert('Rellene el campo <descripción> para continuar con la búsqueda.');
				return false;
			}
		}
		// fechas
		if( document.getElementById('bsc_5').style.display == "block" ) {
			if( !es_fecha(form.txt_fechai.value) || !es_fecha(form.txt_fechao.value) ) {
				alert('Introduzca las fechas con el formato dd/mm/aaaa.');
				return false;
			}
		}
		
		form.submit();
		return true;
	}
	
	function comprueba_listadoc(form, pg){
		if( !form.rd_correo[0].checked && !form.rd_correo[1].checked ) {
			alert('Seleccione un <tipo de correo a listar>.');
			return false;
		}
		if( vacio(form.txt_ano.value) ) {
			alert('Introduzca un <año a listar>.');
			return false;
		}
		if( !es_entero(form.txt_ano.value) || form.txt_ano.value.length != 4 ) {
			alert('Introduzca únicamente números en el <año a listar> y con el formato "YYYY".');
			return false;
		}
		form.action = pg;
		form.submit();
		return true;
	}
	
	function comprueba_param_listado(form) {
		if( !form.cb_titol.checked && !form.cb_in1.checked && !form.cb_in2.checked && !form.cb_in3.checked 
			&& !form.cb_in4.checked && !form.cb_in5.checked && !form.cb_desc.checked ) {
			alert('Seleccione algún campo para mostrar en el listado de correspondencia.');
			return false;
		}
		form.submit();
		return true;
	}
	
/*****************************FIN VERIFICACIONES*****************************************/