﻿var _webSiteName = ''; '/bp'; '/byggplast-batprylar.se';
var LOADING_IMAGE = "<img class ='ajaxProgressBar' src='App_Themes/Default/Images/ProgressIndicator.gif' title='Laddar' class='marginLeft' />";
var _retailerID = 0;
var _categoryID = 0;
var _customerID;
var _webSiteID = 13;
var _first = true;
var _articleNo;
var _sender;
var _quantity;
var _loading = false;
var _storesExists = false;
var _nodePath;
//Thease are used for checkout total amount
var _postalFee = 0;
var _pickupFee = 0;
var _sumPrice = 0;
var _shippingFee = 0;
var _validationError = false;
var _klarnaInvoiceFee = 0;
var _klarnaID = 0;
var _klarnaIBID = 0;
var _isInterboatStore = false;
var _klarnaAccountpClass;
var _allowPayInShop;



jQuery.fn.center = function (absolute) {
    return this.each(function () {
        var t = jQuery(this);

        t.css({
            position: absolute ? 'absolute' : 'fixed',
            left: '50%',
            top: '50%',
            zIndex: '99'
        }).css({
            marginLeft: '-' + (t.outerWidth() / 2) + 'px',
            marginTop: '-' + (t.outerHeight() / 2) + 'px'
        });

        if (absolute) {
            t.css({
                marginTop: parseInt(t.css('marginTop'), 10) + jQuery(window).scrollTop(),
                marginLeft: parseInt(t.css('marginLeft'), 10) + jQuery(window).scrollLeft()
            });
        }
    });
};


DisableBackground();

function ExecuteAjax(paramArray, method, successCallBack, errorCallBack) {
    //Create list of parameters in the form:
    //{"paramName1":"paramValue1","paramName2":"paramValue2"}    
    var paramList = '';
    if (paramArray.length > 0) {
        for (var i = 0; i < paramArray.length; i += 2) {
            if (paramList.length > 0) paramList += ',';
            if (paramArray[i] == "address")
                paramList += '"' + paramArray[i] + '":' + JSON.stringify(paramArray[i + 1]) + '';
            else
                paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
        }
    }
    //string customerID, int retailerID, string loadGrid, string searchText,int  maxCount)
    paramList = '{' + paramList + '}';

    $.ajax({
        type: "POST",
        url: "ByggplastService.svc/" + method,
        data: paramList,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successCallBack,
        error: errorCallBack
    });
}




function LoadCart(customerID, retailerID) {

    var cartGrid = document.getElementById('divAjaxCartGrid');
    ClearAjaxDivElements(false);

    var isCheckoutPage = document.getElementById("isCartGridPage") != null;
    var isCartGridPage = document.getElementById("isCartGridPage") != null;


    Loading('divAjaxCartGrid');

    ExecuteAjax(["customerID", customerID, "retailerID", retailerID, "loadGrid", isCartGridPage, "loadCheckout", isCheckoutPage], "LoadCart", OnDocumentUpdated, OnError);

}

function GetPopularArticlesByCategory(retailerID, categoryID) {
    if (_loading)
        return false;
    _loading = true;

    _categoryID = categoryID;
    Loading(_categoryID);
    ExecuteAjax(["retailerID", _retailerID, "categoryID", categoryID], "GetPopularArticlesByCategory", OnControlLoadedFromCategory, OnError);
}

// bad name not extended
function SearchExtendedArticlesFromCategory(sender, searchText, categoryID, categoryName, showRefine, isCategorySearch) {
    _categoryID = categoryID;

    // close if open
    if ($("#" + _categoryID).is(":visible")) {
        $("#" + _categoryID).slideUp("slow");
        //$(".slideUpDown").val() = "Visa träffarna i denna varugrupp";
        return false;
    }

    //$(".slideUpDown").val() = "Dölj träffarna i denna varugrupp";

    if (_loading)
        return false;
    searchText = searchText.trim();
    if (searchText.length > 0) {
        _loading = true;
        //ClearAjaxDivElements(true, true);
        //alert($get(sender.id).innerHTML);

        var div = document.getElementById(_categoryID);
        Loading(div.id);
        ExecuteAjax(["searchExtended", false, "retailerID", _retailerID, "searchText", searchText, "categoryID", categoryID, "maxCount", 500, "headerText", categoryName, "showRefine", showRefine, "isCategorySearch", isCategorySearch, "groupResult", true], "SearchArticles", OnControlLoadedFromCategory, OnError);
    }

    return false;
}

function LoadSectionListFromCategory(categoryID) {
    _categoryID = categoryID;
    if ($("#" + _categoryID).is(":visible")) {
        $("#" + _categoryID).slideUp("slow");
        return false;
    }

    scroll(0, 0);
    var headerRow = $("#" + _categoryID + "Header").html();
    var resultRow = "<tr style='border: none;'><td colspan='4'><div id='" + _categoryID + "' class='categoryResult' style='display: none;' /></td></tr>";

    $("#" + _categoryID + "Header").remove();
    $(".categoryTable").prepend("<tr onmouseover='HandleOver(this);' onmouseout='HandleOut(this);' id='" + _categoryID + "Header'>" + headerRow + "</tr>" + resultRow);

    scroll(0, 0);

    //ClearAjaxDivElements(true, true);
    //scroll(0, 0);
    Loading(_categoryID);
    method = "LoadSectionList";

    //CreateBreadCrumb(_node, _categoryID);

    ExecuteAjax(["webSiteID", _webSiteID, "categoryID", _categoryID, "retailerID", _retailerID, "customerID", _customerID, "hideRefine", true], method, OnControlLoadedFromCategory, OnError);
    return false;
}

function SearchExtendedArticles(searchText, categoryID) {
    if (_loading)
        return false;
    searchText = searchText.trim();
    if (searchText.length > 2 || (searchText.length == 2 && IsNumeric(searchText))) {
        ClearAjaxDivElements(true, true);
        Loading('divAjaxContent');
        ExecuteAjax(["searchExtended", true, "retailerID", _retailerID, "searchText", searchText, "categoryID", categoryID, "maxCount", 500, "headerText", "Förfina din sökning med ytterligare sökord:", "showRefine", true, "groupResult", true], "SearchArticles", OnControlLoaded, OnError);
    }

    return false;
}

function SearchAllArticles(searchText, categoryID, maxCount) {

    return DoSearch(searchText, categoryID, maxCount, true, "Sök produkter:", false);

}

function DoSearch(searchText, categoryID, maxCount, groupResult, headerText, isTrademarkSearch) {
    if (_loading)
        return false;
    searchText = searchText.trim();
    if (searchText.length > 0 || categoryID > 0) {
        ClearAjaxDivElements(true, true);
        Loading('divAjaxContent');
        scroll(0, 0);
        ExecuteAjax(["searchExtended", false, "retailerID", _retailerID, "searchText", searchText, "categoryID", categoryID, "maxCount", maxCount, "headerText", headerText, "groupResult", groupResult, "showRefine", true, "isTrademarkSearch", isTrademarkSearch], "SearchArticles", OnControlLoaded, OnError);
    }
    return false;
}

function SearchAllArticlesFromTradeMark(searchText, categoryID, maxCount) {
    var title = searchText;
    var crumb = "<a style='cursor:pointer' onclick='return SearchAllArticles2(\"" + searchText + "\"," + categoryID + "," + 500 + ");'>" + title + "</a>";
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: " + crumb;
    return DoSearch(searchText, categoryID, maxCount, true, "Båttillbehör från " + title, true);
}

