var indexBannerInterval;

$(function() {
    makeInputChangeable("login_username", false);
    loadShoppingCart();
    loadFirstTab();

    loadPrintedBooks(1, "indexContainer1");
    startModalCart();
    startModalWishlist();
    startModalCreateAccount();
    startModalLoginAndGo();
    startModalInfo();
    startModalSuggestToFriend();
    startModalRememberPassword();

    //if payment
    if($("#payment-steps-content").length > 0){
        loadPayment();
        startAddAddressModal();
        startSelectAddressModal();
    }

    //if product info
    if($("#ebookInfo").length > 0){
        startModalEbook();
    }

    startTooltips();
    startSpecialTooltip();
    startEditAddressModal();
    startSelectCategoriesModal();

//loadChat();
    
});

function addSuggestedToCart(product, suggested){

    $.ajax({
        url: '/lu/ajax.php?dest=cart&action=addSuggested',
        data:{
            product : product,
            suggested: suggested
        },
        type: "post",
        success: function(data) {
            //window.location.reload();
            showCart();
            //register GA goal
            GACart();
            GASuggestedProducts();
        }
    });

}

function addSuggestedCartToCart(suggested){

    $.ajax({
        url: '/lu/ajax.php?dest=cart&action=addSuggestedCart',
        data:{
            suggested: suggested
        },
        type: "post",
        success: function(data) {
            //window.location.reload();
            showCart();
            //register GA goal
            GACart();
            GASuggestedProducts();
        }
    });

}


///GA Functions
function GACreateAccount(){
    _gaq.push(['_trackPageview', '/create-account.php']);
}

function GACreateAccountExpress(){
    _gaq.push(['_trackPageview', '/create-account-express.php']);
}

function GAOrderConfirmation(){
    _gaq.push(['_trackPageview', '/confirmation.php']);
}

function GACart(){
    _gaq.push(['_trackPageview', '/cart.php']);
}

function GALogin(){
    _gaq.push(['_trackPageview', '/login.php']);
}

function GAAutocomplete(){
    _gaq.push(['_trackPageview', '/autocomplete.php']);
}

function GAAdvanced(){
    _gaq.push(['_trackPageview', '/advanced.php']);
}

function GACategoriesBooks(){
    _gaq.push(['_trackPageview', '/categories-books.php']);
}

function GACategoriesMovies(){
    _gaq.push(['_trackPageview', '/categories-movies.php']);
}

function GACategoriesManufacturers(){
    _gaq.push(['_trackPageview', '/categories-manufacturers.php']);
}

function GAWishlist(){
    _gaq.push(['_trackPageview', '/wishlist.php']);
}

function GANotify(){
    _gaq.push(['_trackPageview', '/notify.php']);
}

function GAInfoEbook(){
    _gaq.push(['_trackPageview', '/info-ebook.php']);
}

function GADownloadEbook(){
    _gaq.push(['_trackPageview', '/download-ebook.php']);
}

function GASocial(){
    _gaq.push(['_trackPageview', '/social-networks.php']);
}

function GABestsellers(){
    _gaq.push(['_trackPageview', '/bestsellers.php']);
}

function GADiscount(){
    _gaq.push(['_trackPageview', '/discount.php']);
}

function GASuggestedProducts(){
    _gaq.push(['_trackPageview', '/suggestedCart.php']);
}

function GAInfoIBD(){
    _gaq.push(['_trackPageview', '/IBD.php']);
}

function loadSuggested(id, div){
    $.ajax({
        url: '/lu/ajax.php?dest=common&action=suggested',
        data:{
            id: id
        },
        type: "post",
        success: function(data) {
            $("#"+div).html(data);
            startSpecialTooltip();
        }
    });
}
function setMethodPodShipping(id, name){
    $.ajax({
        url: '/lu/ajax.php?dest=shippingpodmethpod&action=setmethodpodshipping',
        data:{
            id: id,
            name: name
        },
        type: "post",
        success: function() {
            $("#payment-form-container > div").removeClass("selected");
            $("#payment-form-container .ok").html("");
            $("#payment-form-"+id).addClass("selected");
            loadPayment();
        }
    });
}
function loadCartSuggested(div){
    $.ajax({
        url: '/lu/ajax.php?dest=common&action=suggestedCart',
        type: "post",
        success: function(data) {
            $("#"+div).html(data);
            startSpecialTooltipCart();
        }
    });
}

function startSpecialTooltipCart(){
    $("a.special-tooltip2").cluetip({
        tracking: true,
        showTitle: false,
        arrows: false,
        dropShadow: false,
        leftOffset:70,
        width: 520,
        cluetipClass: "default2",
        sticky:           true,    // keep visible until manually closed
        mouseOutClose:    true,
        closeText:        'Cerrar',
        clickThrough:     false
    });
}

function startSpecialTooltip(){
    $(".special-tooltip").cluetip({
        tracking: true,
        showTitle: false,
        arrows: false,
        dropShadow: false,
        leftOffset:70,
        width: 520,
        cluetipClass: "default2",
        sticky:           true,    // keep visible until manually closed
        mouseOutClose:    true,
        closeText:        'Cerrar',
        clickThrough:     false
    });
}


