﻿function addItem()
{
    
    serviceProxy = new myshoes.dk.Shoehorn();
    serviceProxy.set_defaultSucceededCallback(variousPricesSucceededCallback);
    serviceProxy.set_defaultFailedCallback(variousPricesFailedCallback);
    
    var brandId = window.document.getElementById('ctl00_MainPlaceHolder_brandId');
    
    serviceProxy.getVariousPrices(brandId.value);
    
}


function variousPricesSucceededCallback(result)
{
    var popupbg = window.document.getElementById('popupbg');
    var selectSizePopUp = window.document.getElementById('selectSizePopUp');
    var selectSizeList = window.document.getElementById('selectSizeList');
        

    if(result.length == 0)
    {
        var sizeContent = window.document.getElementById('sizeContent');
        var size = sizeContent.innerHTML.toString().trim();
        var arr = size.split(',');
        
        if(size.length == 0)
            addItemToBasket('one size')
        else if(size.length > 0 && arr.length == 1)
            addItemToBasket(size);
        else
        {
            clearDropDown(selectSizeList);
            
            popupbg.className = 'showpopupbg';
            selectSizePopUp.className = 'showpopupmessage';
            
            for(var i = 0; i < arr.length; i++)
                addOption(selectSizeList, arr[i].trim(), arr[i].trim());
        }
    }
    else
    {
        clearDropDown(selectSizeList);
        
        popupbg.className = 'showpopupbg';
        selectSizePopUp.className = 'showpopupmessage';        
        
        for(var i = 0; i < result.length; i=i+2)
            addOption(selectSizeList, result[i] + ' (' + result[i+1] + '.-)', result[i]);
    
    } 
}

// Callback function invoked when a call to 
// the  service methods fails.
function variousPricesFailedCallback(error, userContext, methodName) 
{
    alert(error.get_message());
}

function addItemWithSize()
{
    var popupbg = window.document.getElementById('popupbg');
    var selectSizePopUp = window.document.getElementById('selectSizePopUp');
    var selectSizeList = window.document.getElementById('selectSizeList');


    addItemToBasket(selectSizeList[selectSizeList.selectedIndex].value);
    
    popupbg.className = 'hidepopup';
    selectSizePopUp.className = 'hidepopup';
}


function addItemToBasket(size)
{
    serviceProxy = new myshoes.dk.Shoehorn();
    serviceProxy.set_defaultSucceededCallback(addItemSucceededCallback);
    serviceProxy.set_defaultFailedCallback(addItemFailedCallback);
    
    var brandId = window.document.getElementById('ctl00_MainPlaceHolder_brandId');
    
    serviceProxy.addItemToBasket(brandId.value, size);
}


function addItemSucceededCallback(result)
{    
    getBasketItems();
}

// Callback function invoked when a call to 
// the  service methods fails.
function addItemFailedCallback(error, userContext, methodName) 
{
    alert(error.get_message());
}


function removeItemFromBasket(index)
{
    serviceProxy = new myshoes.dk.Shoehorn();
    serviceProxy.set_defaultSucceededCallback(removeItemSucceededCallback);
    serviceProxy.set_defaultFailedCallback(removeItemFailedCallback);
    
    serviceProxy.removeBasketItem(index);
}


function removeItemSucceededCallback(result)
{    
    getBasketItems();
}

// Callback function invoked when a call to 
// the  service methods fails.
function removeItemFailedCallback(error, userContext, methodName) 
{
    alert(error.get_message());
}




function getBasketItems()
{
    serviceProxy = new myshoes.dk.Shoehorn();
    serviceProxy.set_defaultSucceededCallback(getBasketSucceededCallback);
    serviceProxy.set_defaultFailedCallback(getBasketFailedCallback);
    
    serviceProxy.getBasketItems();
}


