
var configurations = new Configurations();
var NUM_ITEMS_PER_PAGE_CONFIG  = 4;
var selectedPage_config = 1;
var selectedNElem_config = null;


function enter_mismuebles() {
    if (user.username == "circulo") {
        var mensaje = "Para acceder a sus configuraciones debe ser usuario registrado.\n" +
                    "Pulse 'Aceptar' para acceder al registro o 'Cancelar' para continuar. \n ";

        if (confirm(mensaje))  {
            navigate("acceder", null, false);
        }
    }
    else {
        cargar_configuraciones();
    }
}

function cargar_configuraciones() {

    var url = urlServ + "ConfiguracionEscena";

    new Ajax.Request(url, {
        method: 'post',
        parameters: {
            action: "obtenerConfiguraciones"
        },
        onSuccess: function(transport) {
            pr_cargar_configuraciones(transport.responseXML);
        },
        onFailure: function(transport) {
            alert('Error CARGARCONFIGURACIONES');
            alert("\n\n" + transport.responseText);
        }
    }); 
}

function pr_cargar_configuraciones(data) {

    unmarshallConfigurations(data);

    var nElem = configurations.configuraciones.length;

    if (nElem > 0)
        navigate("mismuebles", null, false);
    else {
        document.getElementById("body_derecha_cart").style.visibility = false;
        mensaje = "Todavía no tiene ninguna configuración guardada en su perfil de usuario.\n" +
                        "Agrege al menos una configuración para poder solicitar un presupuesto o continuar modificándola más adelante.";
        alert(mensaje) ;
    }
}

function unmarshallConfigurations(data){

    configurations.configuraciones = new Array();

    var configuraciones = data.getElementsByTagName("configuraciones")[0];
    var numConfiguraciones = configuraciones.childNodes.length;

	for (i=0; i<numConfiguraciones; i++)
	{
		configuracion = configuraciones.childNodes[i];

        var modelo = configuracion.getElementsByTagName("modelo")[0].firstChild.nodeValue;
        var fabricante = configuracion.getElementsByTagName("fabricante")[0].firstChild.nodeValue;
        var id = configuracion.getElementsByTagName("id")[0].firstChild.nodeValue;

        var c = new Configuration();
        c.id = id;
        var producto_aux = new Product();
        for (j=0; j<products.productos.length; j++) {
            if ((products.productos[j].nombre == modelo) &&  (products.productos[j].fabricante == fabricante))
            {
                producto_aux = products.productos[j];

                var imagen = configuracion.getElementsByTagName("imagen")[0].firstChild.nodeValue;
                var escena = configuracion.getElementsByTagName("escena")[0].firstChild.nodeValue;

                for (k=0; k<producto_aux.imagenes.length; k++)
                {
                    if (producto_aux.imagenes[k].fichero == imagen && producto_aux.imagenes[k].escena == escena)
                    {
                        producto_aux.imagenSeleccionada = producto_aux.imagenes[k];
                        producto_aux.numImagenSeleccionada = k;
                    }
                }
                break;
            }
        }
        c.producto = producto_aux;

        configurations.configuraciones[i] = c;
	}

}

