function submit_modular_ajax_form(formObject, additionalHandler)
{
    	var options = { 
		//target:        '#output1',   // target element(s) to be updated with server response 
		//beforeSubmit:  showRequest,  // pre-submit callback 
		success: function(responseText, statusText, xhr, $form){
				modularBox = Boxy.get(formObject);
				if (additionalHandler)
				{		
					var fn = window[additionalHandler];
					if(typeof fn === 'function') {
					    fn(responseText, modularBox, formObject);
					}							
				}	
				else
				{
					modularBox.hide();
				}						
			}  // post-submit callback 
			 
		// other available options: 
		//url:       'ajax.php'    // override for form's 'action' attribute 
		//type:      type        // 'get' or 'post', override for form's 'method' attribute 
		//dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
		//clearForm: true        // clear all form fields after successful submit 
		//resetForm: true        // reset the form after successful submit 
			 
		// $.ajax options can be used here too, for example: 
		//timeout:   3000 
   	};
	formObject.ajaxSubmit(options); 
}


function boxy_handle_add_item(responseText, modularBox, formObject)
{
	hasError = ($('div.form_error_box', responseText).html()>'');
	if (hasError)
	{
		//retrieve the WC error from AJAX response and put into the modular window
		formObject.closest('table.boxy-wrapper').find('div.form_error_box').html($('div.form_error_box', responseText).html()); 
	}
	else
	{
		//and now detect and close the parent modular window	
		$("div#number_of_items").html($('div#number_of_items', responseText).html());
		$("div#ajax_items_list").html($('div#ajax_items_list', responseText).html());
		$('div#ajax_items_list .boxy').boxy()
		modularBox.hide();
	}
}


/*function boxy_handle_refresh_form(responseText, modularBox, formObject)
{
	formObject.replaceWith($("form[name="+formObject.attr("name")+"]", responseText));
	$("form[name="+formObject.attr("name")+"]").bind('submit', function() {
		submit_modular_ajax_form($(this), modularBox.options.boxyCallbackFunction);
		return false;
	});
}*/

function submit_location_ajax_form(requestingObject, resetToAction, fieldNames)
{
	form_object = $(requestingObject).closest('form'); 
	if ($("input[name=action]", form_object))
	{
		previousAction = $("input[name=action]", form_object).val();
		if (resetToAction)
		{
			$("input[name=action]", form_object).val(resetToAction);
		}
		else
		{
			$("input[name=action]", form_object).val("");
		}
	}
    	var options = { 
		//target:        '#output1',   // target element(s) to be updated with server response 
		//beforeSubmit:  showRequest,  // pre-submit callback 
		success:       function(responseText, statusText, xhr, $form){  
			$("input[name=action]", form_object).val(previousAction);
			$("#"+fieldNames.country, form_object).html($("form[name="+form_object.attr("name")+"] "+"#"+fieldNames.country, responseText).html());
			$("#"+fieldNames.state, form_object).html($("form[name="+form_object.attr("name")+"] "+"#"+fieldNames.state, responseText).html());
			$("#"+fieldNames.city, form_object).html($("form[name="+form_object.attr("name")+"] "+"#"+fieldNames.city, responseText).html());
			$("#"+fieldNames.country, form_object).css("display", $("form[name="+form_object.attr("name")+"] "+"#"+fieldNames.country, responseText).css("display"));
			$("#"+fieldNames.state, form_object).css("display", $("form[name="+form_object.attr("name")+"] "+"#"+fieldNames.state, responseText).css("display"));
			$("#"+fieldNames.city, form_object).css("display", $("form[name="+form_object.attr("name")+"] "+"#"+fieldNames.city, responseText).css("display"));
			//.replaceWith($("form[name="+form_object.attr("name")+"]", responseText));
		}  // post-submit callback 
			 
		// other available options: 
		//url:       'ajax.php'    // override for form's 'action' attribute 
		//type:      type        // 'get' or 'post', override for form's 'method' attribute 
		//dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
		//clearForm: true        // clear all form fields after successful submit 
		//resetForm: true        // reset the form after successful submit 
			 
		// $.ajax options can be used here too, for example: 
		//timeout:   3000 
   	};

	form_object.ajaxSubmit(options); 
}