function SearchAllArticles2(searchText, categoryID, maxCount) {
    searchText = searchText.replace('"', '');

    if (_loading)
        return false;
    ClearAjaxDivElements(true, true);
    //document.getElementById('divAjaxContent').innerHTML = LOADING_IMAGE;
    Loading('divAjaxContent');
    ExecuteAjax(["searchExtended", false, "retailerID", _retailerID, "searchText", searchText, "categoryID", categoryID, "maxCount", maxCount, "headerText", "Sök produkter:", "showRefine", true, "groupResult", true], "SearchArticles", OnControlLoaded, OnError);

    var title = "Sök";
    var crumb = "<a style='cursor:pointer' onclick='return SearchAllArticles2(\"" + searchText + "\"," + categoryID + "," + 500 + ");'>" + title + "</a>";
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: " + crumb;
    $("#productSearchTextBox").val(searchText);
    return false;
}

// Iterate through the cart and save all articles
function SaveWholeCart(customerID, retailerID, val, tableID) {

    var articleNos = "";
    var quantitys = "";

    $('#' + tableID + ' TR').each(function () {
        var tr = $(this);
        var articleNo = "";
        var quantity;
        var idx = 0;
        tr.find('TD').each(function () {
            var col = $(this);
            if (idx == 0) {
                articleNo = col.text().trim();
            }
            if (idx == 4) {
                quantity = col.find('INPUT').val();
            }
            idx++
        });

        if (articleNo.length > 0 && IsNumeric(quantity)) {
            articleNos += articleNo + '_';
            quantitys += quantity + '_';
        }
    });

    UpdateCart(articleNos, customerID, quantitys, retailerID)
    return false;
}
function AddToCart(sender, articleNo, customerID, quantity, retailerID) {
    if (_loading)
        return false;
    quantity = quantity.replace('.', ',');
    if (IsNumeric(quantity)) {

        if (_storesExists == "True" || _storesExists == "true") {
            if (_first && _retailerID == 0 && document.getElementById("hiddenCustomerHasNoArtices") != null) {

                $("#divWebShopQuestion").centerInClient();
                $("#divWebShopQuestion").show();
                _sender = sender;
                _articleNo = articleNo;
                _quantity = quantity;
                _first = false;
                return;
            }
        }


        _loading = true;

        var isCheckoutPage = document.getElementById("isCheckoutPage") != null;
        var isCartGridPage = document.getElementById("isCartGridPage") != null;

        $(sender).effect("transfer", { to: $("#divAjaxCart") }, 500, ExecuteAjax(["customerID", _customerID, "articleNo", articleNo, "quantity", quantity, "retailerID", retailerID, "loadGrid", isCartGridPage, "loadCheckout", isCheckoutPage], "AddToCart", OnArticleAdded, OnError), OnError);
    }
    else {
        alert("Välj antal artiklar!");
    }
}

function GoToChooseRetailer(buyInShop) {
    if (_loading)
        return false;

    $("#divWebShopQuestion").hide();
    if (buyInShop) {
        ClearAjaxDivElements(true, true);
        LoadRetailers();
        var title = "Välj butik att handla hos";
        var crumb = "<a style='cursor:pointer' onclick='return LoadRetailers();'>" + title + "</a>";
        var divBreadCrumb = document.getElementById("divBreadCrumb");
        divBreadCrumb.innerHTML = "Du är här: " + crumb;

    }
    else {
        AddToCart(_sender, _articleNo, _customerID, _quantity, _retailerID);
    }
    return false;

}
function GoToChooseRetailerPrint() {
    ClearAjaxDivElements(true, true);
    Loading("divAjaxContent");
    ExecuteAjax(["customerID", _customerID, "forPrinting", true, "regionID", "-1", "searchText", 'ALL'], "ChooseRetailer", OnControlLoaded, OnError);
    var title = "Välj butik för utskrift";
    var crumb = "<a style='cursor:pointer' onclick='return GoToChooseRetailerPrint();'>" + title + "</a>";
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: " + crumb;
    return false;
}

function ChooseRetailerByAddress(forPrinting) {
    var searchText = $("#searchTextBox").val();
    ClearAjaxDivElements(true, true);
    Loading("divAjaxContent");
    ExecuteAjax(["customerID", _customerID, "forPrinting", forPrinting, "regionID", -1, "searchText", searchText], "ChooseRetailer", OnControlLoaded, OnError);

    return false;
}
function LoadRetailersWithSorting(sortBy, forPrinting, searchText, regionID) {
    Loading("divAjaxContent");
    ExecuteAjax(["customerID", _customerID, "forPrinting", forPrinting, "regionID", regionID, "searchText", searchText, "sortBy", sortBy], "ChooseRetailer", OnControlLoaded, OnError);
    return false;
}
function ChooseRetailerByRegion(drp, forPrinting) {
    var regionID = drp.value;
    ClearAjaxDivElements(true, true);
    Loading("divAjaxContent");
    ExecuteAjax(["customerID", _customerID, "forPrinting", forPrinting, "regionID", regionID, "searchText", ""], "ChooseRetailer", OnControlLoaded, OnError);
    return false;
}
function LoadRetailers() {
    Loading("divAjaxContent");
    ExecuteAjax(["customerID", _customerID, "forPrinting", false, "regionID", -1, "searchText", "ALL"], "ChooseRetailer", OnControlLoaded, OnError);
    return false;
}
//Add the selected article to cart and go to Retailer store
function GoToRetailer(retailerID) {
    //alert(retailerID);
    // var url = window.location.href.substring(0, window.location.href.lastIndexOf("/")); //, window.location.href.length)
    var parts = window.location.href.split('/');
    var url = "http://";
    if (parts[2].indexOf("localhost") > -1) {
        url += parts[2] + "/" + parts[3] + "/Start.aspx";
    }
    else {
        url += parts[2] + "/Start.aspx";
    }
    _retailerID = retailerID;
    if (_sender != null) {
        ExecuteAjax(["customerID", _customerID, "articleNo", _articleNo, "quantity", _quantity, "retailerID", _retailerID, "loadGrid", false, "loadCheckout", false], "AddToCart", null, null)
    }
    ClearAjaxDivElements(true, true);
    Loading("divAjaxContent");

    window.location.href = url + "?RetailerID=" + _retailerID;
    //window.location.href = "http://" + window.location.host + "/Start.aspx?RetailerID=" + _retailerID;
    //window.location.href = "http://" + window.location.host + _webSiteName + "/Start.aspx?RetailerID=" + _retailerID;

    return false;
}

function ValidateAccept() {
    if ($("#chkAccept").attr('checked') == false) {
        alert("Du  måste godkänna köpvillkoren för att kunna lägga ordern.");
        return false;
    }
    else
        return true;
}


