/*
.........................
:: Javascript a medida. ::
.........................
*/

function cambiaDetalle(nom) {

	x = document.getElementById('imagenDetalle');
	x.src = "../img/producto." + nom + ".png";

	}

function writeFlash (cadena) {
	document.write(cadena);
}


/**
*   Esta funcion busca el formulario que engloba al 'objetoLlamador',
*   toma todos los campos del formulario, y actualiza la capa 'idCapa' con el resultado de llamar por ajax a i_idCapa.php
*/
function actualizaPorAjax(objetoLlamador,idCapa){
    //primero busco el form
    var form=objetoLlamador;
    while(form.tagName!='FORM'){
        form=form.parentNode;
    }

    //una vez encontrado el formulario, serializamos todos los parametros del mismo
    var parametros=Form.serialize(form);

    //y hacemos la llamada Ajax
    new Ajax.Updater(idCapa, 'i_'+idCapa+'.php', {parameters: parametros} );

    //retornamos falso para desactivar los comportamientos por defecto
    return false;
}








/**/
/* funciones para el Carrito de la compra */
eventAssign("load", window, cargaCarrito);
function cargaCarrito(){
    if(document.getElementById('carrito')){
        $('cargandoajaxcarrito').style.display="inline";
        var miAjax = new Ajax.Request('ajax_carrito.php',
                                    { method: 'get',
                                    parameters: '',
                                    onComplete: actualizaCarrito
                                    }
                    );
    }
}

function sumaProducto(id,cantidad){
    $('cargandoajaxcarrito').style.display="inline";
    var miAjax = new Ajax.Request('ajax_carrito.php',
                                    { method: 'get',
                                    parameters: 'idProd='+id+'&cantidad='+cantidad,
                                    onComplete: actualizaCarrito
                                    }
                    );
}

function restaProducto(id){
    $('cargandoajaxcarrito').style.display="inline";
    var miAjax = new Ajax.Request('ajax_carrito.php',
                                    {
                                   	  method: 'get',
                                      parameters: 'idProd='+id+'&borra=1',
                                      onComplete: actualizaCarrito
                                    }
                    			 );
}

function actualizaCarrito(r)
{
    $('cargandoajaxcarrito').style.display = "none";
    $('carrito').innerHTML                 = r.responseText;



    // Cuando el carrito tenga productos, la opción 'Carrito de la compra' del menú de la cabecera apuntará al fichero 'resumenCarrito.php', y
    // sino, no apuntará a ninguna parte.
    if($('carritoCompra_header') && $('carritoCompra_header').value == "1" )
    {
        $('carroCompra_header').innerHTML = "<a href = \"resumenCarrito.php\" class = \"m2\" >Carrito de la compra</a>";
    }
    else
    {
        $('carroCompra_header').innerHTML = "<a href = \"#\" class = \"m2\" >Carrito de la compra</a>";
    }
}









//Función encargada de iniciar la sesión para un cliente.
eventAssign("load", window, iniciarSesion);
function iniciarSesion(){
	//Si existe ya la cookie significa que había una sesión previamente.
    if(document.getElementById('loginLateral')){
        $('cargandoAjaxAbrirSesion').style.display="inline";

		if($('email') && $('pw')){
            parametros='email='+$('email').value+'&pw='+$('pw').value+'&clickadoBotonSubmit='+$('clickadoBotonSubmit').value;
        }else{
            parametros='';
        }

	    var miAjax = new Ajax.Request('ajax_abrirSesion.php',
		    							   {
		    								 method: 'get',
		                                     parameters: parametros,
		                                     onComplete: clienteIdentificado
		                                   }
		                    			 );
    }
}