function addConfiguracion(configuracion) {

    var div_scroll_config = document.getElementById("div_mismuebles_scroll_config");
    var div_config = document.createElement("div");
    div_config.className = "div_mismuebles_config";

        var div_IMG = document.createElement("div");
        div_IMG.className = "div_mismuebles_config_IMG";
            var imgElement = document.createElement("img");
            imgElement.src = "IMG/ajax-loader_" + DIM_PRODUCT_REV_MISMUEBLES[0] + "x" + DIM_PRODUCT_REV_MISMUEBLES[1] + ".gif";
            imgElement.setAttribute('border', 0);
            div_IMG.appendChild(imgElement);
        div_config.appendChild(div_IMG);

        var div_info = document.createElement("div");
        div_info.className = "div_mismuebles_config_info";
        div_config.appendChild(div_info);

            var div_producto = document.createElement("div");
            div_producto.className = "div_mismuebles_config_info_producto";
            newText = document.createTextNode(configuracion.producto.nombre  );
            div_producto.appendChild(newText);
            div_info.appendChild(div_producto);

        var div_botones = document.createElement("div");
        div_botones.className = "div_mismuebles_config_botones";
        div_config.appendChild(div_botones) ;

            var div_boton1 = document.createElement("div");
            div_boton1.className = "div_mismuebles_config_botones_boton" ;
            div_boton1.title = "Configurar el producto";
                var imgElementBoton1 = document.createElement("img");
                imgElementBoton1.src = "IMG/button_config.png";
                imgElementBoton1.setAttribute('border', 0);
                imgElementBoton1.style.cursor = "pointer";
                div_boton1.appendChild(imgElementBoton1);
            div_botones.appendChild(div_boton1);

            /* EVENTOS BOTON1 */
            Event.observe(div_boton1, 'click', function() {
                cargar_configuracion(configuracion);
            }, false);

            var div_boton2 = document.createElement("div");
            div_boton2.className = "div_mismuebles_config_botones_boton";
                div_boton1.title = "Solicitar presupuesto del producto";
                var imgElementBoton2 = document.createElement("img");
                imgElementBoton2.src = "IMG/button_solicitar_presupuesto.png";
                imgElementBoton2.setAttribute('border', 0);
                imgElementBoton2.style.cursor = "pointer";
                div_boton2.appendChild(imgElementBoton2);
            div_botones.appendChild(div_boton2);

            /* EVENTOS BOTON2 */
            Event.observe(div_boton2, 'click', function() {
                enter_presupuesto(configuracion);
            }, false);

        var div_right = document.createElement("div");
        div_right.className = "div_mismuebles_config_right";
        div_config.appendChild(div_right) ;

            var div_cerrar = document.createElement("div");
            div_cerrar.className = "div_mismuebles_config_cerrar";
            div_right.appendChild(div_cerrar);

                var imgElementCerrar = document.createElement("img");
                imgElementCerrar.src = "IMG/button_cerrar.png";
                imgElementCerrar.setAttribute('border', 0);
                imgElementCerrar.style.cursor = "pointer";
                imgElementCerrar.title = "Eliminar configuraci\u00f3n";
                div_cerrar.appendChild(imgElementCerrar);

                /* EVENTOS DIV CERRAR  */
                Event.observe(div_cerrar, 'click', function()  {
                    eliminar_configuracion(configuracion)  ;
                }, false);

            var div_comprar = document.createElement("div");
            div_comprar.className = "div_mismuebles_config_comprar";
            div_right.appendChild(div_comprar);

                var imgElementComprar = document.createElement("img");
                imgElementComprar.src = "IMG/button_buy.png";
                imgElementComprar.setAttribute('border', 0);
                imgElementComprar.style.cursor = "pointer";
                imgElementComprar.title = "Añadir al carro de compra";
                div_comprar.appendChild(imgElementComprar);

                /* EVENTOS DIV CERRAR  */
                Event.observe(div_comprar, 'click', function()  {
                    comprar_configuracion(configuracion)  ;
                }, false);


        div_scroll_config.appendChild(div_config);


    imgElement.src = urlServ + "RecuperarImagenGenerada"   +
        "?action=configuracion" +
        "&usuario=" + "" +
        "&pwd=" + "" +

        "&producto=" + escape(configuracion.producto.nombre) +
        "&fabricante=" + escape(configuracion.producto.fabricante) +
        "&imagen=" + escape(configuracion.producto.imagenSeleccionada.fichero) +
        "&escena=" + escape(configuracion.producto.imagenSeleccionada.escena)  +
        "&config_id=" + escape(configuracion.id)  +

        "&dimensionesRev=" + DIM_PRODUCT_REV_MISMUEBLES[0] + "," + DIM_PRODUCT_REV_MISMUEBLES[1] +

        "&inputMode=" + inputModeRev +
        "&outputMode=" + outputModeRev  +

        "&id=" + configuracion.id  +

        "&param=" + Math.floor(Math.random()*111)

}