function ValidateAccept2() {
    if (getInternetExplorerVersion() < 1000) {
        if ($("#divCheckout :a").attr("disabled")) {
            if ($("#chkAccept").attr('checked') == false) {
                alert("Du måste godkänna köpvillkoren för att kunna lägga ordern.");
                return false;
            }
            else
                return true;
        }
    }
}
function OnCheckoutAcceptChange(sender) {

    if ($(sender).attr('checked')) {

        $("#divCheckout :a").attr("disabled", false);
        $("#divCheckout :href").attr("disabled", false);
    }
    else {
        $("#divCheckout :a").attr("disabled", true);
        $("#divCheckout :href").attr("disabled", true);
    }
}
function CreateOrder() {

    scroll(0, 0);
    var chkSameAsInvoice = $('#chkSameAsInvoice').is(':checked');
    var address = GetCustomerInfo(chkSameAsInvoice);
    var txtEmail2 = $('#txtEmail2').val().trim();
    var txtComments = $('#txtComments').val().trim();
    var getItems = $('#rdoShippingPickup').is(':checked') || !$('#rdoShippingDeliver').is(':checked');

    var txtSecurityNo = "";
    if ($('#txtSecurityNo').val() != null) {
        txtSecurityNo = $('#txtSecurityNo').val().trim();
    }
    var paymentType = GetPaymentType();
    // If we are shiping iems a payment methid must be chosen
    //if (!getItems) {
    if (paymentType == undefined) {
        alert("Välj betalningsmetod.");
        return false;
    }
    if (paymentType.length == 0) {
        alert("Välj betalningsmetod.");
        return false;
    }
    //}
    if (_loading)
        return false;
    if (_klarnaAddressSelected == false && paymentType.indexOf("Klarna") > -1) {
        alert("Ange personnummer!");
        return false;
    }
    if (ValidateAccept() == false)
        return false;

    if (!ValidateAddress(address, txtEmail2, chkSameAsInvoice)) {
        return false;
    }



    //Klarna
    var klarnaPClassID = 0;
    // if (!getItems) {
    if (paymentType.indexOf('Klarna') > -1) {
        if (!ValidateField(txtSecurityNo, "personnummer"))
            return false;

        //TODO: handle pclasses for campaignpayments
        if (paymentType == "KlarnaAccountPayment")
            klarnaPClassID = _klarnaAccountpClass;
        else {
            var parts = paymentType.split('_');
            if (parts.length == 1)
                klarnaPClassID = -1;
            else
                klarnaPClassID = parts[1];
        }
    }
    // }


    ClearAjaxDivElements(true, true);

    // DIBS
    if (paymentType.indexOf('CardPayment') > -1) {
        ShowLoading("Förbereder kortbetalning...", false, true);
    }
    else {
        ShowLoading("Skapar din order...", false, true);
    }

    ExecuteAjax(["customerID", _customerID, "retailerID", _retailerID, "address", address, "comments", txtComments,
    "shipItems", !getItems, "paymentType", paymentType, "securityNo", txtSecurityNo, "klarnaPassword", "", "klarnaPClassID", klarnaPClassID],
   "CreateOrder", OnOrderCreated, OnError);
    return false;
}

//Order has been created
function OnOrderCreated(data) {

    if (data.d.indexOf("ERROR") > -1) {
        _loading = false;
        alert("Något gick fel:" + data.d);
        return;
    }
    if (data.d.indexOf("VALIDATION_ERROR") > -1) {
        _loading = false;
        alert("Ordern kunde inte skapas! Har du fyllt i alla adress och personuppgifter?");
        return;
    }
    // credit card payment via DIBS
    if (data.d.indexOf('DIBSPayment.aspx') > -1) {
        location.href = data.d;
        return;
    }

    LoadCart(_customerID, _retailerID);
    OnControlLoaded(data);
}


var _klarnaAddressSelected = false;
function GetKlarnaCustomer() {
    if (!_loading) {
        _loading = true;

        ShowLoading("Var god, vänta..", false, true);

        var secNo = $("#txtSecurityNo").val();

        ExecuteAjax(["securityNumber", secNo, "retailerID", _retailerID], "GetCustomerAddressesFromKlarna", OnGetAddresses, OnError);
        _lastSecNo = secNo;

    }
    return false;
}
function ShowLoading(text, closeButton, showProgressBar) {


    if (text.length > 0 || showProgressBar == true) {
        $("#ajaxMainForm").css("z-index", 99999);
        $("#ajaxMainForm").show();
    }
    else
        $("#ajaxMainForm").hide();

    $("#ajaxDisable").show();
    if (closeButton)
        $("#ajaxMainButton").show();
    else
        $("#ajaxMainButton").hide();

    $("#ajaxMainInfo").html(text);
    if (showProgressBar)
        $("#mainProgressBar").show();
    else
        $("#mainProgressBar").hide();
    return false;

}
function HideLoading() {
    $("#ajaxDisable").hide();
    $("#ajaxMainForm").hide();
    return false;
}
var _addresses = null;
function OnGetAddresses(data) {
    _loading = false;
    $("#ajaxMainForm").css("z-index", 99999);
    $("#mainProgressBar").hide();
    $("#ajaxMainForm").show();

    if (data.d[0].FirstName == "ERROR") {
        ShowLoading(data.d[0].LastName, true, false);
        return;
    }
    ShowLoading("Klart!", false, false);
    $("#ajaxDisable").fadeOut();
    $("#ajaxMainForm").fadeOut();

    if (data.d.length > 0) {
        SetCustomerInfo(data.d[0]);
    }
    else {
        _addresses = data.d;
    }
}

function SetAddress(index) {
    SetCustomerInfo(_addresses[index]);
    for (var i = 0; i < _addresses.length; i++) {
        $("#divAddressItem" + i).css("opacity", 0.3);
    }
    $("#divAddressItem" + index).css("opacity", 1);
}
function SetCustomerInfo(address) {
    _klarnaAddressSelected = true;
    document.getElementById('txtFirstName').value = address.FirstName;
    document.getElementById('txtLastName').value = address.LastName;
    document.getElementById('txtAddress').value = address.Address1;
    document.getElementById('txtZipCode').value = address.ZipCode;
    document.getElementById('txtCity').value = address.City;
    document.getElementById('txtDelAddress').value = address.Address1;
    document.getElementById('txtDelZipCode').value = address.ZipCode;
    document.getElementById('txtDelCity').value = address.City;
    document.getElementById('txtCountry').value = address.Country;

}
function GetCustomerInfo(sameAsInvoice) {
    var address = new Object();
    address.FirstName = $('#txtFirstName').val().trim();
    address.LastName = $('#txtLastName').val().trim();
    address.Address1 = $('#txtAddress').val().trim();
    address.ZipCode = $('#txtZipCode').val().trim();
    address.City = $('#txtCity').val().trim();
    address.EMail = $('#txtEmail').val().trim();
    address.Phone = $('#txtPhone').val().trim();
    address.Country = $('#txtCountry').val().trim();
    if (!sameAsInvoice) {
        address.DeliveryAddress = $('#txtDelAddress').val().trim();
        address.DeliveryZipCode = $('#txtDelZipCode').val().trim();
        address.DeliveryCity = $('#txtDelCity').val().trim();
    }
    else {
        address.DeliveryAddress = address.Address1;
        address.DeliveryZipCode = address.ZipCode;
        address.DeliveryCity = address.City;
    }

    return address;
}
function ToggleCustomerInfo(show) {
    $("#txtFirstName").attr("disabled", !show);
    $("#txtLastName").attr("disabled", !show);
    $("#txtAddress").attr("disabled", !show);
    $("#txtZipCode").attr("disabled", !show);
    $("#txtCity").attr("disabled", !show);
    $("#txtDelAddress").attr("disabled", !show);
    $("#txtDelZipCode").attr("disabled", !show);
    $("#txtDelCity").attr("disabled", !show);
    $("#txtCountry").attr("disabled", !show);
}

