function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

function paginadoListado(mipagina) {
	var ff=window.document.bava;
	ff.pagina.value=mipagina;
	ff.submit();
}

function ZoomG(ruta,sPicURL) { 
	window.open("/zoom.php?Dir="+ruta+"&Doc="+sPicURL,"","resizable=1,HEIGHT=200,WIDTH=200");
}

function VPrint() {
	window.open("/vprint.html","","resizable=1,SCROLLBARS=YES,HEIGHT=600,WIDTH=788");
}

function SimpleSwap(el, which) {
    el.src = el.getAttribute(which || "origsrc");
}

function SimpleSwapSetup() {
    var x = document.getElementsByTagName("img");
    for (var i = 0; i < x.length; i++) {
        var oversrc = x[i].getAttribute("oversrc");
        if (!oversrc) {
            continue;
        }
        x[i].oversrc_img = new Image;
        x[i].oversrc_img.src = oversrc;
        x[i].onmouseover = new Function("SimpleSwap(this,'oversrc');");
        x[i].onmouseout = new Function("SimpleSwap(this);");
        x[i].setAttribute("origsrc", x[i].src);
    }
}

addLoadEvent(SimpleSwapSetup);

function getStyle(el,styleProp){
	var x = document.getElementById(el);
	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}

function str_replace(busca, repla, orig){
	str 	= new String(orig);
	rExp	= "/"+busca+"/g";
	rExp	= eval(rExp);
	newS	= String(repla);
	str = new String(str.replace(rExp, newS));
	return str;
}

function stristr( haystack, needle) {
    var pos = 0;
    haystack += '';
    pos = haystack.toLowerCase().indexOf( (needle+'').toLowerCase() );
    if( pos == -1 ){
    	return false;
    }
    else{
	return true;
    }
}

function strtr(str,from,to) {

    var fr = '', i = 0, j = 0, lenStr = 0, lenFrom = 0;
    var tmpFrom = [];
    var tmpTo   = [];
    var ret = '';
    var match = false;

    if (typeof from === 'object') {
        this.krsort(from);
        for (fr in from) {
            tmpFrom.push(fr);
            tmpTo.push(from[fr]);
        }

        from = tmpFrom;
        to   = tmpTo;
    }
    
    lenStr  = str.length;
    lenFrom = from.length;
    for (i = 0; i < lenStr; i++) {
        match = false;
        for (j = 0; j < lenFrom; j++) {
            if (str.substr(i, from[j].length) == from[j]) {
                match = true;

                // Fast forward
                i = (i + from[j].length)-1;
                
                break;
            }
        }
        
        if (false !== match) {
            ret += to[j];
        } else {
            ret += str[i];
        }
    }

    return ret;
}

