/******************************************************************************/
/*
 *	This javascript contains all our search related functionality such as postback calls pre-loaders etc.
 */
$(document).ready(function() {
	//Bind any select post back controls.
	$("form.mp-search-form, form.mp-search-tool").find("select.mp-control-postback").change(
		function() {
			$(this).parents("form.mp-search-form,form.mp-search-tool").submit();
			return false;
		}
	);

	//Bind our DisplayMode control
	$("form.mp-search-tool").find("div.displaymode fieldset img").click(
		function() {			
			var container = $(this).parent("fieldset.imagegroup");
			var noofContainerChildNodes = container.children().length
			for (var count = 1; count < noofContainerChildNodes; count++) {
				container.children()[count].className = "";
			}

			var image = $(this);


			if (image[0].title == "Two Column") {
				container.find('input.mp-control-data')[0].defaultValue = 'twocolumn';
				container.find('input.mp-control-data')[0].value = 'twocolumn';				
				image.addClass("selected");
			}
			else if (image[0].title == "List") {
				container.find('input.mp-control-data')[0].defaultValue = 'list';
				container.find('input.mp-control-data')[0].value = 'list';				
				image.addClass("selected");
			}
			else if (image[0].title == "Stocklist") {
				container.find('input.mp-control-data')[0].defaultValue = 'stocklist';
				container.find('input.mp-control-data')[0].value = 'stocklist';				
				image.addClass("selected");
			}
			$(this).parents("form.mp-search-tool").submit();
		}
	);

	//Bind any stock counter callback requests.
	$("form.mp-search-count input.mp-control-data, form.mp-search-count select.mp-control-data").change(
		function() {
			var currentElement = $(this);
			//First check our form data to chack valididy before attempting a stock count.
			//If our postcode data is valid attempt a stock count analysis.
			//if (validateForm(currentElement.parents("form.mp-search-count"), false)) CHANGE THIS
			getStockCount(currentElement);
		}
	);

});
/******************************************************************************/


/******************************************************************************/
/*
*  We stack our requests into a timout queue so we limit too many callbacks.
*	Send the form data back to the server to get a stock count if the postcode is valid.
*/
var asyncWorkflowTimer = 0;
function getStockCount(dataElement) {
	clearTimeout(asyncWorkflowTimer);
	asyncWorkflowTimer = setTimeout(function() { retrieveStockCount(dataElement) }, 500);
}


function retrieveStockCount(dataElement) {
	$.ajaxManager.clearArguments();
	//Add our workflow action to update our stock count.
	$.ajaxManager.ajaxSettings.arguments.add("wflw", STOCK_COUNT_KEY);
	//Get our container form for the modified element.
	var formContainerElement = dataElement.parents("form.mp-search-count");
	//Find each of the data elements required by the ajax callback.
	formContainerElement.find("input:text.mp-control-data, select.mp-control-data, input:checked.mp-control-data, input[@type = 'hidden'].mp-control-data").each(
	function() {
		var formElement = $(this);
		$.ajaxManager.ajaxSettings.arguments.add(formElement.attr("name"), formElement.val());
	}
)

	$.ajaxManager.updateUrl($.ajaxManager.ajaxSettings.arguments.getString("&"));

	$.ajaxManager.onBeforeSend = function() {
		formContainerElement.find(".mp-search-count-feedback").text("...");
	};

	$.ajaxManager.onError = function(XMLHttpRequest, textStatus, errorThrown) {
		return;
	};

	$.ajaxManager.onSuccess = function(p_response) {
		formContainerElement.find(".mp-search-count-feedback").text(p_response.data);
	};

	//Make our request now we have our success and error actions defined.
	$.ajaxManager.makeRequest();
}
/******************************************************************************/

