// Libreria común JavaScript
var load = '<img class="imagencentrada" src="imagenes/load.gif" />';
var fail = '<img class="imagencentrada" src="imagenes/fail.gif" />';
var ok = '<img class="imagencentrada" src="imagenes/ok.gif" />';
var rsMarcaTiempo;

function cambiaDias (mes) {

    var sSelector = null;

    switch (mes) {

    
        case 31:
        sSelector = '<select id="dia" name="dia" class="Buscador_ofertas2"> <option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>';
        break;
        
        case 30:        
        sSelector = '<select id="dia" name="dia" class="Buscador_ofertas2"> <option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option></select>';
        break;
        
        case 28:            
        sSelector = '<select id="dia" name="dia" class="Buscador_ofertas2"> <option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option></select>';
        break;

	case 29:            
        sSelector = '<select id="dia" name="dia" class="Buscador_ofertas2"> <option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option></select>';
        break;


    } // switch (mes)

    $('diaSelector').innerHTML = sSelector;

}

function dias(mes, anno) {
  
  switch (mes) {
    case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : return 31;
    case 2 : return (anno % 4 == 0) ? 29 : 28;
  }
  return 30;
}
   
function ultimodia(mes, anno) {
    
    var diaDelMes; 
    diaDelMes = dias(mes, anno);
    
    return diaDelMes;
}


function ajustarFechaSelector () {
       
        // Ajustamos el mes del Selector ******
        var fecha = new Date();
        var anyoActual = fecha.getFullYear();
        fecha.setYear($('anyo').value);

        var mes = fecha.getMonth()+1;
        var opts = $('mes').options;    
                              
        if (anyoActual == $('anyo').value) {
        
            for (var i=0; i<(mes-1); i++) {
                opts[i].setAttribute('disabled', true);
            
            }
            opts[i].setAttribute('selected', true);    
            
        }else{
        
            for (var i=0; i<11; i++) {
                opts[i].removeAttribute('disabled');
            
            }
            $('mes').value = '01';
                    
        } // if 
            
}

       
function modificarFecha (accion) {

    var sFecha = $('fecha').value.toDate('/',0,1,2);
    var valor=sFecha.getTime();
    var fecha = new Date();
    if (accion) fecha.setTime(valor+24*60*60*1000);
    else fecha.setTime(valor-24*60*60*1000);
    sFecha=fecha;
    $('fecha').value=sFecha.format('d/m/y');

}

window.addEvent('domready',function () {

    if ( $type($('fecha')) ) var bCampoFecha = true;
    else var bCampoFecha = false;
    
    if (bCampoFecha) {
    
    $('fecha').addEvent("keydown", function(event) {
    
        ocultarTodo();
        event = new Event(event);
        switch(event.code) {
             case 38: // Up
                event.stop();
                modificarFecha(1);
                break;
            case 40: // Down
                event.stop();
                modificarFecha(0);
                break;
        }

     } );
     
    } // if (bCampoFecha) 

    Date.implement({

        format: function(formato){
            var d=this.getDate();
            var m=this.getMonth()+1;
            var y=this.getFullYear();
            if (d<10)
                d='0'+d;
            if (m<10)
                m='0'+m;
            if (y<1000)
                y=2000+y;
            var out=formato.replace('d',d);
            var out=out.replace('m',m);
            var out=out.replace('y',y);
            return out;
        }
    });

    String.implement({

        toDate: function(sep,d,m,y){
            var dig=this.split(sep);
            var fecha=new Date;
            fecha.setHours(0);
            fecha.setMinutes(0);
            fecha.setSeconds(0);
            fecha.setDate(dig[d]);
            fecha.setMonth(parseInt(dig[m])-1);
            fecha.setFullYear(dig[y]);
            return fecha;
        }
    });

    try {

        ajustarFechaSelector ();
        fecha =  new Date();
	 anyo = fecha.getYear();
	 var numeroMes=fecha.getMonth() +1 ;
        cambiaDias (ultimodia(numeroMes, anyo));

        // Ajustamos el mes del Selector ******
        
    } catch(e) {}
    
    try {

        if ( $('mes') != null ) {

            $('mes').addEvent('change', function(event) {
        
                var numeroMes;
                var fecha, anyo;
                numeroMes = parseInt(event.target.value); 
                
                fecha =  new Date();
                anyo = fecha.getYear();

                cambiaDias (ultimodia(numeroMes, anyo));
			
                
            });
            
            $('anyo').addEvent('change', function(event) {
               
                var numeroMes;
                var fecha, anyo;
                numeroMes = parseInt(event.target.value); 
                
                fecha =  new Date();
                anyo = $('anyo').value;
        
                cambiaDias (ultimodia(numeroMes, anyo));
                
                 ajustarFechaSelector();      
                
            });
            
            var filasCentralesParques = $('central').getElements("td");
            
            var numerador = 1;
            var ultimoObjeto = filasCentralesParques.length - 1;
            
            for (null; numerador <= ultimoObjeto; numerador++) {
            
                var filasCentralesParquesImagen = filasCentralesParques[numerador].getChildren('img');
                    
                //filasCentralesParquesImagen.fade(0.9);
                
                filasCentralesParquesImagen.addEvent('mouseover', function (event) { 
                    //alert(event.target.innerHTML);
                    //event.target.fade(0.5,1);
                    
                    
                });
            
            } // for (null; numerador <= 12; numerador++)
        
        } // if ( $('mes') != null )

    }catch (e){ }


});


