var url = "cart_controller.php"; // The server-side script
var arrResLines;

function handleHttpResponse_Operations() {
  if (http.readyState == 4) {
    // Split the comma delimited response into an array
	
	if (http.responseText == 'error') {
		alert('There was an error with cart operations. Please contact your administrator.');
		return;
	}

	loadCartTable();
  }
}


function handleHttpResponse_List() {
  if (http.readyState == 4) {
	arrResLines = http.responseText.split("\r\n");
	arrResLines.length--;
	
	document.getElementById('cart_table').innerHTML = CartTable();
  }
}
 
function loadCartTable() {
	http.open("GET", url + '?cmd=listcart', true);
	http.onreadystatechange = handleHttpResponse_List;
	http.send(null);
}

function CartTable() {
	var str = '<table width="100%" border="0" cellpadding="3" cellspacing="0">';
	  str += '<tr>';
	  str += '<td class="font_heading_dk solid_underline_dkgrey">&nbsp;</td>';
	  str += '<td class="font_heading_dk solid_underline_dkgrey">Product</td>';
	  str += '<td class="font_heading_dk solid_underline_dkgrey">Size</td>';
	  str += '<td class="font_heading_dk solid_underline_dkgrey">Quantity</td>';
	  str += '<td class="font_heading_dk solid_underline_dkgrey" align="right">Amount</td>';
	  str += '</tr>';
		  
	if (arrResLines.length == 0) {
		GLOBAL_QUEST_ORDER = '';
		str += '<tr><td colspan="5">Your cart is empty.</td></tr>';
	}
	else {
		GLOBAL_QUEST_ORDER = '';
		for (var i = 0; i < arrResLines.length-2; i++) {
			var arrTmp = arrResLines[i].split('==');
			GLOBAL_QUEST_ORDER += arrTmp[0] + ',';
			
			
			  str += '<tr>';
			  str += '<td class="solid_underline_ltgrey"><a href="javascript: removeCartItem(' +  arrTmp[0] + ');">Remove</a></td>';
			  str += '<td class="solid_underline_ltgrey">' + arrTmp[1] + '</td>';
			  str += '<td class="solid_underline_ltgrey">' + arrTmp[2] + '</td>';
			  str += '<td class="solid_underline_ltgrey"><strong>' + arrTmp[3] +  '</strong></td>';
			  str += '<td class="solid_underline_ltgrey" align="right"><strong>AUD$' + arrTmp[4] + '</strong></td>';
			  str += '</tr>';
		}
		

		  //DISCOUNT ROW
		  var arrTmp = arrResLines[arrResLines.length-2].split('==');
		  if (parseFloat(arrTmp[4]) > 0) {
			  str += '<tr>';
			  str += '<td class="">&nbsp;</td>';
			  str += '<td class="">&nbsp;</td>';
			  str += '<td class="font_heading_dk" colspan="2" align="right">Quantity Discount (' + arrTmp[3] + '%):</td>';
			  str += '<td class="font_warning" align="right">- AUD$' + arrTmp[4] + '</td>';
			  str += '</tr>';
		  }


		  //TOTAL ROW
		  var arrTmp = arrResLines[arrResLines.length-1].split('==');
		  str += '<tr>';
		  str += '<td class="">&nbsp;</td>';
		  str += '<td class="">&nbsp;</td>';
		  str += '<td class="font_heading_dk">&nbsp;</td>';
		  str += '<td class="font_heading_dk">&nbsp;</td>';
		  str += '<td class="font_heading_dk" align="right">AUD$' + arrTmp[4] + '</td>';
		  str += '</tr>';
		  
		  str += '<tr>';
		  str += '<td colspan="5" align="right"><input type="button" value="Checkout &raquo;" class="font_heading_dk" onClick="javascript: window.location=\'order_contact.php\';"></td>';
		  str += '</tr>';
	 }
										  
     str += '</table>';
	 	 
	 return str;
}

function addCartItem(pid, qty, size) {
  http.open("GET", url + '?cmd=addtocart&pid=' + pid + '&qty=' + qty + '&size=' + size, true);
  http.onreadystatechange = handleHttpResponse_Operations;
  http.send(null);
}

function removeCartItem(lid) {
  http.open("GET", url + '?cmd=removefromcart&lid=' + lid, true);
  http.onreadystatechange = handleHttpResponse_Operations;
  http.send(null);
}


function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
var http = getHTTPObject(); // We create the HTTP Object