﻿/// <reference path="jquery-1.6.3-vsdoc.js" />
var EcommerceMethods = {
    Lang: {
        CartIsEmpty: "Du har inga produkter i din varukorg",
        CartSubHeadline: "Följande vara har lagts i varukorgen"
    }
    , AddConfirmLang: {
        ContinueText: 'Fortsätt handla',
        NextUrl: '/checkout.aspx',
        NextText: 'Gå till kassan'
    }
    , get_ecom_request: null
    , BuyItem: function() {

        var pid = $(input_pid).val();

        var sid = $(input_sid).val();
        var hc = $(input_hc).val();
        var f = $(input_f).val();
        var t = $(input_t).val();

        EcommerceMethods.AddItem(pid, t, sid, hc, f);
    }
    , AddItem: function(pid, t, sid, hc, f) {
        if (EcommerceMethods.get_ecom_request != null) {
            EcommerceMethods.get_ecom_request.abort();
        }
        EcommerceMethods.get_ecom_request = $.ajax({
            type: 'POST',
            url: '/Ecommerce/Handlers/ShoppingHandler.ashx',
            xhr: function() {
                if ($.browser.msie && $.browser.version.substr(0, 1) <= 7)
                    return new ActiveXObject("Microsoft.XMLHTTP");
                else
                    return new XMLHttpRequest();
            },
            data: '{"Action":"ADD-ITEM","PID":"' + pid + '","T":"' + t + '","SID":"' + sid + '","HC":"' + hc + '","F":"' + f + '"}',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            beforeSend: function() {
            },
            success: function(result) {
                if (result == null) { return; }
                if (result.HasError) {
                    FancyboxHandler.ShowFancybox(result.ErrorHeadline, CreateULList('', '', result.Errors), 'error');
                }
                else {
                    EcommerceMethods.TmplCart(result);


                    //EcommerceMethods.ShowProductAddedPopup(result);

                    if (result.II.CA && $(i_a_p).val() == 'wefiopmwfiosdjnow') {
                        EcommerceMethods.ShowAddInsurancePopup();
                    }
                    else {
                        EcommerceMethods.ShowProductAddedPopup(result);
                    }
                }
            },
            error: function(err) {
                if (err.statusText == "abort") { return; }
                //                FancyboxHandler.ShowFancybox('Systemfel', CreateULList('', '', new Array('Tyvärr blev något fel, var god försök igen')), 'error');
            },
            complete: function() {
                EcommerceMethods.get_ecom_request = null;
            }
        });
    }, BuyInsurance: function() {
        var pid = $(input_pid).val();
        EcommerceMethods.AddInsurance(pid);
    }
    , AddInsurance: function(pid) {
        if (EcommerceMethods.get_ecom_request != null) {
            EcommerceMethods.get_ecom_request.abort();
        }
        EcommerceMethods.get_ecom_request = $.ajax({

            type: 'POST',
            url: '/Ecommerce/Handlers/ShoppingHandler.ashx',
            xhr: function() {
                if ($.browser.msie && $.browser.version.substr(0, 1) <= 7)
                    return new ActiveXObject("Microsoft.XMLHTTP");
                else
                    return new XMLHttpRequest();
            },
            data: '{"Action":"ADD-INSURANCE","PID":"' + pid + '"}',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            beforeSend: function() {
            },
            success: function(result) {
                if (result == null) { return; }
                if (result.HasError) {
                    FancyboxHandler.ShowFancybox(result.ErrorHeadline, CreateULList('', '', result.Errors), 'error');
                }
                else {
                    EcommerceMethods.TmplCart(result);
                    EcommerceMethods.ShowProductAddedPopup(result);
                }
            },
            error: function(err) {
                if (err.statusText == "abort") { return; }
                //                FancyboxHandler.ShowFancybox('Systemfel', CreateULList('', '', new Array('Tyvärr blev något fel, var god försök igen')), 'error');
            },
            complete: function() {
                EcommerceMethods.get_ecom_request = null;
            }
        });
    }
    , ShowAddInsurancePopup: function() {
        if ($('#add-insurance-wrapper').length > 0) {
            FancyboxHandler.ShowFancybox('', $('#add-insurance-wrapper').html(), 'success add-item', true, false);
        }
    }
    , ShowProductAddedPopup: function(result) {
    FancyboxHandler.ShowFancyboxCustom("Produkt tillagd i din varukorg", '', 'success add-item', false, 1500, '#fancybox-checkout', 'elastic', function() {
    //FancyboxHandler.ShowFancyboxCustom("Produkt tillagd i din varukorg", '<ul><li><a href="javascript:FancyboxHandler.Close();">Fortsätt handla<span>&nbsp;</span></a></li><li><a href="/checkout.aspx">Gå till kassan<span>&nbsp;</span></a></li></ul>', 'success add-item', false, 5000, '#fancybox-checkout', 'elastic', function() {
            if ($('#cart').is(':hidden') && result.Items.length == 1 && result.Items[0].Quantity == 1) {
                $('#cart').slideDown('fast');
                $('#toggle-cart').addClass('clicked');
            }
        });
    }
    , RemoveItem: function(iid) {
        if (EcommerceMethods.get_ecom_request != null) {
            EcommerceMethods.get_ecom_request.abort();
        }

        EcommerceMethods.get_ecom_request = $.ajax({
            type: 'POST',
            url: '/Ecommerce/Handlers/ShoppingHandler.ashx',
            xhr: function() {
                if ($.browser.msie && $.browser.version.substr(0, 1) <= 7)
                    return new ActiveXObject("Microsoft.XMLHTTP");
                else
                    return new XMLHttpRequest();
            },
            data: '{"Action":"DELETE-ITEM","IID":"' + iid + '"}',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            beforeSend: function() {
            },
            success: function(result) {
                if (result == null) { return; }
                if (result.HasError) {
                    FancyboxHandler.ShowFancybox(result.ErrorHeadline, CreateULList('', '', result.Errors), 'error');
                }
                else {
                    EcommerceMethods.TmplCart(result);
                    //                    FancyboxHandler.ShowFancyboxAndFade(result.PAH, '', 2500, 'success add-item', false);
                }
            },
            error: function(err) {
                if (err.statusText == "abort") { return; }
                FancyboxHandler.ShowFancybox('Systemfel', CreateULList('', '', new Array('Tyvärr blev något fel, var god försök igen')), 'error');
            },
            complete: function() {
                EcommerceMethods.get_ecom_request = null;
            }
        });
    }
    , UpdateItem: function(iid, qty) {
        if (EcommerceMethods.get_ecom_request != null) {
            EcommerceMethods.get_ecom_request.abort();
        }

        EcommerceMethods.get_ecom_request = $.ajax({
            type: 'POST',
            url: '/Ecommerce/Handlers/ShoppingHandler.ashx',
            xhr: function() {
                if ($.browser.msie && $.browser.version.substr(0, 1) <= 7)
                    return new ActiveXObject("Microsoft.XMLHTTP");
                else
                    return new XMLHttpRequest();
            },
            data: '{"Action":"UPDATE-ITEM","IID":"' + iid + '","QTY":"' + qty + '"}',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            beforeSend: function() {
            },
            success: function(result) {
                if (result == null) { return; }
                if (result.HasError) {
                    FancyboxHandler.ShowFancybox(result.ErrorHeadline, CreateULList('', '', result.Errors), 'error');
                }
                else {
                    EcommerceMethods.TmplCart(result);
                    if (result.II.CA && $(i_a_p).val() == 'wefiopmwfiosdjnow') {
                        EcommerceMethods.ShowAddInsurancePopup();
                    }
                }
            },
            error: function(err) {
                if (err.statusText == "abort") { return; }
                FancyboxHandler.ShowFancybox('Systemfel', CreateULList('', '', new Array('Tyvärr blev något fel, var god försök igen')), 'error');
            },
            complete: function() {
                EcommerceMethods.get_ecom_request = null;
            }
        });
    }
    , TmplCart: function(result) {
        $('#cart-content ul.cart-item').remove();
        $('#cart_item_template').tmpl(result.Items).insertAfter('#cart-content ul#cart-top');
        if (result.Items.length == 0) {
            $('#cart').slideUp('fast');
            $('#toggle-cart').removeClass('has-products').addClass('no-products');
        }
        $('li.cart-information').text(result.CartInformation);
        $('a.a-checkout').attr('href', result.CheckoutUrl);
        if (result.CheckoutUrl == '#') {
            $('div.to-checkout').hide();
        }
        else {
            $('#toggle-cart').addClass('has-products').removeClass('no-products');
            $('div.to-checkout').show();
        }
    }
};

