function verifyEmail(s) {
        var chrs = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-@';
        var sLen = s.length; var i=0, c=0, cCnt=0, step=0;
        if (sLen < 6) return false;
        while (i < sLen){
                c=s.charAt(i);
                if (!(chrs.indexOf(c)>=0 || (c=='_' && step<1))) return false;
                if (c=='.') { if (cCnt<1) return false; cCnt=0; }
                if (c=='@') { if (step>0) return false; if (cCnt<1) return false; step++; cCnt=0; }
                cCnt=cCnt+1; i++;
        }       
        if (cCnt < 3 || cCnt > 5 || step==0 || (s.indexOf(".")<0) ) return false;
		
		var array = s.split('@');
		if (array[0].length < 3) return false;
		else{
			var array2 = array[1].split('.');
			if (array2[0].length < 3) return false;
			}
		
        return true;
}

function es_email(v){
   var limpio, a_emails, ok, idx_emails;
   idx_emails=0;
   a_emails=v.split(",");
   while((idx_emails<a_emails.length)&&(ok=_es_email(_trim(a_emails[idx_emails++]))));
   return ok;
}

function _es_email(v){
   var t=/^(\w|\~)(\w|\~|\.|\-)*@(\w|\~)(\w|\~|\.|\-)*\.(([A-Za-z]{2})|([bB][iI][zZ])|([Ii][Nn][Ff][Oo])|([Cc][Oo][Mm])|([Nn][Ee][Tt])|([Oo][Rr][Gg])|([Mm][Ii][Ll])|([Ii][Nn][Tt])|([Ee][Dd][Uu])|([nN][aA][mM][eE])|[gG][oO][vV])$/
   return t.test(v);
}

function _trim(v){
   return v.replace(/^( )*([^ ]*)( )*$/,"$2");
}

/**********************************************************************************************************/

function es_moneda(v){
   var t=/^\d{1,9}(\.(\d{1,2})?)?$/
   return t.test(v);
}

/**********************************************************************************************************/

function es_telefono(v){
   var t=/^(6|8|9)\d{8}$/
   return t.test(v);
}
/**********************************************************************************************************/

function es_cp(v){
   var t=/^(([0-4]\d{4})|(5[0-2]\d{3}))$/
   return t.test(v);
}

/**********************************************************************************************************/

function es_letra(v){
   var t=/^([A-Z]|[a-z])$/
   return t.test(v);
}

/**********************************************************************************************************/

function es_entero(v){
   var t=/^[1-9]\d*$/
   return t.test(v);
}

/**********************************************************************************************************/

function es_dni(dni){
   var forma_dni = /^\d{1,8}[a-zA-Z]$/
   var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';

   if(!forma_dni.test(dni)){
      return es_nie(dni);
   }

   var numero = dni.substring(0,dni.length-1);
   var letra  = dni.substring(dni.length-1);

   return (letra.toUpperCase() == letras.substr(numero%23,1));
}

function es_nie(dni){
   var forma_nie = /^[xX]\d{1,8}[a-zA-Z]$/
   var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';

   if(!forma_nie.test(dni)){
      return false;
   }

   var numero = dni.substring(1,dni.length-1);
   var letra  = dni.substring(dni.length-1);

   return (letra.toUpperCase() == letras.substr(numero%23,1));
}

/**********************************************************************************************************/

function es_texto(texto){
   var t = /^([àèìòùÀÈÌÒÙáéíóúÁÉÍÓÚäëïöüÄËÏÖÜçÇa-zA-ZñÑ]|\s)*[àèìòùÀÈÌÒÙáéíóúÁÉÍÓÚäëïöüÄËÏÖÜçÇa-zA-ZñÑ]([àèìòùÀÈÌÒÙáéíóúÁÉÍÓÚäëïöüÄËÏÖÜçÇa-zA-ZñÑ]|\s)*$/
   return t.test(texto);
}

