﻿// JScript File
function SlideOrder(id)
{
    SetAllOrderLinks(id, 'opening')
    var tblContent = document.getElementById('tblOrderContent' + id);
    var s = document.getElementById('divSliderOrder' + id);
    
    var current = s.style.height.substr(0, s.style.height.length-2);
    var row = tblContent.insertRow(tblContent.rows.length);
    var cell = row.insertCell(0);
    cell.innerHTML = '<img src="' + jsImagePath + 'loading.gif" />';

    s.style.height = ((current*1) + (SliderStep*1)) + 'px';
    
    sndReq('/XML/getOrderDetails.aspx?OrderID=' + id);
}

function SetAllOrderLinks(id, status)
{
    var clTop = document.getElementById('clOrderTop' + id)
    var clTop1 = document.getElementById('clOrderHeader1O' + id)
    var clTop2 = document.getElementById('clOrderHeader2O' + id)
    var clTop3 = document.getElementById('clOrderHeader3O' + id)
    var clBottom = document.getElementById('clOrderBottom' + id)
    
    if (status == 'opening')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Orders/ordersHeader_open.gif")';
        clTop1.onclick = '';
        clTop2.onclick = '';
        clTop3.onclick = '';
        clTop1.style.cursor = '';
        clTop2.style.cursor = '';
        clTop3.style.cursor = '';
        clBottom.innerHTML = '<img border="0" src="' + jsImagePath + 'Account/Orders/ordersFooter_open.gif" />'
    }
    
    if (status == 'open')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Orders/ordersHeader_open.gif")';
        clTop1.onclick = function () { StartCloseOrder(id); };
        clTop2.onclick = function () { StartCloseOrder(id); };
        clTop3.onclick =  function () { StartCloseOrder(id); };
        clTop1.style.cursor = 'pointer';
        clTop2.style.cursor = 'pointer';
        clTop3.style.cursor = 'pointer';
        clBottom.innerHTML = '<a href="javascript:CloseOrder(' + id + ');"><img border="0" src="' + jsImagePath + 'Account/Orders/ordersFooter_open.gif" />'
    }
    
    if (status == 'closing')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Orders/ordersHeader_closed.gif")';
        clTop1.onclick = '';
        clTop2.onclick = '';
        clTop3.onclick = '';
        clTop1.style.cursor = '';
        clTop2.style.cursor = '';
        clTop3.style.cursor = '';
        clBottom.innerHTML = '<img border="0" src="' + jsImagePath + 'Account/Orders/ordersFooter_closed.gif" />'
    }
    
    if (status == 'closed')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Orders/ordersHeader_closed.gif")';
        clTop1.onclick = function () { ReOpenOrder(id); };
        clTop2.onclick = function () { ReOpenOrder(id); };
        clTop3.onclick = function () { ReOpenOrder(id); };
        clTop1.style.cursor = 'pointer';
        clTop2.style.cursor = 'pointer';
        clTop3.style.cursor = 'pointer';
        clBottom.innerHTML = '<img border="0" src="' + jsImagePath + 'Account/Orders/ordersFooter_closed.gif" />'
    }
}

function ReOpenOrder(id)
{
    SetAllOrderLinks(id, 'opening')
    OpenOrderSlider(id, document.getElementById('divSliderContentOrder' + id).offsetHeight);
}

function StartCloseOrder(id)
{
    SetAllOrderLinks(id, 'closing')
    CloseOrder(id);
}

function CloseOrder(id)
{
    var closeTarget = 90;
    var s = document.getElementById('divSliderOrder' + id);
    var current = s.style.height.substr(0, s.style.height.length-2);
    var slideto = ((current*1) - (SliderStep*1));
    if (slideto < closeTarget) slideto = closeTarget;
    s.style.height = slideto + 'px';
    
    if (slideto > closeTarget)
        setTimeout('CloseOrder("' + id + '")', SliderSpeed);
    else
        SetAllOrderLinks(id, 'closed')
}

function OpenOrderSlider(id, target)
{
    var s = document.getElementById('divSliderOrder' + id);
    var current = s.style.height.substr(0, s.style.height.length-2);
    var slideto = ((current*1) + (SliderStep*1));
    if (slideto > target) slideto = target;
    s.style.height = slideto + 'px';
    
    if (slideto < target)
        setTimeout('OpenOrderSlider("' + id + '",' + target + ')', SliderSpeed);
    else
        SetAllOrderLinks(id, 'open')
}

function AddTotalsRow(text, textstyle, value, valuestyle)
{
    var ret = '<tr><td class="' + textstyle + '">' + text + '</td>';
    ret += '<td class="' + valuestyle + '">' + value + '</td></tr>';
    return ret;
}

