﻿var date = new Date();
$(document).ready(function() {
    MostrarDisplayCarrito();
});



$.fn.fixBroken = function() {
    return this.each(function() {
        var tag = $(this);
        var alt_img = 'images/noDisponible.jpg';
        tag.error(function() { // this adds the onerror event to images  
            tag.attr("src", alt_img); // change the src attribute of the image  
            return true;
        });
    });
};


function actualizarNodoArbol(elementoLink,divSubtemas, actualizar)
{
  if (actualizar)
  {
      $("#" + divSubtemas).fadeSliderToggle();
      
      if ($("#" + elementoLink).css('background-image').indexOf("mas.jpg")!=-1)
      {
        $("#" + elementoLink).css('background-image','url(/imagenes/menos.jpg)'); 
          $("#" + elementoLink).attr('title',"Contraer categorías");
      }
      else
      {
      
        $("#" + elementoLink).css('background-image','url(/imagenes/mas.jpg)');
        $("#" + elementoLink).attr('title',"Expandir categorías");
      }
  }
}
function comprarDesdeFicha(imagen, titulo, link) {
    window.scrollTo(0, 0);
    document.getElementById('imagen_producto_compra').src = imagen;
    document.getElementById('titulo_producto_compra').innerHTML = titulo;
    //Effect.toggle('carritoAdd', 'slide');

    $("#carritoAdd").fadeSliderToggle();
    document.getElementById("carritoAddBack").style.display = 'block';
    setTimeout("toggle()", 4000);
}



function toggle() {
    $("#carritoAdd").fadeSliderToggle();
    document.getElementById("carritoAddBack").style.display = 'none';
    document.getElementById('imagen_producto_compra').src = "";
}
var res;
function AgregaAlChango(id) {
    //debugger;
    window.scrollTo(0, 0);
    var cantidad = 1; //$("#CantCompraEnFicha").attr('value');
    var url = "func.ajax?a=add&cod=" + id + "&cant=" + cantidad;
    var req = crearXMLHttpRequest();
    if (req != null) {
        req.open("GET", url, true);
        req.onreadystatechange = function() {
            if (req.readyState == 4)
                if (req.status == 200) {
                res = req.responseXML;
                ProcesarRespuesta(res);
            }
        }
        req.send(null);
    }
}

function agregaAlChangoHome(id) {
    //debugger;
    window.scrollTo(0, 0);
    var cantidad = 1;
    var url = "func.ajax?a=add&cod=" + id + "&cant=" + cantidad;
    var req = crearXMLHttpRequest();
    if (req != null) {
        req.open("GET", url, true);
        req.onreadystatechange = function() {
            if (req.readyState == 4)
                if (req.status == 200) {
                res = req.responseXML;
                ProcesarRespuesta(res);
            }
        }
        req.send(null);
    }
}

function crearXMLHttpRequest() {
    var xmlHttp = null;
    if (window.ActiveXObject)
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    else
        if (window.XMLHttpRequest)
        xmlHttp = new XMLHttpRequest();
    return xmlHttp;
}

