/*
See http://kvdb.net/projects/6pp on how to use this script.
*/

function fromCity(e) {
        // Only request a lookup if the user pressed enter from the city field.
        var keynum;
        if(window.event) // IE
        {
                keynum = window.event.keyCode;
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
                keynum = e.which;
        }

        var KEY_TAB = 9;
        var KEY_RETURN = 13;
        if (keynum == KEY_RETURN || keynum == KEY_TAB)
        {
                lookupCity();
        }
}

function lookupCity(e) {
	// Perform a postcode lookup based on city

	// Clear fields.
	resetResults();

	// Enable spinner, so the user knows the lookup is being performed.
	var spinner = document.getElementById("storespinner");
	if (spinner) {
		spinner.style.display = '';
	}
	
	// The cityname defined by the user.
	var start_city = document.getElementById('start_city').value;
        // The postcodes of stores defined by you.
        var destination_postcodes = document.getElementById('stores').value;
	// The maximum number of stores to return.
	var max_stores = 3;	
	loadScript('http://6pp.kvdb.net/services/distance?start_city=' + start_city + '&destination_postcodes=' + destination_postcodes + '&per_page=' + max_stores + '&tg_format=json&jsonp=showStoreResults');
}

function loadScript(url)
{
        // Insert javascript dynamically for JSONP cross-site callback
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
        document.getElementsByTagName('head')[0].appendChild(script);
}

function resetResults() {
	// Empty the result element
	document.getElementById('store_results').innerHTML = "";
}

function showStoreResults(json) {
	// Disable spinner
	var spinner = document.getElementById("store_spinner");
	if (spinner) {
		spinner.style.display = 'none';
	}

	// Check the amount of results, or show an error.
	try
	{
		var count = json.result['distances'].length;
	}
	catch(err)
	{
		alert(json.result);
	}

	// Show the stores nearby
	var store_results = document.getElementById('store_results');
	for (var i = 0; i < count; i++)
	{
		var postcode = json.result['distances'][i]['postcode2'];
		var city_name = json.result['distances'][i]['city2'];
		var distance = json.result['distances'][i]['distance'];
		store_results.innerHTML += postcode + ": " + city_name + " (" + distance + "km)<br/>";
	}
}