function LoadOrderDetails(doc)
{
    var xml = GetXMLObject(doc).childNodes[0];
    var id = xml.getAttribute('OrderID');
    
    var OrderTotal = xml.getAttribute('OrderTotal');
    var TaxValue = xml.getAttribute('TaxValue');
    var SubTotal = xml.getAttribute('SubTotal');
    var TotalDiscountPercentage = xml.getAttribute('TotalDiscountPercentage');
    var TotalDiscountAmount = xml.getAttribute('TotalDiscountAmount');
    var DealerDiscountText = xml.getAttribute('DealerDiscountText');
    var DeliveryMethodName = xml.getAttribute('DeliveryMethodName');
    var DeliveryCost = xml.getAttribute('DeliveryCost');
    var DeliveryDiscountPercentage = xml.getAttribute('DeliveryDiscountPercentage');
    var DeliveryDiscountAmount = xml.getAttribute('DeliveryDiscountAmount');
    var DeliveryDiscountText = xml.getAttribute('DeliveryDiscountText');
    var OfferAppliedAboveText = xml.getAttribute('OfferAppliedAboveText');
    var GoogleOrderID = xml.getAttribute('GoogleOrderID');
    var PricesIncludeTax = xml.getAttribute('PricesIncludeTax');
    var IsCountryTaxable = xml.getAttribute('IsCountryTaxable');
    var IPAddress = xml.getAttribute('IPAddress');
    var EmailAddress = xml.getAttribute('EmailAddress');
    
    
    var STitle = xml.getAttribute('STitle');
    var SFirstName = xml.getAttribute('SFirstName');
    var SSurname = xml.getAttribute('SSurname');
    var SAddress1 = xml.getAttribute('SAddress1');
    var SAddress2 = xml.getAttribute('SAddress2');
    var SAddress3 = xml.getAttribute('SAddress3');
    var STown = xml.getAttribute('STown');
    var SCounty = xml.getAttribute('SCounty');
    var SPostCode = xml.getAttribute('SPostCode');
    var SCountry = xml.getAttribute('SCountry');
    var STelephoneNumber = xml.getAttribute('STelephoneNumber');
    
    var BTitle = xml.getAttribute('BTitle');
    var BFirstName = xml.getAttribute('BFirstName');
    var BSurname = xml.getAttribute('BSurname');
    var BAddress1 = xml.getAttribute('BAddress1');
    var BAddress2 = xml.getAttribute('BAddress2');
    var BAddress3 = xml.getAttribute('BAddress3');
    var BTown = xml.getAttribute('BTown');
    var BCounty = xml.getAttribute('BCounty');
    var BPostCode = xml.getAttribute('BPostCode');
    var BCountry = xml.getAttribute('BCountry');
    var BTelephoneNumber = xml.getAttribute('BTelephoneNumber');
    
    var tbl = document.getElementById('tblOrderContent' + id);
    
    for (r = tbl.rows.length-1; r>=0; r--)
        tbl.deleteRow(r);
        
    var row = tbl.insertRow(tbl.rows.length);
    var cell = row.insertCell(0);
    var adds = '<table style="width:650px" align="center"><tr><td class="OrderDetailsAddressHeader">Delivery Address:</td><td class="OrderDetailsAddressHeader">Billing Address:</td></tr>';
    adds += '<tr><td class="OrderDetailsAddress">' + BuildAddress(STitle, SFirstName, SSurname, SAddress1, SAddress2, SAddress3, STown, SCounty, SPostCode, SCountry, STelephoneNumber)
    adds += '</td><td class="OrderDetailsAddress">' + BuildAddress(BTitle, BFirstName, BSurname, BAddress1, BAddress2, BAddress3, BTown, BCounty, BPostCode, BCountry, BTelephoneNumber)
    adds += '</td></tr></table>';
    cell.innerHTML = adds;
    
    row = tbl.insertRow(tbl.rows.length);
    cell = row.insertCell(0);
    var TotalsTable = '<table align="right">';
    
    TotalsTable += AddTotalsRow('Sub Total', 'OrderDetailsTotalField', '£' + SubTotal, 'OrderDetailsTotalValue');
    TotalsTable += AddTotalsRow('Tax', 'OrderDetailsTotalField', '£' + TaxValue, 'OrderDetailsTotalValue');
    
    if ((TotalDiscountAmount*1) > 0)
        TotalsTable += AddTotalsRow(DealerDiscountText + ' (' + TotalDiscountPercentage + '%)', 'OrderDetailsTotalField', '-£' + TotalDiscountAmount, 'OrderDetailsTotalValueMinus');
    
    TotalsTable += AddTotalsRow(DeliveryMethodName, 'OrderDetailsTotalField', '£' + DeliveryCost, 'OrderDetailsTotalValue');
    if ((DeliveryDiscountAmount*1) > 0)
        TotalsTable += AddTotalsRow(DeliveryDiscountText + ' (' + DeliveryDiscountPercentage + '%)', 'OrderDetailsTotalField', '-£' + DeliveryDiscountAmount, 'OrderDetailsTotalValueMinus');
    
    var offersxml = xml.childNodes[1];
    for (i=0; i<offersxml.childNodes.length; i++)
    {
        var value = offersxml.childNodes[i].getAttribute('value')
        var Code = offersxml.childNodes[i].getAttribute('Code')
        var offer = getInnerText(offersxml.childNodes[i]);
        var ot = offer;
        if (Code != '')
            ot += ' - ' + Code;
            
        var st = 'OrderDetailsTotalValueMinus';
        if ((value*1)<=0)
        {
            st = 'OrderDetailsTotalValue';
            value = OfferAppliedAboveText;
        }
        else
           value = '-£' + value;
        
        TotalsTable += AddTotalsRow(ot, 'OrderDetailsTotalField', value, st);
    }
    
    TotalsTable += '</table>';
    
    var items = '<table align="center" cellspacing="0" cellpadding="0"><tr><td><img src="' + jsImagePath + 'Account/Orders/orderItemsHeader.gif"></td></tr>';
    items += '<td style="background-image:url(' + jsImagePath + 'Account/Orders/ordersItems_bg.gif)">';
    items += '<table width="620px" align="center" cellpadding="0" cellspacing="0">'
    var altcnt = 0;
    var itemsxml = xml.childNodes[0];
    for (i=0; i<itemsxml.childNodes.length; i++)
    {
        var qty = itemsxml.childNodes[i].getAttribute('Quantity')
        var price = itemsxml.childNodes[i].getAttribute('ProductPrice')
        var line = itemsxml.childNodes[i].getAttribute('LinePrice')
        var nme = getInnerText(itemsxml.childNodes[i].childNodes[0]);
        var off = getInnerText(itemsxml.childNodes[i].childNodes[1]);
        var rowclass = 'OrderDetailsItemRow';
        if (altcnt == 1)
        {
            altcnt = 0;
            rowclass = 'OrderDetailsItemRowAlt';
        }
        else
            altcnt = 1;
        
        if (off != '')
        {
            nme = '<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2">' + nme + '</td></tr><tr>';
            nme += '<td class="AvailableOfferIndentCell" ><img src="' + jsImagePath + 'Checkout/indent_icon.jpg" /></td>';
            nme += '<td class="AvailableOfferOfferCell">' + off + '</td></tr></table>';

        }
        
        items += '<tr class="' + rowclass + '"><td class="OrderDetailsItemQtyCell">' + qty + '</td>';
        items += '<td class="OrderDetailsItemNameCell">' + nme + '</td>';
        items += '<td class="OrderDetailsItemEachCell">£' + price + '</td>';
        if ((qty*price) != line)
        {
            if ((line*1) == 0)
                line = 'Free';
            else
                line = '£' + line;
            var op = qty*price
            op = '£' + op.toFixed(2);
            op = '<span class="OrderDetailsItemCrossedOut">' + op + '</span><br>' + line;
            line = op;
        }
        items += '<td class="OrderDetailsItemTotalCell">' + line + '</td></tr>';
    }
    items += '</table></td></tr>';
    items += '<tr><td><img src="' + jsImagePath + 'Account/Orders/ordersItems_btm.gif"></td></tr></table>';
    
    items += '<table style="width:650px" align="center" cellspacing="0" cellpadding="0">';
    items += '<tr><td style="padding-top:10px">';
    
    items += '<table width="547px" align="right" cellpadding="0" cellspacing="0"><tr><td><img src="' + jsImagePath + 'Account/Orders/totalsHeader.gif"></td></tr>';
    items += '<tr><td style="background-image:url(' + jsImagePath + 'Account/Orders/totals_bg.gif)">';
    items += TotalsTable;
    items += '</td></tr>';
    items += '<tr><td><img src="' + jsImagePath + 'Account/Orders/totals_btm.gif"></td></tr></table>';
    
    items += '</td></tr><tr><td style="padding-top:10px">';
     
    items += '<table align="right" cellpadding="0" cellspacing="0"><tr style="height:31px"><td><img src="' + jsImagePath + 'Account/Orders/total_left.gif"></td>';
    items += '<td class="OrderDetailsOrderTotalCell" style="background-image:url(' + jsImagePath + 'Account/Orders/total_bg.gif)">';
    items += '£' + OrderTotal;
    items += '</td>';
    items += '<td><img src="' + jsImagePath + 'Account/Orders/total_right.gif"></td></tr></table>'; 
       
    items += '</td></tr></table>';
    cell.innerHTML = items;
    
    
    OpenOrderSlider(id, document.getElementById('divSliderContentOrder' + id).offsetHeight);
}
