var AJAX_URL = "ajax/FactorieStoreLocatorBlock";
var typeNameToId = {
	main: 1,
	kids: 2,
	body: 3,
	rubi: 4
};

$(document).ready(function() {
	setupHandlers();
});

function setupHandlers() {
	$(".store-locator .region-select").change(regionChange);
	$(".store-locator .store-select").change(storeChange);
	$(".store-locator .region-select").change();
	$(".store-locator .store-select").change();
}

function regionChange() {
	regionBox = $(this);
	regionId = regionBox.val();
	typeId = typeNameToId[(regionBox.attr('id').split('_')[0])];
	storeList = regionBox.next();
	storeList.empty();
	if (regionId == 0) {
		storeList.html('<option value="0">- select a location -</option>');
		return;
	}
	storeList.html('<option value="0">loading...</option>');
	$.getJSON(
		AJAX_URL,
		{
			action: 'getStoresForRegion',
			region: regionId,
			type: typeId,
			ajaxType: 'json'
		},
		function(data) {
			if (data.status == 'error') {
				alert(data.message);
				return;
			}
			storeList.html('<option value="0">- select a store -</option>');
			$.each(data.stores, function(i, store) {
				storeList.append('<option value="' + store.storeId + '">' + store.name + '</option>');
			});
		}
	);
}

function storeChange() {
	storeSelect = $(this);
	storeId = storeSelect.val();
	
	storeDetails = $(".store-locator .storeDetails");
	
	if (storeId == 0) {
		return;
	}
	storeDetails.fadeOut("fast");
	$.getJSON(
		AJAX_URL,
		{
			action: 'getStoreDetails',
			store: storeId,
			ajaxType: 'json'
		},
		function(data) {
			if (data.status == 'error') {
				alert(data.message);
				return;
			}
			storeDetails.html('<h3>' + data.store.name + '</h3>');
			storeDetails.append(
				'<p><label><strong>Address:</strong></label><br />'+
				data.store.address.replace(/,/g,"<br />")+
				'<br />'+
				data.store.suburb + '&nbsp;&nbsp;' + data.store.postcode + '<br />'+
				'<label><strong>Phone:</strong></label><br />' + data.store.phone + '<br />'+
				'<label><strong>Fax:</strong></label><br />' + data.store.fax + '</p>');
			storeDetails.fadeIn("fast");

		}
	);
}