function getBasketSucceededCallback(result)
{    
       
       var basketContainer = window.document.getElementById('basketContainer');
       
       var pre = '<table border="0" cellpadding="0" cellspacing="0" id="basketItems"> \n'
               + '<tr> \n'
               + '<td colspan="5" align="center" style="width: 877px; padding-bottom: 5px; color: White;">INDKØBSKURV</td> \n'
               + '</tr> \n'               
               + '<tr> \n'
               + '<td align="left" style="width: 75px;">Mærke</td> \n'
               + '<td align="left" style="width: 500px;">Beskrivelse</td> \n'
               + '<td align="left" style="width: 75px;">Størrelse</td> \n'
               + '<td align="left" style="width: 75px;">Antal</td> \n'
               + '<td align="left" style="width: 75px;">Pris ex. fragt</td> \n'
               + '<td align="left" style="width: 75px;"></td> \n'
               + '</tr> \n';
            
       var process = '';
       var cnt = 0;
       
            
       for(var i = 0; i < result.length; i=i+6)
       {
            process += '<tr style="cursor: default;" onmouseover="basketMouseMove(\'' + result[i+5] + '\');" onmouseout="basketMouseOut();" onmousemove="basketMouseMove(\'' + result[i+5] + '\');"> \n'
                     + '<td align="left" style="width: 75px; color: White;">' + result[i+4] + '</td> \n'
                     + '<td align="left" style="width: 500px; color: White;">' + result[i] + '</td> \n'
                     + '<td align="left" style="width: 75px; color: White;">' + result[i+1] + '</td> \n'
                     + '<td align="left" style="width: 75px; color: White;">' + result[i+2] + '</td> \n'
                     + '<td align="left" style="width: 75px; color: White;">' + result[i+3] + ' DKK</td> \n'
                     + '<td align="left" style="width: 75px;"><a class="sletButton" href="javascript:removeItemFromBasket(' + cnt + ');"></a></td> \n' 
                     + '</tr>';
                     
            cnt++;
       }     
            
       var post = '<tr> \n'
                + '<td></td> \n'
                + '<td></td> \n'
                + '<td></td> \n'
                + '<td></td> \n'
                + '<td align=\"right\"><a class="bestilButton" href="OrderForm.aspx"><br /></a></td> \n'
                + '</tr> \n'
                + '</table> \n';
                
      
      if(basketContainer == null)
        return;
      else if(cnt == 0)
        basketContainer.className = 'basketContainerHide';
      else if(cnt > 3)
        basketContainer.className = 'basketContainerShowScroll';
      else
        basketContainer.className = 'basketContainerShow';
      
      basketContainer.innerHTML = pre + process + post;
      basketContainer.scrollTop = basketContainer.scrollHeight;

      
}

// Callback function invoked when a call to 
// the  service methods fails.
function getBasketFailedCallback(error, userContext, methodName) 
{
    alert(error.get_message());
}


function showOrderedItems()
{
       
       serviceProxy = new myshoes.dk.Shoehorn();
       serviceProxy.set_defaultSucceededCallback(showOrderedItemsSucceededCallback);
       serviceProxy.set_defaultFailedCallback(showOrderedItemsFailedCallback);
        
       serviceProxy.getBasketItems();
       
}

