﻿/// <reference path="../common.js" />
/// <reference path="../library/jquery-1.3.1.js" />

$(document).ready(function() {

    var scrollDisabled = $.browser.msie && $.browser.version.substring(0, 1) == 7;

    // Autocomplete snabbsök
    $(".QuickSearchbox").autocomplete("/services/scriptservice.asmx/ArtikelSok",
        {
            formatItem: formatAutoCompleteRow,
            minChars: 2,
            width: 180,
            max: 20,
            scroll: !scrollDisabled,
            selectFirst: false
        });


    //Hämta kundnettopris och lagerstatus
    $(".PrisSaldoFraga[ArtikelNr]").click(function(e) {

        e.preventDefault();

        var antalbox = $(this).parent().parent().find("input[type=text]");
        antal = antalbox.length > 0 ? antalbox.val() : 1;

        if (!CheckQuantity(antal)) {
            return;
        }

        $.ajax({
            type: "POST",
            url: "/services/scriptservice.asmx/PrisSaldoFraga",
            data: '{ "artikelnummer" : "' + $(this).attr("ArtikelNr") + '","antal" : ' + antal + '}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {
                VisaDialogResult(data);
            },
            beforeSend: function(XMLHttpRequest) {
                VisaLagersaldoKontrolleras();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                showDialog("Ett fel inträffade (" + textStatus + ")", "Fel");
            }
        });

    });

    // Köpknappar -> Lägg i kundvagn
    $(".LaggIKundvagnknapp[ArtikelNr]").live("click", function(e) {

        e.preventDefault();

        // Kontrollera om elementet har ett antal-attribut
        var antal = $(this).attr("Antal");
        if (!antal) {
            // Kontrollera om föräldern innehåller en textbox
            var antalbox = $(this).parent().parent().find("input[type=text]");
            antal = antalbox.length > 0 && antalbox.val().length > 0 ? antalbox.val() : 1;
        }

        if (!CheckQuantity(antal)) {
            return;
        }

        $.ajax({
            type: "POST",
            url: "/services/scriptservice.asmx/LaggArtikelIKundvagn",
            data: '{ "artikelnummer" : "' + $(this).attr("ArtikelNr") + '","antal" : "' + antal + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {
                VisaKopResultat(data)
            },
            beforeSend: function(XMLHttpRequest) {
                VisaLagersaldoKontrolleras();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                showDialog("Ett fel inträffade (" + textStatus + ")", "Fel i LaggArtikelIKundvagn (knappklick)");
            }
        });

    });

    // Köpknappar -> Val av artikel
    $(".LaggIKundvagnknapp[ProduktId]").click(function(e) {

        $.ajax({
            type: "POST",
            url: "/services/scriptservice.asmx/ArtikelHamtaFlera",
            data: '{"produktid":' + $(this).attr("ProduktId") + '}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {

                var artiklar = data.d;

                if (artiklar.length > 0) {

                    var html = "<table class=\"Artikeltabell\"><tbody>"

                    for (i = 0; i < data.d.length; i++) {
                        html += "<tr><td>" + data.d[i].Artnr + "</td><td>" + data.d[i].Artben + "</td><td><a class=\"LaggIKundvagnknapp\" ArtikelNr=\"" + data.d[i].Artnr + "\"><span>» Välj</span></a></td></tr>";
                    }

                    html += "</tbody></table>";

                    var buttons = new Array();
                    showDialog(html, "Välj artikel", null, buttons);

                }

            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                showDialog("Ett fel inträffade (" + textStatus + ")", "Fel i ArtikelHamtaFlera");
            }
        });

        e.preventDefault();
    });

    // Informationsbubblor
    $(".ProductInformation p.h4x strong").live("click", function() {

        var DlTitle = $(this).text();
        var DlDesc = $(this).next().html();

        if ($(this).parent().hasClass('h4xwiz')) {
            //
        } else if ($(".ProductInformation p.h4x div:visible")) {
            $(".ProductInformation p.h4x div:visible").hide();
            $(".ProductInformation p.h4x").removeClass("h4xwiz");
            $(this).parent().append("<div id='DlPopup'><div class='Content'><strong>" + DlTitle + "</strong><br />" + DlDesc + "<a class='CloseLink' onclick='return haxx();'>test</a></div><div class='Shadow'>&#160;</div></div>").addClass('h4xwiz');
        } else {
            $(".ProductInformation p.h4x div:visible").hide();
            $(".ProductInformation p.h4x").removeClass("h4xwiz");
            $(this).parent().append("<div id='DlPopup'><div class='Content'><strong>" + DlTitle + "</strong><br />" + DlDesc + "<a class='CloseLink' onclick='return haxx();'>test</a></div><div class='Shadow'>&#160;</div></div>").addClass('h4xwiz');
        }
    });

    $("div.DialogBody .ProductInformation tr.h4x p strong").live("click", function() {

        var DlTitle = $(this).text();
        var DlDesc = $(this).next().html();
        var popupLeft = $(this).position().left;

        if ($("div.DialogBody .ProductInformation tr.h4x div:visible")) {
            $("div.DialogBody .ProductInformation tr.h4x div:visible").hide();
            $("div.DialogBody .ProductInformation tr.h4x p").removeClass("h4xwiz");
            $(this).parent().append("<div id='DlPopup' style='left:-" + popupLeft + "px;'><div class='Content'><strong>" + DlTitle + "</strong><br />" + DlDesc + "<a class='CloseLink' onclick='return haxx();'>test</a></div><div class='Shadow'>&#160;</div></div>").addClass('h4xwiz');
        } else {
            $("div.DialogBody .ProductInformation tr.h4x div:visible").hide();
            $("div.DialogBody .ProductInformation tr.h4x p").removeClass("h4xwiz");
            $(this).parent().append("<div id='DlPopup' style='left:-" + popupLeft + "px;'><div class='Content'><strong>" + DlTitle + "</strong><br />" + DlDesc + "<a class='CloseLink' onclick='return haxx();'>test</a></div><div class='Shadow'>&#160;</div></div>").addClass('h4xwiz');
        }
    });

    // _kontrolleraEjLaddadKundvagn sätts i Default.Master
    KontrolleraEjLaddadKundvagn(_kontrolleraEjLaddadKundvagn);

});

