﻿/////////////////////////////////
///// VARIABLES DE BÚSQUEDA /////
/////////////////////////////////
var IDDivPintarResultdos;
var CodigoUltimaSubcategoriaPinchada = 0;
var estadoCB = 0; //Panel criterios de búsqueda (parte superior)
var UltimoTextoBuscado = '';
var IdPnl = '';
var Idlbl = '';
var ProductsIDParaComparar = '';
var Quitar_Filtro_Caracteristicas = false;
var Orden = 0;
var CodUsuario = '';
var Los_Viltros_Estan_Visibles = false;
var Comisiones = 0;

///// ACCESOS DIRECTOS /////
shortcut.add("Ctrl+s", function() {$get('stock').title = 'seleccionado';Filtrar('');});
shortcut.add("Ctrl+a", function() {RestaurarFiltro_Stock()});
shortcut.add("Ctrl+q", function() {VerComparador();});



function LimpiarDivsCategorias() {
    for (i = 0; i < 40; i++) {
        try { $get('BASubcat' + i).style.display = 'none'; }
        catch (Error) { }
    }
}

//B_fabricante_filtros
function PintarResultados(Idioma, Catid, Codcliente, CodAlmacen, idpanel, UserId) {
    IDDivPintarResultdos = idpanel;
    CodigoUltimaSubcategoriaPinchada = Catid;
    UltimoTextoBuscado = '';
    try {$get('B_cargandogrid_loader').style.display = 'block';} catch (Error) {}
    var CodAlmacen = $get('ctl00_CodAlmacen').value;
    if (CodAlmacen == '') { CodAlmacen = 0 };
    ConexionSW.PintarResultados_new(Idioma, Catid, Codcliente, CodAlmacen, CodUsuario, Path_Imagenes, PintarResultados_newOK, PintarResultados_fail);
}

function PintarResultados_newOK(resultado) {

    var RespuestaDelServidor = new Array(resultado.split('~'));

    ProductsIDParaComparar = '';
    CheckCompararAntiguo = '';

    $get('ctl00_ContentPlaceHolder1_B_Busqueda').innerHTML = RespuestaDelServidor[0][0];
    ListadoDeFabricantes = new Array(RespuestaDelServidor[0][1].split(';'));
    Caracteristicas_Tecnicas = new Array(RespuestaDelServidor[0][2].split('|'));

    if (Los_Viltros_Estan_Visibles == true) {
        MostrarFiltros(RespuestaDelServidor[0][1]);
    }
    else {
        OcultarFiltros();
    }

    //$get('B_cargandogrid_loader').style.display = 'none';

}


function PintarResultados_Texto(Idioma, Texto, Codcliente, CodAlmacen, idpanel, UserId) {
    IDDivPintarResultdos = idpanel;
    UltimoTextoBuscado = Texto;
    CodigoUltimaSubcategoriaPinchada = 0;
    
    $get('B_cargandogrid_loader').style.display = 'block';
    
    ConexionSW.PintarResultados_Texto(Idioma, Texto, Codcliente, CodAlmacen, CodUsuario, Path_Imagenes, PintarResultados_newOK, PintarResultados_fail);
}

function PintarResultados_fail(error) {
    $get('B_cargandogrid_loader').style.display = 'none';
    alert('Error al conectar al servidor, por favor reintentelo en unos segundos');
}

function VerProductos(SubCat) {
    try {
        if (Codcliente == '') { Codcliente = $get('ctl00_CodClienteJS').value; }
        PintarResultados('6', SubCat, Codcliente, $get('ctl00_CodAlmacen').value, 'B_gridresultados_div', '');
    } catch (Error) {
        //location.href = 'Busqueda.aspx?SubCatid=' + SubCat;
    }
}


function Quitar_Todos_Los_Filtros() {
    PintarResultados('6', CodigoUltimaSubcategoriaPinchada, 0, 0, 'B_gridresultados_div', '{35858A6A-9337-4B54-BB4F-EA3ED65ADE7C}');
}

function OcultarCriteriosBusqueda(Panel, imagen, rutaON, rutaOFF) {
    if (estadoCB == 0) {
        estadoCB = 1;
        $get(imagen).src = rutaON;
        $get(Panel).style.display = 'none';
    } else {
        $get(Panel).style.display = 'block';
        $get(imagen).src = rutaOFF;
        estadoCB = 0;
    }
}