function comprobarFecha (mes, dia) {

    try {
    
        var dia = $('dia').value;
        var mes = $('mes').value;
        ObjetoDate = new Date();
        ObjetoDate.setYear($('anyo').value);
        var anyo = ObjetoDate.getFullYear();
        
        var fechaActual = new Date.today();
        var fechaIntroducida = new Date.parse(mes+"/"+dia+"/"+anyo);
        
        if (fechaActual>fechaIntroducida) {
            
            alert(traduccion[0]);
            return false;
        }
        return true;
        
    }catch(e){
    
        return false;
        
    } // try
    

} // function comprobarFecha (mes, dia)

function comprobarFomrularioReservar(comprobarDni, comprobarSeguro) {
    
    var nombre = $('nombre');
    var apellidos = $('apellidos');
    var direccion = $('direccion');
    var ciudad = $('ciudad');
    var pais = $('pais');
    var codigo = $('codigo');
    var telefono = $('telefono');
    var dnicif = $('dni-cif');
    var dniAlt = $('dni-cif').alt;
    var mail = $('mail');
    var confirmacionmail = $('confirmacion-mail');
    var acepto = $('acepto');
    
    try{
        var aceptoseguro = $('aceptoseguro');
    }catch (e) {
        var aceptoseguro = null;
    } 
    
    if (nombre.value == '') {
        alert (traduccion[20]);
        nombre.focus();
        return false;
    }
    
    if (apellidos.value == '') {
        alert (traduccion[21]);
        apellidos.focus();
        return false;
    }
    
    iApellidos = apellidos.value.split(" ")
    if (iApellidos.length > 2) {
        alert (traduccion[31]);
        apellidos.focus();
        return false;
    }

    if (direccion.value == '') {
        alert (traduccion[22]);
        direccion.focus();
        return false;
    }
    
    if (ciudad.value == '') {
        alert (traduccion[23]);
        ciudad.focus();
        return false;
    }
    
    if (codigo.value == '' || codigo.value.length < 5) {
        alert (traduccion[24]);
        codigo.focus();
        return false;
    }
    
    if (telefono.value == '' || telefono.value.length < 9) {
        alert (traduccion[25]);
        telefono.focus();
        return false;
    }
    
    if (dniAlt == 'requerido') {

	    if ( dnicif.value == '' || dnicif.value.length < 8 ) {
       	 alert (traduccion[26]);
	        dnicif.focus();
	        return false;
	    }
	    
	    if (comprobarDni) {
	    //if ( dnicif.value.substring(0,1) != 'X' && dnicif.value.substring(0,1) != 'x') {        
	        if ( valida_nif_cif_nie(dnicif.value) < 1 ) {  
	            alert (traduccion[26]);
	            dnicif.focus();
	            return false;
	        }
	    //}
	    } // if (comprobarDni) 
	
    } // if (dniAlt == 'requerido')
    
    if (mail.value == '' ) {
        alert (traduccion[27]);
        mail.focus();
        return false;
    }else if ( !esEmail(mail.value) ) {
    
        alert (traduccion[27]);
        mail.focus();
        return false;
    }else if (mail.value != confirmacionmail.value) {
            
            alert (traduccion[28]);
            confirmacionmail.focus();
            return false;    
    }
    
    var numeroocupantes;
    if ( $type( $('ocupantesopcionales') ) ) {
	    numeroocupantes = parseInt($('ocupantesopcionales').value);
	    var i;
	    
	    for (i=2; i < numeroocupantes; i++ ) {
	    	
	    	if ( $('nombre'+i).value == '' ) {alert(traduccion[43]); $('nombre'+i).focus(); return false; }
	    	var iOcupanteApellidos = $('apellidos'+i).value.split(" ");
	    	if ( $('apellidos'+i).value == '' ) { alert(traduccion[44]); $('apellidos'+i).focus(); return false; }
	    	else if (iOcupanteApellidos.length > 2) { alert(traduccion[44]); $('apellidos'+i).focus(); return false; }
	    	
	    } 
    }
    
    if (!acepto.checked) {
        alert (traduccion[29]);
        return false;
    }
    
    if (comprobarSeguro) { 
        if (!aceptoseguro.checked) {
            alert (traduccion[30]);
            return false;
        }
    }
    
    return true;


} // function comprobarFomrularioReservar()


