/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function addBasketItem(pathname){
    //calculateProduct();
    //closeBasket();

    if($('#orderButton').hasClass('disabled') == false){

        products    = ({});
        addons      = $('#addOns input:checked');
        selectors   = $("#options input.radio:checked");
        pr          = 0;

        if(selectors.length == optionsLength){

            url = '/products/addtobasket/';
            
            products[pr+'[id]'] = product_id;
            products[pr+'[amount]'] = $("#amount").attr('value');
            n = 0;
            jQuery.each(selectors, function(){
                products[pr+'[options]['+n+']'] = this.value;
                n++;
            });
            pr++;
            
            for(r=0; r<addons.length; r++){
                addonopt = $("#addOnOptions_"+addons[r].value+" select");
                products[pr+'[id]'] = addons[r].value;
                products[pr+'[amount]'] = 1;
                n = 0;
                jQuery.each(addonopt, function(){
                    products[pr+'[options]['+n+']'] = this.value;
                    n++;
                });
                pr++;
            }
            $('#orderButton').addClass('disabled');
            spinner = '<div class="spinner" id="orderButtonSpinner"></div>';
            $('#orderButton').html(spinner + $('#orderButton').html());

            $.ajax({
              url: url,
              type: 'POST',
              data: products,
              cache: false,
              success: function(html){
                updateBasketWidget();
              }
            });
        }
        else{
            alert('U heeft niet alle opties ingevuld.');
        }

        
    }
}
function updateBasketWidget(){
    if($('#productList:hidden').length > 0 || $('#productList').length == 0){
        thisUrl = '/baskets/show';
    }
    else{
        thisUrl = '/baskets/show/open';
    }


    $.ajax({
      url: thisUrl,
      cache: false,
      success: function(html){
        $("#basketWrapper").html(html);
        $('#orderButton').removeClass('disabled');
        $('#orderButtonSpinner').remove();
        setBasket();
        
      }
    });
}
function updateBasket(){
    $.ajax({
      url: '/baskets/reload/',
      cache: false,
      success: function(html){
        $("#basket").html(html);
        $('#basket').removeClass('editBasket');
        editMode = false;
        hideSpinner();
      }
    });
}

editMode = false;

function editBasketItem(id){
    if(editMode == false){
        showSpinner();
        editMode = true;
        $.ajax({
          url: '/baskets/editItem/'+id,
          cache: false,
          success: function(html){
            $('#row_'+id).html(html);
            $('#basket').addClass('editBasket');
            $('#basket #row_'+id).addClass('editItem');
            hideSpinner();
          }
        });
    }
}

function saveBasketItem(){
    showSpinner();
    id              = $('#BasketitemId').val();
    amount          = parseInt($('#BasketitemAmount').val());
    currOptions     = $('#row_'+id+' select');
    optionsString   = '';

    for(n=0; n<currOptions.length; n++){
        if(optionsString != ''){
            optionsString += ',';
        }
        optionsString += currOptions[n].value;
    }
    url = '/basketitems/update/'+id+'/'+amount+'/'+optionsString;

    jQuery.get(url, {}, updateBasket);

}

function deleteBasketItem(id, isWidget){
    if(confirm('Weet u zeker dat u dit product uit uw winkelmand wilt halen?')){
        showSpinner();
        if(isWidget == true){
            jQuery.get('/basketitems/delete/'+id, {}, updateBasketWidget);
        }
        else{
            jQuery.get('/basketitems/delete/'+id, {}, updateBasket);
        }
    }
}
function calculateBasketItem(){
    id           = $('#BasketitemId').val();
    productPrice = $('#productPrice').val();
    if(productPrice > -1){
        amount = parseInt($('#BasketitemAmount').val());

        if(amount <= 0 || isNaN(amount) || amount > 99){
            $('#BasketitemAmount').val(1);
            amount = 1;
        }
        newPrice        = amount * productPrice;
        
        currOptions     = $('#row_'+id+' select');
        for(n=0; n<currOptions.length; n++){
            
            thisVal = currOptions[n].value;
            thisId  = parseInt(currOptions[n].id.substring(11));
            thisPrice = $('#opt_'+thisId+'_'+thisVal).val();
            if(thisPrice > 0){
                newPrice += thisPrice * amount;
            }

        }
        newPrice = convertToPrice(newPrice);
        $('#priceSpan').html('&euro; ' + newPrice);
    }
}