/************************************************/
/***********      FILTROS        ****************/
/************************************************/
function Filtrar(Caracteristica) {

    try { $get('B_cargandogrid_loader').style.display = 'block'; } catch (Error) { }
    //PRIMERO : RECUPERO LOS FABRICANTES DISPONIBLES
    var Fabricantes = '';
    try {
        var m = ListadoDeFabricantes[0].length - 1;
        for (i = 0; i < m; i++) {
            if ($get(ListadoDeFabricantes[0][i]).title == 'seleccionado') {
                Fabricantes = Fabricantes + ListadoDeFabricantes[0][i] + ',';
            }
        }
    } catch (Error) { }

    //SEGUNDO : STOCK
    var Stock = '';
    if ($get('stock').title == 'seleccionado') { Stock = 'Verde'; }
    if ($get('demanda').title == 'seleccionado') { Stock = Stock + ',Azul'; }
    if ($get('sinstock').title == 'seleccionado') { Stock = Stock + ',Rojo'; }

    var Liquidacion = '';
    var Bundle = '';
    var Promocion = '';
    var Novedad = '';

    //TERCERO : ESTADOS
    if ($get('liquidar').title == 'seleccionado') { Liquidacion = 'Liquidacion'; }
    if ($get('bundle').title == 'seleccionado') { Bundle = 'Bundle'; }
    if ($get('promo').title == 'seleccionado') { Promocion = 'Promocion'; }
    if ($get('novedad').title == 'seleccionado') { Novedad = 'Novedad'; }

    //CUARTO : CARACTERISTICAS TECNICAS
    var Caracteristicas = '';
    try {
        if (Quitar_Filtro_Caracteristicas == false) {
            var f = Caracteristicas_Tecnicas[0].length - 1;
            for (i = 0; i < f; i++) {
                if ($get(Caracteristicas_Tecnicas[0][i]).title == 'seleccionado') {
                    Caracteristicas = Caracteristicas + Caracteristicas_Tecnicas[0][i] + ',';
                }
            }
        }
        else { Quitar_Filtro_Caracteristicas = false; }
    } catch (Error) { }

    if (CodigoUltimaSubcategoriaPinchada == 0)
    { CodigoUltimaSubcategoriaPinchada = $get('ctl00_ContentPlaceHolder1_CodigoUltimaSubcategoriaPinchada').value; }

    //TENGO TODO, FILTRO GRID
    ConexionSW.FiltrarGrid(6, CodigoUltimaSubcategoriaPinchada, Codcliente, 0, '', Path_Imagenes, Fabricantes, Stock, $get('Precio_Min').value, $get('Precio_Max').value, Liquidacion, Bundle, Promocion, Novedad, Caracteristicas, Caracteristica, UltimoTextoBuscado, Orden, PintarResultados_newOK, PintarResultados_fail);
}

function MarcarDesMarcarFabricante(Fabricante) {
    Filtrar('');
}

function Ordenar(Tipo) {
    Orden = Tipo;
    Filtrar('');
}

function MarcarDesMarcarStock() {
    Filtrar('');
}

function RestaurarFiltro_Caracteristicas() {
    Quitar_Filtro_Caracteristicas = true;
    Filtrar('');
}

function RestaurarFiltro_Caracteristicas() {
    Quitar_Filtro_Caracteristicas = true;
    Filtrar('');
}

function RestaurarFiltro_Estados() {
    $get('liquidar').title = 'seleccionar';
    $get('bundle').title = 'seleccionar';
    $get('promo').title = 'seleccionar';
    $get('novedad').title = 'seleccionar';
    Filtrar('');
}

function RestaurarFiltro_Stock() {
    $get('stock').title = 'seleccionar';
    $get('demanda').title = 'seleccionar';
    $get('sinstock').title = 'seleccionar';
    Filtrar('');
}

function RestaurarFiltro_Precio() {
    $get('Precio_Min').value = '';
    $get('Precio_Max').value = '';
    Filtrar('');
}

function RestaurarFiltro_Fabricante() {
    var m = ListadoDeFabricantes[0].length - 1;
    var Fabricantes = '';

    for (i = 0; i < m; i++) {
        $get(ListadoDeFabricantes[0][i]).title = 'seleccionar';
    }
    Filtrar('');
}


function EstablecerNombreCatySubCat(NombreCategoria, NombreSubCategoria) {
    $get('CaptionCat').innerHTML = 'Categoría: ';
    $get('CaptionSubCat').innerHTML = 'Subcategoría: ';
    $get('ctl00_ContentPlaceHolder1_LBLCategoriaSeleccionada').innerHTML = NombreCategoria;
    $get('ctl00_ContentPlaceHolder1_LBLSubcategoriaSeleccionada').innerHTML = NombreSubCategoria;
}
function EstablecerNombreTXT(Texto) {
    $get('CaptionCat').innerHTML = 'Busqueda por Texto: ';
    $get('CaptionSubCat').innerHTML = '';
    $get('ctl00_ContentPlaceHolder1_LBLCategoriaSeleccionada').innerHTML = ' ' + Texto;
    $get('ctl00_ContentPlaceHolder1_LBLSubcategoriaSeleccionada').innerHTML = '';
}

//Rollovers del grid
function B_Prod_roll(obj, tipo, clase, numero) {
    try {
        if ($get('CompararProducto' + numero).checked == false) {
            if (clase == 'A' && tipo == 'over') { $get(obj).className = "C_G_productos_rowA_over"; }
            if (clase == 'A' && tipo == 'out') { $get(obj).className = "C_G_productos_rowA"; }
            if (clase == 'B' && tipo == 'over') { $get(obj).className = "C_G_productos_rowB_over"; }
            if (clase == 'B' && tipo == 'out') { $get(obj).className = "C_G_productos_rowB"; }
        }
    
    } catch (Error) { }
}

