var busy = false;
var mltAddressArray;
var shippingOptionsArray;

/**
 * Shopping Cart
 */

function UpdateTotal(formName, num_items) {
	form = getElementById(formName);
	addUpdatedItemsToForm(form, num_items)
	form.URL.value = 'OrderCalculate?calculationUsageId=-1&URL=OrderItemDisplay';
	form.submit();
}
var checkoutRequestSubmitted = false;

function CheckOut(formName, num_items) {
	if (!checkoutRequestSubmitted){
		checkoutRequestSubmitted  = true;	
		form = getElementById(formName);
		addUpdatedItemsToForm(form, num_items);		
		form.submit();
	}
}
function linkCode(obj,orderId,s) {
	s.linkTrackVars='eVar7,events';
	s.linkTrackEvents='event5';
	s.eVar7=orderId;
	s.events='event5';
	s.tl(obj,'o','Paypal Button');
}

function PayPalCheckOut(formName, num_items) {
	if (!checkoutRequestSubmitted){
		checkoutRequestSubmitted  = true;	
		form = getElementById(formName);
		addUpdatedItemsToForm(form, num_items);
		form.submit();
	}	
}

function GoogleCheckOut(formName, num_items) {
	if (!checkoutRequestSubmitted){		
		checkoutRequestSubmitted  = true;	
		form = getElementById(formName);
		addUpdatedItemsToForm(form, num_items);
		createCookie(form.orderId.value + '_paymentType',"GG",1);
		form.submit();
	}	
}

function addUpdatedItemsToForm(form, num_items){
	for (var i=1; i<=num_items; i++) {
		var newQty = getElementById("temp_quantity_" + i).value;
		var oldQty = getElementById("start_quantity_" + i).value;
		if (newQty != oldQty){
			var obj1=document.createElement("input");
			obj1.type = "hidden";
			obj1.name = "quantity_" + i;
			obj1.value = newQty;
			form.appendChild(obj1);
			var orderItemId = getElementById("temp_orderItemId_" + i).value;
			var obj2=document.createElement("input");
			obj2.type = "hidden";
			obj2.name = "orderItemId_" + i;
			obj2.value = orderItemId;
			form.appendChild(obj2);
		}
	}
}