function ValidateAddress(address, email2, sameAsInvoice) {
    if (!ValidateField(address.FirstName, "förnamn"))
        return false;
    if (!ValidateField(address.LastName, "efternamn"))
        return false;
    if (!ValidateField(address.Address1, "adress"))
        return false;
    if (!ValidateField(address.ZipCode, "postnummer"))
        return false;
    if (IsNumeric(address.ZipCode.replace(" ", "")) == false) {
        alert("Postnumret är ej korrekt!");
        return false;
    }
    if (!ValidateField(address.City, "postort"))
        return false;
    if (!ValidateField(address.EMail, "e-post"))
        return false;
    if (address.EMail.indexOf("@") < 1 || address.EMail.indexOf(".") < 3) {
        alert("Epost-adressen är inte korrekt.");
        return false;
    }
    if (!ValidateField(address.Phone, "telefonnummer"))
        return false;
    if (address.EMail != email2) {
        alert("Epost-adresserna översstämmer inte.");
        return false;
    }

    if (!ValidateField(address.DeliveryAddress, "leveransadress"))
        return false;
    if (!ValidateField(address.DeliveryZipCode, "leverans-postnummer"))
        return false;
    if (IsNumeric(address.DeliveryZipCode.replace(" ", "")) == false) {
        alert("Postnumret är ej korrekt!");
        return false
    }
    if (!ValidateField(address.DeliveryCity, "leverans-postort"))
        return false;

    return true;
}
//Used in checkout
function ToggleShipping() {
    var rdoPickup = $('#rdoShippingPickup');

    if (rdoPickup.is(':checked')) {
        $('#divStoreAddress').show('slow');
        if (_allowPayInShop)
            $("#divPayInShop").show();
    }
    else {
        $('#divStoreAddress').hide('slow');
        $("#divPayInShop").hide();
        $("#radioPayInShop").attr("checked", false);
    }

    SetCheckoutSum();
    
    SetCheckoutSum();
}

function GetPaymentType() {

    var retval;
    for (var i = 0; i < document.getElementsByName("radioPaymentType").length; i++) {
        if (document.getElementsByName("radioPaymentType")[i].checked) {
            return document.getElementsByName("radioPaymentType")[i].value;
        }
    }
    return retval;
}
function TogglePayment() {

    var paymenttype = GetPaymentType();

    if (paymenttype.indexOf('Klarna') > -1) {
        ToggleCustomerInfo(false);
        $('.secNoLookUp').show();
    }
    else {
        ToggleCustomerInfo(true);
        $('.secNoLookUp').hide();
    }

    SetCheckoutSum();
}


//Calcs the total order value and prints it out on the page
function SetCheckoutSum() {
    var value = _sumPrice;
    var paymentType = GetPaymentType();
    var shipItems = $("#rdoShippingDeliver").is(':checked');
    $("#divAdvancePaymentContainer").attr("disabled", !shipItems);
    $("#divPostalPayment").attr("disabled", !shipItems);
    //$("#divKlarna").attr("disabled", !shipItems);
    if (shipItems) {
        // When shipping, and the parent store is ib, then change the payment details to Interboat
        DisplayKlarnaForInterboatStore();
        $("#divAdvancePaymentContainer").attr("disabled", false);
        $("#divPostalPayment").attr("disabled", false);
        //$("#divKlarna").attr("disabled", false);

        value += _shippingFee;
        //Pay in advance?
        if (paymentType == "PostalPayment")
            value += +_postalFee;
        if (paymentType == "KlarnaInvoicePayment")
            value += +_klarnaInvoiceFee;

    }
    else {
        value += _pickupFee;
    }

    $("#lblTotalAmount").html("Totalt:" + value + ":-");

    return value;
}
function DisplayKlarnaForStore() {
    if (_klarnaID > 0) {
        InitKlarnaInvoiceElements('klarna_invoice', _klarnaID, 'se', _klarnaInvoiceFee);
        $("#divKlarnaInvoicePaymentInfo").html("(Aviavgift:" + _klarnaInvoiceFee + ":-)")
    }
    else {
        $("#divKlarnaInvoicePayment").hide();
        $("#chkKlarnaInvoicePayment").attr("checked", false);
    }
}
function DisplayKlarnaForInterboatStore() {

    if (_klarnaIBID > 0) {
        //Okay, if 
        InitKlarnaInvoiceElements('klarna_invoice', _klarnaIBID, 'se', _klarnaInvoiceFee);
        $("#divKlarnaInvoicePaymentInfo").html("(Aviavgift:" + _klarnaInvoiceFee + ":-)")
        $("#divKlarnaInvoicePayment").show();
    }
    else {
        if (_isInterboatStore) {
            $("#divKlarnaInvoicePayment").hide();
            $("#chkKlarnaInvoicePayment").attr("checked", false);
        }
    }
}


function ValidateField(value, field) {
    if (value.length == 0) {
        alert("Du måste ange " + field + ".");
        return false;
    }
    else
        return true;
}
//Gets the cart grid, the loadQuickSearch should be loaded the first time, not when something is addeto
//cart from the quicksearch
function GetCart(customerID, retailerID, loadQuickSearch) {
    scroll(0, 0);
    Loading("divAjaxContent");
    ClearAjaxDivElements(true, loadQuickSearch);

    if (loadQuickSearch)
        ExecuteAjax(["customerID", customerID, "retailerID", retailerID, "searchText", ""], "LoadCartGridSearch", OnTopControlLoaded, OnError);

    ExecuteAjax(["customerID", customerID, "retailerID", retailerID], "LoadGridCart", OnControlLoaded, OnError);

    var title = "Inköpslistan";

    if (_retailerID > 0)
        title = "Kundvagnen";
    var crumb = "<a style='cursor:pointer' onclick='return GetCart(\"" + _customerID + "\"," + _retailerID + "," + loadQuickSearch + ");'>" + title + "</a>";
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: " + crumb;

    return false;
}

function SearchByArticleNo(searchText) {
    if (_loading)
        return false;

    ExecuteAjax(["customerID", _customerID, "retailerID", _retailerID, "searchText", searchText], "LoadCartGridSearch", OnTopControlLoaded, OnError);
    return false;
}

