$(function(){
	$('.loading').hide();
	$('#Country').change(function(){
		$.ajax({
			url: "/ajax/get_regions_by_country/"+$('#Country').val(),
			dataType: 'json',
			beforeSend: function() {
				$('#Region').attr('disabled','disabled');
				$('#Region').append($("<option></option>").attr("value",0).text('Loading..'));
				$('.loading-region').show();
				$('#City').attr('disabled','disabled');
				$('#City').append($("<option></option>").attr("value",0).text('Loading..'));
				$('#Area').attr('disabled','disabled');
				$('#Area').append($("<option></option>").attr("value",0).text('Loading..'));
				$('#Subarea').attr('disabled','disabled');
				$('#Subarea').append($("<option></option>").attr("value",0).text('Loading..'));
			},
			success: function(data) {
				$('#Region').attr('disabled', false);
				$('#Region').find('option').remove();
				$('.loading-region').hide();
				for (i=0; i<data.length; i++) {
					var line = $("<option></option>").attr("value",data[i].Region.id).text(data[i].Region.name);
					$('#Region').append(line);
				}
				$('#Region').change();
			}
		});
	});
	$('#Region').change(function(){
		$.ajax({
			url: "/ajax/get_cities_by_region/"+$('#Country option:selected').val()+"/"+$('#Region').val(),
			dataType: 'json',
			beforeSend: function() {
				$('#City').attr('disabled','disabled');
				$('#City').append($("<option></option>").attr("value",0).text('Loading..'));
				$('.loading-city').show();
				$('#Area').attr('disabled','disabled');
				$('#Area').append($("<option></option>").attr("value",0).text('Loading..'));
				$('#Subarea').attr('disabled','disabled');
				$('#Subarea').append($("<option></option>").attr("value",0).text('Loading..'));
			},
			success: function(data) {
				$('#City').attr('disabled', false);
				$('#City').find('option').remove();
				$('.loading-city').hide();
				for (i=0; i<data.length; i++) {
					var line=$("<option></option>").attr("value",data[i].City.id).text(data[i].City.name);
					$('#City').append(line);
				}
				$('#City').change();
			}
		});
	});
	$('#City').change(function(){
		$.ajax({
			url: "/ajax/get_areas_by_city/"+$('#Country option:selected').val()+"/"+$('#Region option:selected').val()+"/"+$('#City').val(),
			dataType: 'json',
			beforeSend: function() {
				$('#Area').attr('disabled','disabled');
				$('#Area').append($("<option></option>").attr("value",0).text('Loading..'));
				$('.loading-area').show();
				$('#Subarea').attr('disabled','disabled');
				$('#Subarea').append($("<option></option>").attr("value",0).text('Loading..'));
			},
			success: function(data) {
				$('#Area').attr('disabled', false);
				$('#Area').find('option').remove();
				$('.loading-area').hide();
				for (i=0; i<data.length; i++) {
					var line=$("<option></option>").attr("value",data[i].Area.id).text(data[i].Area.name);
					$('#Area').append(line);
				}
				if ($('#Area').length) {
					$('#Area').change();
				}
			}
		});
	});
	$('#Area').change(function(){
		$.ajax({
			url: "/ajax/get_subareas_by_area/"+$('#Country option:selected').val()+"/"+$('#Region option:selected').val()+"/"+$('#City option:selected').val()+"/"+$('#Area').val(),
			dataType: 'json',
			beforeSend: function() {
				$('#Subarea').attr('disabled','disabled');
				$('#Subarea').append($("<option></option>").attr("value",0).text('Loading..'));
				$('.loading-subarea').show();
			},
			success: function(data) {
				$('#Subarea').attr('disabled', false);
				$('#Subarea').find('option').remove();
				$('.loading-subarea').hide();
				for (i=0; i<data.length; i++) {
					var line=$("<option></option>").attr("value",data[i].Subarea.id).text(data[i].Subarea.name);
					if (i==0) line.attr('selected','selected');
					$('#Subarea').append(line);
				}
				$('#Subarea').change();
			}
		});
	});
	
	$('#Subarea').change(function(){
		$.ajax({
			url: "/ajax/get_subarea/"+$('#Subarea option:selected').val(),
			dataType: 'json',
			success: function(data) {
				if(data.Subarea.zip) {
					if($('#PropertyZip').length) $('#PropertyZip').val(data.Subarea.zip);
					if($('#UserZip').length) $('#UserZip').val(data.Subarea.zip);
					if($('#Zip').length) $('#Zip').val(data.Subarea.zip);
				}
			}
		});
	});
	
	$('.input_reset').click(function() {
		$(this).parent().siblings('p').children('input').val('');
	});
	// search filter
	$('#searchsubmit').click(function(){
		val=$('#searchorder option:selected').val();
		document.location.replace('/search/index/'+val);
	});
	$('#searchsubmit-refine').click(function(){
		val=$('#searchorder option:selected').val();
		document.location.replace('/properties/refine/order/by/'+val);
	});
	
	
	//
	// Hides setting owner fields
	//
	//
	// function that toggles fields
	//

	function setRoleBoxes() {
		$('.specific').hide();
		$('.adminhide').show();
		
		$('.specific input').attr('disabled','disabled');
		$('.specific select').attr('disabled','disabled');
		switch (parseInt($('#UserRole option:selected').val())) {
			// USER
			case 1:
				$('.userspecific').show();
				$('.userspecific input').attr('disabled','');
				$('.userspecific select').attr('disabled','');
			break;
			// AGENT
			case 2:
				$('.agentspecific').show();
				$('.agentspecific input').attr('disabled','');
				$('.agentspecific select').attr('disabled','');
			break;
			// PRINCIPLE
			case 3:
				$('.principlespecific').show();
				$('.principlespecific input').attr('disabled','');
				$('.principlespecific select').attr('disabled','');
			break;
			// DIRECTOR
			case 4:
				$('.directorspecific').show();
				$('.directorspecific input').attr('disabled','');
				$('.directorspecific select').attr('disabled','');
			break;
			// ADMINS
			default:
				$('.adminhide').hide();
			break;
		}
	}
	if ($('#UserRole').length) {
		$('#UserRole').change(function(){
			setRoleBoxes();
		});
	}
	
	setRoleBoxes();
	
	$('.mark_as_sold').click(function(){
		var pr=prompt("Please enter the price the item was sold at",$(this).attr('price'));
		if (!pr) return false;
		if (!pr.match(/^[0-9]+(\.[0-9]+)?$/i)) {
			alert('Wrong price format');
		} else {
			document.location.replace($(this).attr('href')+"/"+pr);
		}
		return false;
	});
	
	$('.mortgagebankselector').change(function(){
		rate=$('.mortgagebankselector option:selected').attr('rate');
		if (parseInt($('.mortgagebankselector option:selected').val())>0)
			$('.mortgageinterestrate').val(rate);
	});
	
});	
	

