/* This key only works from the Pro6PP domains, for demo purposes.
   Replace this auth_key with your own.
 */
var pro6pp_auth_key = "7rI9DTiZHvAEEBoR";


// Create closure to keep namespace clean and hide implementation.
(function($) {
	$.fn.applyLocator = function(applyToClass) {
		var parent_obj = this;
		this.find('.nl_fourpp').keyup(function() {
			locator(parent_obj);
		});
	};

	var pro6pp_cache = {};
	function pro6pp_cached_get(obj, url, callback) {
		if (pro6pp_cache.hasOwnProperty(url)) {
			callback(obj, pro6pp_cache[url]);
		} else {
			$.getJSON(url + "&callback=?", function(data) {
				pro6pp_cache[url] = data;
				callback(obj, data);
			});
		}
	}

	function locator(obj) {
		$(obj).find('.message').empty();
		var nl_fourpp = $(obj).find('.nl_fourpp').val();
		var target_nl_fourpps = $(obj).find('.target_nl_fourpps').val();
		// Trigger on '5408xb' and on '5408 xb'
		var nl_fourpp_regex = /[0-9]{4,4}\s?/;
		if (nl_fourpp_regex.test(nl_fourpp)) {
			var url = "http://api.pro6pp.nl/v1/locator?auth_key="
					+ pro6pp_auth_key + "&per_page=" + 10 + "&nl_fourpp=" + nl_fourpp
					+ "&target_nl_fourpps=" + target_nl_fourpps;
			url = encodeURI(url);
			pro6pp_cached_get(obj, url, fillin);
		}
	}

	function fillin(obj, json) {
		var output = $(obj).find('.output').empty();
		
		if (json.status == 'ok') {
document.getElementById("outputdealer").innerHTML  = "";
			$.each(json.results, function(i, result) {
				distance_km = Math.round(result.distance / 1000);
				//document.getElementById("DEALER"+result.nl_fourpp).style.display="block";

			document.getElementById("DEALERHTML"+result.nl_fourpp).innerHTML = 
						distance_km 	+ " km";
				document.getElementById("outputdealer").innerHTML += document.getElementById("DEALER"+result.nl_fourpp).innerHTML;
 

				
			
			});
		} else {
			var translated_message = json.error.message;
			if (json.error.message == 'nl_fourpp not found') {
				translated_message = 'Onbekende postcode';
			} else if (json.error.message == 'invalid target_nl_fourpps format') {
				translated_message = 'Ongeldig target_nl_fourpps formaat';
			}

			$(obj).find('.message').html(translated_message);
		}
	}
})(jQuery);