function GetCheckout() {

    if (_loading)
        return false;

    ClearAjaxDivElements(true, true);
    scroll(0, 0);
    //This should be a generic method

    Loading("divAjaxContent");

    //    var chkNotShipItems = document.getElementById("#chkGetItemsFromStore");
    //    var shipItemsBool = true;
    //    if (chkNotShipItems != null)
    //        shipItemsBool = !chkNotShipItems.checked;
    ExecuteAjax(["customerID", _customerID, "retailerID", _retailerID], "GetCheckout", OnCheckoutLoaded, OnError);
    return false;
}
var _checkoutHtml;
var _checkoutInfo
function OnCheckoutLoaded(data) {
    var ShipItems = "1";
    var GetItems = "2";
    var UsersChoice = "3";

    var _checkoutInfo = data.d;

    _allowPayInShop = _checkoutInfo.AllowPayInShop;

    document.getElementById('divAjaxContent').innerHTML = _checkoutInfo.HtmlPage;
    var nameParts = _checkoutInfo.Customer.Name.split(' ');
    $("#txtFirstName").val(nameParts[0]);
    if (nameParts.length > 0)
        $("#txtLastName").val(nameParts[1]);
    else
        $('#txtLastName').val("");


    $("#txtAddress").val(_checkoutInfo.Customer.Address);
    $("#txtZipCode").val(_checkoutInfo.Customer.Address2);
    $("#txtCity").val(_checkoutInfo.Customer.Address3);
    $("#txtEmail").val(_checkoutInfo.Customer.EMail);
    $("#txtEmail2").val(_checkoutInfo.Customer.EMail);
    $("#txtPhone").val(_checkoutInfo.Customer.Phone1);
    if (_checkoutInfo.Address != null) {
        $("#txtDelAddress").val(_checkoutInfo.Address.Address1);
        $("#txtDelZipCode").val(_checkoutInfo.Address.Address2);
        $("#txtDelCity").val(_checkoutInfo.Address.Address3);
    }

    $("#txtCountry").val(_checkoutInfo.Customer.CountryID);

    $("#divAjaxContent").show();
    var shippingMode = _checkoutInfo.ShippingType;
    _isInterboatStore = _checkoutInfo.IsInterboatStore;
    if (badBrowser())
        $("#divKlarnaDetails").hide();
    else
        $("#divKlarnaDetails").css("opacity", 0.4);


    //Get items from store only
    if (shippingMode == GetItems) {
        $("#divShipItems").hide();
        //Hide payments if the customer only can get items
        $("#divAdvancePaymentContainer").hide();
        $("#divPostalPayment").hide();
        //$("#divKlarna").hide();

        $("#rdoShippingDeliver").attr("checked", false);
        $("#rdoShippingPickup").attr("checked", true);
        if (_checkoutInfo.AllowPayInShop)
            $("#divPayInShop").show();

        $('#divStoreAddress').show('slow');

        //if (data.d[19].length == 0) {
        // No Klarna payment (none at all), only in store payment
        //  $("#divPaymentContainer").hide();
        //}
    }
    else {
        // Ship items only
        if (shippingMode == ShipItems) {
            $("#divGetItems").hide();
            $("#rdoShippingPickup").attr("checked", true);
            $("#rdoShippingDeliver").attr("checked", false);
            $("[name=radioPaymentType]").filter("[value='PostalPayment']").attr("checked", "checked");
        }
        else {
            $("#rdoShippingDeliver").attr("checked", true);
        }
    }


    //Article price without expenses
    _sumPrice = parseFloat(_checkoutInfo.CartPrice);

    // Card payment by DIBS
    if (_checkoutInfo.DIBSKey) {
        $("#divCardPayment").show();
    }
    else {
        $("#divCardPayment").hide();
    }

    //Klarna payment
    if (_checkoutInfo.KlarnaID > 0) {
        _klarnaID = _checkoutInfo.KlarnaID;
        _klarnaInvoiceFee = _checkoutInfo.KlarnaInfoList[0].KlarnaInvoiceFee;
        $("#divKlarnaInvoicePaymentInfo").html("(Aviavgift:" + _klarnaInvoiceFee + ":-)")
    }

    _klarnaIBID = _checkoutInfo.KlarnaInterboatID;

    if (_klarnaID > 0) {
        $("[name=radioPaymentType]").filter("[value='KlarnaInvoicePayment']").attr("checked", "checked");
        var klarnaAccountHtml = "";
        var klarnaCampaignPayment = "";
        var account = null;
        for (var i = 0; i < _checkoutInfo.KlarnaInfoList.length; i++) {
            var info = _checkoutInfo.KlarnaInfoList[i];

            if (!info.IsAccount) {
                klarnaCampaignPayment += '<div class="formPair"><input type="radio" id="rdoptkc_' + info.KlarnaPClassID + '" name="radioPaymentType" value="KlarnaCampaign_' + info.KlarnaPClassID + '" />';
                klarnaCampaignPayment += '<label for="rdoptkc_' + info.KlarnaPClassID + '">';
                klarnaCampaignPayment += info.KlarnaPaymentMonths + " månader, " + info.KlarnaInterestRate + "% ränta " + info.KlarnaMonthlyCost + " kr/mån</label></div>";
            }
            else {
                _klarnaAccountpClass = info.KlarnaPClassID;
                account = info;
            }
        }

        //klarnaAccountHtml += '<b>Konto</b>';
        
        klarnaAccountHtml += " Klarna konto - Betala lägst " + account.KlarnaMonthlyCost + " kr/mån eller 1/24 av totalbeloppet";
        klarnaAccountHtml += "<br>(ingen uppläggningsavgift, aviavgift " + account.KlarnaInvoiceFee + " kr tillkommer, " + account.KlarnaInterestRate + "% ränta)";


        $("#divKlarnaAccountPayments").html(klarnaAccountHtml);
        $("#divKlarnaPartPayments").html(klarnaCampaignPayment);

        $("divKlarnaInvoicePayment").show();
        $("divKlarnaAccountePayment").show();
        // $("#KlarnaAccountPayment").attr("checked", true);
        TogglePayment();
    }
    else {
        //alert(shippingMode);
        //if (!((shippingMode == ShipItems || shippingMode == UsersChoice)))   //&& _isInterboatStore)) // If No klarnaid for store, but for Interboat we can still show klarna when shipping
        //{
        $("#divKlarna").hide();

        // $("#chkKlarnaInvoicePayment").attr("checked", false);
        //}

    }


    //Send or choose
    if (shippingMode == UsersChoice || shippingMode == GetItems) {
        //$("#chkGetItemsFromStore").attr("checked", false);
        var info;
        var freight;
        if (_checkoutInfo.ShippingFreight.length > 0) {
            freight = "(Frakt:" + _checkoutInfo.ShippingFreight + ":-)";
            info = freight;
            _shippingFee = parseFloat(_checkoutInfo.ShippingFreight);

        }
        var postalInfo = "";
        // PostalFee (postförskott)
        if (_checkoutInfo.PostalFee.length > 0 && parseFloat(_checkoutInfo.PostalFee) > 0) {
            postalInfo = "(Postförskotts- efterkravsavgift:" + _checkoutInfo.PostalFee + ":-)";
            _postalFee = parseFloat(_checkoutInfo.PostalFee);
            if (_klarnaID < 1) {
                $("[name=radioPaymentType]").filter("[value='PostalPayment']").attr("checked", "checked");
            }
        }


        info = info.trim();

        $("#divPostItemsInfo").html(info);
        $("#divPostalPaymentCost").html(postalInfo);
        if (shippingMode == ShipItems)
            $("#divPostItemsInfo3").html(info);


        //The store allows advance payment
        if (_checkoutInfo.BankName != null) {
            if (_checkoutInfo.BankName.length > 0) {

                $("#divBankName").html(_checkoutInfo.BankName)
                $("#divAccount").html(_checkoutInfo.AccountNumber)
                $("#divAdvancePaymentContainer").show();

                if (badBrowser()) {
                    $("#divAdvancePaymentInfo").hide();
                    $("#divKlarnaDetails").hide();
                }
                else {
                    $("#divAdvancePaymentInfo").css("opacity", 0.4);
                    $("#divKlarnaDetails").css("opacity", 0.4);
                }
            }
        }

    }
    //Get or choose
    if (shippingMode == GetItems || shippingMode == UsersChoice) {

        if (_checkoutInfo.PickupFee > 0) {
            $("#divPickupFee").html("(Administrationsavgift för hämtning:" + _checkoutInfo.PickupFee + ":-)");

            _pickupFee = parseFloat(data.d.PickupFee);
        }

    }
    //Calc total order sum
    SetCheckoutSum();


    //Disable small cart
    ToggleCart(false);
    _loading = false;

    $("#divCheckout :a").attr("disabled", true);
    $("#divCheckout :href").attr("disabled", true);

    var title = "Kassan";
    var crumb = "<a style='cursor:pointer' onclick='return GetCheckout();'>" + title + "</a>";
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: " + crumb;

}

function getMontyhlyCost() {

    ExecuteAjax(["customerID", _customerID, "retailerID", _retailerID], monthlyCost, OnError);
}