function startTooltips(){
    $("a.tooltip").cluetip({
        tracking: true,
        showTitle: false,
        arrows: true,
        dropShadow: true,
        leftOffset:70,
        width: 200
    });
}

function validateCode(code){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=isValidPromoCode',
        data:{
            code: code
        },
        type: "post",
        success: function(data) {
            if(data == 1){
                loadPayment();
            }else if(data == -1){
                $("#promocodeMessage").show();
                $("#promocodeMessage").html('<div class="error">El código ha expirado</div>');
            }else{
                $("#promocodeMessage").show();
                $("#promocodeMessage").html('<div class="error">Código Inválido</div>');
            }
        }
    });
}

function saveId(id, type){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=saveId',
        data:{
            cc: id,
            type: type
        },
        type: "post",
        success: function(data) {
            if(data == 1){
                loadPayment();
            }else if(data == -1){
                $("#idMessage").show();
                $("#idMessage").html('<div class="error">El número de identificación es inválido</div>');
            }
        }
    });
}


function setComments(text){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=setComments',
        data:{
            comments: text
        },
        type: "post",
        success: function(data) {
        }
    });
}


function setGiftWrap(color){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=setGiftWrap',
        data:{
            color: color
        },
        type: "post",
        success: function(data) {
            loadPayment();
        }
    });
}

function goToPayment(){
    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=isLoggedIn',
        success: function(data) {
            if(data == 1){
                window.location.replace("/lu/payment.php");
            }else{
                closeModalCart();
                showCreateAccountModal();
            }
        }
    });
}

function placeOrder(){

    if($('#payment-form').length > 0){
        $('#payment-form').submit();
    }

    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=placeOrder&refVenta='+$('input[name="refVenta"]').val(),
        success: function(data) {
            $("#payment-steps-content").html(data);
        }
    });
}

function setPaymentForm(id, name){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=setPaymentForm',
        data:{
            id: id,
            name: name
        },
        type: "post",
        success: function() {
            $("#payment-form-container > div").removeClass("selected");
            $("#payment-form-container .ok").html("");
            $("#payment-form-"+id).addClass("selected");
            showOKInContainer("paymentImg-"+id);
        }
    });
}

function setShipping(id, name, value){

    /*var id = $("#shippingMethodId").val();
    var name = $("#shippingMethodName").val();
    var value = $("#shippingMethodValue").val();*/

    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=setShippingMethod',
        data:{
            id: id,
            name: name,
            value: value
        },
        type: "post",
        success: function() {
            $("#shipping-container > div").removeClass("selected");
            $("#shipping-container .ok").html("");
            $("#shipping-"+id).addClass("selected");
            showOKInContainer("shippingImg-"+id);
        }
    });
}

function setShippingVen(id, name, value){

    /*var id = $("#shippingMethodVenId").val();
    var name = $("#shippingMethodVenName").val();
    var value = $("#shippingMethodVenValue").val();*/

    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=setShippingMethodVen',
        data:{
            id: id,
            name: name,
            value: value
        },
        type: "post",
        success: function() {
            $("#shipping-container-ven > div").removeClass("selected");
            $("#shipping-container-ven .ok").html("");
            $("#shipping-"+id).addClass("selected");
            showOKInContainer("shippingImg-"+id);
        }
    });
}


function previousStep(){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=previous',
        success: function() {
            loadPayment();
        }
    });
}

function nextStep(){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=next',
        success: function() {
            loadPayment();
        }
    });
}

function addNewAddressToCustomer(){
    var gender = $('input:radio[name=gender]:checked').val();
    var firstname = $("#address-firstname").val();
    var lastname = $("#address-lastname").val();
    var company = $("#address-company").val();
    var address = $("#address-address").val();
    var suburb = $("#address-suburb").val();
    var postalCode = $("#address-postalCode").val();
    var city = $("#address-city").val();
    var state = $("#state").val();
    var country = $("#address-country").val();
    var type = $("#type").val();

    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=addNewAddress',
        data:{
            gender: gender,
            firstname: firstname,
            lastname: lastname,
            company: company,
            address: address,
            suburb: suburb,
            postalCode: postalCode,
            city: city,
            state: state,
            country: country,
            type: type
        },
        type: "post",
        success: function(data) {
            if(data.length > 1){
                $("#error-messages").html(data);
            }else{
                closeAddAddressModal();
            }
        }
    });

    return false;

}

function editAddress(){
    var gender = $('input:radio[name=gender]:checked').val();
    var firstname = $("#address-firstname").val();
    var lastname = $("#address-lastname").val();
    var company = $("#address-company").val();
    var address = $("#address-address").val();
    var suburb = $("#address-suburb").val();
    var postalCode = $("#address-postalCode").val();
    var city = $("#address-city").val();
    var state = $("#state").val();
    var country = $("#address-country").val();
    var type = $("#type").val();
    var id = $("#address_id").val();

    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=editAddress',
        data:{
            gender: gender,
            firstname: firstname,
            lastname: lastname,
            company: company,
            address: address,
            suburb: suburb,
            postalCode: postalCode,
            city: city,
            state: state,
            country: country,
            type: type,
            id:id
        },
        type: "post",
        success: function(data) {
            if(data.length > 1){
                $("#error-messages").html(data);
            }else{
                closeEditAddressModal();
                window.location.reload();
            }
        }
    });

    return false;

}