function showSpinner(){
    $('#spinner').show();
}
function hideSpinner(){
    $('#spinner').hide();
}
function checkCode(){
    code = $('#discountCode').val();
    if(code!=''){
        showSpinner();
        
        $.ajax({
          url: '/orders/checkcode/'+code,
          cache: false,
          type: 'text',
          success: function(html){
            arr = toArray(html);

            $('#validationBox .valid').remove();
            $('#validationBox .invalid').remove();
            $('#discountBox .discountPrice').remove();

            if(arr[0] == 'false'){
                html = '<div class="invalid">De door u ingevoerde kortingscode is niet geldig.</div>';
                $('#discount').val(0);
                $('#discountCode').val('');
            }
            else{
                html = '<div class="valid">'+arr[1]+'</div>';

                html2 = '<div class="discountPrice"><span>&euro; -'+convertToPrice(arr[0])+'</span></div>';
                $('#discount').val(arr[0]);
                $('#discountBox').append(html2);

            }
            $('#validationBox').append(html);
            calculateTotals();
            hideSpinner();
          }
        });
    }
}
function savePaymentData(){
    
    feedback    = 'Het formulier is niet volledig ingevuld:\n';
    sendform    = true;
    country     = $('#countrySelector').val();

    xnlPayment   = $('input[name="nlPayment"]:checked');
    xbePayment   = $('input[name="bePayment"]:checked');
    xsupplier    = $('input[name="supplier"]:checked');
    
    discount    = $('#discountCode').val();
    payment     = 0;
    
    if(country == 'nl'){
        if(xnlPayment.length == 0){
            feedback += '- u dient een betalingsmethode op te geven';
            sendform = false;
        }
        else{
            payment = xnlPayment[0].value;

            if(payment == 0 && xsupplier.length == 0){
                feedback += '- u dient een bank te selecteren voor betaling via iDeal';
                sendform = false;
            }
        }
    }
    if(country == 'be'){
        if(xbePayment.length == 0){
            feedback += '- u dient een betalingsmethode op te geven';
            sendform = false;
        }
        else{
            payment = xbePayment[0].value;
        }
    }
    if(xsupplier.length == 0){
        supp = 'null';
    }
    else{
        supp = this.xsupplier[0].value;
    }
    if(discount != '' && $("#discount").val() == 0){
        discount = null;
    }

    if(sendform == false){
        alert(feedback);
    }
    else{
        $.ajax({
          url: '/orders/savedata/',
          cache: false,
          type: 'POST',
          data: ({  country: this.country,
                    payment: this.payment,
                    supplier: this.supp,
                    discount: this.discount}),
           success: function(html){
               if(html == 'true'){
                   location.href = nextpage;
               }
               else{
                   alert('Er is iets misgegaan met het opslaan van de gegevens. Probeer het opnieuw.');
               }
           }
        });
    }        
}
function checkUserData(){
   email    = $('#loginEmail').val();
   customer = $('#loginCustomer').val();

   if(email!='' && customer !=''){
       $.ajax({
              url: '/users/checkuser/',
              cache: false,
              type: 'POST',
              data: ({  email: this.email,
                        customer: this.customer}),
               success: function(html){
                   if(html == 'true'){
                       location.reload();
                   }
                   else{
                       alert('Uw emailadres of klantnummer is niet bij ons bekend.');
                   }
               }
       });
   }
}
function saveUserData(){
    feedback    = 'Het formulier is niet volledig ingevuld. Zie de groen omrande velden.\n';
    sendform    = true;
    
    name    = $('input#name').val();
    street  = $('input#street').val();
    number  = $('input#number').val();
    zipcode = $('input#zipcode').val();
    city    = $('input#city').val();
    country = $('select#country').val();
    email   = $('input#email').val();
    phone1  = $('input#telephone').val();
    phone2  = $('input#telephone2').val();

    del        = $('input#deliveryAddress:checked').length;
    delname    = $('input#delName').val();
    delstreet  = $('input#delStreet').val();
    delnumber  = $('input#delNumber').val();
    delzipcode = $('input#delZipcode').val();
    delcity    = $('input#delCity').val();
    delphone   = $('input#delPhone').val();

    if(name == ''){
        sendform    = false;
        $('input#name').parent().addClass('required');
    }
    else{
       $('input#name').parent().removeClass('required');
    }
    if(street == ''){
        sendform    = false;
        $('input#street').parent().addClass('required');
    }
    else{
       $('input#street').parent().removeClass('required');
    }
    if(number == ''){
        sendform    = false;
        $('input#number').parent().addClass('required');
    }
    else{
       $('input#number').parent().removeClass('required');
    }
    if(zipcode == ''){
        sendform    = false;
        $('input#zipcode').parent().addClass('required');
    }
    else{
       $('input#zipcode').parent().removeClass('required');
    }
    if(city == ''){
        sendform    = false;
        $('input#city').parent().addClass('required');
    }
    else{
       $('input#city').parent().removeClass('required');
    }
    if(email == ''){
        sendform    = false;
        $('input#email').parent().addClass('required');
    }
    else{
       $('input#email').parent().removeClass('required');
    }
    if(phone1 == ''){
        sendform    = false;
        $('input#telephone').parent().addClass('required');
    }
    else{
       $('input#telephone').parent().removeClass('required');
    }

    if(del == 1){
        if(delname == ''){
            sendform    = false;
            $('input#delName').parent().addClass('required');
        }
        else{
           $('input#delName').parent().removeClass('required');
        }
        if(delstreet == ''){
            sendform    = false;
            $('input#delStreet').parent().addClass('required');
        }
        else{
           $('input#delStreet').parent().removeClass('required');
        }
        if(delnumber == ''){
            sendform    = false;
            $('input#delNumber').parent().addClass('required');
        }
        else{
           $('input#delNumber').parent().removeClass('required');
        }
        if(delzipcode == ''){
            sendform    = false;
            $('input#delZipcode').parent().addClass('required');
        }
        else{
           $('input#delZipcode').parent().removeClass('required');
        }
        if(delcity == ''){
            sendform    = false;
            $('input#delCity').parent().addClass('required');
        }
        else{
           $('input#delCity').parent().removeClass('required');
        }
    }
    else{
        $('input#delName').parent().removeClass('required');
        $('input#delStreet').parent().removeClass('required');
        $('input#delNumber').parent().removeClass('required');
        $('input#delZipcode').parent().removeClass('required');
        $('input#delCity').parent().removeClass('required');
    }

    if(sendform == false){
        alert(feedback);
    }
    else{
        $.ajax({
              url: '/orders/savedata/user',
              cache: false,
              type: 'POST',
              data: ({  name: this.name,
                        street: this.street,
                        number: this.number,
                        zipcode: this.zipcode,
                        city: this.city,
                        country: this.country,
                        email: this.email,
                        phone1: this.phone1,
                        phone2: this.phone2,
                        del: this.del,
                        delname: this.delname,
                        delstreet: this.delstreet,
                        delnumber: this.delnumber,
                        delzipcode: this.delzipcode,
                        delcity: this.delcity,
                        delphone: this.delphone}),
               success: function(html){
                   if(html == 'true'){
                        location.href = nextpage;
                   }
                   else{
                       alert('Er is iets misgegaan met het opslaan van de gegevens. Probeer het opnieuw.');
                   }
               }
       });
    }
}

function setDelForm(obj){
    if($('input#'+obj.id+':checked').length ==1){
        $('table#delForm').show();
    }
    else{
        $('table#delForm').hide();
    }
}
function notReady(){
    alert('U kunt de bestelling nog niet afronden. Volg de aanwijzingen die staan beschreven op deze pagina.');
}
function placeOrder(){
    if($('input#approval:checked').length ==1){
        comment = $('#comment').val();
        newsletter = $('#newsletter').val();

        $.ajax({
              url: '/orders/savedata/all',
              cache: false,
              type: 'POST',
              data: ({  comment: this.comment,
                        newsletter: this.newsletter}),
               success: function(html){
                   if(html == 'true'){
                        location.href = nextpage;
                   }
                   else{
                       alert('Er is iets misgegaan met het opslaan van de gegevens. Probeer het opnieuw.');
                   }
               }
       });

    }
    else{
        alert('U dient akkoord te gaan met de algemene voorwaarden.');
    }
}
