var responseSuccessCart = function(o) {
  var div = document.getElementById('cart');
  if (o.responseText !== undefined) {
    div.innerHTML = o.responseText;
    //if (o.responseText.substr(0,16) == "Login Successful") {
    //  location.href = "resource.list.do";
    //}
  } else {
    div.innerHTML = "[ERROR] Unable to update cart.  Try again later.";
  }
  updateTotal();
};

var responseFailure = function(o) {
  var div = document.getElementById('cart');
  div.innerHTML = "[ERROR] Unable to update cart.  Try again later.";
};

var callbackCart =
{
  success:responseSuccessCart, 
  failure:responseFailure, 
  timeout: 10000
};

function cleanup() {
  var resultarea = document.getElementById('resultarea');
  resultarea.innerHTML = "";
  var st = document.getElementById('state');
  var shippingID = document.getElementById('shippingID');
  if (st == null) {
	  coreGet("cart", "/cart.add.rpc", "resultarea");
	} else {
    if (shippingID == null) {
      coreGet("cart", "/cart.add.rpc?state=" + st.options[st.selectedIndex].value, "state");
	  } else {
      coreGet("cart", "/cart.add.rpc?state=" + st.options[st.selectedIndex].value + "&shippingID=" + shippingID.options[shippingID.selectedIndex].value, "state");
	  }
	}
}

function updateTotal() {
  var st = document.getElementById('state');
  var shippingID = document.getElementById('shippingID');
  if (st == null) {
  	coreGetAdvLoop("resultarea", "cartdetails", "/cart.total.rpc", "resultarea", "cleanup");
  } else {
    if (shippingID == null) {
  		coreGetAdvLoop("resultarea", "cartdetails", "/cart.total.rpc?state=" + st.options[st.selectedIndex].value, "state", "cleanup");
  	} else {
  		coreGetAdvLoop("resultarea", "cartdetails", "/cart.total.rpc?state=" + st.options[st.selectedIndex].value + "&shippingID=" + shippingID.options[shippingID.selectedIndex].value, "state", "cleanup");  	
  	}
  }
}

function couponComplete() {
  //alert("Coupon Updated");
  updateTotal();
}

function applyCoupon() {
  var couponResult = document.getElementById('couponResult');
  couponResult.innerHTML = "";
  var couponCode = document.getElementById('couponCode');
  if (couponCode.value.length > 0) {
    coreGetAdvLoop("couponResult", "couponResult", "/coupon.apply.rpc?code=" + couponCode.value, "couponCode", "couponComplete");
  } else {
    alert("Please enter a coupon code");
  }
}

function removeCoupon() {
  var couponResult = document.getElementById('couponResult');
  couponResult.innerHTML = "";
  coreGetAdvLoop("couponResult", "couponResult", "/coupon.apply.rpc", "couponCode", "couponComplete");  	
}

function cart(itemID, qty, op) {
  var div = document.getElementById('cart');
  div.innerHTML += "<br/><br/><img src='/core/images/progress.gif' alt='Updating Cart' /> Updating Cart ...<br/><br/>";
  if (op == 0) {
    option = "";
    div = document.getElementById('optionFirstID_' + itemID); if (div != null) option = div.value;
    var transaction = YAHOO.util.Connect.asyncRequest('GET', '/cart.add.rpc?itemID=' + itemID + '&qty=' + qty + '&option=' + option, callbackCart);
  } else if (op == 1) {
    var transaction = YAHOO.util.Connect.asyncRequest('GET', '/cart.remove.rpc?itemID=' + itemID, callbackCart);
  } else {
    var transaction = YAHOO.util.Connect.asyncRequest('GET', '/cart.clear.rpc', callbackCart);
  }
}

function newelement(name, value, parent) {
  var input = document.createElement("input");
  input.setAttribute("type", "hidden");
  input.setAttribute("name", name);
  input.setAttribute("value", value);
  document.getElementById(parent).appendChild(input);
}

function checkout(track) {
  if (track) pageTracker._trackPageview("/cart.checkout.do");
  document.checkoutform.submit();
}

function checkoutGoogle(track) {
  if (track) pageTracker._trackPageview("/cart.checkout.do");
  document.checkoutgoogleform.submit();
}

function checkoutAuthorizeNet(track) {
  if (track) pageTracker._trackPageview("/cart.checkout.do");
  document.checkoutauthnetform.submit();
}

function checkoutGoogleLegacy(track) {
  if (track) pageTracker._trackPageview("/cart.checkout.do");
  var inputs = document.getElementsByTagName("input"); var idx = 0;
  for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].name.indexOf('amount_') == 0) {
      idx++; var index = inputs[i].name.substring(7);
		  newelement("item_name_" + idx, document.getElementById("item_name_" + index).value, "checkoutgoogleform");
		  newelement("item_description_" + idx, document.getElementById("item_number_" + index).value, "checkoutgoogleform");
		  newelement("item_price_" + idx, document.getElementById("amount_" + index).value, "checkoutgoogleform");
		  newelement("item_currency_" + idx, "USD", "checkoutgoogleform");
		  newelement("item_quantity_" + idx, document.getElementById("quantity_" + index).value, "checkoutgoogleform");
    }
  }
  document.checkoutgoogleform.submit();
}