function selectAddress(id, type){

    var url = '/lu/ajax.php?dest=payment&action=';
    if(type == 1){
        url = url + 'changeShippingAddress';
    }else{
        url = url + 'changeBillingAddress';
    }


    $.ajax({
        url: url,
        data:{
            address: id
        },
        type: "post",
        success: function() {
            $("#address-container > div").removeClass("selected");
            $("#address-"+id).addClass("selected");
            $(".okContainer").html("");
            showOKInContainer("ok-"+id);
        }
    });
}

function loadPayment(){

    $("#payment-steps-content").addClass("center");
    showLoadingInContainer("payment-steps-content");
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=load',
        success: function(data) {
            $("#payment-steps-content").removeClass("center");
            $("#payment-steps-content").html(data);

            //stupid hack
            if($("#tipocedula2").length > 0){
                $("#tipocedula2").append("<option value=\"CC\">CC</option>");
                $("#tipocedula2").append("<option value=\"CE\">CE</option>");
                $("#tipocedula2").append("<option value=\"NIT\">NIT</option>");
                $("#tipocedula2").append("<option value=\"TI\">TI</option>");
                $("#tipocedula2").append("<option value=\"Otro\">Otro</option>");
            }
        }
    });

}

function showSelectCategoriesModal(){

    openModalSelectCategories();
    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=showSelectCategories',
        success: function(data) {
            $("#select-categories").html(data);
        }
    });
}

function showCreateAccountModal(){

    openModalCreateAccount();
    if($("#create-account-modal").html().length == 0){
        $.ajax({
            url: '/lu/ajax.php?dest=customer&action=showCreateAccount',
            success: function(data) {
                $("#create-account-modal").html(data);
            }
        });
    }
}


function showLoginAndGoModal(url, extra){

    openModalLoginAndGo();
    if($("#login-and-go-modal").html().length == 0){
        $.ajax({
            url: '/lu/ajax.php?dest=customer&action=showLogin&url='+url+extra,
            success: function(data) {
                $("#login-and-go-modal").html(data);
            }
        });
    }
}

function showLoginAndGoModalGeneral(url, extra){

    openModalLoginAndGo();
    if($("#login-and-go-modal").html().length == 0){
        $.ajax({
            url: '/lu/ajax.php?dest=customer&action=showLoginGeneral&url='+url+extra,
            success: function(data) {
                $("#login-and-go-modal").html(data);
            }
        });
    }
}

function showLoginAndNotify(product){

    openModalLoginAndGo();
    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=showLogin&extra=notify&products_id='+product,
        success: function(data) {
            $("#login-and-go-modal").html(data);
        }
    });
}

function showRememberPasswordModal(){

    openModalRememberPassword();
    if($("#remember-password-modal").html().length == 0){
        $.ajax({
            url: '/lu/ajax.php?dest=customer&action=showRememberPassword',
            success: function(data) {
                $("#remember-password-modal").html(data);
            }
        });
    }
}

function showSelectAddressModal(type){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=selectAddress',
        data:{
            type: type
        },
        type: "post",
        success: function(data) {
            $("#select-address-modal").html(data);
            openSelectAddressModal();
        }
    });
}

function showAddAddressModal(type){
    $.ajax({
        url: '/lu/ajax.php?dest=payment&action=addAddress&type='+type,
        success: function(data) {
            $("#add-address-modal").html(data);
            openAddAddressModal();
            $("#add-address-form").submit(function(){
                addNewAddressToCustomer();
                return false;
            });
        }
    });
}

function showEditAddressModal(address){
    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=editAddress',
        data:{
            address: address
        },
        type: "post",
        success: function(data) {
            openEditAddressModal();
            $("#edit-address-modal").html(data);
            $("#edit-address-form").submit(function(){
                editAddress();
                return false;
            });
        }
    });
}

function openSelectAddressModal(){
    $("#select-address-modal").dialog("open");
}

function openAddAddressModal(){
    $("#add-address-modal").dialog("open");
}

function openEditAddressModal(){
    $("#edit-address-modal").dialog("open");
}

function closeSelectAddressModal(){
    $("#select-address-modal").dialog("close");
}

function closeAddAddressModal(){
    $("#add-address-modal").dialog("close");
}

function closeEditAddressModal(){
    $("#edit-address-modal").dialog("close");
}

function startSelectAddressModal(){
    $("#select-address-modal").dialog({
        autoOpen: false,
        height: 400,
        width: 500,
        modal: true,
        show: "blind",
        hide: "explode",
        title: "Seleccionar dirección",
        beforeClose: function() {
            loadPayment();
        }
        
    });
}

function startSelectCategoriesModal(){
    $("#select-categories").dialog({
        autoOpen: false,
        height: 680,
        width: 600,
        modal: true,
        show: "blind",
        hide: "explode",
        title: "Selecciona las áreas de tu interés"
    });
}

function startAddAddressModal(){
    $("#add-address-modal").dialog({
        autoOpen: false,
        height: 550,
        width: 600,
        modal: true,
        show: "blind",
        hide: "explode",
        title: "Agregar dirección",
        beforeClose: function() {
            loadPayment();
        }
    });
}

