﻿var attdel = ['style', 'width', 'height', 'border'];
function alternate() {
    $$('.altTable table').each(function(table) {
        for (var i in attdel) {
            if (table.hasAttribute(attdel[i])) {
                table.removeAttribute(attdel[i]);
            }
        }

        var i = 0;
        var theadfound = false;
        $(table).select('thead tr').each(function(row) {
            cleantr(row);
            theadfound = true;
        });
        $(table).select('tbody tr').each(function(row) {
            if (theadfound) {
                var firstcell = $(row).select('td')[0];
                //cleantr(row);
                if (firstcell.innerHTML != "" && firstcell.innerHTML != "&nbsp;") {
                    firstcell.observe('mouseover', function() { firstcell.addClassName('hover'); });
                    firstcell.observe('mouseout', function() { firstcell.removeClassName('hover'); });
                    firstcell.observe('click', function() {
                        $('addbasketartno').innerHTML = firstcell.innerHTML.replace(removeHTML, "").strip();
                        ShowAddBasket();
                    });
                }

                if (i % 2 == 0)
                    row.className = "alt";
            }
            else
                theadfound = true;
            i++;
        });
    });
}

function ShowAddBasket() {
    $('addtobasket').show();
}

function CloseAddBasket() {
    $('addtobasket').hide();
    $('addbasketloading').hide();
    $('addbasketcontent').show();
}

function AddToBasket(name, aid, noi) {
    ShowAddLoading();
    wdShop.AddToBasket(aid, name, noi, function() { HideAddLoading(); GetBasket(); });
}

function ShowAddLoading() {
    $('addbasketloading').show();
}

function HideAddLoading() {
    window.location.href = '/checkout';
}

function GetBasket() {
    StartBasketLoading();
    wdShop.GetLimitedCart(GotBasket, BasketError);
}

function BasketError() {
    showBasket = false;
    EndBasketLoading();
}

function ToggleBasketView() {
    if (showBasket)
        $('basketcontent').show();
    else
        $('basketcontent').hide();
}

var showBasket = false;
function GotBasket(res) {
    $('basketcontent').innerHTML = '<a href="javascript:ToggleBasket()" title="Beställ offert">Du har <span id="basketcount">' + res.Count + '</span> produkter i din förfrågan.</a>';
    $("baskettable").innerHTML = "";
    if (res.Articles.length < 1) {
        var span = document.createElement("span");
        span.className = "emptyCart";
        span.innerHTML = "Din förfrågan är tom";

        $("baskettable").appendChild(span);
        showBasket = false;
    } else {
        showBasket = true;
        //Hududet på tabellen
        var table = document.createElement("table");
        var thead = document.createElement("thead");
        var trHead = document.createElement("tr");
        var tdHead1 = document.createElement("th");
        var tdHead2 = document.createElement("th");
        var tdHead3 = document.createElement("th");
        var tdHead4 = document.createElement("th");
        tdHead2.innerHTML = "Antal";
        tdHead3.innerHTML = "Artnr";
        tdHead4.innerHTML = "Benämning";

        trHead.appendChild(tdHead1);
        trHead.appendChild(tdHead2);
        trHead.appendChild(tdHead3);
        trHead.appendChild(tdHead4);
        thead.appendChild(trHead);
        table.appendChild(thead);

        //resten
        var tbody = document.createElement("tbody");
        var trSum = document.createElement("tr");
        table.appendChild(tbody);

        for (var i = 0; i < res.Articles.length; i++) {
            var tr = document.createElement("tr");
            var td1 = document.createElement("td");
            var td2 = document.createElement("td");
            var td3 = document.createElement("td");
            var td4 = document.createElement("td");

            td1.className = "delLink";
            td1.onclick = function() { if (confirm("Är du säker på att du vill ta bort produkten?")) wdShop.DeleteItem(this.idn, GotBasket); };

            td1.idn = res.Articles[i].Id;
            td2.innerHTML = res.Articles[i].Count;
            td3.innerHTML = res.Articles[i].ArticleId;
            td4.innerHTML = '<a href="' + res.Articles[i].PageLink + '" title="' + res.Articles[i].Name + '">' + res.Articles[i].Name + '</a>';
            tr.appendChild(td1);
            tr.appendChild(td2);
            tr.appendChild(td3);
            tr.appendChild(td4);
            tbody.appendChild(tr);
        }
        $("baskettable").appendChild(table);
    }
    EndBasketLoading();
}

function ChangeAmount(el, id) {
    wdShop.UpdateQuantity(id, el.value, function(res) {
        if (res) {
            new Effect.Highlight(el, { startcolor: '#A7FA98', endcolor: '#ffffff' });
            wdShop.GetLimitedCart(GotBasket, BasketError);
        }
        else
            new Effect.Highlight(el, { startcolor: '#FC8181', endcolor: '#ffffff' });
    }, function() {
        new Effect.Highlight(el, { startcolor: '#FC8181', endcolor: '#ffffff' });
    });
    
}

function EndBasketLoading() {
    $('basketloading').hide();
    ToggleBasketView();
}

function StartBasketLoading() {
    showBasket = false;
    ToggleBasketView();
    $('basketloading').show();
    ToggleBasketView();
}

function ToggleBasket() {
    if ($('basketcontainer').style.display == "none") {
        $('basketcontainer').appear({ duration: 0.5 });
    }
    else {
        $('basketcontainer').fade({ duration: 0.5 });
    }
}

var removeHTML = new RegExp("<[^>]*>", "gi");

//<td(.*)> -> <td> (behåll rowspan och colspan)
//<table[^>]*> -> <table>
//<div[^>]*>
//</div>
//<span[^>]*>
//</span>
//<b>
//</b>
//&nbsp;

function cleantr(row) {
    for (var i in attdel) {
        if (row.hasAttribute(attdel[i])) {
            row.removeAttribute(attdel[i]);
        }
    }

    $(row).select('td').each(function(cell) {
        for (var i in attdel) {
            if (cell.hasAttribute(attdel[i])) {
                cell.removeAttribute(attdel[i]);
                cell.innerHTML = cell.innerHTML.replace(removeHTML, "").strip();
            }
        }
    });
}

stripHtml = function(html) {
    html = html.replace(/<!--[^.]*-->|<!--.*-->/gim, "");
    html = html.replace(/<\/?\s*HTML[^>]*>/gi, "");
    html = html.replace(/<\/?\s*BODY[^>]*>/gi, "");
    html = html.replace(/<\/?\s*META[^>]*>/gi, "");
    html = html.replace(/<\/?\s*LINK[^>]*>/gi, "");
    html = html.replace(/<\s*TITLE[^>]*>(.|[\n\r\t])*<\/\s*TITLE\s*>/gi, "");
    html = html.replace(/<\s*HEAD[^>]*>(.|[\n\r\t])*<\/\s*HEAD\s*>/gi, "");
    html = html.replace(/<\s*(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
    html = html.replace(/<\s*(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
    html = html.replace(/<\\?\?xml[^>]*>/gi, "");
    html = html.replace(/<\/?\w+:[^>]*>/gi, "");
    html = html.replace(/&nbsp;/, " ");
    /*// Transform <P> to <DIV>
    html = html.replace(/<\s*p[^>]*>/gi, "<div>");
    html = html.replace(/<\/\s*p[^>]*>/gi, "</div>");
    */
    html = html.trim();
    return html;
}

document.observe("dom:loaded", function() { alternate(); setTimeout(GetBasket, 250); });
