FillProvincies = function()
{
	$.ajax(
	{
	    url: version + '/classes/main.php?soort=getProvincesByCountry',
	    type: 'GET',
	    dataType: 'json',
	    async: false, 
	    contentType: "application/json; charset=utf-8",
	    data: 'land=' + $("#country option:selected").val(),
	    timeout: 100000,
	    error: function(XMLHttpRequest, textStatus, errorThrown)
	    {
			alert('There are no provinces found!');
	    },
	    success: function(XMLHttpRequest, textStatus)
	    {
	    	$.populateSelect('#province', XMLHttpRequest);
	    	FillGemeentes();
	    }
	});
}

FillGemeentes = function()
{
	$.ajax(
	{
	    url: version + '/classes/main.php?soort=getGemeentesByProvincie',
	    type: 'GET',
	    dataType: 'json',
	    async: false, 
	    contentType: "application/json; charset=utf-8",
	    data: 'provincie=' + $("#province option:selected").val(),
	    timeout: 100000,
	    error: function(XMLHttpRequest, textStatus, errorThrown)
	    {
			alert('There are no gemeentes found!');
	    },
	    success: function(XMLHttpRequest, textStatus)
	    {
	    	$.populateSelect('#gemeente', XMLHttpRequest);
	    	FillDeelGemeentes();
	    }
	});
}

FillDeelGemeentes = function()
{
	$.ajax(
	{
	    url: version + '/classes/main.php?soort=getDeelGemeentesByGemeente',
	    type: 'GET',
	    dataType: 'json',
	    async: false,
	    contentType: "application/json; charset=utf-8",
	    data: 'gemeenteid=' + $("#gemeente option:selected").val(),
	    timeout: 100000,
	    error: function(XMLHttpRequest, textStatus, errorThrown)
	    {
			alert('There are no deelgemeentes found!');
	    },
	    success: function(XMLHttpRequest, textStatus)
	    {
	    	$.populateSelect('#deelgemeente', XMLHttpRequest);
	    	FillDeelGemeente();
	    }
	});
}

FillDeelGemeente = function()
{
	$.ajax(
	{
	    url: version + '/classes/main.php?soort=getDeelGemeente',
	    type: 'GET',
	    dataType: 'json',
	    async: false,
	    contentType: "application/json; charset=utf-8",
	    data: 'deelgemeenteid=' + $("#deelgemeente option:selected").val(),
	    timeout: 100000,
	    error: function(XMLHttpRequest, textStatus, errorThrown)
	    {
			alert('There is no deelgemeente found!');
	    },
	    success: function(XMLHttpRequest, textStatus)
	    {
	    	$("#dgnaam").val(XMLHttpRequest[0]['deelgemeente_naam']);
	    	$("#dgnb").val(XMLHttpRequest[0]['deelgemeente_nb']);
	    	$("#dgol").val(XMLHttpRequest[0]['deelgemeente_ol']);
	    	$("#dgpostcode").val(XMLHttpRequest[0]['deelgemeente_postcode']);
	    }
	});
}

FillSearchPostalCodes = function()
{
	$.ajax(
	{
	    url: version + '/classes/main.php?soort=getPostcodes',
	    type: 'GET',
	    dataType: 'json',
	    contentType: "application/json; charset=utf-8",
	    data: 'postcode=' + $("#postcode").val(),
	    timeout: 100000,
	    error: function(XMLHttpRequest, textStatus, errorThrown)
	    {
			alert('There are no postal codes found!');
	    },
	    success: function(XMLHttpRequest, textStatus)
	    {
	    	$("#userdata").css("display", "inline"); 
	    	$("#userdata tbody").html("");
	
	    	$.each(XMLHttpRequest, function() 
   			{
   				var tblRow =
						'<tr>'
						+ '<td><img src="http://banners.bwm.nl/banners/land_' + this.land_domain + '.gif" /></td>'
						+ '<td>' + this.provincie_naam + '</td>'
						+ '<td>' + this.gemeente_naam_nl + '</td>'
						+ '<td>' + this.deelgemeente_naam + '</td>'
						+ '<td>' + this.deelgemeente_nb + '</td>'
						+ '<td>' + this.deelgemeente_ol + '</td>'
						+ '<td>' + this.deelgemeente_postcode + '</td>'
						+ '<td><a href="#" onclick="javascript:setDeelgemeente(' + this.land_id + ', ' + this.provincie_id + ', ' + this.gemeente_id + ', ' + this.deelgemeente_id + ')">Aanpassen</a></td>'
						+ '</tr>'
					$(tblRow).appendTo("#userdata tbody");
   			});
	    }
	});
}