function startEditAddressModal(){
    $("#edit-address-modal").dialog({
        autoOpen: false,
        height: 550,
        width: 600,
        modal: true,
        show: "blind",
        hide: "explode",
        title: "Editar dirección"
    });
}


function loadLatestProductsFromCategory(page, div, action, category){
    if(page <= 0){
        return;
    }
    $("#"+div+"Loading").fadeIn(20);
    $("#"+div+"Content").hide();

    $.ajax({
        url: '/lu/ajax.php',
        data:{
            dest: "common",
            action: action,
            page : page,
            category : category
        },
        type: "get",
        success: function(data) {
            $("#"+div+"Loading").fadeOut();
            $("#"+div+"Content").fadeIn(1000);
            $("#"+div+"Content").html(data);
            $("#"+div+"Loaded").val(1);
            $("#"+div+"Page").val(page);
        }
    });
}

function loadLatestProductsFromManufacturer(page, div, action, manufacturer){
    if(page <= 0){
        return;
    }
    $("#"+div+"Loading").fadeIn(20);
    $("#"+div+"Content").hide();

    $.ajax({
        url: '/lu/ajax.php',
        data:{
            dest: "common",
            action: action,
            page : page,
            manufacturer : manufacturer
        },
        type: "get",
        success: function(data) {
            $("#"+div+"Loading").fadeOut();
            $("#"+div+"Content").fadeIn(1000);
            $("#"+div+"Content").html(data);
            $("#"+div+"Loaded").val(1);
            $("#"+div+"Page").val(page);
        }
    });
}

function loadContent(page, div, action){
    if(page <= 0){
        return;
    }
    $("#"+div+"Loading").fadeIn(20);
    $("#"+div+"Content").hide();

    $.ajax({
        url: '/lu/ajax.php',
        data:{
            dest: "index",
            action: action,
            page : page
        },
        type: "get",
        success: function(data) {
            $("#"+div+"Loading").fadeOut();
            $("#"+div+"Content").fadeIn(1000);
            $("#"+div+"Content").html(data);
            $("#"+div+"Loaded").val(1);
            $("#"+div+"Page").val(page);
        }
    });

}

function loadPrintedBooks(page, div){
    loadContent(page, div, "printed");
}

function loadEBooks(page, div){
    loadContent(page, div, "ebook");
}

function loadMovies(page, div){
    loadContent(page, div, "movie");
}

function loadELearning(page, div){
    loadContent(page, div, "elearning");
}

function loadEReaders(page, div){
    loadContent(page, div, "ereader");
}

function loadBigFormat(page, div){
    loadContent(page, div, "bigformat");
}
function loadLBD(page, div){
    loadContent(page, div, "lbd");
}

function showTab(tab, total, container){

    for(i=1;i<=total;i++){
        $("#"+container+"Container"+i).hide();
        $("#"+container+"Link"+i).removeClass("selected");
    }

    $("#"+container+"Container"+tab).fadeIn();
    $("#"+container+"Link"+tab).addClass("selected");

}


function stopIndexBanner(){
    clearInterval(indexBannerInterval);
}

function startIndexBanner(speed){
    indexBannerInterval =  setInterval('loopIndexBanner()', speed);
}


function swapImages(next){
    var active = $('#bannerIndexCenter .active');
    active.fadeOut(function(){
        active.removeClass('active');
        next.fadeIn().addClass('active');
    });
}

function loopIndexBanner(){
    var active = $('#bannerIndexCenter .active');
    var next = ($('#bannerIndexCenter .active').next().length > 0) ? $('#bannerIndexCenter .active').next() : $('#bannerIndexCenter div:first');
    active.fadeOut(function(){
        active.removeClass('active');
        next.fadeIn().addClass('active');
    });
}

function activateMenu(id){
    var numItems = $('#menuLeft > .menuClassToCount').length;

    for(i=1;i<=numItems;i++){
        if(i == id){
            if($("#menuLeftLoaded"+i).val() == 0){
                $.ajax({
                    url: '/lu/ajax.php?dest=left&action='+id,
                    success: function(data) {
                        $("#menuLeftContent"+id).html(data);
                        $("#menuLeftLoaded"+id).val(1);
                    }
                });
            }
            $("#menuLeftContent"+i).slideDown(100);
            $("#menuLeftArrow"+i).attr("src", '/lu/recursos/img/red-arrow.gif');
        }else{
            $("#menuLeftContent"+i).slideUp(0);
            $("#menuLeftArrow"+i).attr("src", '/lu/recursos/img/gray-arrow.gif');
        }
    }

}

function loadShoppingCart(){
    $.ajax({
        url: '/lu/ajax.php?dest=header&action=shoppingCart',
        success: function(data) {
            $("#shoppingCartHeader").html(data);
        }
    });
}


function notify(product){

    $.ajax({
        url: '/lu/ajax.php?dest=common&action=notify',
        data:{
            product : product
        },
        type: "post",
        success: function(data) {
            GANotify();
            window.location.reload();
        }
    });

}