function eliminar_configuracion(configuracion) {
    
    var mensaje = "¿Desea eliminar la configuraci\u00f3n seleccionada?\n" +
                    "Pulse 'Aceptar' para eliminar la configuración seleccionada. \n ";

    if (confirm(mensaje)) {
        var url = urlServ + "ConfiguracionEscena";

        new Ajax.Request(url, {
            method: 'post',
            parameters: {
                action: "eliminar",
                modelo: configuracion.producto.nombre, /* encodeURIComponent*/
                escena: configuracion.producto.imagenSeleccionada.escena,
                fabricante: configuracion.producto.fabricante ,
                id: configuracion.id
            },
            onSuccess: function(transport) {
                pr_eliminar_configuracion(transport.responseXML);
            },
            onFailure: function(transport) {
                alert('Error ELIMINAR CONFIGURACION');
                alert("\n\n" + transport.responseText);
            }
        });
    }
}

function pr_eliminar_configuracion(data) {

    var msg = data.getElementsByTagName("msg")[0].firstChild.nodeValue;

    if (msg == 0)
    {
        mensaje = "Configuraci\u00f3n eliminada con éxito.\n";
        alert(mensaje);


        cargar_configuraciones();
        //navigate("mismuebles", null, false);
    }
    else
    {
        mensaje = "Se ha producido un error al eliminar su configuraci\u00f3n.\n" +
                        "Por favor, int\u00e9ntelo de nuevo. Si el problema persiste contacte con su administrador.\n";
        alert(mensaje);
        
    }
}

function cargar_configuracion(configuracion) {

    var url = urlServ + "ConfiguracionEscena";

    new Ajax.Request(url, {
        method: 'post',
        parameters: {
            action: "cargar",
            modelo: configuracion.producto.nombre, /* encodeURIComponent*/
            escena: configuracion.producto.imagenSeleccionada.escena ,
            imagen: configuracion.producto.imagenSeleccionada.fichero,
            id: configuracion.id,
            fabricante: configuracion.producto.fabricante
        },
        onSuccess: function(transport) {
            pr_cargar_configuracion(transport.responseXML, configuracion);
        },
        onFailure: function(transport) {
            alert('Error ELIMINAR CONFIGURACION');
            alert("\n\n" + transport.responseText);
        }
    }) ;
}

function pr_cargar_configuracion(data, configuracion) {

    var msg = data.getElementsByTagName("msg")[0].firstChild.nodeValue;

    if (msg != 0)
    {
        mensaje = "Se ha producido un error al cargar su configuraci\u00f3n.\n" +
                        "Por favor,inténtelo de nuevo. Si el problema persiste contacte con su administrador.\n";
        alert(mensaje);
    }

    else
    {
        if (configuracion.producto != null)
           //loadProducto(configuracion.producto);
           navigate("load_producto", configuracion.producto, false);
    }
}

function enter_presupuesto(configuracion) {

    if (configuracion.producto != null) {
        selectedProduct = configuracion.producto;
        cargar_configuracion_presupuesto(configuracion);
    }
    else {

    }
}

function cargar_configuracion_presupuesto(configuracion) {

    var url = urlServ + "ConfiguracionEscena";

    new Ajax.Request(url, {
        method: 'post',
        parameters: {
            action: "cargar",
            modelo: configuracion.producto.nombre, /* encodeURIComponent */
            escena: configuracion.producto.imagenSeleccionada.escena,
            imagen: configuracion.producto.imagenSeleccionada.fichero ,
            fabricante: configuracion.producto.fabricante,
            id: configuracion.id
        },
        onSuccess: function(transport) {
            pr_cargar_configuracion_presupuesto(transport.responseXML, configuracion ) ;
        },
        onFailure: function(transport) {
            alert('Error CARGAR CONFIGURACION');
            alert("\n\n" + transport.responseText);
        }
    }) ;
}

function pr_cargar_configuracion_presupuesto(data, configuracion) {

    var msg = data.getElementsByTagName("msg")[0].firstChild.nodeValue;

    if (msg != 0)
    {
        mensaje = "Se ha producido un error al cargar su configuraci\u00f3n.\n" +
                        "Por favor,inténtelo de nuevo. Si el problema persiste contacte con su administrador.\n";
        alert(mensaje);
    }

    else
    {
        if (configuracion.producto != null)
           navigate("presupuesto", null, false) ;
    }
}

function loadPagination_config() {
    var nElem =  configurations.configuraciones.length;

    selectedNElem_config = nElem ;

    var nPaginas = 0;

    if ((nElem % NUM_ITEMS_PER_PAGE_CONFIG) == 0)
        nPaginas = Math.floor(nElem / NUM_ITEMS_PER_PAGE_CONFIG);
    else
        nPaginas = Math.ceil(nElem / NUM_ITEMS_PER_PAGE_CONFIG);

    if (nPaginas > 0)
        loadPage_config(1, nElem);
}

