var pc_catalogue_id;
var nv2=null;
var nv3=null;
var nv4=null;
var urlOld = '';

var selected_configuration;
var selected_product;
var selected_image_path_product;

var xml_configuration="";

var array_se;

var partes=new Array();
var categorias=new Array();
var especificaciones_posibles=null;
var categoria_selected;//Ultima seleccionada

var parts_selections_for_rev;
var last_textures=null;


function cb_login(result) {
    var msg = $(result).find("msg").text();

    if (msg == "0") {
        get_pc_catalogue_id_by_catalogue_name()
    }
    else if (msg == "-2") {
        alert("User not activated");
    }
    else if (msg == "-1") {
        alert("Incorrect email or password");
    }
}

function get_pc_catalogue_id_by_catalogue_name() {
    var auxscape = escape(catalogue_name);

    var call = new servCall("Query");
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Pc_Id_Catalogue'));
    call.arguments.push(new Array('catalogue_name', auxscape));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('source_type', escape(source_type)));

    var params = new Array(2);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "get_pc_catalogue_id_by_catalogue_name";

    loadXml( call, params );
}

function cb_get_pc_catalogue_id_by_catalogue_name(result) {
    var msg = $(result).find("msg").text();
    if (msg == "") {
        alert("CATALOGUE NAME NOT FOUND");
    } else {
        pc_catalogue_id = msg;
        get_specifications(pc_catalogue_id);
    }
}

/*****************************/
// Functions for Load Info Ambients in Memory
/*****************************/

var ambientes = new Array();
var ids_for_documentacion;

function Ambiente(id, nombre, img_amb) {
    this.id = id;
    this.nombre = nombre;
    this.img = img_amb;
    this.areas = new Array();
    this.subAmbientes = new Array();
}

function Area(id, nombre, img_area) {
    this.id = id;
    this.nombre = nombre;
    this.img = img_area;
    this.productos = new Array();
}

function Producto(id, nombre, img_pro) {
    this.id = id;
    this.nombre = nombre;
    this.img = img_pro;
    this.ancho = null;
    this.alto = null;
}

function reorder(aux) {
    for(var c=0;c<aux.length;c++){
        var minim = c;
        var destroyer = aux[c].split('_');
        for(var d=c+1;d<aux.length;d++){
            destroyer_b = aux[d].split('_');
            if(destroyer_b[1]<destroyer[1]){
                destroyer[1]=destroyer_b[1];
                minim = d;
            }
        }
        var auxiliar=aux[c];
        aux[c]=aux[minim];
        aux[minim]=auxiliar;
    }
    return aux;
}

function get_specifications(pc_catalogue_id) {

    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Specifications'));
    call.arguments.push(new Array('mode', 'category_id'));
    call.arguments.push(new Array('show_products', true));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('category_id', escape("AMBIENTES")));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('docrole', escape("AMBIENTE--SUBAMBIENTE--Texture Image File")));

    var params = new Array(2);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "get_specifications";

    loadXml( call, params );
}

function cb_get_specifications(result) {
    //    console.log(XmlToString(result))
    try{
        var aux = new Array();
        var id_ambientes;
        //var id_ambientes = $(result).find('Specification_category').find('id').val('AMBIENTES').parent().attr('id');
        $(result).find('Specification_category').find('id').each(function(){
            if($(this).text()=='AMBIENTES')
                id_ambientes=$(this).parent().attr('id');
        });

        $(result).find('Specification_category_hierarchy').find('super_category[ref='+id_ambientes+']').parent().each(function(){
            aux[aux.length]=$(this).find('sub_category').attr('ref');
        });

        aux=reorder(aux);

        var name_amb;
        var amb;
        for(var c=0;c<aux.length;c++){
            name_amb = $(result).find('Specification_category[id='+aux[c]+']').find('id').text();
            amb =  new Ambiente(aux[c], name_amb, '');
            amb.areas = get_areas_by_ambient(result,amb);
            if(amb.areas.length==0){
                amb.subAmbientes = get_subambients_by_ambient(result,aux[c]);
            }
            //ambientes.push(amb);
            ambientes[c] = amb;
        }
    }catch(e){
    }finally{
        $("#load_page").css('display','none');
        $("#all").css('display','block');
        $('#productos').click();
    }
}

function get_subambients_by_ambient(result,idd) {
    //Conseguimos los subambientes de un ambiente
    var aux = new Array();
    $(result).find('Specification_category_hierarchy').find('super_category[ref='+idd+']').parent().each(function(){
        aux.push($(this).find('sub_category').attr('ref'));
    });

    aux=reorder(aux);

    var aux2 = new Array();
    var name_s_amb;
    var s_amb;
    for(var c=0;c<aux.length;c++){
        name_s_amb = $(result).find('Specification_category[id='+aux[c]+']').find('id').text();
        s_amb =  new Ambiente(aux[c], name_s_amb, '');
        s_amb.areas = get_areas_by_ambient(result,s_amb);
        aux2.push(s_amb);
    }

    return aux2;
}

function get_areas_by_ambient(result,amb) {
    //Conseguimos los subambientes de un ambiente
    var aux = new Array();
    $(result).find('Specification').find('category[ref='+amb.id+']').parent().each(function(){
        aux.push($(this).attr('id'));
    });

    aux=reorder(aux);

    var aux2 = new Array();
    var name_area, area;
    for(var c=0;c<aux.length;c++){
        name_area = $(result).find('Specification[id='+aux[c]+']').find('name').text();
        area = new Area(aux[c], name_area, '');
        area.productos = get_products_by_area(result,area);
        aux2.push(area);
    }

    return aux2;
}

function get_products_by_area(result,area) {
    var aux = new Array();
    $(result).find('Product_specification').children('defining_specifications').children('Specification[ref='+area.id+']').parent().parent().each(function(){
        var pc = $(this).find('item_context').attr('ref');
        aux.push(pc);
    });

    aux=reorder(aux);

    //Quitar repetidos alen repetidos en el get_specifications
    var aux_quit_rep = new Array();
    if(aux.length>0){
        aux_quit_rep.push(aux[0]);
        for(var c=1;c<aux.length;c++){
            var d;
            for(d=0;d<aux_quit_rep.length && aux_quit_rep[d]!=aux[c];d++){}
            if(d==aux_quit_rep.length)aux_quit_rep.push(aux[c]);
        }
        aux=aux_quit_rep;
    }
    

    var id_pro, name_pro, pro;
    var aux2 = new Array();
    for(var c=0;c<aux.length;c++){
        id_pro = $(result).find('Product_class[id='+aux[c]+']').attr('id');
        name_pro = $(result).find('Product_class[id='+aux[c]+']').find('name').text();
        pro =  new Producto(id_pro, name_pro, '');
        aux2.push(pro);
    }

    return aux2;
}

/** Functions for Show Ambients **/
function get_image_amb(tipo,id){
    var image_src_product=null;
    image_src_product = url_serv + "Retrieve_document?mode=&width=&height=&iid=" + id +
    "&catalogue_name=" + escape(catalogue_name) +
    "&database_id=" + escape(database_id) +
    "&source_type=" + escape(source_type) +
    "&docrole=" + escape(tipo);
    return image_src_product;
}

function load_ambients(){
    $("#bottom-areas").html('');
    $('#menu2').find('.ajustar').html('');
    var tam_area = load_areas(ambientes.length);
    var imagenAmb;
    for(var c=0; c<ambientes.length; c++){
        imagenAmb = get_image_amb('AMBIENTE',ambientes[c].id);
        $('#area_num_'+ (c+1)).css('background-image','url("'+imagenAmb+'")');
        $('#area_num_'+ (c+1)).find('.title-area').html(ambientes[c].nombre);
        $('#area_num_'+ (c+1)).click(function(){
            var id_option = $(this).attr('id');
            var id_option_array = id_option.split('_');
            $('#ambmenu2'+ id_option_array[2]).click();
            pageTracker._trackEvent('ambientes','click','amb-'+ ambientes[c].nombre);
        });
        $.colec = "<div id='ambmenu2"+ (c+1) +"' class=\"option\" onclick=\"marcarEnlace('menu2',$(this).attr('id'));load_areas_by_ambient('" +  c + "');\"><a href='#ambientes,ambmenu2"+ (c+1) +"'>" + ambientes[c].nombre + "</a></div>"; //alt='"+ ambientes[c].id +"'
        $('#menu2').find('.ajustar').append($.colec);
    }
    $("#menu2").css('visibility','visible');
    $("#menu3").css('display','none');
    $("#menu4").css('display','none');
    $("#text-description").css('display','none');

    $("#page-static").css('display','none');
    $("#bottom-products").css('display','none');
    $("#news").css('display','none');
    $("#bottom-areas").css('display','block');
    $("#bottom-areas").css('visibility','visible');
}