/**********************************************************************************************************/
function _to_int(str){
   var t=/^(0)*(\d+)$/
   if(!t.test(str)) return 0;
   a_v=t.exec(str);
   return parseInt(a_v[2]);
}

function es_fecha(dia, mes, ano){
   var idia=_to_int(dia), imes=_to_int(mes), iano=_to_int(ano);

   if(!idia||!imes||!iano) return false;

   switch(imes){
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12:
         return (idia<=31);
      case 4:
      case 6:
      case 9:
      case 11:
         return (idia<=30);
      case 2:
         return (idia<=(28+((((!(iano%4))&&(iano%100))||!(iano%400))?1:0)));
   }
   return false;
}

/**********************************************************************************************************/
function checkCharEspeciales(strInput){
	aux = strInput.replace(/;/g, ' ');
	strInput = aux.replace(/[!|"·#$%&¬\?¿¡*{}\[\]\\\/]/g, '');
	return strInput;
	}
/**********************************************************************************************************/
function checkElementos(){
	var formularios = document.forms.length;

	for (var i=0;i<formularios;i++){
		var elementos = document.forms[i].elements.length;
		for (var j=0;j<elementos;j++){
			 if (document.forms[i].elements[j].value != null)
				 document.forms[i].elements[j].value = checkCharEspeciales(document.forms[i].elements[j].value);
			}
		}
	}


function compruebaCpProvinciaEspanola(p, cp){
   var cps      = new Array("","15","01","02","03","04","33","05","06","07","08","09","10","11","39","12","13","14","16","17","18","19","20","21","22","23","26","24","25","27","28","29","30","31","32","34","36","37","40","41","42","43","44","45","46","47","48","49","50");

   if(cp.substr(0,2)!=cps[p]) return false;
   return true;
}

function compruebaTelefonoProvinciaEspanola(p, tel){
   var prefijos = new Array("","981","945","967","96","950","98","920","924","971","93","947","927","956","942","964","926","957","969","972","958","949","943","959","974","953","941","987","973","982","91","95","968","948","988","979","986","923","921","95","975","977","978","925","96","983","94","980","976");
   var primero  = tel.substr(0,1);

   if(primero  == "6") return true;
   if(primero  == "8") return true;
   if((primero == "9")&&(tel.substr(0,prefijos[p].length) != prefijos[p])) return false;
   return true;
}

function disable_keyboard(form){
   if(form.sn.checked){
      form.numero.blur();
   }
}

function sn_click(form){
   if(form.sn.checked){
      form.numero.value="S/N";
   }
}

function comprobar(form){  
	 checkElementos();

	  var strnombre=form.nombre.value;
		strnombre = strnombre.replace(/^\s+/, '');
        if (((strnombre.length < 3) || (strnombre.length > 50)) || (strnombre=="Nombre")) {
           alert("Por favor, introduce tu nombre.");
           form.nombre.focus();
       	   return false;
        }
		
	    var strapellidos=form.apellidos.value;
		strapellidos = strapellidos.replace(/^\s+/, '');
        if (((strapellidos.length < 3) || (strapellidos.length > 50)) || (strapellidos=="Apellidos")) {
           alert("Por favor, introduce tus apellidos.");
           form.apellidos.focus();
           return false;
        }
		
      if (!es_email(form.email.value)){
            alert("Introcuce tu correo electrónico correctamente.");
            form.email.focus();
            return false;
         }

      if (!es_telefono(form.telefono.value)){
            alert("El teléfono no es un número válido.\nDebe empezar por 6 ó 9 y tener 9 dígitos.");
            form.telefono.focus();
            return false;
         }
         
		var strcontactar=form.contactar.value;
		strcontactar = strcontactar.replace(/^\s+/, '');
        if (((strcontactar.length < 3) || (strcontactar.length > 50)) || (strcontactar=="")) {
           alert("Por favor, introduce una franja horaria de contacto");
           form.contactar.focus();
           return false;
        }
           
   return true;
}
