// JavaScript Document

//ACENTOS Y TILDES UNICODE PARA ALERTS
function texto_alert(cadena){
	cadena = cadena.replace(/&aacute;/g,"\u00e1")
	cadena = cadena.replace(/&eacute;/g,'\u00e9');
	cadena = cadena.replace(/&iacute;/g,'\u00ed');
	cadena = cadena.replace(/&oacute;/g,'\u00f3');
	cadena = cadena.replace(/&uacute;/g,'\u00fa');
	cadena = cadena.replace(/&Aacute;/g,'\u00c1');
	cadena = cadena.replace(/&Eacute;/g,'\u00c9');
	cadena = cadena.replace(/&Iacute;/g,'\u00cd');
	cadena = cadena.replace(/&Oacute;/g,'\u00d3');
	cadena = cadena.replace(/&Uacute;/g,'\u00da');
	cadena = cadena.replace(/&ntilde;/g,'\u00f1');
	cadena = cadena.replace(/&Ntilde;/g,'\u00d1');
	return cadena;
}

function permite(elEvento, permitidos) {
  // Variables definen los caracteres permitidos
  var numeros = "0123456789.,";
  var caracteres = "abcdefghijklmnopqrstuvwxyz\u00f1ABCDEFGHIJKLMNOPQRSTUVWXYZ\u00d1 ";
  var puntuacion = ".,;_-?!()";
  var caracteres_email = "-_.@"; 
  var caracteres_especiales = "\u00e1\u00e9\u00ed\u00f3\u00fa\u00c1\u00c9\u00cd\u00d3\u00da"; 
  var fecha_1 = "\/";
  var fecha_2 = "-";
  
  
  var numeros_caracteres = numeros + caracteres;
  var texto =  caracteres + caracteres_especiales;
  var email = numeros + caracteres + caracteres_email;
  var apodo =  caracteres + caracteres_especiales + numeros;
  var escritura = caracteres + puntuacion + caracteres_especiales + numeros;
  var telefonos = puntuacion + numeros;
  var fecha_barras = fecha_1 + numeros;
  var fecha_guiones = fecha_2 + numeros;
 
  // Seleccionar los caracteres a partir del parmetro de la funcin
  switch(permitidos) {
    case 'numeros':
      permitidos = numeros;
      break;
	case 'apodo':
      permitidos = apodo;
      break;
    case 'caracteres':
      permitidos = texto;
      break;
    case 'num_car':
      permitidos = numeros_caracteres;
      break;
    case 'car_2':
      permitidos = caracteres_2;
      break;
   case 'email':
      permitidos = email;
      break;
   case 'escritura':
      permitidos = escritura;
      break;
  case 'fecha_barras':
      permitidos = fecha_barras;
      break;
  case 'fecha_guiones':
      permitidos = fecha_guiones;
      break;
  case 'telefonos':
      permitidos = telefonos;
      break;
  }
 
  // Obtener la tecla pulsada 
  var evento = elEvento || window.event;
  var codigoCaracter = evento.charCode || evento.keyCode;
  if(codigoCaracter==8 || codigoCaracter==9 || codigoCaracter==13){
  	
  }else{
	var caracter = String.fromCharCode(codigoCaracter);
	return permitidos.indexOf(caracter) != -1;
  }
  // Comprobar si la tecla pulsada se encuentra en los caracteres permitidos
  
}
//Validador de mails
function validarEmail(valor) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
		return (true);
	} else {
		return (false);
	}
}
//Validador de fechas
function validarFecha(valor) {
	var fecha = valor.split("/");
	var dia = fecha[0];
	var mes = fecha[1];
	var ano = fecha[2];
	var estado = true;
	if ((dia.length == 2) && (mes.length == 2) && (ano.length == 4)) {
		var date = new Date()
		rango_anos=(date.getFullYear()-100);
		
		if(ano>=rango_anos){
			switch (parseInt(mes)) {
				case 1:dmax = 31;break;
				case 2: if (ano % 4 == 0) dmax = 29;
					else dmax = 28;
					break;
				case 3:dmax = 31;break;
				case 4:dmax = 30;break;
				case 5:dmax = 31;break;
				case 6:dmax = 30;break;
				case 7:dmax = 31;break;
				case 8:dmax = 31;break;
				case 9:dmax = 30;break;
				case 10:dmax = 31;break;
				case 11:dmax = 30;break;
				case 12:dmax = 31;break;
			}
			dmax!=""?dmax:dmax=-1;
		
			if ((dia >= 1) && (dia <= dmax) && (mes >= 1) && (mes <= 12)) {
				for (var i = 0; i < fecha[0].length; i++) {
					diaC = fecha[0].charAt(i).charCodeAt(0);
					(!((diaC > 47) && (diaC < 58)))?estado = false:'';
					mesC = fecha[1].charAt(i).charCodeAt(0);
					(!((mesC > 47) && (mesC < 58)))?estado = false:'';
				}
			}else{
				return false;
			}
		}else{
			return false;
		}
	} else { 
		estado = false;
	}
	return estado;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

//Quitar acentos y eņes de palabras
function quitar_acentos(string) {
	var string_final = "";
	for (var i=0; i<string.length; i++){
		//var caracter = cadena[i];
		switch(string.charAt(i)){
			case "\u00e1":
				string_final += "a";
				break;
			case "\u00e9":
				string_final += "e";
				break;
			case "\u00ed":
				string_final += "i";
				break;
			case "\u00f3":
				string_final += "o";
				break;
			case "\u00fa":
				string_final += "u";
				break;
			case "\u00f1":
				string_final += "n";
				break;
			case "\u00c1":
				string_final += "A";
				break;
			case "\u00c9":
				string_final += "E";
				break;
			case "\u00cd":
				string_final += "I";
				break;
			case "\u00d3":
				string_final += "O";
				break;
			case "\u00da":
				string_final += "U";
				break;
			case "\u00d1":
				string_final += "N";
				break;
			default:
				string_final += string.charAt(i);
				break;
		};
	}
	return string_final;
}