function ProcesarRespuesta(resp) {

    if (resp.getElementsByTagName("error")[0] != null)
        alert(resp.getElementsByTagName("error")[0].childNodes[0].data);
    else {
        var precio = res.getElementsByTagName("response")[0].getElementsByTagName("precio_total")[0].childNodes[0].data;
        var cantidad = res.getElementsByTagName("response")[0].getElementsByTagName("cantidad_total")[0].childNodes[0].data;


        ActualizarDisplayCarrito(precio, cantidad);
    }
}
function abre(pagina) {
    window.open(pagina, 'Formatos', 'resizable=yes,menubar=no,location=no,toolbar=no,status=no,scrollbars=yes,directories=no,width=380,height=460')
}
function MostrarDisplayCarrito() {

    var cantidad = get_cookie("carrito_cantidad");
    var precio = get_cookie("carrito_total");

    if (cantidad == null)
        cantidad = 0;
    if (precio == null)
        precio = '0.00';
    if (cantidad == 0) {
        $("#ctl00_lnkCerrarCarritoMaster").attr("href", "carrito.aspx?cerrarcompra=no");
        if ($("#ctl00_ContentPlaceHolderContenido_lnkCerrarCompra").length > 0) {
            $("#ctl00_ContentPlaceHolderContenido_lnkCerrarCompra").css("display", "none");
        }
    }
    else
        $("#ctl00_lnkCerrarCarritoMaster").attr("href", "carrito.aspx?cerrarcompra=si");
    if (cantidad != 1)
        $('#ctl00_cantItemsCarrito').html(cantidad + " Libros")
    else
        $('#ctl00_cantItemsCarrito').html(cantidad + " Libro")
    $('#ctl00_totalPrecioCarrito').html("$" + precio);



}
function ActualizarDisplayCarrito(precio, cantidad) {
    delete_cookie("carrito_cantidad");
    delete_cookie("carrito_total");

    set_cookie("carrito_cantidad", cantidad);
    set_cookie("carrito_total", precio);

    MostrarDisplayCarrito()
}
/* COOKIES */

// devuelve el valor de una cookie
function get_cookie(cookie_name) {
    var results = document.cookie.match(cookie_name + '=(.*?)(;|$)');

    if (results)
        return (unescape(results[1]));
    else
        return null;
}

