﻿ITVM = window.ITVM ||
{};

/*
Requires:
- NETJOHNHENRY.dom
- jQuery
*/

ITVM.PostCodeSearch = (function($)
{
	var njhd = NETJOHNHENRY.dom;

	function init()
	{
		var postcode = document.getElementById('pcs-code');
		var searchPanel = document.getElementById('postcode-search');

		if (postcode && searchPanel)
		{
			// could also build the panel DOM here, rather than merely showing it
			njhd.addClass(searchPanel, 'active');

			// add event handlers
			// think about removing jQuery dependency
			$('#pcs-code').focus(function() { this.value = ''; });
			$('#pcs-submit').click(function() { search(postcode.value); });
		}
	}

	function search(postcode)
	{
		var resultPanel = document.getElementById('pcs-result');
		resultPanel.innerHTML = '';
		njhd.replaceClass(resultPanel, 'complete', 'waiting');
		// think about removing jQuery dependency
		$.ajax({
			url: '/common/template/usercontrols/handlers/PostCodeSearch.ashx',
			dataType: 'json',
			data: { 'pcs-code': postcode },
			success: processResults,
			error: searchError
		});

	}

	function processResults(jsonData, textStatus)
	{
		var resultPanel = document.getElementById('pcs-result');
		resultPanel.innerHTML = jsonData.address;
		njhd.replaceClass(resultPanel, 'waiting', 'complete');
	}

	function searchError(xhr, status, err)
	{
		console.log(status, err);
	}

	return {
		init: init,
		search: search
	};

})(jQuery);