setDeelgemeente  = function(landId, provincieId, gemeenteId, deelgemeenteId)
{
	$("#country").val(landId);
	FillProvincies();
	$("#province").val(provincieId);
	FillGemeentes();
	$("#gemeente").val(gemeenteId);
	FillDeelGemeentes();
	$("#deelgemeente").val(deelgemeenteId);
}

EmptyDeelGemeente = function()
{
	$("#dgnaam").val('');
	$("#dgnb").val('');
	$("#dgol").val('');
	$("#dgpostcode").val('');
	$("#dgsubmit").val('Toevoegen');
}

//JQuery Method
jQuery.populateSelect = function(selectId, data) 
{
	$(selectId).find('option').remove();
    
	$.each(data, function() 
    {
   		var option = new Option(this.value, this.key);
    	
        var dropdownList = $(selectId)[0];
        if ($.browser.msie) 
	    {
            dropdownList.add(option);
        } 
        else 
	    {

            dropdownList.add(option, null);
	    }
    });
};

var autocompleteJSON = function(raw) 
{
    var parsed = [];
    if(raw)
    {
	    for (var i = 0; i < raw.length; i++) 
	    {
	        parsed[parsed.length] = {
	            data: raw[i],
	            value: raw[i]['value'] + ' [' + raw[i]['key'] + ']',
	            result: raw[i]['value']
	        };
	    }
    }
    return parsed;
};

$(document).ready(function() 
{
	$('#stationvan').result(function(event, data, formatted)
	{
		if(data)
		{
			$('#plaats-van').val(data['value']);
		 	$('#station-van').val(data['key']);
		}
	});
		
	$('#site-airport').change(function()
	{
		var vliegveldid = $('#site-airport').val();
		var siteid 	 	= $('#site-id').val();
		var bottomtext  = $('#site-bottomtext').val();
		if(vliegveldid && siteid)
		{
			$.ajax({
	            type: 'GET',
	            url: version + '/classes/main.php?soort=getVliegveldURL',
	            data: 'vvsessie=' + vliegveldid + '&siteid=' + siteid,
	            //cache: false;
	            success: function(url)
	            {
					if(url.length > 0)
					{
						$('#site-bottomtext').val(bottomtext + ' ' + url);
					}
	            }    
	        });
		}
	});
	
	$('#postcode-van').keyup(function() 
	{
		var postcode = $('#postcode-van').val();
		var landid = $('#land-van').val();

		if(landid == 1)
		{
			$.ajax({
	            type: 'GET',
	            url: version + '/classes/main.php?soort=getStraatnaamByPostcode',
	            data: 'postcode=' + postcode,
	            //cache: false;
	            success: function(streetname)
	            {
					if(streetname.length > 0)
					{
						$('#straatnaam-van').html('- ' + streetname);
						$('#street-van').val(streetname);
					}
	            }    
	        });
		}
	});
	
	$('#postcode-naar').keyup(function() 
	{
		var postcode = $('#postcode-naar').val();
		var landid = $('#land-naar').val();

		if(landid == 1)
		{
			$.ajax({
	            type: 'GET',
	            url: version + '/classes/main.php?soort=getStraatnaamByPostcode',
	            data: 'postcode=' + postcode,
	            //cache: false;
	            success: function(streetname)
	            {
					if(streetname.length > 0)
					{
						$('#straatnaam-naar').html('- ' + streetname);
						$('#street-naar').val(streetname);
					}
	            }    
	        });
		}
	});
		
	$("#stationvan").autocomplete(version + '/classes/main.php?soort=getStationsByLandPlaatsNew',
	{ 
		minChars: 2,
		extraParams: 
		{
			'land': function() { return $("#land-van option:selected").val();},
			'hoe': 'van',
			'provincie':  function() { return $("#provincie_van").val();}
		},
		max: 20,
		delay: 10,
	    dataType: 'json',
	    parse: autocompleteJSON,
	    formatItem: 
	    	function(row) 
	    	{ 
				return row['value'] 
			},
	    mustMatch: true,
	    selectFirst: false
	});
	
	$("#stationnaar").result(function(event, data, formatted)
	{
		if(data)
		{
			$("#plaats-naar").val(data['value']);
		 	$("#station-naar").val(data['key']);
		}
	});
		
	$("#stationnaar").autocomplete(version + '/classes/main.php?soort=getStationsByLandPlaatsNew',
	{ 
		minChars: 2,
		extraParams: 
		{
			'land': function() { return $("#land-naar option:selected").val();},
			'hoe': 'naar',
			'eilandprovincieid': function() { return $("#eilandprovincieid").val();},
			'provincie':  function() { return $("#provincie_naar").val();}
		},
		max: 20,
		delay: 10,
	    dataType: 'json',
	    parse: autocompleteJSON,
	    formatItem: 
	    	function(row) 
	    	{ 
				return row['value'] 
			},
	    mustMatch: true,
	    selectFirst: false
	});
})
