var pro6pp_cache = {};
function pro6pp_cached_get(obj, url, callback) {
	if (pro6pp_cache.hasOwnProperty(url)) {
		callback(obj, pro6pp_cache[url]);
	} else {
		jQuery.getJSON(url + "&callback=?", function(data) {
			pro6pp_cache[url] = data;
			callback(obj, data);
		});
	}
}

function autocomplete(obj) {
	jQuery(obj).find('.message').empty();
	var postcode = jQuery(obj).find('.acPostcode').val();
	var streetnumber = jQuery(obj).find('.acStreet2').val();
	// Trigger on '5408xb' and on '5408 xb'
	var nl_sixpp_regex = /[0-9]{4,4}\s?[a-zA-Z]{2,2}/;
	if (nl_sixpp_regex.test(postcode)) {
		show_street(obj);
		var url = "http://api.pro6pp.nl/v1/autocomplete?auth_key="
				+ pro6pp_auth_key + "&nl_sixpp=" + postcode
				+ "&streetnumber=" + streetnumber;
		url = encodeURI(url);
		pro6pp_cached_get(obj, url, fillin);
	} else {
		jQuery(obj).find('.acStreet1').empty();
		jQuery(obj).find('.acCity').empty();
	}
}

function show_street(obj) {
	var street = jQuery(obj).find('.acStreet1');
	street.show();
}

function fillin(obj, json) {
	if (json.status == 'ok') {
		if (json.results.length == 1) {
			var street = jQuery(obj).find('.acStreet1');
			street.val(json.results[0].street);
		} 
		var city = jQuery(obj).find('.acCity');
		city.val(json.results[0].city);
	}
}

function changeItemQuantity(id, num) {
    var currentVal = parseInt(jQuery('#' + id).val());

    if (currentVal != NaN && (num > 0 || currentVal > 1)) {
            jQuery('#' + id).val(currentVal + num);
    }
}
