/**
 * relative URLs der Webservice-Scripte
 */
var ajaxGetStreets       = '/fileadmin/scripts/vento/getStreets.php';
var ajaxGetStreetNumbers = '/fileadmin/scripts/vento/getStreetNumbers.php';
var ajaxGetProductList   = '/fileadmin/scripts/vento/getProductList.php';
var ajaxSetUserStatus    = '/fileadmin/scripts/vento/setUserStatus.php';

/**
 * Diese Funktion ruft per Ajax die zur geoId gehörenden Produkte ab.
 * @param int geoId
 * @param string Kurzname des gewählten Produkts 
 */
function displayCheckResults(geoId, pov, consumer) {
	$.get(
		ajaxGetProductList,
		{geoId:   geoId,
		 pov:     pov,
		 consumer: consumer
		},
		function(data) {
			$('#switchResults').html(data);
			$('#switchForm').hide();
			$('#switchResults').show();
		}
	);
}


/**
 * Diese Funktion ruft per Ajax die zur PLZ gehörenden Straßen ab und
 * ersetzt das Element #replaceByGetStreets durch das entsprechende
 * Select-Feld. 
 */
function getStreets(zipCode) {
	var thisSelect = '#a_strasse_i';
	resetSelect(thisSelect, '...');
	$(thisSelect).focus();

	$.getJSON(
		ajaxGetStreets,
		{zipCode: zipCode},
		function(data) {
			var options;
			if (data) {
				options = '<option>Bitte wählen</option>';
				$.each(data, function(i, item) {
					if (item == 'no results') {
						displayCheckResults(1);
						return;
					}
					else if (item == 'internal error') {
						displayCheckResults(2);
						return;
					}
					options += '<option value="' + item.value + '">' + item.label + '</option>';
				});
			} else {
				displayCheckResults(2);
				return;
			}
			$(thisSelect).find('option').remove().end().append(options);
		}
	)
}

/**
 * Diese Funktion ruft per Ajax die zur streetId gehörenden Hausnummern ab
 * und ersetzt das Element #replaceByGetStreetNumbers durch das
 * entsprechende Select-Feld. 
 */
function getStreetNumbers(streetId, startWith) {
	var thisSelect = '#a_nr_i';
	resetSelect(thisSelect, '...');
	$(thisSelect).focus();

	$.getJSON(
		ajaxGetStreetNumbers,
		{streetId:  streetId,
		 startWith: startWith
		},
		function(data) {
			var options;
			if (data) {
				options = '<option>Bitte wählen</option>';
				$.each(data, function(i, item) {
					if (item == 'no results') {
						displayCheckResults(1);
						return;
					}
					else if (item == 'internal error') {
						displayCheckResults(2);
						return;
					}
					options += '<option value="' + item.value + '">' + item.label + '</option>';
				});
			} else {
				displayCheckResults(2);
				return;
			}
			$(thisSelect).find('option').remove().end().append(options);
		}
	);
}

/**
 * Diese Funktion speichert die Eingaben des Benutzers in der PHP-Session.
 */
function setUserStatus(skipCheck, geoId) {
	$.get(
		ajaxSetUserStatus,
		{geoId:     geoId,
		 skipCheck: skipCheck},
		function(data) {}
	);    	
}

function isValidZip( zipCode ) {
    if ( zipCode.length  == 5)
        return true;
}

/**
 * Diese Funktion ersetzt die Optionen eines Select-Feldes durch ...
 * @param string theSelect id des Select-Feldes
 * @return void
 */
function resetSelect(theSelect, label) {
	$(theSelect).find('option').remove().end().append('<option>' + label + '</option>');
}

/**
 * 
 * @return void
 */
function resetForm() {
	$('#switchResults').hide();
	$('#switchForm').show();
	$('#a_plz_i').val('PLZ').keyup();
}

