function setShippingPrice() {
	if (Field.present("shipping_options"))
	{
		if ($("shipping_options").selectedIndex != 0)
		{
			/// so if it is ground shipping...then don't do anything
			Element.update($("shipping_option_msg"), "Updating Shipping Quote...");
		}
		fetchQuote($("shipping_options"));
	}
}
//// this handles a bunch of the misc ajax and other things going on...
function updateShippingPrice(selectObj) {
	/// ok let's formulate the call...
	/// i think we can just make it
	if ($F("init_subtotal") == "")
	{
		$("init_subtotal").value = $F("AMT");
	}
	Element.update($("shipping_option_msg"), "Fetching Shipping Quote...");
	fetchQuote(selectObj);

}

function fetchQuote(selectObj) {
	
	var total_amt = $F("init_subtotal");
	var url = "process_shipping_rates.php";
	var params = "source=good&shipping_data=" + $F(selectObj.id) + "&total_amt=" + total_amt;
	var ajaxRequest = new Ajax.Request(
										url,
										{
											method: "get",
											parameters: params,
											onComplete: continueUpdateShippingPrice
										});
}

function continueUpdateShippingPrice(originalResponse) {
	/// it should return either an error succes...
	///if success it should return the shipping price as well as the updated order total...
	var jsonTxt = originalResponse.responseText;
	var updateObj = JSON.parse(jsonTxt);
	/// we are assuming that this comes to us as a JSON obj
	if (updateObj.response_status == "error")
	{
		$("shipping_options").selectedIndex = 0;
		$("shipping_options").disabled = true;
		//var newHTML = updateObj.response_message; // the user doesn't need to know the technical reason...2/25/08
		var newHTML = "Unable to calculate shipping costs at this moment.";
		Element.update($("shipping_option_msg"), newHTML);
	}
	else {
		/// if it worked...
		Element.update($("shipping_option_msg"), "");
		Element.update($("value_ot_shipping"), "<p class=\"form_label\">$" + updateObj.shipping_price);
		Element.update($("value_ot_total"), "<p class=\"form_label\"><b>$" + updateObj.new_total_price + "</b>");
		$("AMT").value = updateObj.new_total_price;
	}

}
////  now these are functions for the payment switch....

function togglePayment(radioValue) {
	//// so let's check which it is....
	if (radioValue == 'payflowpro') {
		/// so if it's verisign/credit card/etc
		var form_url = "checkout_confirmation.php";
		Element.show('credit_card_info');
		Element.show('coupon_field');
		Element.hide('coupon_update_googlecheckout');
	}
	else if (radioValue == 'paypal') {
		var form_url = "paypal_lookup_verify.php";
		Element.hide('credit_card_info');
		Element.show('coupon_field');
		Element.hide('coupon_update_googlecheckout');
	}
	else if (radioValue == 'googlecheckout') {
		var form_url = "googlecheckout_lookup_verify.php";
		Element.hide('credit_card_info');
		/// now we also need to change the info on the coupon
		Element.toggle('coupon_field');
		Element.toggle('coupon_update_googlecheckout');
	}
	else if (radioValue == 'myecheck') {
		var form_url = "myecheck_lookup_verify.php";
		Element.hide('credit_card_info');
	}
	$('checkout_payment').action = form_url;
}

function googlecheckoutSubmit(frm) {
	///what do we do now?
	/// well first 
	/// we take the form
	var form_obj = $(frm);
	form_obj.action = 'googlecheckout_lookup_verify.php';
	setUrchinInputCode();
	

	//// that's it////
	
	form_obj.submit();
}

function omTrackGoogleCheckout(inputObj_id) {
	////////////////////////////
	/// before we submit the form. some omniture stuff josh 5/29/08
	var input_obj = $(inputObj_id);
	//////////////////////////
	var s = s_gi("dazadicomprod");
	s.linkTrackVars='events';
	s.linkTrackEvents='event6';
	s.events='event6';
	s.tl(input_obj, 'o', "GoogleCheckout Payment");
}

function omTrackOrderTracking(trackButton_id) {
	var this_obj = $(trackButton_id);
	var s = s_gi("dazadicomprod");
	s.linkTrackVars='events';
	s.linkTrackEvents='event8';
	s.events='event8';
	s.tl(this_obj, 'o', "Order Tracking");
} // /end function