// borra una cookie
function delete_cookie(cookie_name) {
    var cookie_date = new Date();  // current date & time
    cookie_date.setTime(cookie_date.getTime() - 1);
    document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

// guarda una cookie
function set_cookie(name, value, exp_y, exp_m, exp_d, domain) {
    var cookie_string = name + "=" + escape(value);

    if (exp_y) {
        var expires = new Date(exp_y, exp_m, exp_d);
        cookie_string += "; expires=" + expires.toGMTString();
    }

    if (domain)
        cookie_string += "; domain=" + escape(domain);
    cookie_string += "; path=/"

    document.cookie = cookie_string;
}

/* FIN COOKIES */
/* FOOTSTEPS */

// se encarga de inicializar el sistema de footsteps
// lo que se guarda en footsteps es un valor asociado a una url
function footsteps(cantidad) {
    //variables de configuracion de footsteps
    this.Cantidad = 5 //por defecto es 5
    if (cantidad) this.Cantidad = cantidad;

    // si no estan creadas las cookies las crea con el texto null para evitar conflictos con IE mas adelante.
    for (i = 1; i <= this.Cantidad; i++) {
        if (get_cookie("footsteps_" + i) == null)
            set_cookie("footsteps_" + i, "null", date.getFullYear() + 1, date.getMonth(), date.getDate());
    }

    //agrega a footsteps
    this.add_to_footsteps = agregar_a_footsteps
    this.bind_footsteps = bind_footsteps
    this.get_footstep_at = mostrar_footsteps

    this.get_cantidad = function() { return this.Cantidad; }
}


function footstep(nombre, link, precio) {
    this.link = link
    this.nombre = nombre
    this.precio = precio

}

// agrega a footsteps
function agregar_a_footsteps(nombre, url, precio) {
    // decide si se agrega o no a footsteps
    if (valida_footstep(nombre, url, precio)) {
        var hoy = new Date();
        // primero desplaza los footsteps hasta llegar al final
        for (i = this.Cantidad; i > 1; i--) {
            var aux;
            aux = get_cookie("footsteps_" + (i - 1));
            set_cookie("footsteps_" + i, aux, hoy.getFullYear() + 1, hoy.getMonth(), hoy.getDate());
        }
        // luego guarda en el primer footstep
        set_cookie("footsteps_1", nombre + "~" + precio + "~" + url, hoy.getFullYear() + 1, hoy.getMonth(), hoy.getDate());
    }
}

function valida_footstep(nombre, url, precio) {
    // Esta funcion queda a criterio de cada uno
    return true;
}

function bind_footsteps(id_todo, id_div, id_a, id_text, sin_visitas) {
    var sem = false;
    var huella

    for (i = 1; i <= this.Cantidad; i++) {
        var elHuellaLink = document.getElementById(id_a + "_" + i);
        var elHuellaDiv = document.getElementById(id_div + "_" + i);
        var elHuellaTodo = document.getElementById(id_todo);
        var elSinVisitas = document.getElementById(sin_visitas);
        var elHuellaText = document.getElementById(id_text + "_" + i);
        huella = this.get_footstep_at(i);
        if (huella != null) {
            sem = true;
            if (elHuellaLink != null) {
                elHuellaLink.href = huella.link;
                elHuellaLink.innerHTML = huella.nombre;
            }
            if (elHuellaText != null) {
                elHuellaText.innerHTML = huella.precio;
            }
            if (elHuellaDiv != null)
                elHuellaDiv.style.display = "block";
        }
        else {
            if (elHuellaDiv != null)
                elHuellaDiv.style.display = "none";
        }

        if (sem) {
            if (elHuellaTodo != null)
                elHuellaTodo.style.display = "block";
            if (sin_visitas) {
                if (elSinVisitas != null)
                    elSinVisitas.style.display = "none";
            }
        }
        else {
            if (elHuellaTodo != null)
                elHuellaTodo.style.display = "none";
            if (sin_visitas) {
                if (elSinVisitas != null)
                    elSinVisitas.style.display = "block";
            }
        }
    }


}


function mostrar_footsteps(num) {
    var aux;
    var vector;
    aux = get_cookie("footsteps_" + num);
    if (aux != null && aux != "" && aux != "undefined" && aux != "null") {
        vector = aux.split("~");
        return new footstep(vector[0], vector[2], vector[1]);
    }
    else
        return null;
}


///* FIN FOOTSTEPS */


///* Inicio SOLAPAS FICHA */
function mostrarSolapa(solapaAMostrar) {
    $("div#detSolapas >h2").hide();
    $("div#detSolapas #header" + solapaAMostrar).show();

    $("div#detSolapas >a").show();
    $("div#detSolapas #lnkHeader" + solapaAMostrar).hide();

    $("div#contenidoSolapas .detSolapasCont").hide();
    $("div#contenidoSolapas #solapa" + solapaAMostrar).show();
}
///* fIN SOLAPAS FICHA */



///INICIO IMPRIMIR FICHA//
function printFicha() {
    $(".lienzo").jqprint({ importCSS: true });
}
///FIN IMPRIMIR FICHA//


/* Realiza las acciones con los filtros dependiendo de su presencia o ausencia  */
function filtrar(strP) {
    // URL a la que voy a redirigir
    var strHref = window.location.href;

    var strQueryString = strHref.split("?");

    // Obtengo el array con el query enviado y su valor
    var campos = strP.split("=");

    // Me fijo si el query ya esta en la URL
    if (getURLParam(campos[0]) != "") {
        // Si esta y es un criterio distinto al criterio que se esta enviando, lo cambio por el nuevo
        if (getURLParam(campos[0]) != campos[1]) {

            strHref = strQueryString[0] + eliminarParam(campos[0]) + "&" + strP;
        }
        else
        // Si esta y es el mismo lo saco (elimino el filtro)
        {
            strHref = strQueryString[0] + eliminarParam(campos[0]);
        }
    }
    else
    // Si no esta en la URL, lo agrego
    {
        strHref = strQueryString[0] + eliminarParam(campos[0]) + "&" + strP;
    }

    // Redirijo a la URL armada
    //window.location = strHref;
    window.location = eliminarP(strHref, "p");  //devuelve la url sin el parametro p que representa la pagina
}




/* redirects busqueda */

/* Obtener el valor de un parámetro determinado */

function getURLParam(strParamName) {
    var strReturn = "";
    var strHref = window.location.href;
    if (strHref.indexOf("?") > -1) {
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for (var iParam = 0; iParam < aQueryString.length; iParam++) {
            if (
        aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }
    return unescape(strReturn);
}

/* Retorna todas las queries con su valor salvo el parámtetro enviado como argumento */

function eliminarParam(strParamName) {
    var cadena = "";
    var strHref = window.location.href;

    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");

    for (var iParam = 0; iParam < aQueryString.length; iParam++) {
        var aParam = aQueryString[iParam].split("=");
        if (aParam[0] != strParamName && aParam[0] != "pg")
            cadena = cadena + aQueryString[iParam] + "&";
    }

    return cadena.substr(0, cadena.length - 1);
}

/* elimina un parametro de un string enviado */
function eliminarP(strval, strParamName) {
    var cadena = "";
    var strHref = strval;

    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");

    for (var iParam = 0; iParam < aQueryString.length; iParam++) {
        var aParam = aQueryString[iParam].split("=");
        if (aParam[0] != strParamName)
            cadena = cadena + aQueryString[iParam] + "&";
    }

    return cadena.substr(0, cadena.length - 1);
}


/* redirige a la página actual agregando el query que crea a partir del Drop Down de orden */

function redirectDDPlus(obj) {
    var idxval = obj.options[obj.selectedIndex].value;
    var idx = idxval.split("=");

    if (idx[1] == "none") {
        var strHref = window.location.href;
        var strQueryString = strHref.split("?");
        strHref = strQueryString[0] + eliminarParam("orden");
    }
    else {
        var strHref = window.location.href;
        var strQueryString = strHref.split("?");
        strHref = strQueryString[0] + eliminarParam("orden") + "&" + obj.options[obj.selectedIndex].value;
    }

    window.location = eliminarP(strHref, "p");  //devuelve la url sin el parametro p que representa la pagina
}

/* Redirige a la página actual excluyendo el parámetro del argumento */

function excluirParam(P) {
    var strHref = window.location.href;
    var strQueryString = strHref.split("?");
    strHref = strQueryString[0] + eliminarParam(P);

    window.location = eliminarP(strHref, "p");  //devuelve la url sin el parametro p que representa la pagina
}

function mostrarDiv(id) {
    if (document.getElementById(id).style.display == "none") {
        document.getElementById(id).style.display = "inline";
    } else {
        document.getElementById(id).style.display = "none";
    }
}
function redirectorden() {
    var aaaa = document.getElementById("ctl00_contentPlaceHolderContenidoCentral_select_orden")[document.getElementById("ctl00_contentPlaceHolderContenidoCentral_select_orden").selectedIndex].value;
    var bbbb;

    if (aaaa == "> Precio")
        bbbb = "maxprec";
    if (aaaa == "Relevancia")
        bbbb = "re";
    if (aaaa == "< Precio")
        bbbb = "minprec";

    redirectPlus("orden=" + bbbb);
}
/* Redirige a la misma página agregando el argumento pasado como parámetro */
function redirectPlus(strP) {
    var campos = strP.split("=");
    var strHref = window.location.href;
    var strQueryString = strHref.split("?");
    strHref = strQueryString[0] + eliminarParam(campos[0]) + "&" + strP;
    window.location = eliminarP(strHref, "p");  //devuelve la url sin el parametro p que representa la pagina
}

/* Realiza las acciones con los filtros dependiendo de su presencia o ausencia  */
function filtrar(strP) {
    // URL a la que voy a redirigir
    var strHref = window.location.href;

    var strQueryString = strHref.split("?");

    // Obtengo el array con el query enviado y su valor
    var campos = strP.split("=");

    // Me fijo si el query ya esta en la URL
    if (getURLParam(campos[0]) != "") {
        // Si esta y es un criterio distinto al criterio que se esta enviando, lo cambio por el nuevo
        if (getURLParam(campos[0]) != campos[1]) {

            strHref = strQueryString[0] + eliminarParam(campos[0]) + "&" + strP;
        }
        else
        // Si esta y es el mismo lo saco (elimino el filtro)
        {
            strHref = strQueryString[0] + eliminarParam(campos[0]);
        }
    }
    else
    // Si no esta en la URL, lo agrego
    {
        strHref = strQueryString[0] + eliminarParam(campos[0]) + "&" + strP;
    }

    // Redirijo a la URL armada
    //window.location = strHref;
    window.location = eliminarP(strHref, "p");  //devuelve la url sin el parametro p que representa la pagina
}

