// This key only works from the kvdb.net domain, for demo purposes.
// Replace this auth_key with your own.

var pro6pp_auth_key;

if (location.host == 'www.printerservicecenter.nl') {
	pro6pp_auth_key = 'ABQIAAAAL9LgZmLSbBFGw-MqFEDnxRRuzLiDuue_AxCmYwK6Ex0zK50DhxTIlX7kWbJbsa6tK64zLFmeTlvJNw'
	}else {
	pro6pp_auth_key = 'ABQIAAAAL9LgZmLSbBFGw-MqFEDnxRTW1RGh4HaL_3C6j9GOwI3kPT1XAhScywYap9H7XCBSRIAnc38ySYC0IA'
	
	}

// Create closure to keep namespace clean and hide implementation.
(function($) {
	$.fn.applyAutocomplete = function(applyToClass) {
		var parent_obj = this;
		this.find('.postcode').keyup(function() {
			autocomplete(parent_obj);
		});
		this.find('.streetnumber').keyup(function() {
			autocomplete(parent_obj);
		});
	};

	function autocomplete(obj) {
		$(obj).find('.message').html("");
		show_street(obj);
		var postcode = $(obj).find('.postcode').val();
		var streetnumber = $(obj).find('.streetnumber').val();
		if (postcode.length == 6)
		{
	                $(obj).find('.spinner').show();
			$.getJSON("http://api.pro6pp.nl/v1/autocomplete?auth_key=" + pro6pp_auth_key + "&nl_sixpp=" + postcode + "&streetnumber=" + streetnumber + "&callback=?", function(data) {
				fillin(obj, data);
			});
		}
	}

	function show_street(obj) {
		var street = $(obj).find('.street');
		street.show();
		var streets = $(obj).find('.streets');
		streets.hide();
		// Copy over the selected value (if any)
		street.val(streets.val());
	}
	function show_streets(obj) {
		var street = $(obj).find('.street');
		street.hide();
		var streets = $(obj).find('.streets');
		streets.show();
	}

	function fillin(obj, json) {
                $(obj).find('.spinner').hide();
		if (json.status == 'ok')
		{
			if (json.results.length == 0)
			{
				$(obj).find('.message').html("Postcode ongeldig of niet gevonden");
			} else if (json.results.length == 1)
			{
				var street = $(obj).find('.street');
				street.val(json.results[0].street);
				var city = $(obj).find('.city');
				city.val(json.results[0].city);
			} else {
				var streets = $(obj).find('.streets');
				streets.empty();
				$.each(json.results, function(i, street) {
					streets.append("<option value='" + street.street + "'>" + street.street	+ "</option>");
					$(obj).find('.streets option:last').click(function() {
						show_street();
					});
				});
				show_streets();
			}
		}
		else
		{
			$(obj).find('.message').html(json.error.message);
		}
	}
})(jQuery);