function comprobarClave (objeto) {

    $('minoristaload').innerHTML = load;
    clearTimeout(rsMarcaTiempo);
    rsMarcaTiempo = setTimeout("consultarClaveAjax('"+objeto.value+"')", 1000);

}

function consultarClaveAjax (sTexto) {

    var url = "resumen_datospersonales/controladorDeMinorista.php";

    var param = "accion=claveminorista&clave="+sTexto;
    
    var Complete = function (e) {

        /* Evaluamos la sentencia JavaScrip que obtenemos *************/
        eval(e);
        
    } // var Complete = function (e)

    var myAjax = new Request( {method: 'post', url:url, data:param, onSuccess:Complete});
    myAjax.send();


}

function compraMinorista () {

    if ( comprobarFomrularioReservar() ) { $('fomrulario').submit(); }

} // function compraMinorista ()


/*******************************
 Validación del nif. Por Carlitos. carlosbernad@teleline.es
 Si usas este script, deja intactas estas líneas (créditos). Vale?
 También te agradecería un e-mail con tus comentarios.
*******************************/
 
 
function isValidCif(abc){
    par = 0;
    non = 0;
    letras = "ABCDEFGHKLMNPQS";
    let = abc.charAt(0);
 
    if (abc.length!=9) {
        //alert('El Cif debe tener 9 dígitos');
        return false;
    }
 
    if (letras.indexOf(let.toUpperCase())==-1) {
        //alert("El comienzo del Cif no es válido");
        return false;
    }
 
    for (zz=2;zz<8;zz+=2) {
        par = par+parseInt(abc.charAt(zz));
    }
 
    for (zz=1;zz<9;zz+=2) {
        nn = 2*parseInt(abc.charAt(zz));
        if (nn > 9) nn = 1+(nn-10);
        non = non+nn;
    }
 
    parcial = par + non;
    control = (10 - ( parcial % 10));
    if (control==10) control=0;
 
    if (control!=abc.charAt(8)) {
        //alert("El Cif no es válido");
        return false;
    }
    //alert("El Cif es válido");
    return true;
}
 
 
function isValidNif(abc){
    dni=abc.substring(0,abc.length-1);
    let=abc.charAt(abc.length-1);
    if (!isNaN(let)) {
        //alert('Falta la letra');
        return false;
    }else{
        cadena = "TRWAGMYFPDXBNJZSQVHLCKET";
        posicion = dni % 23;
        letra = cadena.substring(posicion,posicion+1);
        if (letra!=let.toUpperCase()){
            //alert("Nif no válido");
            return false;
        }
    }
    //alert("Nif válido")
    return true;
}
 
 
 