function updateChkBoxToForm(formName, item_num){
	form = getElementById(formName);
	var field1=getElementById("temp_field1_" + item_num).checked;
	var obj1=document.createElement("input");
			obj1.type = "hidden";
			obj1.name = "field1_" + item_num;
			obj1.value = field1;
			form.appendChild(obj1);
			var orderItemId = getElementById("temp_orderItemId_" + item_num).value;
			var obj2=document.createElement("input");
			obj2.type = "hidden";
			obj2.name = "orderItemId_" + item_num;
			obj2.value = orderItemId;
			form.appendChild(obj2);
			var newQty = getElementById("temp_quantity_" + item_num).value;
			var oldQty = getElementById("start_quantity_" + item_num).value;
			if (newQty != oldQty){
			var obj3=document.createElement("input");
			obj3.type = "hidden";
			obj3.name = "quantity_" + item_num;
			obj3.value = newQty;
			form.appendChild(obj3);
			}
			form.URL.value = 'OrderCalculate?calculationUsageId=-1&URL=OrderItemDisplay';
			form.submit();
}
	function getShippingOptions(orderId, zipCode) {	
		var params = [];	
		params["orderId"] = orderId;	//
		params["zipCode"] = zipCode;	//
		params["fromScreen"] = "AJAX_SHOPPINGCART";	//
				
		dojo.xhrPost( { // ?	        
	        url: "/webapp/wcs/stores/servlet/ShippingOptionsCmd?URL=JEGSAjaxShoppingCartShippingOptionsView", //
	        content: params, //		             	       	
	        // The LOAD function will be called on a successful response.
	        load: function(response, ioArgs) { //	
	          var parent = getElementById('scShippingOptionsArea'); 
	          runScripts(response);       	                	    
	          parent.innerHTML = response;
	          return response; // ?
	        },	
	        // The ERROR function will be called in an error case.
	        error: function(response, ioArgs) { // ?
	          console.error("HTTP status code: ", ioArgs.xhr.status); // ?
	          return response; // ?
	          }
	        });	 	
	}
	
	function updateEstimateTotals(shipping, ruralCharge, taxLabel, tax, total, feesAndHandling){
		var parent = getElementById('orderEstimateTotalArea');
		var feeArray = feesAndHandling.split(';');
		var totalStr = '';
		for (i=0; i < (feeArray.length - 1); i++){
			var fee = feeArray[i].split(':');
			totalStr += '<div class="subtotalLabel">' + fee[0] + ':<\/div>';
			totalStr += '<div class="price subtotalValue">' + parseFloat(fee[1]).toFixed(2) + '<\/div>';
		}
		totalStr += '<div class="subtotalLabel">Shipping:<\/div>';
		totalStr += '<div class="price subtotalValue">' + shipping + '<\/div>';
		if (ruralCharge > 0){
		totalStr += '<div class="subtotalLabel">Delivery Area Surcharge:<\/div>';
		totalStr += '<div class="price subtotalValue">' + ruralCharge + '<\/div>' ;
		}
		totalStr += '<div class="subtotalLabel">' + taxLabel + ':<\/div>';
		totalStr += '<div class="price subtotalValue">' + tax + '<\/div>'; 
		totalStr += '<div class="subtotalLabel">Total:<\/div>';
		totalStr += '<div class="price subtotalValue">' + total + '<\/div>';
		parent.innerHTML = totalStr;
	}
	
	function clearEstimateTotals(){
		var parent = getElementById('orderEstimateTotalArea');
		parent.innerHTML = "";
	}
	
	function isArray(obj){
		return(typeof(obj.length)=="undefined")?false:true;
	}
	
	function getSelectedRadio(buttonGroup) {
	   // returns the array number of the selected radio button or -1 if no button is selected
	   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
	      for (var i=0; i<buttonGroup.length; i++) {
	         if (buttonGroup[i].checked) {
	            return i
	         }
	      }
	   } else {
	      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
	   }
	   // if we get to this point, no radio button is selected
	   return -1;
	} // Ends the "getSelectedRadio" function
    
	function alertValuesofForm(form) {
		for(i=0; i < form.elements.length; i++) { 
			alert("The field name is: " + form.elements[i].name + " and value is: " + form.elements[i].value + ".");
		}
	}


	function showCvvInfo() {
		cvvWin = window.open("/webapp/wcs/stores/JegsDirect/include/cvvInfo.jsp","cvvInfo","status=no,toolbar=no,location=no,menu=no,menubar=no,scrollbars=no,width=500,height=400");
		cvvWin.focus();
	}
	
	function showgiftWrapInfo() {
	var hostName = window.location.hostname;
		giftWrap = window.open("http://"+hostName+ "/GiftWrap.html","giftWrap","status=no,toolbar=no,location=no,menu=no,menubar=no,scrollbars=no,width=450,height=250");
		giftWrap.focus();
	}
	
	function printURL (url) {
	  if (window.print && window.frames && window.frames.printerIframe) {
	    var html = '';
	    html += '<html>';
	    html +=
	'<body onload="parent.printFrame(window.frames.urlToPrint);">';
	    html += '<iframe name="urlToPrint" src="' + url + '"><\/iframe>';
	    html += '<\/body><\/html>';
	    var ifd = window.frames.printerIframe.document;
	    ifd.open();
	    ifd.write(html);
	    ifd.close();
	  }
	  else {
	      var win = window.open('', 'printerWindow',
	'width=600,height=620,resizable,scrollbars,toolbar,menubar');
	      var html = '';
	      html += '<html>';
	      html +=
	'<frameset rows="100%, *" ' +
	 'onload="opener.printFrame(window.urlToPrint);">';
	      html += '<frame name="urlToPrint" src="' + url + '" \/>';
	      html += '<\/frameset><\/html>';
	      win.document.open();
	      win.document.write(html);
	      win.document.close();
	  }
	}
	function printFrame (frame) {
	  if (frame.print) {
	    frame.focus();
	    frame.print();
	  }
	}
	function addCommas(nStr)
	{
		nStr += '';
		x = nStr.split('.');
		x1 = x[0];
		x2 = x.length > 1 ? '.' + x[1] : '';	
		if (x2.length == 2){
			x2 = x2 + "0";
		}
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ',' + '$2');
		}
		return x1 + x2;
	}
	
	var requestSubmitted = false;
       function submitRequest() {
              if (!requestSubmitted ) {
                     requestSubmitted  = true;
                     return true;
              }
              return false;
       }
	
	

	