function actualizarContenido(){
	//Si existe ya la cookie significa que había una sesión previamente.
    if($('contenidoIndex')){
	    var miAjax = new Ajax.Request('contenidoIndex.php',
		    						   {
		    							method: 'get',
		                                parameters: '',
		                                onComplete: contenidoActualizado
		                               }
									 );
    }else{
		if($('preciosFicha')){
		    var miAjax = new Ajax.Request('preciosFicha.php',
			    						   {
			    							method: 'get',
			                                parameters: 'codProducto='+$('codProducto').value,
			                                onComplete: contenidoActualizado
			                               }
										 );
		}else{
			if($('contenidoListadoProductosFamilia')){
			    var miAjax = new Ajax.Request('contenidoListadoProductosFamilia.php',
				    						   {
				    							method: 'get',
				                                parameters: 'codFamilia='+$('codFamilia').value,
				                                onComplete: contenidoActualizado
				                               }
											 );
			}
		}
    }
}

function contenidoActualizado(r){
	if($('contenidoIndex')){
		$('contenidoIndex').innerHTML=r.responseText;
    }else{
		if($('preciosFicha')){
			$('preciosFicha').innerHTML=r.responseText;
		}else{
			if($('contenidoListadoProductosFamilia')){
				$('contenidoListadoProductosFamilia').innerHTML=r.responseText;
			}
		}
    }
}

//Función encargada de iniciar la sesión para un cliente.
function clienteIdentificado( r )
{
	actualizarContenido();
	cargaCarrito();


    $( 'cargandoAjaxAbrirSesion' ).style.display = "none";
    $( 'loginLateral' ).innerHTML                = r.responseText;


    if( $( 'reveladoFotografico' ) && $( 'reveladoFotografico' ).value == "1" )
    {
        $( 'servicioFotografico'     ).innerHTML     = "<a href = \"#\" >Servicio fotográfico</a>";
        $( 'bannerServiciofoto'      ).style.display = "block";
        $( 'clearBannerServiciofoto' ).style.display = "block";
    }
}

function cerrarSesion(idCliente){
	$('cargandoAjaxAbrirSesion').style.display="inline";

    var miAjax = new Ajax.Request('ajax_abrirSesion.php',
    							   {
    								 method: 'get',
                                     parameters: 'eliminarClienteDeSesion=1',
                                     onComplete: redireccionarHome
                                   }
                    			 );
}

function redireccionarHome(){
	$('cargandoAjaxAbrirSesion').style.display="none";

	//Se redirecciona a la pantalla principal.
	location.href="index.php";
}


function isDate( fecha )
{
    var fecha_ = /\b(0?[1-9]|[12][0-9]|3[01])\/([1-9]|0[1-9]|1[0-2])\/(19|20\d{2})/;

    return fecha_.test( fecha );
}


function isDNI( dni )
{
    dni    = dni.toUpperCase();
    numero = dni.substr( 0 , dni.length - 1 );
    let    = dni.substr( dni.length - 1 , 1 );
    numero = numero % 23;
    letra  = 'TRWAGMYFPDXBNJZSQVHLCKET';
    letra  = letra.substring( numero , numero + 1 );

    if( letra != let )
    {
        return false;
    }
    else
    {
        return true;
    }
}


function isCIF( cif )
{
    par = 0;
    non = 0;
    letras = "ABCDEFGHKLMNPQS";
    let = cif.charAt(0);

    if( cif.length != 9 )
    {
        // El CIF debe tener 9 dígitos.
        return false;
    }

    if( letras.indexOf( let.toUpperCase() ) == -1 )
    {
        // El comienzo del CIF no es válido.
        return false;
    }



    for( i = 2 ; i < 8 ; i += 2 )
    {
        par = par + parseInt( cif.charAt( i ) );
    }

    for( i = 1 ; i < 9 ; i += 2 )
    {
        nn = 2 * parseInt( cif.charAt( i ) );
        if( nn > 9 )
        {
            nn = 1 + (nn - 10);
        }
        non = non + nn;
    }

    parcial = par + non;
    control = (10 - ( parcial % 10));
    if( control == 10 )
    {
        control = 0;
    }

    if( control != cif.charAt(8))
    {
        return false;
    }

    return true;
}