function load_areas_by_ambient(idd){
    $("#bottom-areas").html('');
    $('#menu3').find('.ajustar').html('');

    var amb = new Ambiente;
    amb = ambientes[idd];

    var tam_area,imagenAmb,c;

    if(amb.areas.length>0){
        tam_area = load_areas(amb.areas.length);
        for(c=0; c<amb.areas.length; c++){
            if(amb.areas[c].productos.length==0){
                $('#area_num_'+ (c+1)).html('<div class=blanquito>'+ $('#area_num_'+ (c+1)).html() + '</div>');
                $.colec = "<div id='ambmenu3"+ (c+1) +"' class=\"optionDisable\">" + amb.areas[c].nombre + "</div>"; //alt='"+ amb.areas[c].id +"'
            }else{
                $('#area_num_'+ (c+1)).click(function() {
                    var id_option = $(this).attr('id');
                    var id_option_array = id_option.split('_');
                    $('#ambmenu3'+ id_option_array[2]).click();
                });
                $.colec = "<div id='ambmenu3"+ (c+1) +"' class=\"option\" onclick=\"marcarEnlace('menu3',$(this).attr('id'));load_page_products_by_area('" + idd + "','" + null + "','" + c + "');\"><a href='#ambientes,ambmenu3"+ (c+1) +"'>" + amb.areas[c].nombre + "</a></div>"; //alt='"+ amb.areas[c].id +"'
            }
            imagenAmb = get_image_amb('Texture Image File',amb.areas[c].id);
            $('#area_num_'+ (c+1)).css('background-image','url("'+imagenAmb+'")');
            $('#area_num_'+ (c+1)).find('.title-area').html(amb.areas[c].nombre);
            $('#menu3').find('.ajustar').append($.colec);
        }

    }else if(amb.subAmbientes.length>0){
        tam_area = load_areas(amb.subAmbientes.length);
        for(c=0; c<amb.subAmbientes.length; c++){
            if(amb.subAmbientes[c].areas.length==0){
                $('#area_num_'+ (c+1)).html('<div class=blanquito>'+ $('#area_num_'+ (c+1)).html() + '</div>');
                $.colec = "<div id='ambmenu3"+ (c+1) +"' class=\"optionDisable\">" + amb.subAmbientes[c].nombre + "</div>"; //alt='"+ amb.areas[c].id +"'
            }
            else{
                $('#area_num_'+ (c+1)).click(function() {
                    var id_option = $(this).attr('id');
                    var id_option_array = id_option.split('_');
                    $('#ambmenu3'+ id_option_array[2]).click();
                    pageTracker._trackEvent('ambientes','click','amb-'+ amb.subAmbientes[c].nombre);
                });
                $.colec = "<div id='ambmenu3"+ (c+1) +"' class=\"option\" onclick=\"marcarEnlace('menu3',$(this).attr('id'));load_areas_by_subAmbient('" + idd + "','" + c + "');\"><a href='#ambientes,ambmenu3"+ (c+1) +"'>" + amb.subAmbientes[c].nombre + "</a></div>"; //alt='"+ amb.areas[c].id +"'
            }
            imagenAmb = get_image_amb('SUBAMBIENTE',amb.subAmbientes[c].id);
            $('#area_num_'+ (c+1)).css('background-image','url("'+imagenAmb+'")');
            $('#area_num_'+ (c+1)).find('.title-area').html(amb.subAmbientes[c].nombre);
            $('#menu3').find('.ajustar').append($.colec);
        }
    }
    $("#menu3").css('visibility','visible');
    $("#menu3").css('display','block');
    $("#menu4").css('display','none');
    $("#text-description").css('display','none');

    $("#page-static").css('display','none');
    $("#bottom-products").css('display','none');
    $("#news").css('display','none');
    $("#bottom-areas").css('display','block');
    $("#bottom-areas").css('visibility','visible');
}



function load_areas_by_subAmbient(idd,s_idd){
    $("#bottom-areas").html('');
    $('#menu4').find('.ajustar').html('');

    var amb = new Ambiente;
    amb = ambientes[idd].subAmbientes[s_idd];

    var tam_area,imagenAmb,c;

    if(amb.areas.length>0){
        tam_area = load_areas(amb.areas.length);
        for(c=0; c<amb.areas.length; c++){
            if(amb.areas[c].productos.length==0){
                $('#area_num_'+ (c+1)).html('<div class=blanquito>'+ $('#area_num_'+ (c+1)).html() + '</div>');
                $.colec = "<div id='ambmenu4"+ (c+1) +"' class=\"optionDisable\">" + amb.areas[c].nombre + "</div>"; //alt='"+ amb.areas[c].id +"'
            }else{
                $('#area_num_'+ (c+1)).click(function() {
                    var id_option = $(this).attr('id');
                    var id_option_array = id_option.split('_');
                    $('#ambmenu4'+ id_option_array[2]).click();
                    pageTracker._trackEvent('ambientes','click','amb-'+ ambientes[idd].nombre +'-'+ amb.nombre +'-'+ amb.areas[c].nombre);
                });
                $.colec = "<div id='ambmenu4"+ (c+1) +"' class=\"option\" onclick=\"marcarEnlace('menu4',$(this).attr('id'));load_page_products_by_area('" + idd + "','" + s_idd + "','" + c + "');\"><a href='#ambientes,ambmenu4"+ (c+1) +"'>" + amb.areas[c].nombre + "</a></div>"; //alt='"+ amb.areas[c].id +"'
            }
            imagenAmb = get_image_amb('Texture Image File',amb.areas[c].id);
            $('#area_num_'+ (c+1)).css('background-image','url("'+imagenAmb+'")');
            $('#area_num_'+ (c+1)).find('.title-area').html(amb.areas[c].nombre);
            $('#menu4').find('.ajustar').append($.colec);
        }
    }
    $("#menu4").css('visibility','visible');
    $("#menu4").css('display','block');
    $("#text-description").css('display','none');

    $("#page-static").css('display','none');
    $("#bottom-products").css('display','none');
    $("#news").css('display','none');
    $("#bottom-areas").css('display','block');
    $("#bottom-areas").css('visibility','visible');
}

function load_page_products_by_area(idd, sub, idda){
    $("#bottom-products").css('visibility','hidden');
    $('#products').html('');
    $('#scroll_products').html('');
    $('#scroll_products').html('<ul id="products" class="jcarousel-skin-charly"></ul>');

    var area = new Area;
    var subAmbNom = '';
    if(sub=='null'){
        area = ambientes[idd].areas[idda];

    }else{
        area = ambientes[idd].subAmbientes[sub].areas[idda];
        subAmbNom = ambientes[idd].subAmbientes[sub].nombre;
    }
    
    var num_product = 1;
    var total_products = area.productos.length;

    var imagenAmb;
    for(var c=0; c<area.productos.length; c++){
        imagenAmb = get_image_amb('Product Main Image',area.productos[c].id);
        $.image = "<img width='" + DIM_PRODUCT_IMAGE_SMALL[0] + "' height='" + DIM_PRODUCT_IMAGE_SMALL[1] + "' border='0' src=" + imagenAmb + " />"; // title='"+ area.productos[c].nombre +"' //alt='"+ area.productos[c].nombre +"'
        $.aux = "<li><div id='"+ $(this).attr('id') +"' class='box_product' ps='"+ area.productos[c].id +"'>"+ $.image +"</div><div class='number_product'>"+ num_product + "/" + total_products +"</div></li>";  //alt='"+ imagenAmb +"'
        $('#products').html($('#products').html()+$.aux);
        num_product++;
    }
    $("#bottom-products").css('display','block');

    $(document).find('#products').children('li').children('.box_product').each(function(){
        $(this).unbind('click');
        $(this).click(function() {
            var ps = $(this).attr('ps');
            load_model(ps);
            change_border(ps);
            pageTracker._trackEvent('ambientes','click','amb-'+ ambientes[idd].nombre +'-'+ subAmbNom +'-'+ area.nombre);
        });
    });
    $('.box_product:first').click();

    jQuery('#products').jcarousel({
        scroll: 1
    });
    $("#bottom-areas").css('display','none');
    $("#bottom-products").css('visibility','visible');
}

/*Finsich used get_image_amb */

function load_nvl2() {
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Products'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('relating', pc_catalogue_id));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('docrole', 'NIVEL1'));

    var params = new Array(2);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "load_nvl2";

    loadXml( call, params );
}