function haxx() {
    $(".ProductInformation #DlPopup").remove();
    $(".ProductInformation p.h4xwiz").removeClass("h4xwiz");
    return false;
}

function KontrolleraEjLaddadKundvagn(genomforKontroll) {

    if (genomforKontroll) {
        $.ajax({
            type: "POST",
            url: "/services/scriptservice.asmx/KontrolleraEjLaddadKundvagn",
            data: '{}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {
                if (data.d == true) {
                    var buttons = new Array(2);
                    buttons[0] = "Låt dem ligga i kundvagnen";
                    buttons[1] = "Släng";
                    showDialog("Välkommen tillbaka! Du lämnade artiklar i kundvagnen vid ditt senaste besök.<br/>Vad vill du göra med dem?", "Information", HanteraTemporarKundvagn, buttons, true)
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                showDialog("Ett fel inträffade (" + textStatus + ")", "Fel i KontrolleraEjLaddadKundvagn");
            }
        });

    }
}

function HanteraTemporarKundvagn(buttonIndex) {

    // Kontrollera om man har tryckt på krysset
    if (buttonIndex == -1)
        return;

    var ladda = buttonIndex == 0;

    if (ladda) {
        var buttons = new Array();
        showDialog("<img src=\"/Images/indicator.gif\" valign=\"middle\" /> Artiklarna i kundvagnen kontrolleras. Var god vänta.", "Information", null, buttons);
    }

    $.ajax({
        type: "POST",
        url: "/services/scriptservice.asmx/HanteraEjLaddadKundvagn",
        data: '{ "ladda" : ' + ladda + '}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {
            if (ladda) {
                VisaKopResultat(data);
            }
            else {
                LaddaOmKundvagn();
                closeDialog(0);
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            showDialog("Ett fel inträffade (" + textStatus + ")", "Fel i HanteraEjLaddadKundvagn");
        }
    });
}

function VisaKopResultat(data) {

    if(data.d.KundvagnId > 0)
    {
        LaddaOmKundvagn();
    }

    VisaDialogResult(data);

 }

 function VisaDialogResult(data) {

     var avfyraCallbackUtanAttStanga = data.d.Callbackfunktion.length > 0;

     var buttons;
     if (data.d.Knapp.length > 0) {
         buttons = new Array(1);
         buttons[0] = data.d.Knapp;
     } else {
         buttons = new Array(0);
     }

     showDialog(data.d.Meddelande, data.d.Rubrik, eval(data.d.Callbackfunktion), buttons, avfyraCallbackUtanAttStanga);

 }

 function LaddaOmKundvagn() {

     LaddaOmMinikundvagn();
     LaddaOmAntalArtiklar();
 }

 function LaddaOmAntalArtiklar() {

     $.ajax({
         type: "POST",
         url: "/services/scriptservice.asmx/KundvagnHamtaAntalProdukter",
         data: '{}',
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         success: function(data) {
         $(".ContainerTop .AntalArtiklarLabel").html(data.d);
         }
     });
    
 }

function LaddaOmMinikundvagn() {

    $.ajax({
            type: "POST",
            url: "/services/scriptservice.asmx/HamtaAktuellKundvagn",
            data: '{ "forkortaOrd" : "true" }',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {

                var output = $("#KundvagnTemplate").parseTemplate(data);
                $(".MiniCart #MiniKundvagnCont").html(output);

            }
        });

}