function monthlyCost(data) {

    var klarnaAccountHtml = "";
    var klarnaCampaignPayment = "";
    var account = null;
    var _checkoutInfo = data.d;

    if (_klarnaID > 0) {

        for (var i = 0; i < _checkoutInfo.KlarnaInfoList.length; i++) {
            var info = _checkoutInfo.KlarnaInfoList[i];

            if (!info.IsAccount) {
                klarnaCampaignPayment += info.KlarnaPaymentMonths + " månader, " + info.KlarnaInterestRate + "% ränta " + info.KlarnaMonthlyCost + " kr/mån</label></div>";
            }
            else {
                _klarnaAccountpClass = info.KlarnaPClassID;
                account = info;
            }
        }

        //klarnaAccountHtml += " Klarna konto - Betala lägst " + account.KlarnaMonthlyCost + " kr/mån eller 1/24 av totalbeloppet";
        //klarnaCampaignPayment += "<div>" + info.KlarnaMonthlyCost + " kr/mån</label></div>";

        //$("#divKlarnaAccountPayments").html(klarnaAccountHtml);
        $("#MonthlyPayment").html(klarnaCampaignPayment);
    }
}

function ToggleCart(enable) {

    if (document.getElementById("hiddenCustomerHasNoArtices") != null)
        enable = false;

    $("#divAjaxCart :input").attr("disabled", !enable);
    $("#divAjaxCart :a").attr("disabled", !enable);
    $("#divAjaxCart :href").attr("disabled", !enable);
}

function UpdateCart(articleNo, customerID, quantity, retailerID) {

    if (_loading)
        return false;

    var hasMany = !IsNumeric(quantity) && quantity.indexOf('_') > 0;
    try {
        quantity = quantity.replace('.', ',');
    }
    catch (e) { }
    if (IsNumeric(quantity) || hasMany) {
        ToggleCart(false);
        var isCheckoutPage = document.getElementById("isCheckoutPage") != null;
        var isCartGridPage = document.getElementById("isCartGridPage") != null;
        ExecuteAjax(["customerID", customerID, "articleNo", articleNo, "quantity", quantity, "retailerID", retailerID, "loadGrid", isCartGridPage, "loadCheckout", isCheckoutPage], "UpdateCart", OnDocumentUpdated, OnError);
    }

}


function ClearCart() {

    if (_loading)
        return false;
    if (confirm("Ta bort alla artiklar?")) {
        ToggleCart(false);
        var isCheckoutPage = document.getElementById("isCheckoutPage") != null;
        var isCartGridPage = document.getElementById("isCartGridPage") != null;
        ExecuteAjax(["customerID", _customerID, "retailerID", _retailerID, "loadGrid", isCartGridPage, "loadCheckout", isCheckoutPage], "ClearCart", OnDocumentUpdated, OnError);
    }
}

function OnDocumentUpdated(data) {

    HideLoading();
    if (data.d[0] != null) {
        var smallCart = document.getElementById('divAjaxCart');
        if (smallCart != null) {
            smallCart.innerHTML = data.d[0];
            var cartHeight = $("#divAjaxCart").height() + "px";
            cartHeight = "3px";
            $("#divTrademark").css("top", cartHeight);
            ToggleCart(true);

        }
    }

    if (data.d[1] != null && data.d[1].length > 0) {

        var cartGrid = document.getElementById('divAjaxContent');
        if (cartGrid != null) {
            cartGrid.innerHTML = data.d[1];
            cartGrid.style.display = "block";
        }
    }
    _loading = false;
}

// Do onthing with result
function OnOk(data) {
    _loading = false;
}

function ShakeCart() {
    $("#divAjaxCart").effect("shake", { times: 1, direction: "up" }, 300);
}

function OnError(xhr, ajaxOptions, thrownError) {
    _loading = false;
    $("ajaxMainForm").show();
    $("#ajaxDisable").hide();
    $("#ajaxMainButton").show();
    $("#ajaxMainInfo").html("Något gick fel:" + xhr.status + " " + xhr.responseText);
    alert("Något gick fel:" + xhr.status + " " + xhr.responseText);
}
function IsNumeric(sText) {
    var ValidChars = "0123456789.,";
    var ValidChars2 = "0123456789";
    var IsNumber = true;
    var Char;

    if (sText.length == 0)
        return false;
    try {

        if (ValidChars2.indexOf(sText.charAt(0)) == -1)
            return false;
    }
    catch (e) { return true; }
    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;

}

function flickrCart() {
    $("#divAjaxCart").slideUp();
    $("#divAjaxCart").slideDown();
}

//function OnRetailerMenuClick(id) {

//    if (_loading)
//        return false;


//    var item = $("#" + id).context.activeElement;

//    try {
//        var tmpValue = item.href.split(',')[1];
//        id = tmpValue.substring(1, tmpValue.length - 2);
//    } catch (e) {
//        return false;
//    }

//    _loading = true;
//    ClearAjaxDivElements(true, true);
//    ExecuteAjax(["pageID", id, "retailerID", _retailerID], "GetRetailerPage", OnPageUpdated, OnError);
//    return false;
//}




function ClearAjaxDivElements(clearStrd, clearTop) {
    var items = $(".ajaxDiv");
    var i;
    for (i = 0; i < items.length; i++) {
        if (clearStrd == true || items[i].id != "divContentPlaceHolder")
            items[i].innerHTML = "&nbsp;";
    }
    if (clearTop) {
        $("#divAjaxTopContent").html("");
    }
}
var _node;
//treeview
function OnClientNodeExpanded(sender, eventArgs) {
    return OnTreeNodeClicked(sender, eventArgs);
}

function OnTreeNodeClicked(sender, eventArgs) {
    if (_loading)
        return;
    try {
        eventArgs.set_cancel(true);

    }
    catch (x) { }
    _loading = true;
    treeCollapseAllNodes(sender);
    var node = eventArgs.get_node();
    var ul = node.get_childListElement();
    if (ul != null)
        ul.style.background = "#E8E8E8";




    _node = eventArgs.get_node();

    _categoryID = _node.get_category();
    ClearAjaxDivElements(true, true);
    scroll(0, 0);
    Loading('divAjaxContent');
    var divBreadCrumb = document.getElementById("divBreadCrumb");

    var isLowest = _node._getChildren().get_count() == 0;

    if (divBreadCrumb != null) {
        CreateBreadCrumb(_node, _categoryID);
    }

    if (isLowest)
        ExecuteAjax(["webSiteID", _webSiteID, "categoryID", _categoryID, "retailerID", _retailerID, "customerID", _customerID], "LoadSectionList", OnSectionLoaded, OnError);
    else
        ExecuteAjax(["webSiteID", _webSiteID, "categoryID", _categoryID, "customerID", _customerID, "breadCrumb", _nodePath], "LoadAList", OnSectionLoaded, OnError);
    treeExpandAllNodes(node);

}
function treeExpandAllNodes(node) {

    while (node.get_parent() != null) {


        if (node.get_parent() == node.get_treeView())
            break;
        else
            node = node.get_parent();
    }
    node.expand();
    var nodes = node.get_nodes();

    for (var i = 0; i < nodes.get_count(); i++) {
        nodes.getItem(i).expand();
    }

}
function treeCollapseAllNodes(treeView) {

    var nodes = treeView.get_allNodes();

    for (var i = 0; i < nodes.length; i++) {
        if (nodes[i].get_nodes() != null) {
            nodes[i].collapse();
        }
    }
}