function addToCart(product){

    $.ajax({
        url: '/lu/ajax.php?dest=cart&action=add',
        data:{
            product : product
        },
        type: "post",
        success: function(data) {
            //window.location.reload();
            showCart();
            //register GA goal
            GACart();
        }
    });

}

function substractFromCart(product){

    $.ajax({
        url: '/lu/ajax.php?dest=cart&action=substract',
        data:{
            product : product
        },
        type: "post",
        success: function(data) {
            showCart();
        }
    });

}

function showLoadingInContainer(container){
    var load = $("#loadingImageLU").html();
    $("#"+container).html(load);
}

function showOKInContainer(container){
    var load = $("#okImageLU").html();
    $("#"+container).html(load);
}

function removeFromCart(id){
    
    showLoadingInContainer("deleteButton"+id);
    $.ajax({
        url: '/lu/ajax.php?dest=cart&action=remove',
        data:{
            product : id
        },
        type: "post",
        success: function() {
            showCart();
        }
    });
}


function showCart(){
    $.ajax({
        url: '/lu/ajax.php?dest=cart&action=show',
        success: function(data) {
            $("#cart-modal").html(data);
            openModalCart();
            loadCartSuggested("suggestedCart");
        }
    });
}

function showWishlist(){
    $.ajax({
        url: '/lu/ajax.php?dest=wishlist&action=show',
        success: function(data) {
            $("#wishlist").html(data);
            openModalWishlist();
        }
    });
}

function removeFromWishlist(id){
    $.ajax({
        url: '/lu/ajax.php?dest=wishlist&action=remove',
        data:{
            product : id
        },
        type: "post",
        success: function(data) {
            showWishlist();
        }
    });
}

function addToWishList(id, displayCart){
    $.ajax({
        url: '/lu/ajax.php?dest=wishlist&action=add',
        data:{
            product : id
        },
        type: "post",
        success: function(data) {
            showWishlist();
            if(displayCart){
                showCart();
            }
            GAWishlist();
        }
    });
}

function startModalCreateAccount(){
    $( "#create-account-modal" ).dialog({
        autoOpen: false,
        width: 600,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Crear una cuenta en lalibreriadelaU',
        close: function(){
            window.location.replace("/lu/payment.php");
        }
    });
}

function startModalLoginAndGo(){
    $( "#login-and-go-modal" ).dialog({
        autoOpen: false,
        width: 600,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Iniciar sesión en lalibreriadelaU',
        close: function(){
        //window.location.reload();
        }
    });
}

function startModalRememberPassword(){
    $( "#remember-password-modal" ).dialog({
        autoOpen: false,
        width: 500,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Reestablecer la contraseña de mi cuenta',
        close: function(){
            window.location.replace("/lu/payment.php");
        }
    });
}


function startModalCart(){
    $( "#cart-modal" ).dialog({
        autoOpen: false,
        height: 600,
        width: 800,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Mis compras',
        beforeClose: function(event, ui) {
            loadShoppingCart();
        }
    });
}

function startModalWishlist(){
    $( "#wishlist" ).dialog({
        autoOpen: false,
        height: 600,
        width: 800,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Mi biblioteca'
    });
}

function startModalInfo(){
    $( "#general-info" ).dialog({
        autoOpen: false,
        height: 500,
        width: 500,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Información'
    });
}

function startModalSuggestToFriend(){
    $( "#suggestToFriend" ).dialog({
        autoOpen: false,
        height: 800,
        width: 500,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Recomendar producto'
    });
}

function startModalEbook(){
    $( "#ebookInfo" ).dialog({
        autoOpen: false,
        height: 600,
        width: 800,
        modal: true,
        show: "blind",
        hide: "explode",
        title: 'Información sobre ebooks'
    });
}

function openModalSelectCategories(){
    $("#select-categories").dialog("open");
}

function openModalCreateAccount(){
    $("#create-account-modal").dialog("open");
}

function openModalLoginAndGo(){
    $("#login-and-go-modal").dialog("open");
}

function openModalRememberPassword(){
    $("#remember-password-modal").dialog("open");
}

function closeModalCreateAccount(){
    $("#create-account-modal").dialog("close");
}

function closeModalSelectCategories(){
    $("#select-categories").dialog("close");
    askCategories();
}

function closeModalRememberPassword(){
    $("#remember-password-modal").dialog("close");
}

function openModalEbooks(){
    $("#ebookInfo").dialog("open");
}

function openModalInfo(){
    $("#general-info").dialog("open");
}

function openModalSuggestToFriend(){
    $("#suggestToFriend").dialog("open");
}

function openModalWishlist(){
    $("#wishlist").dialog("open");
}

function openModalCart(){
    $("#cart-modal").dialog("open");
}

function destroyModalCart(){
    $("#cart-modal").dialog("destroy");
}

function closeModalCart(){
    $("#cart-modal").dialog("close");
}

function closeModalWishList(){
    $("#wishlist").dialog("close");
}

function openModalInfoIBD(){
    $("#IBDINFO").dialog("open");
}
function closeModalInfoIBD(){
    $("#IBDINFO").dialog("close");
}

