﻿var Basket =
{
    HeaderTemplate: '<table cellpadding="0" cellspacing="0"><tr><th></th><th>Item</th><th>Qty</th><th>Price</th><th> <!-- Discount --></th><th>Total</th><th></th><th></th></tr>',
    BasketPageMessageTemplate: '',
    LineTemplate1: '<tr>',
    LineTemplate2: '<td align="center" rowspan="2"><a href="%ProductPageUrl%?ProductId=%ProductId%"><img src="%ImageUrl%" alt="%Name%" class="basketthumbimg"></a></td>',
    LineTemplate3: '<td><a href="%ProductPageUrl%?ProductId=%ProductId%"><b>%Name%</b></a></td>',
    LineTemplate4: '',
    LineTemplate5: '<td><!--<input id="txt%ProductId%Quantity" name="" size="1" value="%Quantity%" type="text"> -->&nbsp;%Quantity%&nbsp;</td>',
    LineTemplate6: '<td>%UnitPriceBeforeDiscount%&nbsp;</td>',
    LineTemplate6b: '<td><!-- %LineDiscount% --></td>',
    LineTemplate7: '<td class="bold">&nbsp;%LinePriceAfterDiscount%</td>',
    LineTemplate8: '<td><!-- <a href="#" onclick="Basket.SetProductQuantity(\'%ProductId%\',jQuery(\'#txt%ProductId%Quantity\').val()); return false;">Edit</a>--> </td>',
    LineTemplate9: '<td class="remove"><!-- <a href="#" onclick="Basket.SetProductQuantity(\'%ProductId%\',\'0\'); return false;"><img src="%ImagesRootUrl%/buttons/remove_x.gif" alt="Remove"></a> --></td>',
    LineTemplate10: '</tr>',
    LineTemplate11: '<tr><td colspan="7">%LineDiscountNames%</td></tr>',
    FooterHardRuleTemplate: '<tr><td colspan="8"><hr></td></tr>',
    BasketDiscountTemplate: '<tr><td colspan="8">%BasketDiscountName%</td></tr>',
    FooterTemplate: '<tr><td colspan="5" class="textRight bold">Total (inc Vat)</td><td class="bold">%SubtotalAfterDiscount%</td><td colspan="2"></td></tr><tr><td colspan="8" class="alignRight" style="padding-top: 10px;"><a href="%BasketPageUrl%" class="btnEditBasket"><img alt="Edit Basket" src="/Lib/img/btnEditBasket.png"/></a> <a href="%BasketPageUrl%" class="btnProceedToBasket"><img alt="Proceed to Basket" src="/Lib/img/btnProceedToBasket.png"/></a></td></tr></table>',
    BasketItemsTemplate: '%ItemCount% items',
    LocalRenderFunction: function(data) {
    },
    AddProductQuantity: function(productId, quantity) {
        if (quantity == null) quantity = 1;
        LuluGuinness.Web.Main.Ajax.AjaxBasketService.AddProductQuantity(productId, quantity, Function.createDelegate(this, this.Render));
    },
    SetProductQuantity: function(productId, quantity) {
        if (quantity == null) quantity = 1;
        LuluGuinness.Web.Main.Ajax.AjaxBasketService.SetProductQuantity(productId, quantity, Function.createDelegate(this, this.Render));
    },
    Render: function(data) {
        this.RenderBasket(data);
        this.LocalRenderFunction(data);
        jQuery('#basketContent').show();
        jQuery.scrollTo(0, 800);
        jQuery('#ProceedToCheckout').fadeIn();
    },
    RenderBasket: function(data) {
 
        var FullTemplate = '';
        var html = '';
        var line = '';

        var url = window.location.href;

        html += this.HeaderTemplate;
        FullTemplate = this.LineTemplate1 + this.LineTemplate2 + this.LineTemplate3 + this.LineTemplate4 + this.LineTemplate5 + this.LineTemplate6 + this.LineTemplate6b + this.LineTemplate7 + this.LineTemplate8 + this.LineTemplate9 + this.LineTemplate10 + this.LineTemplate11;

        for (var i = 0; i < data.Items.length; i++) {
            line = FullTemplate;

            line = line.replace(/%ImageUrl%/g, data.Items[i].ImageUrl);
            line = line.replace(/%Name%/g, data.Items[i].Name);
            line = line.replace(/%ProductId%/g, data.Items[i].ProductId);
            line = line.replace(/%Description%/g, data.Items[i].Description);
            line = line.replace(/%UnitPriceBeforeDiscount%/g, data.Items[i].UnitPriceBeforeDiscount);
            line = line.replace(/%LineDiscount%/g, data.Items[i].LineDiscount);
            line = line.replace(/%LineDiscountNames%/g, data.Items[i].LineDiscountNames);
            line = line.replace(/%Quantity%/g, data.Items[i].Quantity);
            line = line.replace(/%LinePriceAfterDiscount%/g, data.Items[i].LinePriceAfterDiscount);
            html += line;
        }

        html += this.FooterHardRuleTemplate;

        if ((data.BasketDiscountName != null) && (data.BasketDiscountName != '')) {
            html += this.BasketDiscountTemplate;
            html = html.replace(/%BasketDiscountName%/g, data.BasketDiscountName);
        }

        html += this.FooterTemplate;
        html = html.replace(/%SubtotalAfterDiscount%/g, data.SubtotalAfterDiscount);
        html = html.replace(/%BasketPageUrl%/g, data.BasketPageUrl);
        html = html.replace(/%ImagesRootUrl%/g, data.ImagesRootUrl);
        html = html.replace(/%ProductPageUrl%/g, data.ProductPageUrl);
        

        var basketItemsHtml = '';
        basketItemsHtml += this.BasketItemsTemplate;
        basketItemsHtml = basketItemsHtml.replace(/%ItemCount%/g, data.ItemCount);

        jQuery('#basketContent').empty();
        jQuery('#basketContent').append(html);

        jQuery('#basketItems').empty();
        jQuery('#basketItems').append(basketItemsHtml);

        jQuery('#minibcount').html('(' + data.ItemCount + ')');
    }
};