function isValidEmail(str){
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    return (filter.test(str));
}
 
function isValidTelef(num){
    if(num.length < 9){
        return false;
    }else if(isNaN( num )){
        return false;
    }else{
        return true;
    }
}
 
function isValidDateFormat(str){
    var filter=/^(\d{1,2}\/\d{1,2}\/\d{2})$/i;
    return (filter.test(str));
}


function str_replace(search, replace, subject) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
 
    var f = search, r = replace, s = subject;
    var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
 
    while (j = 0, i--) {
        if (s[i]) {
            while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
        }
    };
 
    return sa ? s : s[0];
}

//Retorna: 1 = NIF ok, 2 = CIF ok, 3 = NIE ok, -1 = NIF error, -2 = CIF error, -3 = NIE error, 0 = ??? error
function valida_nif_cif_nie(a) 
{
    var temp=a.toUpperCase();
    var cadenadni="TRWAGMYFPDXBNJZSQVHLCKE";
 
    if (temp!==''){
        //si no tiene un formato valido devuelve error
        if ((!/^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$/.test(temp) && !/^[T]{1}[A-Z0-9]{8}$/.test(temp)) && !/^[0-9]{8}[A-Z]{1}$/.test(temp))
        {
            return 0;
        }
 
        //comprobacion de NIFs estandar
        if (/^[0-9]{8}[A-Z]{1}$/.test(temp))
        {
            posicion = a.substring(8,0) % 23;
            letra = cadenadni.charAt(posicion);
            var letradni=temp.charAt(8);
            if (letra == letradni)
            {
                   return 1;
            }
            else
            {
                return -1;
            }
        }
 
        //algoritmo para comprobacion de codigos tipo CIF
        suma = parseInt(a[2])+parseInt(a[4])+parseInt(a[6]);
        for (i = 1; i < 8; i += 2)
        {
            temp1 = 2 * parseInt(a[i]);
            temp1 += '';
            temp1 = temp1.substring(0,1);
            temp2 = 2 * parseInt(a[i]);
            temp2 += '';
            temp2 = temp2.substring(1,2);
            if (temp2 == '')
            {
                temp2 = '0';
            }
 
            suma += (parseInt(temp1) + parseInt(temp2));
        }
        suma += '';
        n = 10 - parseInt(suma.substring(suma.length-1, suma.length));
 
        //comprobacion de NIFs especiales (se calculan como CIFs)
        if (/^[KLM]{1}/.test(temp))
        {
            if (a[8] == String.fromCharCode(64 + n))
            {
                return 1;
            }
            else
            {
                return -1;
            }
        }
 
        //comprobacion de CIFs
        if (/^[ABCDEFGHJNPQRSUVW]{1}/.test(temp))
        {
            temp = n + '';
            if (a[8] == String.fromCharCode(64 + n) || a[8] == parseInt(temp.substring(temp.length-1, temp.length)))
            {
                return 2;
            }
            else
            {
                return -2;
            }
        }
 
        //comprobacion de NIEs
        //T
        if (/^[T]{1}/.test(temp))
        {
            if (a[8] == /^[T]{1}[A-Z0-9]{8}$/.test(temp))
            {
                return 3;
            }
            else
            {
                return -3;
            }
        }
 
        //XYZ
        if (/^[XYZ]{1}/.test(temp))
        {
            pos = str_replace(['X', 'Y', 'Z'], ['0','1','2'], temp).substring(0, 8) % 23;
            if (a[8] == cadenadni.substring(pos, pos + 1))
            {
                return 3;
            }
            else
            {
                return -3;
            }
        }
    }
 
    return 0;
}