//treeview
function LoadSectionList(categoryID, isLowest) {
    scroll(0, 0);

    _categoryID = categoryID;
    ClearAjaxDivElements(true, true);
    scroll(0, 0);
    Loading('divAjaxContent');


    CreateBreadCrumb(_node, _categoryID);
    if (isLowest)
        ExecuteAjax(["webSiteID", _webSiteID, "categoryID", _categoryID, "customerID", _customerID, ], "LoadSectionList", OnSectionLoaded, OnError);
    else
        ExecuteAjax(["webSiteID", _webSiteID, "categoryID", _categoryID, "customerID", _customerID, "breadCrumb", _nodePath], "LoadAList", OnSectionLoaded, OnError);





}

function CreateBreadCrumb(node, categoryID) {
    //alert('CreateBreadCrumb');
    if (node == null)
        return;
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    var crumb = "";
    _nodePath = ''
    while (node.get_parent() != null) {

        if (node.get_category() <= categoryID) {
            var isLowest = node._getChildren().get_count() == 0;
            var path = node.get_text();
            _nodePath = path + ">" + _nodePath;
            crumb = "<a style='cursor:pointer' onclick='return LoadSectionList(" + node.get_category() + "," + isLowest + ");'>" + path + "</a> > " + crumb;
        }
        node = node.get_parent();
    }
    divBreadCrumb.innerHTML = "Du är här: " + crumb.substring(0, crumb.length - 2);
}

function SetBreadCrumb(title, link) {
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: <a href = '" + link + "'>" + title + "</a>";
}
function OnBreadCrumbNodeClicked(category) {

}
function OnSectionLoaded(data) {
    //SearchAllArticles("", _categoryID, 20);
    var divSection = document.getElementById('divAjaxContent');

    if (divSection != null) {
        divSection.innerHTML = data.d;
        divSection.style.display = "block";
    }

    var searchBoxSections = $("#sectionSearchTextBox");

    if (searchBoxSections != null) {
        //searchBoxSections.autocomplete('AutoCompleteHandler.ashx?RetailerID=' + _retailerID);
        searchBoxSections.focus();
    }
    ToggleCart(true);
    _loading = false;

    // so that scroll follow will work
    $("#divRightColumn").css("height", $("#divAjaxContent").height());
}

var _isPopup = false;
function ShowSectionImages(sender, sectionID, isPopup) {
    _isPopup = isPopup;
    var pos = $(sender).offset();
    var width = $(sender).width();
    var height = $(sender).height();
    //alert(pos.left);
    //alert(pos.top);
    //show the menu directly over the placeholder

    var item;
    if (_isPopup) {
        item = $("#divPopupSectionImages");
        item.css({ "left": (90) + "px", "top": 200 + "px" });
    }
    else {
        item = $("#divSectionImages");
        item.css({ "left": (pos.left + width) + "px", "top": (pos.top - 160) + "px" });
    }


    item.css({ "background-color": "#FFFFFF" });
    ExecuteAjax(["sectionID", sectionID], "GetSectionImages", OnSectionImagesLoaded, OnError);

}

function HideSectionImages() {
    var item;
    if (_isPopup)
        item = $("#divPopupSectionImages");
    else
        item = $("#divSectionImages");

    item.html('');
    item.hide();
}

function OnSectionImagesLoaded(data) {
    var item;
    if (_isPopup)
        item = $("#divPopupSectionImages");
    else
        item = $("#divSectionImages");

    item.html(data.d);
    item.show();
    item.css("border", "solid 1px #C4C4C4");
}


function OnControlLoaded(data) {
    var divSection = document.getElementById('divAjaxContent');

    if (divSection != null) {
        divSection.innerHTML = data.d;
        divSection.style.display = "block";
    }

    var searchBox = document.getElementById("searchTextBoxGrid");
    if (searchBox != null) {
        $("#searchTextBoxGrid").autocomplete('/AutoCompleteHandler.ashx?RetailerID=' + _retailerID);
        $("#searchTextBoxGrid").focus();
    }
    ToggleCart(true);
    _loading = false;


}
function OnTopControlLoaded(data) {
    var divSection = $("#divAjaxTopContent");
    //var divSection = document.getElementById('divAjaxTopContent');

    //if (divSection != null)
    divSection.html(data.d);
    divSection.show();

    var searchBox = document.getElementById('quickSearchTextBox');
    if (searchBox != null) {
        $("#quickSearchTextBox").autocomplete('ArticleNoHandler.ashx?RetailerID=' + _retailerID);
        $("#quickSearchTextBox").focus();
    }
    _loading = false;
}

function OnControlLoadedFromCategory(data) {
    //alert("OnControlLoadedFromCategory");
    $(".categoryResult").not("#" + _categoryID).slideUp("slow");
    var div = document.getElementById(_categoryID);
    div.innerHTML = data.d;
    $("#" + _categoryID).slideDown("slow");
    ToggleCart(true);
    _loading = false;
}

function LoadPage(isRetailer, id, title) {

    title = title.trim();
    Loading("divAjaxContent");
    if (isRetailer)
        ExecuteAjax(["pageID", id, "retailerID", _retailerID], "GetRetailerPage", OnControlLoaded, OnError);
    else
        ExecuteAjax(["pageID", id], "GetContentPage", OnControlLoaded, OnError);

    var crumb = "<a style='cursor:pointer' onclick='return LoadPage(" + isRetailer + "," + id + ",\"" + title + "\");'>" + title + "</a>";
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: " + crumb;
}
function ShowArticleInSection(articleNo) {
    Loading('divAjaxArticle');
    ExecuteAjax(["articleNo", articleNo, "retailerID", _retailerID, "customerID", _customerID], "GetArticle", OnArticleLoaded, OnError);
    return false;
}

function GetArticle(articleNo, notWindow) {
    //Loading('divAjax');
    ExecuteAjax(["articleNo", articleNo, "retailerID", _retailerID, "customerID", _customerID, "notWindow", notWindow], "GetArticle", OnArticlePageLoaded, OnError);
}

function GetRandomCampaigns(articleNo) {
    Loading('divAjax');
    ExecuteAjax([], "GetRandomCampaigns", OnArticlePageLoaded, OnError);
}