function replaceSubstring(inputString, fromString, toString) {
   var temp = inputString;
   if (fromString == '') {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1){
      while (temp.indexOf(fromString) != -1){
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   }
   else{
      var midStrings = new Array('~', '`', '_', '^', '#');
      var midStringLen = 1;
      var midString = '';
      while (midString == '') {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = '';
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      }
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   }
   return temp;
}

function getRadio(ctrl){
	for(i=0;i<ctrl.length;i++)
		if(ctrl[i].checked) return ctrl[i].value;
}

function elimina_acentos(cadena){
	tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ,;.:-_´¨+*`[]'¡?¿ºª!·$%&/()=?¿|@#~’";
	replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn                                   ";
	return(strtr(cadena,tofind,replac));
}

function Arregla_Rewrite(texto) {
	texto = elimina_acentos(texto);
	texto = str_replace('"',"",texto);
	texto = str_replace("  "," ",texto);
	texto = str_replace("  "," ",texto);
	texto = str_replace("  "," ",texto);
	texto = str_replace("  "," ",texto);
	texto = str_replace(" ","_",texto);
	return texto;
}

function vaciar(dato){
	dato.value = "";
}

function comprobarEmail(texto){

	var mailres = true;            
	var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-";
	var arroba = texto.indexOf("@",0);
	
	if ((texto.lastIndexOf("@")) != arroba) arroba = -1;
	
	var punto = texto.lastIndexOf(".");      
	for (var contador = 0 ; contador < texto.length ; contador++){
		if (cadena.indexOf(texto.substr(contador, 1),0) == -1){
			mailres = false;
			 break;
		}
	}

	if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1))
		mailres = true;
	else
		mailres = false;

	return mailres;
}

function comprobarFecha(Cadena){

	var Fecha = new String(Cadena);
	var RealFecha= new Date();

	var Ano = new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length));
	var Mes = new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")));
	var Dia = new String(Fecha.substring(0,Fecha.indexOf("/")));
	
	var ok = 1;

	if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){  
		ok = 0;
	}  
	if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){  
		ok = 0;
	}  
	if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){  
		ok = 0;
	} 
	if(Fecha.indexOf("/") != 2 || Fecha.lastIndexOf("/") != 5){
		ok = 0;
	}
	
	if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
		if (Mes!=2 && Dia>30) {
			ok = 0;
		}

		if (Mes==2) {
			if(Dia > 29){
				ok = 0;
			}
			else {
				if((parseInt(Ano)%4==0) && ((parseInt(Ano)%100!=0) || (parseInt(Ano)%400==0))){
					//Bisiesto
				}
				else {
					if(Dia > 28){
						ok = 0;
					}
				}
			}
		}

	}
	
	if(ok == 1){
		return true;
	}
	else{
		return false;
	}

}

function validarNIF(nif) {
	nif = replaceSubstring(nif,' ','');
	nif = replaceSubstring(nif,'-','');
	nif = replaceSubstring(nif,'.','');
	if(nif.length!=9){
		return false;
	}
	else{
		if(!(CalculaNif(nif) || CalculaCif(nif) || CalculaNie(nif))) {
			return false;
		}
		else {
			return true;
		}
	}
}

function CalculaNie(nif){
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	var letraNie = nif.substring(0,1);
	var dni = nif.substring(1,8);
	var letraNif = nif.substring(8,9);
	var letraAux;
	var letraIni1='X';
	var letraIni2='Y';
	var letraIni3='Z';
	if(letraIni2==letraNie.toUpperCase()){
		dni = 1 + dni;
	} else if(letraIni3==letraNie.toUpperCase()){
		dni = 2 + dni;
	}
	var numero = dni%23;
	letraAux = letras.substring(numero,numero+1);
	if ((letraAux == letraNif.toUpperCase()) && (letraIni1==letraNie.toUpperCase() || letraIni2==letraNie.toUpperCase() || letraIni3==letraNie.toUpperCase())){
		return true;
	}
	else{
		return false;
	}
}

function CalculaNif(nif){
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	var dni    = nif.substring(0,8);
	var letraNif = nif.substring(8,9);
	var letraAux;
	var numero = dni%23;
	letraAux = letras.substring(numero,numero+1);
	if(letraAux == letraNif.toUpperCase()){
		return true;
	}
	else{
		return false;
	}
}

function CalculaCif(elCIF){
	var resul = false;
	var temp = elCIF.toUpperCase();
	if (!/^[A-Za-z0-9]{9}$/.test(temp)) {
		resul = false;
	}
	else {
		if (!/^[ABCDEFGHKLMNPQS]/.test(temp)) {
			resul = false;
		}
		else {
			resul = ValidaCIF(temp);
		}
	}
	return resul;
}

function ValidaCIF(elCIF){
	var resul = false;
	var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
	var letrascif = 'ABCDEFGHIJ';
	var temp = 0;
	var temp1;
	for(i=2;i<=6;i+=2){
		temp = temp + v1[parseInt(elCIF.substr(i-1,1))];
		temp = temp + parseInt(elCIF.substr(i,1));
	}
	temp = temp + v1[parseInt(elCIF.substr(7,1))];
	temp = (10 - ( temp % 10));
	if( temp == 10 ) {
		if ((elCIF.substring(8,9)=='J') || (elCIF.substring(8,9)=='0')) {
			resul = true;
		}
		else {
			resul = false;
		}
	}
	else {
		if ((elCIF.substring(8,9)==temp) || (elCIF.substring(8,9)==letrascif.substring(temp-1,temp))) {
			resul = true;
		}
		else {
			resul = false;
		}
	}
	return resul;
}


/********************* Cufoneandos *********************/


function Cufonea(){
	
	Cufon.replace("h3",{hover:true,hoverables:{a:true},fontFamily:"Interstate-BoldCondensed"});
}


/********************* Formularios *********************/

function cargaGimnasios(id){
	$.ajax({
		type: "POST",
		url: "/reloadGym.php",
		data: "Id="+id,
		dataType: "html",
		success: function(data){
			$("#reloadGym").html(data);
		}
	});
}

function buscarGimnasio(){
	ff = window.document.formulario;
	var fallo = "";
	if(ff.bGimnasio.value=="" || ff.bGimnasio.value=="Buscar..."){
		alert("Error: Introduzca un criterio de búsqueda.\n");
	}
	else{
		$.ajax({
			type: "POST",
			url: "/buscarForm.php",
			data: "bGimnasio="+ff.bGimnasio.value,
			dataType: "html",
			beforeSend: function(){
				$("#ajax-gimnasio").show();
			},
			success: function(data){
				$("#Gimnasio").html(data);
				$("#ajax-gimnasio").hide();
			}
		});
	}
}

function buscarGimnasioOpener(){
	ff = window.opener.document.formulario;
	var fallo = "";
	if(ff.bGimnasio.value=="" || ff.bGimnasio.value=="Buscar..."){
		alert("Error: Introduzca un criterio de búsqueda.\n");
	}
	else{
		$.ajax({
			type: "POST",
			url: "/buscarForm.php",
			data: "bGimnasio="+ff.bGimnasio.value,
			dataType: "html",
			beforeSend: function(){
				$("#ajax-gimnasio").show();
			},
			success: function(data){
				$("#Gimnasio").html(data);
				$("#ajax-gimnasio").hide();
			}
		});
	}
}

function recargarDatos(tipo,gimnasio,valor){
	ff = window.document.formulario;
	if(gimnasio!="" && gimnasio!="0"){
		
		$.ajax({
			type: "POST",
			url: "/recargarForm.php",
			data: "Gimnasio="+gimnasio+"&Tipo="+tipo+"&Valor="+valor,
			dataType: "html",
			beforeSend: function(){
				if(tipo == 1){
					$("#ajax-nombre").show();
					$("#ajax-direccion").show();
					$("#ajax-ciudad").show();
				}
				if(tipo == 2){
					if(valor!="" && valor!="0"){
						$("#ajax-email").show();
						$("#ajax-telefono").show();
						$("#ajax-contacto").show();
						$("#ajax-cargo").show();
					}
				}
			},
			success: function(aux){
				data = aux.split("###");
				if(tipo == 1){
					$("#Nombre").html(data[0]);
					$("#ajax-nombre").hide();
					$("#Direccion").html(data[1]);
					$("#ajax-direccion").hide();
					$("#Ciudad").html(data[2]);
					$("#ajax-ciudad").hide();
					$("#Contact").show();
					$("#Contactos").html(data[3]);
					$("#Tdatos").show();
					$(".opcionesGim").html("<a href=\'javascript:popGimnasio(" + gimnasio + ");\'>Editar Gimnasio</a>");
				}
				if(tipo == 2){
					if(valor!="" && valor!="0"){
						$("#Email").html(data[0]);
						$("#ajax-email").hide();
						$("#Telefono").html(data[1]);
						$("#ajax-telefono").hide();
						$("#Contacto").html(data[2]);
						$("#ajax-contacto").hide();
						$("#Cargo").html(data[3]);
						$("#ajax-cargo").hide();
					}
				}
			}
		});
		
	} else if(tipo == 1){
		$(ff.NombreComercial).val("");
		$(ff.Direccion).val("");
		$(ff.Ciudad).val("");
		$(ff.Contacto).html("");
		$(ff.Email).val("");
		$(ff.Telefono).val("");
		$(ff.Contacto).val("");
		$(ff.Cargo).html("");
		$(".opcionesGim").html("<a href=\'javascript:popGimnasio(0);\'>Nuevo Gimnasio</a>");
	}
	
}

function mostrarTooltip(id,tabla){
	$.ajax({
		type: "POST",
		url: "/tooltip.php",
		data: "Id="+id+"&Tabla="+tabla,
		dataType: "html",
		success: function(data){
			$("#tooltip-no").html(data);
			var pos = $(".ver"+id).position();
			var ancho = parseInt($("#tooltip-no").width() / 2);
			var alto = parseInt($("#tooltip-no").height() + 3);
			$("#tooltip-no").css("top", parseInt(pos.top - alto) + "px");
			$("#tooltip-no").css("left", parseInt(pos.left - ancho) + "px");			
			$("#tooltip-no").show();
		}
	});
}

function ocultarTooltip(){
	$("#tooltip-no").hide();
}

function popGimnasio(id){
	window.open("/popGimnasio.php?Id="+id,"","RESIZABLE=1,SCROLLBARS=YES,HEIGHT=600,WIDTH=574");
}

function popInteresado(id){
	window.open("/popInteresado.php?Id="+id,"","RESIZABLE=1,SCROLLBARS=YES,HEIGHT=350,WIDTH=574");
}

function popTarifas(){
	window.open("/popTarifas.php","","RESIZABLE=1,SCROLLBARS=YES,HEIGHT=600,WIDTH=574");
}

function comprobarCuenta(banco,sucursal,dc,cuenta){
	var ok = true;
	if (banco.length != 4 || sucursal.length != 4 || dc.length != 2 || cuenta.length != 10) {
		ok = false;
	} else {
		if (!numerico(banco) || !numerico(sucursal) || !numerico(dc) || !numerico(cuenta)) {
			ok = false;
		} else {
			if (!(obtenerDigito("00" + banco + sucursal) == parseInt(dc.charAt(0))) || !(obtenerDigito(cuenta) == parseInt(dc.charAt(1)))){
				ok = false;
			}
		}
	}
	return ok;
}

function numerico(valor){
	cad = valor.toString();
	for (var i=0; i<cad.length; i++) {
		var caracter = cad.charAt(i);
		if (caracter<"0" || caracter>"9")
			return false;
	}
	return true;
}

function numericoSinCero(valor){
	cad = valor.toString();
	for (var i=0; i<cad.length; i++) {
		var caracter = cad.charAt(i);
		if (caracter<"1" || caracter>"9")
			return false;
	}
	return true;
}

function obtenerDigito(valor){
	valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
	control = 0;
	for (i=0; i<=9; i++) {
		control += parseInt(valor.charAt(i)) * valores[i];
	}
	control = 11 - (control % 11);
	if (control == 11){
		control = 0;
	} else if (control == 10){
		control = 1;
	}
	return control;
}

function comprobarTarjeta(numero_tarjeta) {
	var cadena = numero_tarjeta.toString();
	var longitud = cadena.length;
	var cifra = null;
	var cifra_cad = null;
	var suma = 0;
	if(longitud != 16){
		return false;
	} else {
		for (var i=0; i < longitud; i+=2){
			cifra = parseInt(cadena.charAt(i))*2;
			if (cifra > 9){ 
				cifra_cad = cifra.toString();
				cifra = parseInt(cifra_cad.charAt(0)) + 
				parseInt(cifra_cad.charAt(1));
			}
			suma+=cifra;
		}
		for (var i=1; i < longitud; i+=2){
			suma += parseInt(cadena.charAt(i));
		}
		if ((suma % 10) == 0){ 
			return true;
		} else {
			return false;
		}
	}
}

function comprobarCaducidad(mes,ano){
	mes = validarNumero(mes);
	ano = validarNumero(ano);
	
	var fecha = new Date();
	var mes_actual = fecha.getMonth() + 1;
	mes_actual = parseInt(mes_actual);
	var ano_actual = fecha.getFullYear() - 2000;
	ano_actual = parseInt(ano_actual);
		
	if(isNaN(mes) || isNaN(ano)){
		return false;
	} else{
		if(mes < 1 || ano < 1){
			return false;
		} else {
			if(mes > 12){
				return false;
			} else {
				if(ano < ano_actual){
					return false;
				} else {
					if(ano == ano_actual){
						if(mes <= mes_actual){
							return false;
						} else {
							return true;
						}
					} else {
						return true;
					}
				}
			}
		}
	}
}

function validarNumero(c_numero){

	if (c_numero.length == 0){
		return "NaN";
	}
	else{
		for (i = 0; i < c_numero.length; i++){
		if (!((c_numero.charAt(i) >= "0") && (c_numero.charAt(i) <= "9")))
			return "NaN";
		}
		return c_numero;
	}
}