function cb_load_nvl2(result) {
    $("#bottom-areas").html('');
    $("#text-description").css('display','block');
    $("#text-description").css('visibility','visible');
    $("#menu2").css('visibility','hidden');
    $('#menu2').find('.ajustar').html('');
    var type = $(result).find('result').find('Product_class:first').find('level_type').text()
    if(type != 'PRODUCT'){
        var num_areas = $(result).find('result').children('Product_class').size();
        try{
            var tam_area = load_areas(num_areas);
        }
        catch(e){
            alert(e);
        }finally
        {
            var cache_xml = result;
            var count = 1;
            $(result).find('result').children('Product_class').each(function(){
                var iid = $(this).attr('id');
                var name = $(this).find('name').text();
                var image_path_product;
                var image_src_product ;

                $(cache_xml).find('Document_assignment').each(function(){
                    var idsp = $(this).find('is_assigned_to').find('Product_class').attr('ref');
                    if (iid == idsp){
                        var df = $(this).find('assigned_document').find('Digital_file').attr('ref');
                        var fli = findFileLocationIdentificationByDigitalFile(cache_xml,df);
                        $(cache_xml).find('File_location_identification').each(function(){
                            if (fli == $(this).attr('id')){
                                image_path_product = $(this).find('source_id').text() + $(this).find('external_id').text();
                                image_src_product = url_serv + "Retrieve_document?mode=thumb&width="+ 4000 +"&height=" + DIM_AREA[1] + "&file=" + image_path_product +
                                "&catalogue_name=" + escape(catalogue_name) +
                                "&database_id=" + escape(database_id) +
                                "&source_type=" + escape(source_type);
                            }
                        });
                    }
                });
                if(image_src_product==undefined) image_src_product='img/noimage.jpg';
                $('#area_num_'+count).css('background-image','url("'+image_src_product+'")');
                $('#area_num_'+count).find('.title-area').html(name);
                /*if(name!='LIBRERIAS'){*/
                $('#area_num_'+count).click(function() {
                    var id_option = $(this).attr('id');
                    var id_option_array = id_option.split('_');
                    marcarEnlace('menu2','menu2'+ id_option_array[2]);
                    var family = $('#menu2'+ id_option_array[2]).find('a').attr('href');
                    var familyOK = family.substring(1,family.length-1);
                    load_nvl3(iid,familyOK);
                    pageTracker._trackEvent('productos','click','cat-'+name);
                });
                $.colec = "<div id='menu2"+ count +"' alt='"+ iid +"' class=\"option\" onclick=\"marcarEnlace('menu2',$(this).attr('id'));load_nvl3('" +  iid + "','productos,menu2"+ count +"');pageTracker._trackEvent('productos','click','cat-"+ name+"');\"><a href='#productos,menu2"+ count +"'>" + name + "</a></div>"; // onclick=\"save($(this).find('a').attr('href'));\"
                /*else{
                    $('#area_num_'+ count).html('<div class=blanquito>'+ $('#area_num_'+ count).html() + '</div>');
                    $.colec = "<div id='menu2"+ count +"' alt='"+ iid +"' class=\"optionDisable\">"+ name + "</div>";
                }*/
                $('#menu2').find('.ajustar').append($.colec);
                count++;
            });
            $("#menu2").css('visibility','visible');
            $("#menu3").css('display','none');
            $("#menu4").css('display','none');
            $("#page-static").css('display','none');
            $("#bottom-products").css('display','none');
            $("#news").css('display','none');
            $("#bottom-areas").css('display','block');
            if(nv2!=null){
                var ps = $('#'+ nv2).attr('alt');
                load_nvl3(ps,'');
            }
        }
    }
}

function load_nvl3(product_search,family) {
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Products'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('relating', product_search));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('docrole', 'NIVEL2'));

    var params = new Array(4);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "load_nvl3";
    params[2][0] = "product_search";
    params[2][1] = product_search;
    params[3][0] = "family";
    params[3][1] = family;

    loadXml( call, params );
}

function cb_load_nvl3(result,product_search,family) {
    $("#bottom-areas").html('');
    $("#text-description").css('display','none');
    $("#text-description").css('visibility','hidden');
    $("#menu3").css('visibility','hidden');
    $('#menu3').find('.ajustar').html('');
    $("#menu4").css('visibility','hidden');
    $('#menu4').find('.ajustar').html('');
    var type = $(result).find('result').find('Product_class:first').find('level_type').text()
    if(type != 'PRODUCT'){
        var num_areas = $(result).find('result').children('Product_class').size();
        if(num_areas>0){
            try{
                var tam_area = load_areas(num_areas);
            }
            catch(e){
                alert(e);
            }finally
            {
                var cache_xml = result;
                var count = 1;
                $(result).find('result').children('Product_class').each(function(){
                    var iid = $(this).attr('id');
                    var name = $(this).find('name').text();
                    var image_path_product;
                    var image_src_product ;

                    $(cache_xml).find('Document_assignment').each(function(){
                        var idsp = $(this).find('is_assigned_to').find('Product_class').attr('ref');
                        if (iid == idsp){
                            var df = $(this).find('assigned_document').find('Digital_file').attr('ref');
                            var fli = findFileLocationIdentificationByDigitalFile(cache_xml,df);
                            $(cache_xml).find('File_location_identification').each(function(){
                                if (fli == $(this).attr('id')){
                                    image_path_product = $(this).find('source_id').text() + $(this).find('external_id').text();
                                    image_src_product = url_serv + "Retrieve_document?mode=thumb&width="+ 4000 +"&height=" + DIM_AREA[1] + "&file=" + image_path_product +
                                    "&catalogue_name=" + escape(catalogue_name) +
                                    "&database_id=" + escape(database_id) +
                                    "&source_type=" + escape(source_type);
                                }
                            });
                        }
                    });
                    if(image_src_product==undefined) image_src_product='img/noimage.jpg';
                    $('#area_num_'+count).css('background-image','url("'+image_src_product+'")');
                    $('#area_num_'+count).find('.title-area').html(name);
                    $('#area_num_'+count).click(function() {
                        var id_option = $(this).attr('id');
                        var id_option_array = id_option.split('_');
                        marcarEnlace('menu3','menu3'+ id_option_array[2]);
                        var family = $('#menu3'+ id_option_array[2]).find('a').attr('href');
                        var familyOK = family.substring(1,family.length-1);
                        load_nvl4(iid,familyOK);
                        pageTracker._trackEvent('productos','click','cat-'+name);
                    });
                    $.colec = "<div id='menu3"+ count +"' alt='"+ iid +"' class=\"option\" onclick=\"marcarEnlace('menu3',$(this).attr('id'));load_nvl4('" +  iid + "','"+family+",menu3"+count+"');pageTracker._trackEvent('productos','click','cat-"+name+"');\"><a href='#"+family+",menu3"+ count +"'>" + name + "</a></div>"; // onclick=\"save($(this).find('a').attr('href'));\"
                    $('#menu3').find('.ajustar').append($.colec);
                    count++;
                });
                $("#menu3").css('visibility','visible');
                $("#text-description").css('display','none');
                $("#menu3").css('display','block');
                $("#menu4").css('display','none');
                $("#page-static").css('display','none');
                $("#news").css('display','none');
                $("#bottom-products").css('display','none');
                $("#bottom-areas").css('display','block');
                if(nv3!=null){
                    var ps = $('#'+ nv2).attr('alt');
                    load_nvl4(ps,'');
                }
            }
        }
        else{
            $("#bottom-areas").css('display','none');
            $("#bottom-products").css('display','block');
            $("#bottom-products").css('visibility','hidden');
        }
    }
    else{
        var num_products = $(result).find('result').children('Product_class').size();
        if(num_products>0){
            try{
                load_page_products(product_search);
            }catch(e){
                alert(e);
            }finally{
                $("#text-description").css('display','block');
                $("#menu3").css('display','none');
                $("#menu4").css('display','none');
                $("#bottom-areas").css('display','none');
                $("#page-static").css('display','none');
                $("#news").css('display','none');
                $("#bottom-products").css('display','block');
            }
        }else{
            alert('Tipologias sin productos insertados');
        }
    }
}

function load_nvl4(product_search,family) {
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Products'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('relating', product_search));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('docrole', 'NIVEL3'));

    var params = new Array(4);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "load_nvl4";
    params[2][0] = "product_search";
    params[2][1] = product_search;
    params[3][0] = "family";
    params[3][1] = family;

    loadXml( call, params );
}