function showOrderedItemsSucceededCallback(result)
{    
       var orderedItems = window.document.getElementById('orderedItems');
       
       var pre = '<table border="0" cellpadding="0" cellspacing="0" id="basketItems"> \n'           
               + '<tr> \n'
               + '<td align="left" style="width: 575px;">Beskrivelse</td> \n'
               + '<td align="left" style="width: 75px;">Størrelse</td> \n'
               + '<td align="left" style="width: 75px;">Antal</td> \n'
               + '<td align="left" style="width: 75px;">Total Pris</td> \n'
               + '</tr> \n';
            
       var process = '';
       var cnt = 0;
       var totalSum = 0; 
       var fragt = 0;
       
            
       for(var i = 0; i < result.length; i=i+6)
       {
            process += '<tr> \n'
                     + '<td align="left" style="width: 575px; color: White; font-weight: normal;">' + result[i] + '</td> \n'
                     + '<td align="left" style="width: 75px; color: White; font-weight: normal;">' + result[i+1] + '</td> \n'
                     + '<td align="left" style="width: 75px; color: White; font-weight: normal;">' + result[i+2] + '</td> \n'
                     + '<td align="left" style="width: 75px; color: White; font-weight: normal;">' + result[i+3] + ' DKK</td> \n'
                     + '</tr>';
                     
            totalSum += parseInt(result[i+3]);
                     
            cnt++;
       }
       
       // hvis der er bestilt for under 500, skal kunden også betale fragt
       if(totalSum < 500)
        fragt = 75;
       
       totalSum += fragt;    
            
       var post = '<tr> \n'
                + '<td align="left" style="width: 575px; color: White; font-weight: normal;"></td> \n'
                + '<td align="left" style="width: 75px; color: White; font-weight: normal;"></td> \n'
                + '<td align="left" style="width: 75px; color: White; padding-top: 15px;">Fragt:</td> \n'
                + '<td align="left" style="width: 75px; color: White; padding-top: 15px;">' + fragt + '</td> \n'
                + '</tr>'
                + '<tr> \n'
                + '<td align="left" style="width: 575px; color: White; font-weight: normal;"></td> \n'
                + '<td align="left" style="width: 75px; color: White; font-weight: normal;"></td> \n'
                + '<td align="left" style="width: 75px; color: White; padding-top: 15px; border-bottom-style: double; border-bottom-width: medium; border-bottom-color: #FFFFFF;">Total Sum:</td> \n'
                + '<td align="left" style="width: 75px; color: White; padding-top: 15px; border-bottom-style: double; border-bottom-width: medium; border-bottom-color: #FFFFFF;">' + totalSum + ' DKK</td> \n'
                + '</tr>';
                + '</table> \n';
       
       orderedItems.innerHTML = pre + process + post;
}

// Callback function invoked when a call to 
// the  service methods fails.
function showOrderedItemsFailedCallback(error, userContext, methodName) 
{
    alert(error.get_message());
}


function clearDropDown(val)
{
    for (var i = (val.options.length-1); i >= 0; i--)
        val.remove(i);
}

function addOption(selectbox,text,value )
{
    var optn = document.createElement("OPTION");
    optn.text = text;
    optn.value = value;
    selectbox.options.add(optn);
}

function checkEmail(email) 
{
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    
    return filter.test(email);
}

function submitOrderForm()
{
    var form = window.document.getElementById('orderForm');
    form.submit();
}


function payOrder()
{
    var fullname = window.document.getElementById('fullname');
    var address = window.document.getElementById('address');
    var postalcode = window.document.getElementById('postalcode');
    var city = window.document.getElementById('city');
    var email = window.document.getElementById('email');
    var readTerms = window.document.getElementById('readTerms');
    
    if(fullname.value.length < 2)
        alert('Det indtastede navn er ikke gyldigt.');
    else if(address.value.length < 5)
        alert('Den indtastede adresse er ikke gyldig.');
    else if(postalcode.value.length < 4)
        alert('Det indtastede postnummer er ikke gyldigt.');
    else if(city.value.length < 2)
        alert('Den indtastede by er ikke gyldig.');
    else if(!checkEmail(email.value))
        alert('Den indtastede email er ikke korrekt. f.eks dit@navn.dk');
    else if(!readTerms.checked)
        alert('Du skal l&aelig;se og acceptere vilk&aring;r.');
    else
    {
        document.payForm.submit();
    }
}


function saveCurrentOrderToDB()
{
    
    var fullname = window.document.getElementById('fullname');
    var address = window.document.getElementById('address');
    var postalcode = window.document.getElementById('postalcode');
    var city = window.document.getElementById('city');
    var email = window.document.getElementById('email');    
    
    serviceProxy = new myshoes.dk.Shoehorn();
    
    serviceProxy.set_defaultSucceededCallback(saveCurrentOrderSucceededCallback);
    serviceProxy.set_defaultFailedCallback(saveCurrentOrderFailedCallback);
    
    serviceProxy.saveCurrentOrderToDb(fullname.value, address.value, postalcode.value, city.value, email.value);
}


function saveCurrentOrderSucceededCallback(result)
{    
    // submit creditcard info to dandomain
    var OrderID = window.document.getElementById('OrderID');
    OrderID.value = result;
    
    alert(OrderID.value);
    
    
}

// Callback function invoked when a call to 
// the  service methods fails.
function saveCurrentOrderFailedCallback(error, userContext, methodName) 
{
    alert(error.get_message());
}