function GetEngineSearchPage() {
    ClearAjaxDivElements(true, true);
    scroll(0, 0);
    Loading('divAjaxTopContent');
    ExecuteAjax(["retailerID", _retailerID, "customerID", _customerID], "GetEngineSearchPage", OnTopControlLoaded, OnError);

    var title = "Marinmotorsök";
    var crumb = "<a style='cursor:pointer' onclick='return GetEngineSearchPage();'>" + title + "</a>";
    var divBreadCrumb = document.getElementById("divBreadCrumb");
    divBreadCrumb.innerHTML = "Du är här: " + crumb;

    return false;
}
function BindSectionDropDown(drpCategory) {

    ExecuteAjax(["categoryID", drpCategory.value], "GetSectionsByCategory", OnEngineSectionsLoaded, OnError);
}
function OnEngineSectionsLoaded(data) {
    var i;
    var key = 0;
    var result = data.d;
    var drpDrev = $("#ctl00_drpDrevCategory");
    var drpSections = $("#ctl00_drpSection");
    var drevUpdated = false;

    drpSections.html(""); // Clear the dropdowns
    drpDrev.html("");
    $("<option value='0'>Välj modell</option>").appendTo(drpSections);
    $("<option value='0'>Välj drev</option>").appendTo(drpDrev);
    //Add new values to section dropdown and drev-dropdown. drev are oobject with a specific category
    for (i = 0; i < result.length; i += 3) {
        if (result[i + 2] == "713302") {
            $("<option value='" + result[i] + "'>" + result[i + 1] + "</option>").appendTo(drpDrev);
            drevUpdated = true;
        }
        else
            $("<option value='" + result[i] + "'>" + result[i + 1] + "</option>").appendTo(drpSections);
    }
    drpSections.val(0);
    drpDrev.val(0);

    drpSections.attr("disabled", "");
    drpSections.effect("shake", { times: 1, direction: "up" }, 300);
    if (drevUpdated) {
        drpDrev.effect("shake", { times: 1, direction: "up" }, 300);
        drpDrev.attr("disabled", "");
    }
    else
        drpDrev.attr("disabled", "disabled");

    _loading = false;
}
function SearchEngines(drpSection, drpOther) {
    drpOther.val(0);
    //Here we dont clear the divAjaxTopControl, it contains the dropdowns
    ClearAjaxDivElements(true, false);
    Loading('divAjaxContent');
    var sectionID = drpSection.value;
    if (sectionID != "0") {
        ExecuteAjax(["retailerID", _retailerID, "sectionID", sectionID], "GetSection", OnControlLoaded, OnError);
    }
}
function Loading(div) {
    var divAjaxArticle = document.getElementById(div);
    if (divAjaxArticle != null) {
        divAjaxArticle.style.display = "block";
        divAjaxArticle.innerHTML += LOADING_IMAGE;
    }
}

function HideArticle() {
    articleDiv.hide();
    $("#ajaxDisable").fadeOut();
    return false;
}

function OnArticleLoaded(data) {
    var divAjaxArticle = $("#divAjaxArticle");
    if (divAjaxArticle != null) {
        $("#divAjaxArticle").html(data.d);
        $("#divAjaxArticle").show();

        var windowWidth = document.documentElement.clientWidth;
        var windowHeight = document.documentElement.clientHeight;

        var popupHeight = $("#divAjaxArticle").height();
        var popupWidth = $("#divAjaxArticle").width();

        //        $("#divAjaxArticle").scrollFollow({
        //            speed: 2000,
        //            offset: 300
        //        });

        articleDiv.show();

        $("#divAjaxArticle").centerInClient();
        $("#divAjaxArticle").css("border", "solid 3px #EEEEEE");


        ShowLoading("", false, false);

        $("#articleQuantityTextBox").focus();

    }
    _loading = false;
}
function badBrowser() {
    if ($.browser.msie && parseInt($.browser.version) <= 6)
    { return true; }
    return false;
}

function OnArticlePageLoaded(data) {
    var divAjaxArticle = document.getElementById('divAjax');
    if (divAjaxArticle != null) {
        divAjaxArticle.innerHTML = data.d;
        //var item = articleDiv.show();
        //showdeadcenterdiv(800, 800, item);
        divAjaxArticle.style.display = "block";
    }
    _loading = false;
}


function OnArticleAdded(data) {

    if (data.d[0] != null) {
        var smallCart = document.getElementById('divAjaxCart');
        if (smallCart != null) {
            smallCart.innerHTML = data.d[0];
            var cartHeight = $("#divAjaxCart").height() + "px";
            ShakeCart();
            cartHeight = "-100px";
            //$("#divGridHeader2").css("margin-top", cartHeight , ShakeCart(), OnError);
        }
    }


    _loading = false;
}
function DisableBackground() {

    if (badBrowser() == false) {
        var windowWidth = document.documentElement.clientWidth;
        var windowHeight = document.documentElement.clientHeight;

        $("#ajaxDisable").css({
            "height": windowHeight,
            "width": windowWidth,
            "position": 'fixed',
            "_position": 'absolute',
            "opacity": 0.5

        });
        $("#ajaxMainForm").center();
        ShowLoading("Laddar sida...", false, true);

    }
}


var articleDiv = function () {
    var id2 = 'tt2';
    var top = 3;
    var left = 3;
    var maxw = 600;
    var speed = 25;
    var timer = 20;
    var endalpha = 100;
    var alpha = 0;
    var tt2, h;
    var ie = document.all ? true : false;
    return {
        show: function () {
            if (tt2 == null) {
                tt2 = $get("divAjaxArticle");
                tt2.style.opacity = 0;
                tt2.style.filter = 'alpha(opacity=0)';
            }
            tt2.style.display = 'block';
            tt2.style.visibility = 'visible';
            speed = 20;
            h = parseInt(tt2.offsetHeight) + top;
            clearInterval(tt2.timer);
            tt2.timer = setInterval(function () { articleDiv.fade(1) }, timer);
            return tt2;
        },
        pos: function (e) {

        },
        fade: function (d) {
            var a = alpha;
            if ((a != endalpha && d == 1) || (a != 0 && d == -1)) {
                var i = speed;
                if (endalpha - a < speed && d == 1) {
                    i = endalpha - a;
                } else if (alpha < speed && d == -1) {
                    i = a;
                }
                alpha = a + (i * d);
                tt2.style.opacity = alpha * .01;
                tt2.style.filter = 'alpha(opacity=' + alpha + ')';
            } else {
                clearInterval(tt2.timer);
                if (d == -1) { tt2.style.display = 'none' }
            }
        },
        hide: function () {
            speed = 30;
            if (tt2 != null) {
                clearInterval(tt2.timer);
                tt2.timer = setInterval(function () { articleDiv.fade(-1) }, timer);
            }
        }
    };
} ();


$.fn.centerInClient = function (options) {
    /// <summary>Centers the selected items in the browser window. Takes into account scroll position.
    /// Ideally the selected set should only match a single element.
    /// </summary>    
    /// <param name="fn" type="Function">Optional function called when centering is complete. Passed DOM element as parameter</param>    
    /// <param name="forceAbsolute" type="Boolean">if true forces the element to be removed from the document flow 
    ///  and attached to the body element to ensure proper absolute positioning. 
    /// Be aware that this may cause ID hierachy for CSS styles to be affected.
    /// </param>
    /// <returns type="jQuery" />
    var opt = { forceAbsolute: false,
        container: window,    // selector of element to center in
        completeHandler: null
    };
    $.extend(opt, options);

    return this.each(function (i) {
        var el = $(this);
        var jWin = $(opt.container);
        var isWin = opt.container == window;

        // force to the top of document to ENSURE that 
        // document absolute positioning is available
        if (opt.forceAbsolute) {
            if (isWin)
                el.remove().appendTo("body");
            else
                el.remove().appendTo(jWin.get(0));
        }

        // have to make absolute
        el.css("position", "absolute");

        // height is off a bit so fudge it
        var heightFudge = isWin ? 2.0 : 1.8;

        var x = (isWin ? jWin.width() : jWin.outerWidth()) / 2 - el.outerWidth() / 2;
        var y = (isWin ? jWin.height() : jWin.outerHeight()) / heightFudge - el.outerHeight() / 2;

        var newTop = y + jWin.scrollTop();
        if (newTop < 20)
            newTop = 20;
        el.css("left", x + jWin.scrollLeft());
        el.css("top", newTop);

        // if specified make callback and pass element
        if (opt.completeHandler)
            opt.completeHandler(this);
    });
}

function getInternetExplorerVersion() {
    var rv = 1000;
    // Return value assumes failure.    
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    } return rv;
}

function GetIEVersionVersion() {
    var msg = "You're not using Windows Internet Explorer.";
    var version = getInternetExplorerVersion();
    return version;


}