function cb_load_nvl4(result,product_search,family) {
    $("#bottom-areas").html('');
    $("#menu4").css('visibility','hidden');
    $('#menu4').find('.ajustar').html('');
    var type = $(result).find('result').find('Product_class:first').find('level_type').text();
    if(type != 'PRODUCT'){
        var num_areas = $(result).find('result').children('Product_class').size();
        if(num_areas>0){
            try{
                var tam_area = load_areas(num_areas);
            }catch(e){
                alert(e);
            }
            finally

            {
                var cache_xml = result;
                var count = 1;
                $(result).find('result').children('Product_class').each(function(){
                    var iid = $(this).attr('id');
                    var name = $(this).find('name').text();
                    var image_path_product;
                    var image_src_product ;

                    $(cache_xml).find('Document_assignment').each(function(){
                        var idsp = $(this).find('is_assigned_to').find('Product_class').attr('ref');
                        if (iid == idsp){
                            var df = $(this).find('assigned_document').find('Digital_file').attr('ref');
                            var fli = findFileLocationIdentificationByDigitalFile(cache_xml,df);
                            $(cache_xml).find('File_location_identification').each(function(){
                                if (fli == $(this).attr('id')){
                                    image_path_product = $(this).find('source_id').text() + $(this).find('external_id').text();
                                    image_src_product = url_serv + "Retrieve_document?mode=thumb&width="+ 4000 +"&height=" + DIM_AREA[1] + "&file=" + image_path_product +
                                    "&catalogue_name=" + escape(catalogue_name) +
                                    "&database_id=" + escape(database_id) +
                                    "&source_type=" + escape(source_type);
                                }
                            });
                        }
                    });
                    if(image_src_product==undefined) image_src_product='img/noimage.jpg';
                    $('#area_num_'+count).css('background-image','url("'+image_src_product+'")');
                    $('#area_num_'+count).find('.title-area').html(name);
                    $('#area_num_'+count).click(function() {
                        var id_option = $(this).attr('id');
                        var id_option_array = id_option.split('_');
                        marcarEnlace('menu4','menu4'+ id_option_array[2]);
                        var family = $('#menu4'+ id_option_array[2]).find('a').attr('href');
                        var familyOK = family.substring(1,family.length-1);
                        load_nvlLast(iid);
                        pageTracker._trackEvent('productos','click','cat-'+name);
                    });
                    $.colec = "<div id='menu4"+ count +"' alt='"+ iid +"' class=\"option\" onclick=\"marcarEnlace('menu4',$(this).attr('id'));load_nvlLast('" +  iid + "');pageTracker._trackEvent('productos','click','cat-"+name+"');\"><a href='#"+family+",menu4"+ count +"'>" + name + "</a></div>";  //onclick=\"save($(this).find('a').attr('href'));\"
                    $('#menu4').find('.ajustar').append($.colec);
                    count++;
                });
                $("#menu4").css('visibility','visible');
                $("#menu4").css('display','block');
                $("#text-description").css('display','none');
                $("#page-static").css('display','none');
                $("#news").css('display','none');
                $("#bottom-products").css('display','none');
                $("#bottom-areas").css('display','block');
                if(nv4!=null){
                    var ps = $('#'+ nv2).attr('alt');
                    load_nvlLast(ps,'');
                }
            }
        }else{
            $("#bottom-areas").css('display','none');
            $("#bottom-products").css('display','block');
            $("#bottom-products").css('visibility','hidden');
        }
    }
    else{
        var num_products = $(result).find('result').children('Product_class').size();
        if(num_products>0){
            try{
                load_page_products(product_search);
            }catch(e){
                alert(e);
            }finally{
                $("#menu4").css('display','none');
                $("#bottom-areas").css('display','none');
                $("#page-static").css('display','none');
                $("#news").css('display','none');
                $("#bottom-products").css('display','block');
            }
        }else{
            alert('Tipologias sin productos insertados');
        }
    }
}

function load_nvlLast(product_search) {
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Products'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('relating', product_search));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('docrole', 'Product Main Image'));

    var params = new Array(2);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "load_nvlLast";

    loadXml( call, params );
}

function cb_load_nvlLast(result) {
    var type = $(result).find('result').find('Product_class:first').find('level_type').text()
    if(type == 'PRODUCT'){
        var num_products = $(result).find('result').children('Product_class').size();
        if(num_products>0){
            try{
                cb_load_page_products(result);
            }catch(e){
                alert(e);
            }finally{
                $("#bottom-areas").css('display','none');
                $("#page-static").css('display','none');
                $("#news").css('display','none');
                $("#bottom-products").css('display','block');
            }
        }else{
            alert('Tipologias sin productos insertados');
        }
    } else {
        //alert('No se pueden mostrar mas subcategorias o productos no insertados<br/>' + XmlToString(result));
        $("#bottom-areas").css('display','none');
        $("#bottom-products").css('display','block');
        $("#bottom-products").css('visibility','hidden');
    }
}

function marcarEnlace(capa,id){
    $('#'+capa).find('.ajustar').children('.option').each(function(){
        $(this).find('a').css('color','#FFFFFF');
    });
    $('#'+id).find('a').css('color','#DD7171');
}


function load_page_products(product_search) {
    $("#text-description").css('visibility','hidden');
    $("#bottom-products").css('visibility','hidden');

    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Products'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('relating', product_search));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('docrole', 'Product Main Image'));

    var params = new Array(2);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "load_page_products";

    loadXml( call, params );
}


function cb_load_page_products(result){
    var cache_xml = result;
    $("#bottom-products").css('visibility','hidden');
    $('#products').html('');
    $('#scroll_products').html('');
    $('#scroll_products').html('<ul id="products" class="jcarousel-skin-charly"></ul>');
    var num_product = 1;
    var total_products = $(cache_xml).find('result').children('Product_class').size();
    
    
    $(cache_xml).find('result').children('Product_class_relationship').each(function(){
        
        var related = $(this).find('related').attr('ref');
        $pc = $(result).find('result').find('Product_class[id=' + related + ']');
        
        var iid = $pc.attr('id');
        var name = $pc.find('name').text();
        var image_path_product;

        $(cache_xml).find('Document_assignment').each(function(){
            var idsp = $(this).find('is_assigned_to').find('Product_class').attr('ref');
            if (iid == idsp){
                var df = $(this).find('assigned_document').find('Digital_file').attr('ref');
                var fli = findFileLocationIdentificationByDigitalFile(cache_xml,df);
                $(cache_xml).find('File_location_identification').each(function(){
                    if (fli == $(this).attr('id')){
                        image_path_product = $(this).find('source_id').text() + $(this).find('external_id').text();
                        var image_src_product = url_serv + "Retrieve_document?mode=thumb&width=" + DIM_PRODUCT_IMAGE_SMALL[0] + "&height=" + DIM_PRODUCT_IMAGE_SMALL[1] + "&file=" + image_path_product +
                        "&catalogue_name=" + escape(catalogue_name) +
                        "&database_id=" + escape(database_id) +
                        "&source_type=" + escape(source_type);
                        $.image = "<img width='" + DIM_PRODUCT_IMAGE_SMALL[0] + "' height='" + DIM_PRODUCT_IMAGE_SMALL[1] + "' border='0' src=" + image_src_product + " />";
                    //title='"+ name +"' alt='"+ name +"'
                    }
                });
            }
        });
        $.aux = "<li><div id='"+ $pc.attr('id') +"' alt='"+ image_path_product +"' class='box_product' ps='"+ iid +"'>"+ $.image +"</div><div class='number_product'>"+ num_product + "/" + total_products +"</div></li>";
        $('#products').html($('#products').html()+$.aux);
        num_product++;
        
    });
    
    
    //    $(cache_xml).find('result').children('Product_class').each(function(){
    //        var iid = $(this).attr('id');
    //        var name = $(this).find('name').text();
    //        var image_path_product;
    //
    //        $(cache_xml).find('Document_assignment').each(function(){
    //            var idsp = $(this).find('is_assigned_to').find('Product_class').attr('ref');
    //            if (iid == idsp){
    //                var df = $(this).find('assigned_document').find('Digital_file').attr('ref');
    //                var fli = findFileLocationIdentificationByDigitalFile(cache_xml,df);
    //                $(cache_xml).find('File_location_identification').each(function(){
    //                    if (fli == $(this).attr('id')){
    //                        image_path_product = $(this).find('source_id').text() + $(this).find('external_id').text();
    //                        var image_src_product = url_serv + "Retrieve_document?mode=thumb&width=" + DIM_PRODUCT_IMAGE_SMALL[0] + "&height=" + DIM_PRODUCT_IMAGE_SMALL[1] + "&file=" + image_path_product +
    //                        "&catalogue_name=" + escape(catalogue_name) +
    //                        "&database_id=" + escape(database_id) +
    //                        "&source_type=" + escape(source_type);
    //                        $.image = "<img width='" + DIM_PRODUCT_IMAGE_SMALL[0] + "' height='" + DIM_PRODUCT_IMAGE_SMALL[1] + "' border='0' src=" + image_src_product + " />";
    //                    //title='"+ name +"' alt='"+ name +"'
    //                    }
    //                });
    //            }
    //        });
    //        $.aux = "<li><div id='"+ $(this).attr('id') +"' alt='"+ image_path_product +"' class='box_product' ps='"+ iid +"'>"+ $.image +"</div><div class='number_product'>"+ num_product + "/" + total_products +"</div></li>";
    //        $('#products').html($('#products').html()+$.aux);
    //        num_product++;
    //    });
    $("#bottom-products").css('display','block');

    $(document).find('#products').children('li').children('.box_product').each(function(){
        $(this).unbind('click');
        $(this).click(function() {
            var ps = $(this).attr('ps');
            load_model(ps);
            change_border(ps);
        });
    });
    $('.box_product:first').click();

    jQuery('#products').jcarousel({
        scroll: 1
    });
    $("#bottom-products").css('visibility','visible');
}

