// JavaScript Document
function loadAreas(model) {
	var parentModel = 'Province';

	if (model == 'Town') {
		parentModel = 'District';
	} else { // District
		$('#sidebar_box li#search_box_town select').hide();
		$('#sidebar_box li#search_box_town label').hide();
		$('#sidebar_box li#search_box_town label').hide();
	}

	if ($('#sidebar_box select#'+parentModel+'Id').attr('value') >= 1) {
			$('#sidebar_box li#search_box_'+model.toLowerCase()+' select').hide();
			$('#sidebar_box li#search_box_'+model.toLowerCase()+' label').hide();
			$('#mapFilteringForm span.loader').hide();
			$('#map_box_ditrict #DistrictId').change(function() {
				$('#mapFilteringForm span.loader').show();
			});
	
			$.getJSON('/'+model.toLowerCase()+'s/fetch/' + $('#sidebar_box select#'+parentModel+'Id').attr('value'),'',function(data) {
			if (data.length > 0) {
				$('#sidebar_box li#search_box_'+model.toLowerCase()+' span.loader').hide();
				$('#sidebar_box li#search_box_'+model.toLowerCase()+' select').empty();

				$('#sidebar_box li#search_box_'+model.toLowerCase()+' select').append('<option value="null">&nbsp;</option>');
				for (i = 0; i < data.length; i++) {
					$('#sidebar_box li#search_box_'+model.toLowerCase()+' select').append('<option value=' + data[i].id + '>' + data[i].name + '</option>');
				}

				$('#sidebar_box li#search_box_'+model.toLowerCase()+' select option:first').attr("selected", "selected");
				$('#sidebar_box li#search_box_'+model.toLowerCase()+' select').show();
				$('#sidebar_box li#search_box_'+model.toLowerCase()+' label').show();
			}
			$('#sidebar_box li#search_box_'+model.toLowerCase()+' span.loader').hide();
		});
	}
}
function homeLoadAreas(model) {
	var parentModel = 'Province';

	if (model == 'Town') {
		parentModel = 'District';
	} else { // District
		$('#advanced_search li.town select').hide();
		$('#advanced_search li.town label').hide();
	}

	if ($('#advanced_search select#'+parentModel+'Id').attr('value') >= 1) {
			$('#advanced_search li.'+model.toLowerCase()+' select').hide();
			$('#advanced_search li.'+model.toLowerCase()+' label').hide();
			$('#advanced_search li.'+model.toLowerCase()+' span.loader').show();

			$.getJSON('/'+model.toLowerCase()+'s/fetch/' + $('#advanced_search li select#'+parentModel+'Id').attr('value'),'',function(data) {

			if (data.length > 0) {
				$('#advanced_search li.'+model.toLowerCase()+' span.loader').hide();
				$('#advanced_search li.'+model.toLowerCase()+' select').empty();

				$('#advanced_search li.'+model.toLowerCase()+' select').append('<option value="null">&nbsp;</option>');
				for (i = 0; i < data.length; i++) {
					$('#advanced_search li.'+model.toLowerCase()+' select').append('<option value=' + data[i].id + '>' + data[i].name + '</option>');
				}

				$('#advanced_search li.'+model.toLowerCase()+' select option:first').attr("selected", "selected");
				$('#advanced_search li.'+model.toLowerCase()+' select').show();
				$('#advanced_search li.'+model.toLowerCase()+' label').show();
			}
			$('#advanced_search li.'+model.toLowerCase()+' span.loader').hide();
		});
	}
}
function backendLoadAreas(type,model) {
	var parentModel = 'Province';

	if (model == 'Town') {
		parentModel = 'District';
	} else { // District
		$('fieldset.adminForm li.town select').hide();
		$('fieldset.adminForm li.town label').hide();
	}

	if ($('fieldset.adminForm select#'+type+parentModel+'Id').attr('value') >= 1) {
			$('fieldset.adminForm li.'+model.toLowerCase()+' select').hide();
			$('fieldset.adminForm li.'+model.toLowerCase()+' label').hide();
			$('fieldset.adminForm li.'+model.toLowerCase()+' span.loader').show();

			$.getJSON('/'+model.toLowerCase()+'s/fetch/' + $('fieldset.adminForm li select#'+type+parentModel+'Id').attr('value'),'',function(data) {

			if (data.length > 0) {
				$('fieldset.adminForm li.'+model.toLowerCase()+' span.loader').hide();
				$('fieldset.adminForm li.'+model.toLowerCase()+' select').empty();

				$('fieldset.adminForm li.'+model.toLowerCase()+' select').append('<option value="null">&nbsp;</option>');
				for (i = 0; i < data.length; i++) {
					$('fieldset.adminForm li.'+model.toLowerCase()+' select').append('<option value=' + data[i].id + '>' + data[i].name + '</option>');
				}

				$('fieldset.adminForm li.'+model.toLowerCase()+' select option:first').attr("selected", "selected");
				$('fieldset.adminForm li.'+model.toLowerCase()+' select').show();
				$('fieldset.adminForm li.'+model.toLowerCase()+' label').show();
			}
			$('fieldset.adminForm li.'+model.toLowerCase()+' span.loader').hide();
		});
	}
}
function mapLoadAreas(model) {
	var parentModel = 'Province';

	if (model == 'Town') {
		parentModel = 'District';
	} else { // District
		$('#mapArea li#map_box_district select').hide();
		$('#mapArea li#map_box_town label').hide();
	}

	if ($('#mapArea select#'+parentModel+'Id').attr('value') >= 1) {
			$('#mapArea li#map_box_'+model.toLowerCase()+' select').hide();
			$('#mapArea li#map_box_'+model.toLowerCase()+' label').hide();
			$.getJSON('/'+model.toLowerCase()+'s/fetch/' + $('#mapArea select#'+parentModel+'Id').attr('value'),'',function(data) {
			if (data.length > 0) {
				$('#mapArea li#map_box_'+model.toLowerCase()+' span.loader').hide();
				$('#mapArea li#map_box_'+model.toLowerCase()+' select').empty();

				$('#mapArea li#map_box_'+model.toLowerCase()+' select').append('<option value="null">&nbsp;</option>');
				for (i = 0; i < data.length; i++) {
					$('#mapArea li#map_box_'+model.toLowerCase()+' select').append('<option value=' + data[i].id + '>' + data[i].name + '</option>');
				}

				$('#mapArea li#map_box_'+model.toLowerCase()+' select option:first').attr("selected", "selected");
				$('#mapArea li#map_box_'+model.toLowerCase()+' select').show();
				$('#mapArea li#map_box_'+model.toLowerCase()+' label').show();
			}
		});
	}
}
$(document).ready(function(){
	/* maps area */
	$("#mapArea li#map_box_district select").hide();
	$("#mapArea li#map_box_town select").hide();
	$("#mapArea li#map_box_district label").hide();
	$("#mapArea li#map_box_town label").hide();

	$("#mapArea select#ProvinceId").change( function() {
		mapLoadAreas('District');
	});
	$("#mapArea select#DistrictId").change( function() {
		mapLoadAreas('Town');
	});

	/* sidebar search */
	$("#sidebar_box li#search_box_district select").hide();
	$("#sidebar_box li#search_box_town select").hide();
	$("#sidebar_box li#search_box_district label").hide();
	$("#sidebar_box li#search_box_town label").hide();
	$("#sidebar_box li#search_box_district span.loader").hide();
	$("#sidebar_box li#search_box_town span.loader").hide();

	$("#sidebar_box select#ProvinceId").change( function() {
		loadAreas('District');
	});
	$("#sidebar_box select#DistrictId").change( function() {
		loadAreas('Town');
	});
	/* homepage advanced search */
	$("#advanced_search li.district select").hide();
	$("#advanced_search li.town select").hide();
	$("#advanced_search li.district label").hide();
	$("#advanced_search li.town label").hide();
	$("#advanced_search li.district span.loader").hide();
	$("#advanced_search li.town span.loader").hide();

	$("#advanced_search li select#ProvinceId").change( function() {
		homeLoadAreas('District');
	});
	$("#advanced_search li select#DistrictId").change( function() {
		homeLoadAreas('Town');
	});
	/* backend */
	$("fieldset.adminForm li.district select").hide();
	$("fieldset.adminForm li.town select").hide();
	$("fieldset.adminForm li.district label").hide();
	$("fieldset.adminForm li.town label").hide();
	$("fieldset.adminForm li.district span.loader").hide();
	$("fieldset.adminForm li.town span.loader").hide();

	$("fieldset.adminForm li select#AgencyProvinceId").change( function() {
		backendLoadAreas('Agency','District');
	});
	$("fieldset.adminForm li select#AgencyDistrictId").change( function() {
		backendLoadAreas('Agency','Town');
	});

	$("fieldset.adminForm li select#PropertyProvinceId").change( function() {
		backendLoadAreas('Property','District');
	});
	$("fieldset.adminForm li select#PropertyDistrictId").change( function() {
		backendLoadAreas('Property','Town');
	});

	//** Fix for loading on a back button request **//
	homeLoadAreas('District');
	loadAreas('District');
	mapLoadAreas('District');
	backendLoadAreas('Agency','District');
	backendLoadAreas('Property','District');

	homeLoadAreas('Town');
	loadAreas('Town');
	mapLoadAreas('Town');
	backendLoadAreas('Agency','Town');
	backendLoadAreas('Property','Town');
});