function KundvagnTaBortRad(e) {

    e.preventDefault();

    var kundvagnId = $(this).attr("kundvagnid");

    $.ajax({
        type: "POST",
        url: "/services/scriptservice.asmx/KundvagnTaBortRad",
        data: '{ "kundvagnId" : "' + kundvagnId + '","radnummer" : "' + $(this).attr("radnr") + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {
            LaddaOmKundvagn();
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            showDialog("Ett fel inträffade (" + textStatus + ")", "Fel i KundvagnTaBortRad");
        }
    });

    $(this).parent().parent().remove();

}

// Används av jquery.autocomplete för att formattera varje rad
function formatAutoCompleteRow(row) {
    return row[0] + "<br/><em>" + row[1] + "</em>";
}

function decodeURL(text) {
    text = text.replace("%c3%a5", "å");
    text = text.replace("%c3%a4", "ä");
    text = text.replace("%c3%b6", "ö");
    return text;
}

function MarkeraOchSkrollaTill(sokOrd, cssNamnMarkera, omrade) {
    // Inställningar för SearchHighlight
    var options = { exact: "partial", keys: sokOrd, style_name_suffix: false, style_name: cssNamnMarkera, highlight: omrade };
    var doc = $(document);

    // Markera träff
    doc.SearchHighlight(options);

    // Skrolla till första träffen
    var traffPos = doc.find(omrade + " ." + cssNamnMarkera).offset();
    if (traffPos)
        $('html,body').animate({ scrollTop: traffPos.top - 10 }, 700);
}

function LaggValdaArtiklarIKundvagn(buttonIndex) {
    if (buttonIndex != 0)
        return;

    var checkadeCheckboxar = $(".DialogBody .ArtAttKopaCheckbox:checked");
    var checkadeRadiobuttons = $(".DialogBody input[type=radio]:checked");
    var antalArtiklar = checkadeCheckboxar.length + checkadeRadiobuttons.length;
    var artnrOchAntal = new Array(antalArtiklar);

    var i = 0;
    checkadeCheckboxar.each(function() {
        nagonArtikelVald = true;
        artnrOchAntal[i] = '"' + $(this).attr("artnr") + '|' + $(this).attr("antal") + '|' + $(this).attr("dellev") + '"';
        i++;
    });

    checkadeRadiobuttons.each(function() {
        nagonArtikelVald = true;
        if ($(this).attr("dellev") == "true") {
            artnrOchAntal[i] = '"' + $(this).attr("artnr") + '|' + $(this).attr("antal") + '|false"';
            i++;
            artnrOchAntal[i] = '"' + $(this).attr("artnr") + '|' + $(this).attr("antalRest") + '|true"';
        } else {
            artnrOchAntal[i] = '"' + $(this).attr("artnr") + '|' + $(this).attr("antal") + '|false"';
        }
        i++;
    });

    if (antalArtiklar > 0) {

        $.ajax({
            type: "POST",
            url: "/services/scriptservice.asmx/LaggArtiklarIKundvagn",
            data: '{ "artnrantalRader" : [' + artnrOchAntal + '], "kontrolleraLagersaldo" : "true", "avbrytKopVidRestadEllerSlutPaLager" : "false"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {
                VisaFelEllerLaddaOmOchStang(data.d);
            },
            beforeSend: function(XMLHttpRequest) {
                var buttons = new Array();
                showDialog("<img src=\"/Images/indicator.gif\" valign=\"middle\" /> Artiklar läggs i kundvagnen. Var god vänta.", "Information", null, buttons);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                showDialog("Ett fel inträffade (" + textStatus + ")", "Fel i LaggArtiklarIKundvagn (LaggValdaArtiklarIKundvagn)");
            }
        });

    } else {
        resetCallback();
        closeDialog(0);
    }
}

function VisaFelEllerLaddaOmOchStang(resultat) {
    if (resultat.InnehallerFel) {
        showDialog(resultat.Meddelande, "Något har gått fel");
    }else{

        if (!LaddaOmSidaSomVisarArtiklar()) {

            if (resultat.KundvagnId > 0) {
                LaddaOmKundvagn();
            }

            resetCallback();
            closeDialog(0);

        }
    }
}

function LaddaOmSidaSomVisarArtiklar() {
    var loc = new String(document.location).toLowerCase();
    if (loc.indexOf("/kassa") > -1 || loc.indexOf("/kundvagn") > -1) {
        document.location.reload(true);
        return true;
    }
    return false;
}

function GotoLoginPage() {
    document.location = "/For-foretag";
}

function CurrencyFormatted(amount) {
    var i = parseFloat(amount);
    if (isNaN(i)) { i = 0.00; }
    var minus = '';
    if (i < 0) { minus = '-'; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if (s.indexOf('.') < 0) { s += '.00'; }
    if (s.indexOf('.') == (s.length - 2)) { s += '0'; }
    s = minus + s;
    return s;
}