function load_areas(num){
    $('#bottom-areas').html('');
    var tam_box_areas = 1024;
    if(num>1){
        tam_box_areas = tam_box_areas - (2*(num-1));
    }
    var modulo = tam_box_areas%num;
    var tam_area = Math.floor(tam_box_areas/num);
    for(var c=1; c<=num;c++){
        if(c!=num) $.area = '<div id="area_num_'+ c + '" class="area"><div class="title-area"></div></div><div class="separador_vertical"></div>';
        else $.area = '<div id="area_num_'+ c + '" class="area"><div class="title-area"></div></div>';
        $('#bottom-areas').html($('#bottom-areas').html()+$.area);
    }
    $(document).find('.area').each(function(){
        if(modulo>0){
            $(this).css('width',(tam_area+1)+'px');
            modulo--;
        }else{
            $(this).css('width',tam_area+'px');
        }
        if((tam_area-10)>200){
            $(this).find('.title-area').css('width', 190+'px');
        }else{
            $(this).find('.title-area').css('width',(tam_area-10)+'px');
        }
    });
    return tam_area;
}


function load_model(pc) {
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Product'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('product', pc));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('docrole', 'Product Main Image--2D Geometry CTP Information'));

    var params = new Array(3);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "load_model";
    params[2][0] = "pc";
    params[2][1] = pc;

    loadXml( call, params );
}

function cb_load_model(result,pc){
    $('#divCoatingApplet').html('');
    $('#box-options').css('display','none');
    $('#divLoadingCoatingApplet').css('display','none');
    $('#divImage').css('display','block');
    $('#msg_error').css('visibility','hidden');

    //CATe
    var df_2d = findDigitalFileByContainedDataType(result, 'Geometry Data');
    var fli_2d = findFileLocationIdentificationByDigitalFile(result, df_2d);

    var cate=false;
    if (df_2d != null) {
        $(result).find('File_location_identification').each(function(){
            if (fli_2d == $(this).attr('id')){
                var image_path_product = $(this).find('source_id').text() + $(this).find('external_id').text();
                selected_product = pc;
                selected_image_path_product = image_path_product;
                cate=true;
                var image_src_product_normal = url_serv + "Retrieve_document?mode=thumb&width=" + DIM_PRODUCT_IMAGE[0] + "&height=" + DIM_PRODUCT_IMAGE[1] + "&file=" + escape(decodeURI(image_path_product)) +
                "&catalogue_name=" + escape(catalogue_name) +
                "&database_id=" + escape(database_id) +
                "&source_type=" + escape(source_type);
                $('#divLoadingCoatingApplet').css('background-image','url('+image_src_product_normal+')');
                $('#divLoadingCoatingApplet').css('visibility','visible');
                $('#divLoadingCoatingApplet').css('display','block');
                $('#divImage').css('display','none');
            }
        });
    }

    $('#description_product').html('');
    $(result).find('result').children('Product_class').each(function(){
        var iid = $(this).attr('id');
        var name = $(this).find('name').text();
        pageTracker._trackEvent('productos','visualizaciones','pro-'+name);
        var cname = $.string(name).strip().stripTags().capitalize().str;
        $('#name_product').html(cname);
        get_property(iid, 'EXTRA-INFO');
        if(!cate){
            // Search url image product
            var docrole = 'Product Main Image';
            var image_path_product = get_image_path_by_rolelist(result, iid, docrole);
            var image_src_product = url_serv + "Retrieve_document?mode=thumb&width=" + DIM_PRODUCT_IMAGE[0] + "&height=" + DIM_PRODUCT_IMAGE[1] + "&file=" + image_path_product +
            "&catalogue_name=" + escape(catalogue_name) +
            "&database_id=" + escape(database_id) +
            "&source_type="+ escape(source_type);
            $.image = "<img width='" + DIM_PRODUCT_IMAGE[0] + "' height='" + DIM_PRODUCT_IMAGE[1] + "' border='0' src=" + image_src_product + " />";
            $('#divImage').css('background-image','url("'+image_src_product+'")');
            $('#divImage').css('display','block');
        }
    });

    if(cate){
        get_configuration(pc);
        showCATe(true);
    }else{
        showCATe(false);
    }
}

function showCATe(estado){
    if(estado){
        $('#title-cate').css('visibility','visible');
        $('#box-options').css('display','block');
        $('#divImage').css('display','none');
        $('#divCoatingApplet').css('display','block');
    }else{
        $('#title-cate').css('visibility','hidden');
        $('#box-options').css('display','none');
        $('#divImage').css('display','block');
        $('#divCoatingApplet').css('display','none');
    }
}

/* coating2D */
function get_configuration(product) {
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Configuration'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('product', escape(product)));

    var params = new Array(2);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "get_configuration";

    loadXml( call, params );
}

function cb_get_configuration(result) {
    selected_configuration = null;
    selected_configuration = $(result).find('result').find('Product_specification item_context[ref=' + selected_product + ']').parent().attr('id');
    if (selected_configuration != null)
        get_ctp( selected_product, selected_image_path_product, selected_configuration );
}

function get_ctp(product, image_path, configuration) {
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Scene'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('product', escape(product)));
    call.arguments.push(new Array('image_path', escape(image_path)));
    call.arguments.push(new Array('source_type', escape(source_type)));
    call.arguments.push(new Array('configuration', escape(configuration)));
    call.arguments.push(new Array('docrole', 'Texture Image File'));
    call.arguments.push(new Array('url_web', escape(url_web)));

    var params = new Array(3);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "get_ctp";
    params[2][0] = "product";
    params[2][1] = product;

    loadXml( call, params );
}

function cb_get_ctp(result,product) {
    var ctp = $(result).find("ctp").text();
    selected_item_shape = $(result).find("is").text();

    array_se = new Array();
    $(result).find('shape_element').each(function(){
        var id = $(this).find('id').text();
        var element_name = $(this).find('element_name').text();
        var array = new Array(id, element_name);

        array_se.push(array);
    });
    if (ctp != "") {
        var params = "" +
        "<applet codebase='http://80.169.75.104' code='es.aidima.coatingtool.main.coatingImage2D.class' archive='Applet/Coating2DWeb.jar,Applet/lib/ctplib.jar,Applet/lib/javautilscoating.jar,Applet/lib/lib/java-image-scaling-0.8.4.jar' width='450' height='555' name='CoatingApplet'>"+
        "<param name='backgroundColor' value='#FFFFFF'/>" +
        "<param name='loadingImagePath' value='Applet/img/loading.gif'/>" +
        "<param name='url_serv' value='" + url_serv + "'/>" +
        "<param name='dataBaseName' value='" + escape(database_name) + "'/>" +
        "<param name='catalogueName' value='" + escape(catalogue_name) + "'/>" +
        "<param name='imagePath' value='" + escape(selected_image_path_product) + "'/>" +
        "<param name='ctpPath' value='" + escape(ctp) + "'/>" +
        "<param name='debugging' value='ACTIVE'/>" +
        "<param name='databaseid' value='morata'/>" +
        "<param name='image' value='" + escape(selected_image_path_product) + "'/>" +
        "<param name='loadingIcoBottomMargin'  value='" + 20 + "'/>" +
        "<param name='loadingIcoRightMargin' value='" + 20 + "'/>" +
        "</applet>";

        $('#divCoatingApplet').html("");
        $('#divCoatingApplet').html(params);

        get_specifications_2(result);
    //get_specifications_CATe(product);
    }
}
// Functions for Finished Load CTP
function loadSceneFinished(result){
    $('#divLoadingCoatingApplet').css('display','none');
    $('#divLoadingCoatingApplet').css('visibility','hidden');
    $('#divCoatingApplet').css('visibility','visible');
}