function loadPage_config(np, nElem) {

    /* Habilita / Deshabilita botones de paginación */
    var first_page = 1;
    var last_page = Math.ceil(nElem / NUM_ITEMS_PER_PAGE_CONFIG) ;

    if (selectedPage_config == first_page)   {
        document.getElementById("img_pagination_prev_config").src = "IMG/button_previous_off.png";
        document.getElementById("div_mismuebles_scroll_pagination_prev").style.cursor = "default";
    }
    else
    {
        document.getElementById("img_pagination_prev_config").src = "IMG/button_previous.png";
        document.getElementById("div_mismuebles_scroll_pagination_prev").style.cursor = "pointer";
    }

    if (selectedPage_config >= last_page) {
        document.getElementById("img_pagination_next_config").src = "IMG/button_next_off.png";
        document.getElementById("div_mismuebles_scroll_pagination_next").style.cursor = "default";
    }
    else
    {
        document.getElementById("img_pagination_next_config").src = "IMG/button_next.png"  ;
        document.getElementById("div_mismuebles_scroll_pagination_next").style.cursor = "pointer" ;
    }

    var in1 = (NUM_ITEMS_PER_PAGE_CONFIG * (np-1)) + 1;
    var in2 = in1 + NUM_ITEMS_PER_PAGE_CONFIG - 1;
    if (nElem < in2)
        in2 = nElem;

    selectedPage_config = np;

    var pagination_text = "Mostrando " + in1 + " al " + in2 + " de " + nElem + " configuraciones";
    document.getElementById("div_mismuebles_scroll_pagination_text").innerHTML = pagination_text ;

    clearDiv("contenedor_config");

    /* cargar 'NUM_ITEMS_CONFIGURATION_PER_PAGE' items*/
    var i1 = (NUM_ITEMS_PER_PAGE_CONFIG * np) - NUM_ITEMS_PER_PAGE_CONFIG;
    var i2 = i1 + NUM_ITEMS_PER_PAGE_CONFIG - 1;

    for (i=i1; i<=i2; i++)
    {
        if (i < nElem)
        {
            addConfiguracion(configurations.configuraciones[i]);
        }
    }
}

function loadPrevPage_config() {

    if (selectedPage_config - 1 > 0)
    {
        selectedPage_config--;
        loadPage_config(selectedPage_config, selectedNElem_config);
     }

}

function loadNextPage_config() {

    var nPaginas = Math.ceil(selectedNElem_config / NUM_ITEMS_PER_PAGE_CONFIG);

    if (selectedPage_config + 1 < nPaginas + 1)
    {
        selectedPage_config++;
        loadPage_config(selectedPage_config, selectedNElem_config);
    }
}


function comprar_configuracion(configuracion) {
    var mensaje = "¿Desea añadir la configuraci\u00f3n seleccionada al carro de compra?\n";

    if (confirm(mensaje)) {
        var url = urlServ + "ConfiguracionEscena" ;

        new Ajax.Request(url, {
            method: 'post',
            parameters: {
                action: "comprar",
                modelo: configuracion.producto.nombre, /* encodeURIComponent*/
                escena: configuracion.producto.imagenSeleccionada.escena,
                fabricante: configuracion.producto.fabricante ,
                id: configuracion.id
            },
            onSuccess: function(transport) {
                pr_comprar_configuracion(transport.responseXML);
            },
            onFailure: function(transport) {
                alert('Error COMPRAR CONFIGURACION');
                alert("\n\n" + transport.responseText);
            }
        });
    }
}

function pr_comprar_configuracion(data) {

    var msg = data.getElementsByTagName("msg")[0].firstChild.nodeValue;

    if (msg == 0)
    {
        document.getElementById("body_derecha_cart").style.visibility = true;
        loadDialog("dialog_cart", null);
    }
    else
    {
        mensaje = "Se ha producido un error al añadir la configuraci\u00f3n al carro de compra.\n" +
                        "Por favor, int\u00e9ntelo de nuevo. Si el problema persiste contacte con su administrador.\n";
        alert(mensaje);

    }
}