function showEbookInfo(item){

    var url = "";
    if(item == 1){
        url = '/lu/ajax.php?dest=ebook&action=whatIs';
    }else if(item == 2){
        url = '/lu/ajax.php?dest=ebook&action=advantages';
    }else if(item == 3){
        url = '/lu/ajax.php?dest=ebook&action=howtobuy';
    }else if(item == 4){
        url = '/lu/ajax.php?dest=ebook&action=howtoread';
    }else if(item == 5){
        url = '/lu/ajax.php?dest=ebook&action=download';
    }

    $.ajax({
        url: url,
        success: function(data) {
            $("#ebookInfo").html(data);
            openModalEbooks();
            GAInfoEbook();
        }
    });
}

function showSuggestToFriend(product){
    
    url = '/lu/ajax.php?dest=common&action=suggestToFriend&product='+product;
    $.ajax({
        url: url,
        success: function(data) {
            $("#suggestToFriend").html(data);
            openModalSuggestToFriend();
        }
    });
    
}

function showIBDInfo(){     
   
        url = '/lu/ajax.php?dest=IBD&action=info';   

    $.ajax({
        url: url,
        success: function(data) {
            $("#IBDINFO").html(data);
            openModalInfoIBD();
            GAInfoIBD();
        }
    });
}

function sendSuggestToFriend(fromName, fromEmail, toName, toEmail, message, product){
    url = '/lu/ajax.php?dest=common&action=sendSuggestToFriend';
    $.ajax({
        url: url,
        type: "post",
        data:{
            fromName: fromName,
            fromEmail: fromEmail,
            toName: toName,
            toEmail: toEmail,
            message: message,
            product: product
        },
        success: function(data) {
            if(data.indexOf("error") != -1){
                $("#suggestMsg").html(data);
            }else{
                $("#suggestToFriend").html(data);
            }
            
        }
    });
}


function showGeneralInfo(item, extra){

    var url = "";
    //uflip
    if(item == 1){
        url = '/lu/ajax.php?dest=info&action=login';
    }
    //product
    else if(item == 2){
        url = '/lu/ajax.php?dest=info&action=loginGeneral&products_id='+extra;
    }

    $.ajax({
        url: url,
        success: function(data) {
            $("#general-info").html(data);
            openModalInfo();
        }
    });
}

function logout(){
    
    $("#logoutLoading").show();
    $("#logoutButton").hide();

    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=logout',
        success: function(data) {
            $("#logoutLoading").hide();
            window.location.reload();
        }
    });

    return false;
}

function rememberPassword(email){

    $("#errorMessages_rp").hide();
    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=rememberPassword',
        data:{
            email : email
        },
        type: "post",
        success: function(data) {
            if(data == 0){
                $("#errorMessages_rp").show();
                $("#errorMessages_rp").html("El correo electrónico no se encuentra registrado");
            }else{
                $('#remember-password-container').html(data);
            }
        }
    });
}

function selectCategories(sufix){
    var categories = [];
    $('#changeAll input:checked').each(function() {
        categories.push(this.value);
    });

    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=saveSelectedCategories',
        data:{
            categories:categories
        },
        type: "post",
        success: function() {
            closeModalSelectCategories();
        }
    });
}

function askCategories(){
    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=askCategories',
        data:{
            ask: 1
        },
        type: "post"
    });
}

function createAccount(sufix){

    var firstname = $("#firstname"+sufix).val();
    var lastname = $("#lastname"+sufix).val();
    var email_address = $("#email_address"+sufix).val();
    var email_address_confirm = $("#email_address_confirm"+sufix).val();
    var street_address = $("#street_address"+sufix).val();
    var suburb = $("#suburb"+sufix).val();
    var postcode = $("#postcode"+sufix).val();
    var country = $("#country"+sufix).val();
    var state = $("#state"+sufix).val();
    var city = $("#city"+sufix).val();
    var phone = $("#telephone"+sufix).val();
    var fax = $("#fax"+sufix).val();
    var password = $("#password"+sufix).val();
    var password_confirm = $("#password_confirm"+sufix).val();
    var institutional = $("#institutional"+sufix).val();
    var cc = $("#cc"+sufix).val();
    var type_cc = $("#type_cc"+sufix).val();

    var categories = [];
    $('#categoriesDiv input:checked').each(function() {
        categories.push(this.value);
    });

    $("#errorMessages"+sufix).hide();

    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=create-account',
        data:{
            firstname : firstname,
            lastname : lastname,
            email_address : email_address,
            email_address_confirm : email_address_confirm,
            street_address : street_address,
            suburb : suburb,
            postcode : postcode,
            country : country,
            state : state,
            city : city,
            telephone : phone,
            fax : fax,
            categories:categories,
            password : password,
            institutional:institutional,
            cc:cc,
            type_cc:type_cc,
            password_confirm : password_confirm
        },
        type: "post",
        success: function(data) {
            if(data == 1){
                if(sufix.length > 0){
                    GACreateAccountExpress();
                }else{
                    GACreateAccount();
                }

                window.location.replace("/lu/payment.php");
            }else{
                $("#errorMessages"+sufix).show();
                $("#errorMessages"+sufix).html(data);
            }
        }
    });

    return false;
}