function fetchOrderTracking() {
			/// first we have to check some things
			if ($F('orders_id') == "" && $F('email_address') == "") {
				alert("You must enter either an order id or e-mail address!");
				return false;
			}
			else if (($F('orders_id') != "" && $F('orders_id') == 0) || ($F('email_address') != '' && $F('email_address') == 0)) {
				alert("The value you entered is not valid");
				return false;
			}
			var url = "process_tracking_request.php";
			var params = "source=good";
			if ($F('orders_id') != '') {
				params += "&orders_id=" + $F('orders_id');
			}
			if ($F('email_address') != '') {
				params += "&email=" + $F('email_address');
			}
			
			Element.show('tracking_results_header');
			Element.scrollTo('tracking_results_header');
			Element.show('tracking_results');
			var msg = "<blink>Fetching tracking results...</blink>"
			Element.update('tracking_results', msg);
			var ajaxRequest = new Ajax.Request(url,
												{
													method: 'get',
													parameters: params,
													onComplete: completeFetchOrderTracking});
}

function completeFetchOrderTracking(originalResponse) {
	var msg = "Loading tracking results...";
	Element.update('tracking_results', msg);
	// first check to see if there are errros
	if (originalResponse.responseText == "") {
		msg = "I'm sorry, we are currently experiencing an unplanned event.  For tracking information, please call 1-888-382-4537 or Email Us: info [at] dazadi [dot] com.";
		Element.update('tracking_results', msg);
		return false;
	}
	var xml_doc = originalResponse.responseXML;
	var error_msgs = xml_doc.getElementsByTagName('Error');
	if (error_msgs.length > 0) {
		/// then there have been errros
		msg = error_msgs[0].childNodes[0].nodeValue;
		Element.update('tracking_results', msg);
		return false;
	}
	
	/// ok now we can do actual parsing.
	var orders_nodes = xml_doc.getElementsByTagName('OrderTracking');
	Element.update('tracking_results', '');
	for (var i = 0; i < orders_nodes.length; i++) {
		///these are all the orders
		var html = "";
		var this_order_node = orders_nodes[i];
		var orders_id = this_order_node.getAttribute('orders_id');
		///create the div
		html += "<span style='font-weight:bold;'>Order ID:</span><span style='margin-left:2px;'>" + orders_id + "</span>";
		var new_order_div_html = "<div id='order_tracking_" + orders_id + "' class='order_tracking_data'></div>";
		$('tracking_results').innerHTML += new_order_div_html;
		var new_order_div = $('order_tracking_' + orders_id);
		
		// do it like this
		var purchase_date_node = this_order_node.getElementsByTagName('PurchaseDate');
		var purchase_date_node = purchase_date_node[0];
		/// real data
		var purchase_date = purchase_date_node.childNodes[0].nodeValue;
		//////
		
		/////////now last update
		var last_update_node = this_order_node.getElementsByTagName('LastUpdate');
		last_update_node = last_update_node[0];
		var last_update = last_update_node.childNodes[0].nodeValue;
		//////	
		html += "<div>Purchase Date: " + purchase_date + "</div><div>Last Update: " + last_update + "</div><br>";
		
		/// now get some more info
		
		var items_nodes = this_order_node.getElementsByTagName('Items');
		items_nodes = items_nodes[0];
		
		var orders_products_nodes = items_nodes.getElementsByTagName('OrderProduct');
		
		for (var inner = 0; inner < orders_products_nodes.length; inner++) {
			var this_order_product_node = orders_products_nodes[inner];
			
			var product_node = this_order_product_node.getElementsByTagName('Product');
			product_node = product_node[0];
			var product_name = product_node.childNodes[0].nodeValue;
			var product_url = product_node.getAttribute('url');
			
			/// next status
			var status_node = this_order_product_node.getElementsByTagName('Status');
			status_node = status_node[0];
			var status = status_node.childNodes[0].nodeValue;
			var status_id = status_node.getAttribute('status_id');
			/////
			html += "<div style='font-weight:bold;'>Product: <a href=\"" + product_url + "\" target='_new'>" + product_name + "</a></div>";
			html += "<div style='clear:both;'></div><div>Status: " + status + "</div>";
			
			if (status_id == 4) {
				/// then maybe there's some more info
				///thentherre's a ship date
				var ship_date_node = this_order_product_node.getElementsByTagName('DateShipped');
				if (ship_date_node.length < 1) {
					html += "<br>";
					continue;
				}
				
				ship_date_node = ship_date_node[0];
				var ship_date = ship_date_node.childNodes[0].nodeValue;
				
				html += "<div>Date Shipped: " + ship_date + "</div>";
				
				var shipping_company_node = this_order_product_node.getElementsByTagName('ShippingCompany');
				shipping_company_node = shipping_company_node[0];
				var shipping_company = shipping_company_node.childNodes[0].nodeValue;
				
				var shipping_link_node = this_order_product_node.getElementsByTagName('ShippingLink');
				shipping_link_node = shipping_link_node[0];
				var shipping_link = shipping_link_node.childNodes[0].nodeValue;
				
				var tracking_number_node = this_order_product_node.getElementsByTagName('TrackingNumber');
				tracking_number_node = tracking_number_node[0];
				var tracking_number = tracking_number_node.childNodes[0].nodeValue;
				
				html += "<div>Shipping Company: <a href='" + shipping_link + "' target='_shipping'>" + shipping_company + "</a></div><div>Tracking Num: " + tracking_number + "</div>";
				
				var tracking_status_node = this_order_product_node.getElementsByTagName('TrackingStatus');
				
				if (tracking_status_node.length > 0) {
					tracking_status_node = tracking_status_node[0];
					/// then we are in business
					var tracking_status = tracking_status_node.childNodes[0].nodeValue;
					var delivery_date_node = this_order_product_node.getElementsByTagName('DeliveryDate');
					delivery_date_node = delivery_date_node[0];
					var delivery_date = delivery_date_node.childNodes[0].nodeValue;
					
					if (tracking_status != "null") {
						/// then it's still enroute
						html += "<div>";
						if (tracking_status != "Delivered") {
							html += "Est. ";
						}
						html += "Delivery Date: " + delivery_date + "</div>";
						
					}
				}

			}
			html += "<br>\n";
			
		}
		new_order_div.innerHTML = html;
	}
}