function B_Chk_Comparar(check, codart, row, clase, numero) {
    if ($get(check).checked == true) {
        B_Prod_roll(row, 'over', clase, numero);
    } else {
        B_Prod_roll(row, 'out', clase, numero);
    }
}

//----------------------------------------------------------------------//Funciones para la pantalla de búsqueda
function B_MostrarFiltros() {
    try {
        if ($get('B_Filtros_div').style.display == 'none') {
            Los_Viltros_Estan_Visibles = true;
            $get('B_Filtros_div').style.display = 'block';
            $get('B_MostrarFiltros_btn').style.backgroundPosition = '0 -20px';
        } else {
            Los_Viltros_Estan_Visibles = false;
            $get('B_Filtros_div').style.display = 'none';
            $get('B_MostrarFiltros_btn').style.backgroundPosition = '0 0px';
        }
    } catch (Error) {
        alert('No tiene ninguna subcategoria seleccionada, para poder mostrar sus filtros');
    }
}

function MostrarFiltros() {
    $get('B_Filtros_div').style.display = 'block';
}

function OcultarFiltros() {
    try {
        $get('B_Filtros_div').style.display = 'none';
    } catch (Error) { }
}

function PonerRolloverOK(obj) {
    if ($get(obj).title == "seleccionado") {
        $get(obj).style.backgroundPosition = '0 0px';
        $get(obj).title = "seleccionar";
    } else {
        $get(obj).style.backgroundPosition = '0 -44px';
        $get(obj).title = "seleccionado";
    }
}

function PonerRollover_Grande(obj) {
    if ($get(obj).title == "seleccionado") {
        $get(obj).style.backgroundPosition = '0 0px';
        $get(obj).title = "seleccionar";
    } else {
        $get(obj).style.backgroundPosition = '0 -56px';
        $get(obj).title = "seleccionado";
    }
}

function MostrarCajaFiltrado(btn, div) {

    if ($get(div).style.display == '' || $get(div).style.display == 'none') {
        $get(btn).style.backgroundPosition = '0 -20px';
        $get(div).style.display = 'block';
    } else {
        $get(btn).style.backgroundPosition = '0 0px';
        $get(div).style.display = 'none';
    }
}

//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////          COMPARADOR DE PRODUCTOS          /////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////

function VerComparador() {
    Codcliente = $get('ctl00_CodClienteJS').value;
    var Productos = ProductosParaComparar('comparar', '');
    if (Productos == false) {
    } else {
        ConexionSW.VerComparador(Codcliente, CodigoUltimaSubcategoriaPinchada, Productos, Path_Imagenes, VerComparador_OK, VerComparador_FAIL);    
    }
}

function VerComparadorRequest(Productos,CodSubCat) {
    Codcliente = $get('ctl00_CodClienteJS').value;
    if (Productos == false) {
    } else {
        ConexionSW.VerComparador(Codcliente, CodSubCat, Productos, Path_Imagenes, VerComparador_OK, VerComparador_FAIL);
    }
}

function VerComparador_OK(resultado) {
    PonerBlock('DIV_Comparador');
    $get('DIV_Comparador').innerHTML = resultado;
}

function VerComparador_FAIL(Error) {
}

function ProductosParaComparar(accion, quality) {

    var ProductIDCheckado = '';
    ProductsIDParaComparar = '';
    var CuantosSeleccionados = 0;
    
    //1º) Recorro los checks
    //2º) Si esta checkado, entro
    //3º) Si es el primero, lo inserto sin ;
    //4º) Si es el cuarto, le impido que coga mas
    //5º) Control si no hay ninguno o solo 1 checkados
    
    //º1)
    for (i = 1; i < 1000; i++) {
        //2º)
        try {

            if ($get('CompararProducto' + i).checked == true) {

                if (quality == 'manuales' || quality == 'dmi') {
                    alert('Este producto no tiene habilitada la comparativa. Lamentamos las molestias.');
                    $get('CompararProducto' + i).checked = false;
                    return false;
                }
            
                ProductIDCheckado = $get('CompararProducto' + i).value;
                CuantosSeleccionados = ProductsIDParaComparar.split(";");
                //3º)
                if (ProductsIDParaComparar == '') {
                    ProductsIDParaComparar = ProductIDCheckado;
                } else {
                    //4º)
                    if (CuantosSeleccionados.length == 4) {
                        alert('Solo puedes seleccionar 4 productos para comparar');
                        $get('CompararProducto' + i).checked = false;
                        return false;
                    } else {
                        ProductsIDParaComparar = ProductsIDParaComparar + ';' + ProductIDCheckado;
                    }
                }
            }//Fin del if

        } catch (Error) { break; }
        
    }//Fin del for

    if (accion == 'comparar') {
        //5º)
        if (CuantosSeleccionados == 0 || CuantosSeleccionados.length < 1) {
            alert('Debes seleccionar al menos 2 productos para comparar');
            return false;
        }else{
            return ProductsIDParaComparar;    
        }
    }
}