function editCustomerInfo(sufix){

    var firstname = $("#firstname"+sufix).val();
    var lastname = $("#lastname"+sufix).val();
    var email_address = $("#email_address"+sufix).val();
    var phone = $("#telephone"+sufix).val();
    var fax = $("#fax"+sufix).val();
    var password = $("#password"+sufix).val();
    var password_confirm = $("#password_confirm"+sufix).val();
    var institutional = $("#institutional"+sufix).val();
    var cc = $("#cc"+sufix).val();
    var dob = $("#dob"+sufix).val();
    var type_cc = $("#type_cc"+sufix).val();

    $("#errorMessages"+sufix).hide();

    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=edit-account',
        data:{
            firstname : firstname,
            lastname : lastname,
            email_address : email_address,
            telephone : phone,
            fax : fax,
            password : password,
            institutional:institutional,
            cc:cc,
            dob:dob,
            type_cc:type_cc,
            password_confirm : password_confirm
        },
        type: "post",
        success: function(data) {
            if(data == 1){
                window.location.replace("/lu/user.php");
            }else{
                $("#errorMessages"+sufix).show();
                $("#errorMessages"+sufix).html(data);
            }
        }
    });

    return false;
}


function login(username, password){

    $("#loginMessage").hide();

    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=login',
        data:{
            login_username : username,
            login_password : password
        },
        type: "post",
        success: function(data) {
            if(data == 1){
                GALogin();
                window.location.reload();
            }else{
                $("#loginMessage").show();
                $("#loginMessage").html('<div class="error">Datos incorrectos</div>');
            }
        }
    });

    return false;
}

function loginAndGo(username, password, suffix, url, param, products_id){

    $("#loginMessage"+suffix).hide();

    $.ajax({
        url: '/lu/ajax.php?dest=customer&action=login',
        data:{
            login_username : username,
            login_password : password
        },
        type: "post",
        success: function(data) {
            if(data == 1){
                GALogin();
                //uflip stats
                if(param == "uflip"){
                    $.ajax({
                        url: '/lu/ajax.php?dest=customer&action=countUFlip&products_id='+products_id,
                        type: "post",
                        success: function() {
                            window.location.replace(url);
                        }
                    });
                }else if(param == "notify"){
                    notify(products_id);
                }else{
                    window.location.replace(url);
                }
            }else{
                $("#loginMessage"+suffix).show();
                $("#loginMessage"+suffix).html('<div class="error">Datos incorrectos</div>');
            }
        }
    });

    return false;
}

function makeInputChangeable(id, changeType){
    var input = $("#"+id);
    var active_color = '#000'; // Colour of user provided text
    var inactive_color = '#999'; // Colour of default text

    input.css("color", inactive_color);
    var default_values = new Array();
    input.focus(function() {
        if(changeType){
            this.type = "password";
        }
        if (!default_values[this.id]) {
            default_values[this.id] = this.value;
        }
        if (this.value == default_values[this.id]) {
            this.value = '';
            this.style.color = active_color;
        }
        $(this).blur(function() {
            if (this.value == '') {
                this.style.color = inactive_color;
                this.value = default_values[this.id];
                if(changeType){
                    this.type = "text";
                }
            }
        });
    });
}

function changeTab(tab, content, speed){

    var parentContent = "tabsContent";
    var parent = "tabs";

    var conObj = $("#"+content);

    $("#"+parent+" > div").removeClass('tabSelected');
    tab.addClass("tabSelected");
    $("#"+parentContent+" > div").hide();
    conObj.slideDown(speed);

    if(!conObj.hasClass("loaded")){

        if(conObj.attr('id') == "tabSearch"){

            //get parameters
            var query= $("#queryH").val();
            var title= $("#titleH").val();
            var author= $("#authorH").val();
            var all= $("#allH").val();
            var format= $('#formatH').val();

            $.ajax({
                url: '/lu/search.php?dest=showSearch',
                data:{
                    query: query,
                    all: all,
                    title: title,
                    author: author,
                    format: format
                },
                success: function(data) {
                    conObj.html(data);
                    conObj.addClass("loaded");
                    startTooltips();
                    startAutocomplete();
                }
            });

        }else if(conObj.attr('id') == "tabAdvancedSearch"){

            //get parameters
            var query2= $("#query2H").val();
            var title= $("#titleH").val();
            var author= $("#authorH").val();
            var all= $("#allH").val();
            var format= $('#formatH').val();
            var category= $('#categoryH').val();
            var manufacturer= $('#manufacturerH').val();
            var priceFrom= $('#priceFromH').val();
            var priceTo= $('#priceToH').val();
            var dateFrom= $('#dateFromH').val();
            var dateTo= $('#dateToH').val();
            var yearFrom= $('#yearFromH').val();
            var yearTo= $('#yearToH').val();
            var available= $('#availableH').val();
            var country= $('#countryH').val();
            var todoview= $('#todoviewH').val();
            var google= $('#googleH').val();
            var discount= $('#discountH').val();
            var uflip= $('#uflipH').val();
            var video= $('#videoH').val();

            $.ajax({
                url: '/lu/search.php?dest=showAdvanced',
                data:{
                    query2: query2,
                    all: all,
                    title: title,
                    author: author,
                    format: format,
                    category: category,
                    manufacturer: manufacturer,
                    priceFrom: priceFrom,
                    priceTo: priceTo,
                    dateFrom: dateFrom,
                    dateTo: dateTo,
                    yearFrom: yearFrom,
                    yearTo: yearTo,
                    available: available,
                    country: country,
                    todoview: todoview,
                    google: google,
                    discount: discount,
                    uflip: uflip,
                    video: video
                },
                success: function(data) {
                    GAAdvanced();
                    conObj.html(data);
                    conObj.addClass("loaded");
                    startTooltips();
                    $("#dateFrom").datepicker({
                        changeMonth: true,
                        changeYear: true,
                        dateFormat: 'yy-mm-dd'
                    });
                    $("#dateTo").datepicker({
                        changeMonth: true,
                        changeYear: true,
                        dateFormat: 'yy-mm-dd'
                    });
                }
            });

        }else if(conObj.attr('id') == "tabLogin"){

            $.ajax({
                url: '/lu/search.php?dest=showMyAccount',
                success: function(data) {
                    conObj.html(data);
                    conObj.addClass("loaded");
                }
            });
            
        }
    }else{
        if(conObj.attr('id') == "tabSearch"){
            $.ajax({
                url: '/lu/search.php?dest=showSearch&changeTab=true'
            });
        }else if(conObj.attr('id') == "tabAdvancedSearch"){
            $.ajax({
                url: '/lu/search.php?dest=showAdvanced&changeTab=true'
            });
        }
    }

}