// Functions for Load Textures in Memory
function Parte(id, nombre, tex_res) {
    this.id = id;
    this.nombre = nombre;
    this.especificaciones = new Array();
    this.textura_res = tex_res;
}

function Categoria(id, nombre) {
    this.id = id;
    this.nombre = nombre;
    this.especificaciones = new Array();
}

function Especificacion(id, nombre) {
    this.id = id;
    this.nombre = nombre;
    this.img = null;
    this.ancho = null;
    this.alto = null;
}

function get_specifications_2(result) {
    try{
        especificaciones_posibles=null;
        categoria_selected=null;
        parts_selections_for_rev=null;
        last_textures=null;

        partes = new Array();
        $(result).find('parts').find('part').each(function(){
            var id_int_part = $(this).attr('id');
            var esp_part = get_specifications_by_part2($(this).find('specifications').text());
            var p = new Parte($(this).find('id').text(),$(result).find('entities Product_class[id='+ id_int_part +'] name').text(),'Nins_text_used');
            p.especificaciones = esp_part;
            partes.push(p);
        });

        categorias = new Array();
        $(result).find('Specification_category').each(function(){
            if($(this).find('id').text()!='OPCIONES'){
                var esp_categ = get_specifications_by_categoria2(result,$(this).attr('id'));
                var p = new Categoria($(this).attr('id'),$(this).find('id').text());
                p.especificaciones = esp_categ;
                categorias.push(p);
            }
        });
    }catch(e){
        alert(e);
    }finally{
        draw_product_categoria();
    }
}

function get_specifications_by_part2(ids_part) {
    var especifications = new Array();
    var spc;
    var ids = ids_part.substring(0,ids_part.length-1).split(' ');
    for(var c=0;c<ids.length;c++){
        spc = new Especificacion(ids[c],'');
        especifications.push(spc);
    }
    return especifications;
}

function get_specifications_by_categoria2(result,id_compare) {
    var especifications = new Array();
    var spc;
    $(result).find('Specification').each(function(){
        if(id_compare == $(this).find('category').attr('ref')){
            spc = new Especificacion($(this).attr('id'),$(this).find('name').text());
            especifications.push(fill_texture_info(result,spc));
        }
    });
    return especifications;
}

function fill_texture_info(result,spc) {
    var image_path_product, image_src_product, df, fli, rapport;
    $(result).find('Document_assignment is_assigned_to Specification[ref='+ spc.id +']').each(function(){
        df = $(this).parent().parent().find('assigned_document').find('Digital_file').attr('ref');
        fli = findFileLocationIdentificationByDigitalFile(result,df);
        $(result).find('File_location_identification[id=' + fli + ']').each(function(){
            image_path_product = $(this).find('source_id').text() + $(this).find('external_id').text();
            image_src_product = url_serv + "Retrieve_document?mode=thumb&width=" + DIM_TEXTURE_IMAGE[0] + "&height=" + DIM_TEXTURE_IMAGE[1] + "&file=" + image_path_product +
            "&catalogue_name=" + escape(catalogue_name) +
            "&database_id=" + escape(database_id) +
            "&source_type=" + escape(source_type);
        });
        rapport = findDfRapport(result, df);
        spc.ancho = rapport[0];
        spc.alto = rapport[1];
    });
    spc.img = image_src_product;
    return spc;
}

function get_image(tipo,id){
    var image_src_product=null;
    image_src_product = url_serv + "Retrieve_document?mode=thumb&width="+ DIM_AREA[0] +
    "&height="+ DIM_AREA[1] +
    "&iid=" + id +
    "&catalogue_name=" + escape(catalogue_name) +
    "&database_id=" + escape(database_id) +
    "&source_type=" + escape(source_type) +
    "&docrole=" + escape(tipo);
    return image_src_product;
}
// Finish Functions for Load Textures in Memory

// Functions for Draw Textures in HTML
function draw_product_categoria() {
    $('#file_tabs_scroll').html('');
    for(var c=0; c<categorias.length; c++) {
        if(categorias[c].especificaciones.length>0){
            $.categoria = "<div id='" + categorias[c].id + "' class='tab' onclick=\"javascript:draw_file_textures_by_categoria(\'"+ c +"\');selected_Categoria(\'"+ categorias[c].id +"\');\">" + categorias[c].nombre + "</div></li>";
            $('#file_tabs_scroll').html($('#file_tabs_scroll').html()+$.categoria);
        }
    }
    $('.tab:first').click();
}

function selected_Categoria(id_click){
    $(document).find('.tab').css('background-color','#FFFFFF');
    $(document).find('.tab[id='+id_click+']').css('background-color','#D6D0C4');
}

function draw_file_textures_by_categoria(category_index) {
    categoria_selected = category_index;
    $('#scroll_textures').html('');

    for(var d=0; d < categorias[category_index].especificaciones.length; d++) {
        var id_text= categorias[category_index].especificaciones[d].id;
        var name_text = categorias[category_index].especificaciones[d].nombre;
        var img_tex = categorias[category_index].especificaciones[d].img;
        var co = img_tex.indexOf('file=')+5;
        var ac = img_tex.indexOf('&',co);
        var img_tex_file = img_tex.substring(co,ac);
        var anc_tex = categorias[category_index].especificaciones[d].ancho;
        var alt_tex = categorias[category_index].especificaciones[d].alto;
        if(anc_tex==''||anc_tex==null)anc_tex=10;
        if(alt_tex==''||alt_tex==null)alt_tex=10;
        if(!(texture_posible_with_part(categorias[category_index].especificaciones[d]))){
            $.image = "<img title='"+ name_text +"' alt='"+ name_text +"' width='" + DIM_TEXTURE_IMAGE[0] + "' height='" + DIM_TEXTURE_IMAGE[1] + "' border='0' src=" + img_tex + " />";
            $.texture = "<div class='box'>";
            $.texture += "<div class='disable_texture' id='"+ id_text +"' alt='"+ img_tex_file +"--"+ anc_tex+"--"+alt_tex +"' style='cursor:default;'><img width='69' height='69' border='0' src='img/tupido-velo.png'/></div>"
            //$.texture += "<div class='border_texture'><img width='69' height='69' border='0' src='"+ categorias[category_index].img +"' /></div>"
            $.texture += "<div class='image_texture'>"+$.image+"</div>"
            $.texture += "<div class='zoomTexture' onclick=\"javascript:view_texture_zoom(\'"+ id_text +"\');\"></div>"
            $.texture += "</div>";
            $('#scroll_textures').html($('#scroll_textures').html()+$.texture);

        }else{
            $.image = "<img title='"+ name_text +"' alt='"+ name_text +"' width='" + DIM_TEXTURE_IMAGE[0] + "' height='" + DIM_TEXTURE_IMAGE[1] + "' border='0' src=" + img_tex + " />";
            $.texture = "<div class='box'>";
            $.texture += "<div class='disable_texture' id='"+ id_text +"' alt='"+ img_tex_file +"--"+ anc_tex+"--"+alt_tex +"' style='cursor:pointer;' onclick=\"javascript:doCoat(\'"+ id_text +"\',\'"+ img_tex_file +"\',\'"+ anc_tex +"\',\'"+ alt_tex +"\');new_last_textures(\'"+ id_text +"\',\'"+ name_text +"\',\'"+ img_tex +"\',\'"+ img_tex_file +"\');\"><img id='img_disable' width='69' height='69' border='0' src='img/transparent.png'/></div>"
            //$.texture += "<div class='border_texture'><img width='69' height='69' border='0' src='"+ categorias[category_index].img +"' /></div>"
            $.texture += "<div class='image_texture'>"+$.image+"</div>"
            $.texture += "<div class='zoomTexture' onclick=\"javascript:view_texture_zoom(\'"+ id_text +"\');\"></div>"
            $.texture += "</div>";
            $('#scroll_textures').html($('#scroll_textures').html()+$.texture);
        }
    }
}

function texture_posible_with_part(esp) {
    if(especificaciones_posibles!=null){
        var l;
        for(l=0; l< especificaciones_posibles.length && (especificaciones_posibles[l]!=esp.id); l++){}
        if(l!=especificaciones_posibles.length) return true;
        else return false;
    }else return false;
}