// Validacion de formularios del checkout
function validaCheckout1(){
    var error   = 0;
    var mensaje = "";

    if( $('entrarPorIdentificacion') && $('entrarPorIdentificacion').value == 1 )
    {
        aVerificar = [ 'emailIdentificativo' , 'pwIdentificativo' ];
        aVerificar.each(
            function( e )
            {
                if( $(e).value.length == 0 )
                {
                    $(e).style.borderColor = 'red';
                    error=1;
                }
                else
                {
                    $(e).style.borderColor = '#B7B7BB';
                }
            }
        );


        if( $('emailIdentificativo').value != "" && ! /^[^@]+@[^\.]+\.[a-z]+$/.test( $('emailIdentificativo').value ) )
        {
            $('emailIdentificativo').style.borderColor = 'red';
            error                                      = 1;

            mensaje = "El e-mail es incorrecto.<br/>";
        }



        if( error )
        {
            if( mensaje != "" )
            {
                mensaje += "<br/>";
            }

            $('mensajeErrorAccesoIdentificativo').innerHTML     = mensaje + "Por favor, rellene correctamente los campos resaltados.";
            $('mensajeErrorAccesoIdentificativo').style.display = "block";
        }
    }
    else
    {
        aVerificar = [ 'cif', 'nombre', 'apellidos', 'pw1' , 'pw2' , 'email' , 'pais', 'poblacion', 'provincia', 'direccion', 'codigoPostal', 'telf' , 'tipo' , 'nacimiento', 'idIdioma' ]; // Estos campos deben tener tamaño mínimo.
        aVerificar.each(
            function(e)
            {
                if( $(e).value == "" )
                {
                    $(e).style.borderColor = 'red';
                    error                  = 1;
                }
                else
                {
                    $(e).style.borderColor = '#B7B7BB';
                }
            }
        );



        if( $('cif').value != "" && !isDNI( $('cif').value ) && !isCIF( $('cif').value ) )
        {
            $('cif').style.borderColor = 'red';
            error                      = 1;

            mensaje += "El NIF / CIF es incorrecto. <br/>";
        }



        if( $('pw1').value != $('pw2').value )
        {
            $('pw1').style.borderColor = 'red';
            $('pw2').style.borderColor = 'red';
            error                      = 1;

            mensaje += "Las contrase&ntilde;as introducidas no coinciden.<br/>";
        }



        if( $('email').value != "" && ! /^[^@]+@[^\.]+\.[a-z]+$/.test( $('email').value ) )
        {
            $('email').style.borderColor = 'red';
            error                        = 1;

            mensaje += "El e-mail es incorrecto.<br/>";
        }



        if( $('nacimiento').value != "" && !isDate( $('nacimiento').value ) )
        {
            $('nacimiento').style.borderColor = 'red';
            error                             = 1;

            mensaje += "El formato de la fecha es incorrecto (<em>dd/mm/aaaa</em>).<br/>";
        }



        if( error )
        {
            if( mensaje != "" )
            {
                mensaje += "<br/>";
            }
            $('mensajeError').innerHTML     = mensaje + "Por favor, rellene correctamente los campos resaltados.";
            $('mensajeError').style.display = "block";
        }
    }

    return !error;
}


function validaCheckout2()
{
    var error = 0;

    aVerificar = [ 'pais' , 'poblacion' , 'provincia' , 'direccion' , 'codigoPostal' ]; // Estos campos deben tener tamaño mínimo.
    aVerificar.each( function(e){
                if( $(e).value.length == 0 )
                {
                    $(e).style.borderColor = 'red';
                    error=1;
                }else{
                    $(e).style.borderColor = '#B7B7BB';
                }
            }
        );

    if( error )
    {
        $('mensajeError').innerHTML     = "Por favor, rellene correctamente los campos resaltados";
        $('mensajeError').style.display = "block";
    }

    return !error;
}