function omTrackPrintPage(products_id, page_type) {
	/// omniture stuff /// 
	var s = s_gi("dazadicomprod");
	s.linkTrackVars='pageName,eVar8,events,prop7';
	s.linkTrackEvents='event10';
	s.pageName='print page';
	s.eVar8=products_id;
	s.events='event10';
	s.prop7=page_type;
	s.t();
	
} /// end function

function omTrackLargeImage(anchor_id, products_id) {
	var anchor_obj = $(anchor_id);
	var s = s_gi('dazadicomprod');
	s.linkTrackVars='eVar10,events';
	s.linkTrackEvents='event12';
	s.eVar10=products_id;
	s.events='event12';
	s.tl(anchor_obj, 'o', "Large Image");
}

function omTrackViewExpedited(anchor_id) {
	var anchor_obj = $(anchor_id);
	var s = s_gi('dazadicomprod');
	s.linkTrackVars='events';
	s.linkTrackEvents='event13';
	s.events='event13';
	s.tl(anchor_obj, 'o', "View Expedited");
	
} // end func

function omTrackShippingPopup(anchor_obj) {
	
	var s = s_gi('dazadicomprod');
	s.linkTrackVars='events';
	s.linkTrackEvents='event14';
	s.events='event14';
	s.tl(anchor_obj, 'o', "Shipping Policy Popup");
	
} /// end func

function allowJSPhoneTracking() {
	$('phone_tracking_link').href = 'javascript:void{};';
	Event.observe('phone_tracking_link', 'click', retrievePhoneCode);
}

function retrievePhoneCode(e) {
	var url = "process_omniture_phonetracking.php";
	var params = "";
	var ajaxRequest = new Ajax.Request(url,
										{
											method: 'post',
											parameters: params,
											onComplete: function(originalResponse, jsonObj) {
															completeRetrievePhoneCode(jsonObj);
														}
										});
	
}

function completeRetrievePhoneCode(jsonObj) {
	var update_field = "phone_code_div";
	if (jsonObj.response_status == "error") {
		Element.update(update_field, "Unable to retrieve phone code.");
	}
	else {
		Element.update(update_field, jsonObj.phone_code);
		var s = s_gi('dazadicomprod');
		s.linkTrackVars='transactionID,events';
		s.linkTrackEvents='event4';
		s.transactionID=jsonObj.phone_code;
		s.events='event4';
		s.tl($('anchor_obj'), 'o', "TransactionID Set");
		
	}
}