// JavaScript Document
// Carga de formularios en el Contenedor ---------------------------->
//funciones que muestran en cargando de AJAX-----------------
function cargando(){
	$("#loading").ajaxStart(function(){
	  $(this).show();
	});
	
	$("#loading").ajaxStop(function(){
	  $(this).hide();
	});
}
//------------------------------------------------------------
	
function carga_formulario(archivo,contenedor){		
	//alert(parametros);
	mostrar_tapa();
	cargando();
	if(archivo!=""){
		$.ajax({
			async:true,
			dataType: "html",
			//type:metodo,
			contentType: "application/x-www-form-urlencoded",
			url: archivo,
			//data: parametros,
			success: function(datos){
				$(""+contenedor+"").html(datos);
				$(""+contenedor+"").fadeIn("slow");
			},
			error : function(xhr,msg,excep) {
				alert("Error al cargar el Formulario.");		
			}
		});	
	}
}
// ------------------------------------------------------------------>
//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');
	cadena = cadena.replace(/&bull;/g,'\u2022');
	//cadena = cadena.replace(/<br>/g,'\u000A');
	return cadena;
}
// ------------------------------------------------------------------>
//MOSTRAR Y QUITAR TAPA FORMULARIOS --------------------------------->
function mostrar_tapa(){
	var win_h = $(document).height();
	var win_w = $(window).width();
	$("#tapa_formulario").css("height",win_h);	
	$("#tapa_formulario").css("width",win_w);
	$("#tapa_formulario").show();
}
function quitar_tapa(){
	$("#tapa_formulario").hide();
}
// ------------------------------------------------------------------>
//VALIDAR DATOS ----------------------------------------------------->
function validar_dato(dato, tipo){
	var dato_valido = 0;
	// Variables definen expresiones regulares
	var solo_texto = "^[a-z A-Z\u00f1\u00d1\u00e1\u00e9\u00ed\u00f3\u00fa\u00c1\u00c9\u00cd\u00d3\u00da]{1,}$";
	var solo_numeros = "^[0-9]{1,}$";
	var email = "^[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,6}$";
	var telefono = "^[0-9 ()]{2,7}-? ?[0-9 ]{6,15}$";
	var fecha = "^(0[1-9]|1[0-9]|2[0-9]|3[0-2]|[1-9])/(0[1-9]|1[0-2]|[1-9])/[0-9]{4,}$";
	var codigo_postal = "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{2,3}$";
	var pass = "^([a-zA-Z\u00f1\u00d1\u00e1\u00e9\u00ed\u00f3\u00fa\u00c1\u00c9\u00cd\u00d3\u00da0-9]{4})";
 
	// Seleccionar el tipo de validacion
	switch(tipo) {
		case "solo_texto":
			if (dato.match(solo_texto))dato_valido = 1;
			break;
		case "solo_numeros":
			if (dato.match(solo_numeros))dato_valido = 1;
			break;
		case "email":
			if (dato.match(email))dato_valido = 1;
			break;
		case "telefono":
			if (dato.match(telefono))dato_valido = 1;
			break;
		case "fecha":
			if (dato.match(fecha))dato_valido = 1;
			break;
		case "codigo_postal":
			if (dato.match(codigo_postal))dato_valido = 1;
			break;
		case "pass":
			if (dato.match(pass))dato_valido = 1;
			break;
		default:
			dato_valido = 1;
			break;
	}

	return dato_valido;
}
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 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;
}
// ------------------------------------------------------------------>
//MOSTRAR VENTANA DE ALERTA ----------------------------------------->
function mostrar_alerta(detalle, sin_tapa){
	//Enviar el scroll hacia arriba
	scrollTo(0,0); 
	$("#alert_mensaje").html(detalle);
	$("#alerta").fadeIn("slow");
	if (sin_tapa == 0)
		mostrar_tapa();
	
}
function ocultar_alerta(sin_tapa){
	//Mostrar los combos del formulario de registro para IE
	if (navigator.appName == "Microsoft Internet Explorer"){
		$("#fechanacdia_registro").show();
		$("#fechanacmes_registro").show();
		$("#pais_registro").show();
		$("#provincia_registro").show();
	}
	
	$("#alerta").fadeOut("slow");
	if (sin_tapa == 0)
		quitar_tapa();
}
// ------------------------------------------------------------------>
//MOSTRAR VENTANA DE ALERTA CON CONTRASENA -------------------------->
function mostrar_alerta_pass(detalle, detalle_pass, sin_tapa){
	//Enviar el scroll hacia arriba
	scrollTo(0,0); 
	$("#alert_mensaje_gral").html(detalle);
	$("#alert_mensaje_pass").html(detalle_pass);
	$("#alerta_pass").fadeIn("slow");
	if (sin_tapa == 0)
		mostrar_tapa();
	
}
function ocultar_alerta_pass(sin_tapa){
	//Mostrar los combos del formulario de registro para IE
	if (navigator.appName == "Microsoft Internet Explorer"){
		$("#fechanacdia_registro").show();
		$("#fechanacmes_registro").show();
		$("#pais_registro").show();
		$("#provincia_registro").show();
	}
	
	$("#alerta_pass").fadeOut("slow");
	if (sin_tapa == 0)
		quitar_tapa();
}
// ------------------------------------------------------------------>	