function disable_textures_by_categoria(category_index) {
    $('#msg_error').css('visibility','hidden');
    var found = false;
    categoria_selected = category_index;
    disable_all_textures();
    if(especificaciones_posibles!=null){
        for(var d=0; d< especificaciones_posibles.length;d++){
            $(document).find('.box').find('disable_texture[id='+ especificaciones_posibles[d] +']').parent().each(function(){
                found = true;
                $(this).find('#img_disable').attr('src','img/transparent.png');
                $(this).find('.disable_texture').css('cursor','pointer');
                $(this).find('.disable_texture').unbind();
                $(this).find('.disable_texture').click(function() {
                    var id_text= $(this).attr('id');
                    var name_text = $(this).parent().find('.image_texture').find('img').attr('alt');
                    var img_tex = $(this).parent().find('.image_texture').find('img').attr('src');
                    var aux = $(this).attr('alt');
                    var options_tex = aux.split('--');
                    var img_tex_file = options_tex[0];
                    var ancho= options_tex[1];
                    var alto= options_tex[2];
                    doCoat(id_text,img_tex_file,ancho,alto);
                    new_last_textures(id_text,name_text,img_tex,aux);
                });
            });
        }
        if(!found) enable_textures_posible_by_parts(0);
    /*else{
            $('#msg_error').css('visibility','visible');
        }*/
    }
}

function disable_all_textures() {
    $(document).find('.box').each(function(){
        $(this).find('#img_disable').attr('src','img/tupido-velo.png');
        $(this).find('.disable_texture').css('cursor','default');
        $(this).find('.disable_texture').unbind();
    });
}

function enable_textures_posible_by_parts(category_index){
    if(category_index<categorias.length){
        var found = false;
        for(var c=0; c < categorias[category_index].especificaciones.length && !found; c++) {
            var d;
            for(d=0; d< especificaciones_posibles.length && (categorias[category_index].especificaciones[c].id != especificaciones_posibles[d]) ; d++) {}
            if(d!=especificaciones_posibles.length){
                $('.tab[id='+categorias[category_index].id+']').click();
                found = true;
            }
        }
        if(!found){
            enable_textures_posible_by_parts(category_index+1)
        }
    }else{
        $('#msg_error').css('visibility','visible');
    }
}
// Finish Functions for Draw Textures in HTML

// Functions for Coat
function partSelectionChanged(options){
    $('.msg_error').css('display','none');
    var parts_selections = new Array();
    if(options!=-1){
        var groups = options.split(';');
        for (var c=0; c<groups.length; c++) {
            var group = groups[c];
            for(var i=0; i<array_se.length; i++) {
                var elem = array_se[i];
                if (elem[0] == group) {
                    parts_selections.push(elem[1]);
                }
            }
        }
        if (parts_selections.length > 0) {
            parts_selections_for_rev=parts_selections;
            especificaciones_posibles=filter_textures(parts_selections);
            disable_textures_by_categoria(categoria_selected);
        }else{}
    }else{
        especificaciones_posibles = null;
        disable_all_textures();
    }
}

function filter_textures(parts_selections){
    var posibles_aux = new Array();
    for(var j=0; j<parts_selections.length; j++) {
        for(var i=0; i< partes.length; i++) {
            if(parts_selections[j]==partes[i].id){
                var k;
                //if(posibles_aux.length>0){
                if(j!=0){
                    var aux=new Array();
                    for(k=0; k< partes[i].especificaciones.length; k++) {
                        var l;
                        for(l=0; l< posibles_aux.length && (partes[i].especificaciones[k].id!=posibles_aux[l]); l++){}
                        if(l!=posibles_aux.length){
                            aux.push(partes[i].especificaciones[k].id);
                        }
                    }
                    posibles_aux = aux;
                }else{
                    for(k=0; k< partes[i].especificaciones.length; k++) {
                        posibles_aux.push(partes[i].especificaciones[k].id)
                    }
                }
            }
        }
    }
    return posibles_aux;
}
// Finish Functions for DoubleClick Coat

// Functions for DoubleClick Coat
function partSelectionChangedDC( options ) {
    $('.msg_error').css('display','none');
    var parts_selections = new Array();
    if(options!=-1){
        var groups = options.split(';');
        for (var c=0; c<groups.length; c++) {
            var group = groups[c];
            for(var i=0; i<array_se.length; i++) {
                var elem = array_se[i];
                if (elem[0] == group) {
                    parts_selections.push(elem[1]);
                }
            }
        }
        if (parts_selections.length > 0) {
            parts_selections_for_rev=parts_selections;
            especificaciones_posibles=filter_textures(parts_selections);
            reCoatWithLastTexture(parts_selections);
        }else{}
    }else{
        especificaciones_posibles = null;
        disable_all_textures();
    }
}

function reCoatWithLastTexture(parts_selections) {
    if (last_textures!=null && last_textures!=""){
        var id_texture = last_textures[0] ;
        //var name_texture = last_textures[1];//var image_path_texture = last_textures[2];//var image_path_revestir = last_textures[3];
        var d=0;
        for(d=0; d< especificaciones_posibles.length && (id_texture != especificaciones_posibles[d]) ; d++) {}
        if(d!=especificaciones_posibles.length){
            recoat();
            save_texture_used_in_parts(parts_selections,id_texture);
        }else
            alert('La &uacute;ltima textura que se utilizo no se puede utilizar en esta parte');
    }else{
        alert('No has utilizado aun ninguna textura');
    }
}

function save_texture_used_in_parts(parts_selections,id_texture){
    for(var i=0; i<parts_selections.length; i++) {
        for(var j=0; j< partes.length; j++) {
            if(parts_selections[i]==partes[j].id){
                partes[j].textura_res = id_texture;
            }
        }
    }
}
// Finish Functions for DoubleClick Coat

/***GOOD****/
function change_border(idToCompare) {
    var make = false;
    $(document).find('#products').children('li').each(function(){
        var cps = $(this).find('.box_product').attr('ps');
        //var classjc;
        if (cps == idToCompare){
            //classjc = $(this).attr('class');
            $(this).css('width','133px');
            $(this).find('.box_product').css('margin-left','0px');
            $(this).find('.box_product').css('margin-right','0px');
            $(this).find('.box_product').css('margin-top','0px');
            $(this).find('.box_product').css('margin-bottom','2px');
            $(this).find('.box_product').css('border-left','4px solid #973331');
            $(this).find('.box_product').css('border-right','4px solid #973331');
            $(this).find('.box_product').css('border-bottom','4px solid #973331');
            $(this).find('.number_product').css('margin-left','4px');
            make = true;
        }else if(make){
            //classjc = $(this).attr('class');
            $(this).css('width','129px');
            $(this).find('.box_product').css('margin-bottom','6px');
            $(this).find('.box_product').css('margin-right','4px');
            $(this).find('.box_product').css('margin-left','0px');
            $(this).find('.box_product').css('border','none');
            $(this).find('.number_product').css('margin-left','0px');
        }else{
            $(this).css('width','129px');
            $(this).find('.box_product').css('margin-bottom','6px');
            $(this).find('.box_product').css('margin-left','4px');
            $(this).find('.box_product').css('border','none');
            $(this).find('.number_product').css('margin-left','4px');
        }
    });
}

/****** Change div whit other html *****/
function change_div_html_static(filename) {
    load_html_and_change_div(filename, 'page-static');
}

function load_html_and_change_div(filename, divId) {
    try{
        $.ajax({
            //async:true,
            url : "html/" + filename + ".html",
            contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
            success : function (data) {
                $("#" + divId).html(data);
            },
            error: function(result) {
            //alert("Error in $.ajax request") ;
            }
        });
    }catch(e){

    }finally{
        $("#bottom-areas").css('display','none');
        $("#bottom-products").css('display','none');
        $("#news").css('display','none');
        $("#menu2").css('visibility','hidden');
        $("#menu3").css('display','none');
        $("#menu4").css('display','none');
        $("#text-description").css('display','none');
        $("#page-static").css('display','block');
    }
}

function change_color_option(capa,id) {
    $('#'+capa).find(".ajustar").find(".option").css('color','white');
    $('#'+capa).find(".ajustar").find(".option[id="+ id +"]").css('color','#DD7171');
}

/****** Send Form Contact to user a Webmaster *****/
//function load_html_email() {
//    var call = new servCall("Retrieve_xml") ;
//    call.method = "GET";
//    call.arguments.push(new Array('url_xml', url_web + 'xml/email.html'));
//
//    var params = new Array(2);
//    for (i= 0; i < params.length; ++ i)
//        params [i] = new Array(2);
//    params[0][0] = "url_serv";
//    params[0][1] = url_serv;
//    params[1][0] = "func";
//    params[1][1] = "load_html_email";
//
//    loadXml( call, params );
//}