function stripVowelAccent(str, ntilde)
{
    var rExps;
    
    rExps=[
    {
        re:/[\xC0-\xC6]/g,
        ch:'A'
    },

    {
        re:/[\xE0-\xE6]/g,
        ch:'a'
    },

    {
        re:/[\xC8-\xCB]/g,
        ch:'E'
    },

    {
        re:/[\xE8-\xEB]/g,
        ch:'e'
    },

    {
        re:/[\xCC-\xCF]/g,
        ch:'I'
    },

    {
        re:/[\xEC-\xEF]/g,
        ch:'i'
    },

    {
        re:/[\xD2-\xD6]/g,
        ch:'O'
    },

    {
        re:/[\xF2-\xF6]/g,
        ch:'o'
    },

    {
        re:/[\xD9-\xDC]/g,
        ch:'U'
    },

    {
        re:/[\xF9-\xFC]/g,
        ch:'u'
    }/*,
        {re:/[\xD1]/g, ch:'N'},
        {re:/[\xF1]/g, ch:'n'}*/ ];
    

    for(var i=0, len=rExps.length; i<len; i++)
        str=str.replace(rExps[i].re, rExps[i].ch);

    return str;
}


var cache = {};
function startAutocomplete(){
  
    $("#query").autocomplete({
        source: function(request, response) {
            request.term = stripVowelAccent(request.term, false);
            $.ajax({
                url: "/lu/search.php?dest=search&other="+$("#query").val()+"&trueTerm="+stripVowelAccent($("#query").val(), false)+"&title="+$("#titleSearch").is(":checked")+"&author="+$("#authorSearch").is(":checked")+"&all="+$("#allSearch").is(":checked")+"&format="+$('#format :selected').val(),
                dataType: "json",
                data: request,
                success: function( data ) {
                    response(data);
                    $("#loadingSearch").hide();
                    GAAutocomplete();
                }
            });
        },
        minLength: 2,
        select: function(event, ui) {
            window.location = ui.item.id+"-que"+stripVowelAccent($("#query").val(), false);
        },
        search: function(event, ui) {
            $("#loadingSearch").show();
        },
        open: function(event, ui) {
            $("#loadingSearch").hide();
        }
    });
}

function triggerSuggest(){
    $("#query").autocomplete('search');
}

function loadFirstTab(){
    var sel = $("#selectedTab").val();
    var cont = "tabSearch";
    if(sel == 2){
        cont = "tabAdvancedSearch";
    }
    changeTab($("#tab"+sel), cont, 0);
}

function changeCurrency(currency){
    $.ajax({
        url: '/lu/ajax.php?dest=common&action=changeCurrency',
        data:{
            currency : currency
        },
        type: "post",
        success: function(data) {
            window.location.reload();
        }
    });
}

function loadDeptos(country, container, sufix){
    $.ajax({
        url: '/lu/ajax.php?dest=common&action=getDeptos',
        data:{
            country : country,
            sufix: sufix
        },
        type: "get",
        success: function(data) {
            $("#"+container).html(data)
        }
    });
}

function loadChat(){
    $.ajax({
        url: '/lu/ajax.php?dest=common&action=loadChat',
        success: function(data) {
            console.log(data);
            console.log($('#craftysyntax'));
            $('#craftysyntax').html(data);
        }
    });
}

function checkSubcats(id){
    if($('.cat-'+id+'-main').is(':checked')){
        $(".cat-"+id+" input:checkbox").attr('checked', true);
    }else{
        $(".cat-"+id+" input:checkbox").attr('checked', false);
    }
}

function checkAllCats(id, div){
    if($("#"+id).is(':checked')){
        $("#"+div+" input:checkbox").attr('checked', true);
    }else{
        $("#"+div+" input:checkbox").attr('checked', false);
    }
}

