/*
## View: Common
## Toggles a element specified with id
*/
function toggleDisplay(elementId) {
  var element = document.getElementById(elementId);
  element.style.display = (element.style.display != 'none' ? 'none' : '');
}

function updateShoppingBasket(prodid, amount, attribute) {
  var attributes = '';
  if (attribute != '') attributes += 'product_attribute=' + escape(attribute);

  var url = './?module=Webshop;action=ShoppingBasketView.updateBasketQuantities;quantity_' + prodid + '=' + amount + ';' + attributes + ';template=basket';
  new Ajax.Request(url, {
    method: 'get',
      onSuccess: function() {
        window.location = './?module=Webshop;action=ShoppingBasketView.displayShoppingBasket;template=basket';
      }
    }
  );
}

function removeFromShoppingBasket(prodid, attribute) {
  var attributes = '';
  if (attribute != '') attributes += ';product_attribute=' + escape(attribute);

  var url = './?module=Webshop;action=ShoppingBasketView.updateBasketQuantities;quantity_' + prodid + '=0' + attributes + ';template=basket';
  new Ajax.Request(url, {
    method: 'get',
      onSuccess: function() {
        window.location = './?module=Webshop;action=ShoppingBasketView.displayShoppingBasket;template=basket';
      }
    }
  );
}

/*
## View: Checkout
## Changes payment method and displays information
## about choosen payment method
*/
function changePaymentMethod(elementId) {
  hidePaymentInfoBoxes();
  var elementToDisplay = document.getElementById(elementId + 'Info');
  elementToDisplay.style.display = 'block';
  setDeliveryMethod(elementId);
  return true;
}

/*
## View: Checkout
## Hides payment info boxes that are visible
*/
function hidePaymentInfoBoxes() {
  var payCODInfoEl = document.getElementById('payCODInfo');
  payCODInfoEl.style.display = 'none';

  var payInvoiceInfoEl = document.getElementById('payInvoiceInfo');
  payInvoiceInfoEl.style.display = 'none';

  var payCreditInfoEl = document.getElementById('payCreditInfo');
  payCreditInfoEl.style.display = 'none';
}

/*
## View: Checkout
## Sets the correct delivery options depending
## on payment method
*/
function setDeliveryMethod(paymentEl) {
  var deliverPickupEl = document.getElementById('deliverPickup');
  var deliverCourierEl = document.getElementById('deliverCourier');
  if (paymentEl == 'payCOD') {
    var deliverServiceEl = document.getElementById('deliverService');
    deliverServiceEl.checked = true;
    deliverServiceEl.onclick();
    deliverPickupEl.disabled = true;
    deliverCourierEl.disabled = true;
  } else {
    deliverPickupEl.disabled = false;
    deliverCourierEl.disabled = false;
  }
}

/*
## View: Checkout
## Changes the type of delivery, this will also set the handling fee
*/
function changeDeliveryMethod(elementId, fee) {
  hideDeliveryInfoBoxes();
  var elementToDisplay = document.getElementById(elementId + 'Info');
  elementToDisplay.style.display = 'block';
  setHandlingFee(fee);
  return true;
}

/*
## View: Checkout
## Hides delivery info boxes
*/
function hideDeliveryInfoBoxes() {
  var deliverServiceInfoEl = document.getElementById('deliverServiceInfo');
  deliverServiceInfoEl.style.display = 'none';

  var deliverCourierInfoEl = document.getElementById('deliverCourierInfo');
  deliverCourierInfoEl.style.display = 'none';

  var deliverPickupInfoEl = document.getElementById('deliverPickupInfo');
  deliverPickupInfoEl.style.display = 'none';
}

/*
## View: Checkout
## Sets the order handling fee on handlingFee-elements
*/
function setHandlingFee(fee) {
  var handlingFeeEl = document.getElementById('handlingFee');
  handlingFeeEl.value = fee;
  var orderSummaryHandlingFeeEl = document.getElementById('orderSummaryHandlingFee');
  if (fee != 0) {
    fee = fee / 100;
  }
  orderSummaryHandlingFeeEl.innerHTML = fee;
  updateTotalPrice(fee);
}

/*
## View: Checkout
## Updates the total price after a change of handling fee
*/
function updateTotalPrice(fee) {
  var orderSummaryGoodsEl = document.getElementById('orderSummaryGoods');
  var orderSummaryTotalEl = document.getElementById('orderSummaryTotal');
  if (fee <= 0) {
    fee = 0;
  }
  orderSummaryTotalEl.innerHTML = orderSummaryGoodsEl.innerHTML.replace('.','').replace(',', '.') * 1 + fee;
}
