/* Standard AJAX stuff */

var xmlHttp;
var response_text;

function GetXmlHttpObject(handler) {
  var objXmlHttp=null;
  if (navigator.userAgent.indexOf("MSIE")>=0) {
    var strName="Msxml2.XMLHTTP";
    if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
      strName="Microsoft.XMLHTTP";
    }
    try {
      objXmlHttp=new ActiveXObject(strName);
      objXmlHttp.onreadystatechange=handler;
      return objXmlHttp;
    }
    catch(e) {
      alert("Error. Scripting for ActiveX might be disabled");
      return;
    }
  }
  if (navigator.userAgent.indexOf("Mozilla") >= 0 || navigator.userAgent.indexOf("Opera") >= 0) {
    objXmlHttp=new XMLHttpRequest();
    objXmlHttp.onload=handler;
    objXmlHttp.onerror=handler;
    return objXmlHttp;
  }
}


function response() {
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    response_text = xmlHttp.responseText;
    //response = xmlHttp.responseXML.documentElement;
  }
}


/* Custom functions */

function calculate() {

  qtys = document.getElementsByName("qtys[]");
  prices = document.getElementsByName("prices[]");
  product_ids = document.getElementsByName("product_ids[]");
  
  var product_total = 0;
  var total_units = 0;

  for(i = 0; i < product_ids.length; i++) {
    var qty = qtys[i].value;
    var price = prices[i].value;
    product_total += qty*price;
  }

  document.getElementById("product_total").innerHTML = '$' + formatAsMoney(product_total);
  document.getElementById("grand_total").value = formatAsMoney(product_total);
}


function formatAsMoney(mnt) {
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    return (mnt == Math.floor(mnt)) ? mnt + '.00' 
              : ( (mnt*10 == Math.floor(mnt*10)) ? 
                       mnt + '0' : mnt);
}



function billingSameAsShipping() {
  if(document.getElementsByName('billing_same_as_shipping')[0].checked) {
    document.getElementsByName('billing_contact')[0].value = document.getElementsByName('shipping_contact')[0].value;
    document.getElementsByName('billing_address')[0].value = document.getElementsByName('shipping_address')[0].value;
  }
}


function validate() {
  error = '';

  if(document.getElementById('grand_total').value == '0') {
    error += 'You must buy at least one product\n';
  }
  if(!document.getElementsByName('shipping_contact')[0].value) {
    error += 'You must enter a shipping contact\n';
  }
  if(!document.getElementsByName('shipping_address')[0].value) {
    error += 'You must enter a shipping address\n';
  }
  if(!document.getElementsByName('billing_contact')[0].value) {
    error += 'You must enter a billing contact\n';
  }
  if(!document.getElementsByName('billing_address')[0].value) {
    error += 'You must enter a billing address\n';
  }
  if(!document.getElementsByName('billing_email')[0].value) {
    error += 'You must enter a billing email\n';
  }
  if(!document.getElementsByName('billing_phone')[0].value) {
    error += 'You must enter a billing phone number\n';
  }
    
  if(error) {
    alert(error);
    return false;
  }
  else {
    return true;
  }

}