function load_html_email() {
    $.ajax({
        type: "GET",
        url: "xml/email.html",
        dataType: "html",
        success: function(xml) {
            cb_load_html_email(xml);
        }
    });
}

function cb_load_html_email( str ) {
    // alert("LOAD HTML EMAIL-> " + XmlToString( str ))
    var lang_param= '';
    //    str = XmlToString(str);

    var sMailTo = getKeyTranslation('sMailTo', lang_param);
    if (sMailTo == null) {
        sMailTo = "Enviado por ";
    }
    str = str.replace('sMailTo', sMailTo);

    var sMailSendedBy = getKeyTranslation('sMailSendedBy', lang_param);
    if (sMailSendedBy == null) {
        sMailSendedBy = "Con e-mail";
    }
    str = str.replace('sMailSendedBy', sMailSendedBy);

    var sMailIssueBy = getKeyTranslation('sMailIssueBy', lang_param);
    if (sMailIssueBy == null) {
        sMailIssueBy = "Asunto";
    }
    str = str.replace('sMailIssueBy', sMailIssueBy);

    var sMailPersonalMessage = getKeyTranslation('sMailPersonalMessage', lang_param);
    if (sMailPersonalMessage == null) {
        sMailPersonalMessage = "Mensaje personal ";
    }
    str = str.replace('sMailPersonalMessage', sMailPersonalMessage);

    var sMailDisclaimer = getKeyTranslation('sMailDisclaimer', lang_param);
    if (sMailDisclaimer == null) {
        sMailDisclaimer = "Este e-mail y todos los archivos transmitidos con él, incluidos las respuestas y los reenvíos, son confidenciales y de uso exclusivo del destinatario original. Puede contener material protegido por la relación abogado-cliente. Si no eres el destinatario oficial o la persona responsable de la entrega al destinatario final, has recibido este e-mail por error y su uso te está estrictamente prohibido. En ese caso, por favor, hágalo saber llamando al +34 963 912 838 o vía e-mail (morata@morata.com), incluyendo una copia de este mensaje, y después bórrelo y destruya cuantas copias tenga de él.";
    }
    str = str.replace('sMailDisclaimer', sMailDisclaimer);

    var header_src = url_web + "img/header_email.png";
    var mail_to = $('#iName').val();
    var mail_from = $('#iEmail').val();
    var message = $('#iMessage').val();
    var issue = $('#iIssue').val();

    str = str.replace('sHEADER_SRC', header_src);
    str = str.replace('sMAIL_TO', mail_to);
    str = str.replace('sMAIL_FROM', mail_from);
    str = str.replace('sMAIL_ISSUE', issue);
    str = str.replace('sMESSAGE', message);

    /* Send product */
    if (valEmail(mail_from)) {
        send_message('morata@morata.com', "Contacto desde Web Morata - "+ issue, str);
    }
    else {
        alert( "El email introducido no tiene un formato correcto." );
    }
}


function send_message(para, asunto, contenido) {
    var contenido_no_amp = contenido.replace(/&/g,"¬");
    
    var from_email = $('#iEmail').val();

    $('.send').addClass('loading_yellow');

    var call = new servCall("Send_message");
    call.method = "GET";
    call.arguments.push(new Array('from', from_email));
    call.arguments.push(new Array('to', para));
    call.arguments.push(new Array('subject', escape(asunto)));
    call.arguments.push(new Array('content', escape(contenido_no_amp)));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));

    var params = new Array(4);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "functio";
    params[1][1] = "send_message";
    params[2][0] = "xslfile";
    params[2][1] = "";
    params[3][0] = "catalogue_name";
    params[3][1] = catalogue_name;

    loadXml( call, params );
}

function cb_send_message(result) {
    $('.send').html("Mensaje enviado con éxito.");
}

/** Functions for Load News **/
function change_to_news(){
    $("#bottom-areas").css('display','none');
    $("#bottom-products").css('display','none');
    $("#page-static").css('display','none');
    $("#menu2").css('visibility','hidden');
    $("#menu3").css('display','none');
    $("#menu4").css('display','none');
    $("#text-description").css('visibility','visible');
    $("#text-description").css('display','none');
    $("#news").css('display','block');
}

google.load("feeds", "1");

function load_news() {
    var feed = new google.feeds.Feed("http://moratablog.blogspot.com/feeds/posts/default?alt=rss");
    feed.setNumEntries(4);
    feed.load(function(result) {
        if (!result.error) {
            var html;
            //$('#html-news').html("");
            var i=0;
            while ((i < result.feed.entries.length)&(i<5)) {
                var entry = result.feed.entries[i];
                var fecha = new Date(entry.publishedDate);
                //var dayWord = fecha.getDay();//Devuelve el día de la semana.
                var dayNumber = fecha.getDate();//Devuelve el día del mes.
                var mes = fecha.getMonth()//Devuelve el mes (atención al mes que empieza por 0).
                var namesMes = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
                var nameMes = namesMes[mes];
                var anyo = fecha.getFullYear()//Retorna el año con todos los dígitos. Usar este método para estar seguros de que funcionará todo bien en fechas posteriores al año 2000.
                html="<div class='new'>";
                html+="<div class='title_new'>"+entry.title+"</div>";
                html+="<div class='data_new'>"+dayNumber+" "+nameMes+" "+anyo+"</div>";
                html+="<div class='content_new'>";
                html+=entry.contentSnippet;
                html+="</div>";
                html+="<a class='link_new' href='"+entry.link+"' target='_blank'>Leer más</a>";
                html+="</div>";
                $('#html-news').append(html);
                i++;
            }
        }
    });
}
/** End Functions Load News **/

/** Functions for Info Products **/
function get_property( element_id, property_name ) {
    //var property_name = 'EXTRA-INFO';
    var call = new servCall("Query") ;
    call.method = "GET";
    call.arguments.push(new Array('action', 'Get_Property'));
    call.arguments.push(new Array('catalogue_name', escape(catalogue_name)));
    call.arguments.push(new Array('database_id', escape(database_id)));
    call.arguments.push(new Array('element_id', element_id));
    call.arguments.push(new Array('property_name', escape(property_name)));
    call.arguments.push(new Array('language', ''));
    call.arguments.push(new Array('recursive', 'true'));

    var params = new Array(3);
    for (i= 0; i < params.length; ++ i)
        params [i] = new Array(2);
    params[0][0] = "url_serv";
    params[0][1] = url_serv;
    params[1][0] = "func";
    params[1][1] = "get_property";
    params[2][0] = "property_name";
    params[2][1] = escape(property_name);

    loadXml( call, params );
}

function cb_get_property(result, property_name) {
    if(property_name=='EXTRA-INFO'){
        var msg = $(result).find("msg").text();
        if(msg!='null') $('#description_product').html(msg);
    }
}


// Functions for Zoom Texture
function view_texture_zoom(id_compare) {
    var url_zoom_image;
    for(var c=0; c<categorias.length; c++) {
        var d;
        for(d=0; d<categorias[c].especificaciones.length && (categorias[c].especificaciones[d].id!=id_compare); d++){}
        if(d!=categorias[c].especificaciones.length){
            $('#a_lightbox_texture').attr("title", categorias[c].especificaciones[d].nombre);
            var url_image = categorias[c].especificaciones[d].img;
            url_zoom_image = replaceAll(url_image, "mode=thumb", "mode=original" );
            url_zoom_image = replaceAll(url_zoom_image, "width=", "=" );
            url_zoom_image = replaceAll(url_zoom_image, "height=", "=" );
            //img_text = "<img title='"+ name_text +"' alt='"+ name_text +"' width='" + DIM_TEXTURE_IMAGE[0] + "' height='" + DIM_TEXTURE_IMAGE[1] + "' border='0' src=" + img_text_src + " />";
            break;
        }
    }
    show_texture(url_zoom_image);
}

function show_texture(url) {
    if (window.ActiveXObject)
        img_lightbox_texture(url); // IE
    else
        img_lightbox2_texture(url); // Navegadores normales
}

// jquery lightbox
function img_lightbox_texture( url ) {
    SexyLightbox.display(url);
    $('#a_lightbox_texture').attr("href", url);
    //    $('#a_lightbox').lightBox({
    //        fixedNavigation:true
    //    });
    $('#a_lightbox_texture').click();
}

function img_lightbox2_texture( url ) {
    SexyLightbox.display(url);
    $('#a_lightbox_texture').attr("href", url);
    $('#a_lightbox_texture').attr("rel", "sexylightbox[222]");
    //  SexyLightbox.close();
    SexyLightbox.refresh();
    $('#a_lightbox_texture').click();
}
