var numComms = 0;


$(document).ready(function() {
	if (typeof(commsArray) != 'undefined') {
		for (var i in commsArray) {
			numComms++;	
		}
	}
	
	$("input.search-submit").click(function() {
		return checkSearchEmpty();
	});
	
	$("#distance,#awesomeradius").keydown(function(evt) {
		var strValidChars = "0123456789";
	
		var val = $(this).val();
		var len = val.length;
		var chr;
	
		chr = String.fromCharCode(evt.keyCode);

		// Keycode 37-40 are directional keys. 8 is backspace
		if (evt.keyCode == 8 || (evt.keyCode >= 37 && evt.keyCode <= 40) || (evt.keyCode >= 96 && evt.keyCode <= 105)) return true;
		if (strValidChars.indexOf(chr) == -1) return false;
		
		return true;
	});
	
	$("#min_rent_menu,#max_rent_menu,#beds_menu,#baths_menu,#area_menu,#cats,#dogs,#distance").change(function(e) {
		var thisID = this.id;
			
		dataArray['radius'] = $("#distance").val();
		
		var beds = $("#beds_menu").val();
		var method = (beds != 'any') ? 'get_results' : 'get_ranges';
		var searchText = $("#search_query_input").val();
		var data = {
			form_method: method,
			min_rent: $("#min_rent_menu").val(),
			max_rent: $("#max_rent_menu").val(),
			beds: $("#beds_menu").val(),                                                                                                                                                                    
			baths: $("#baths_menu").val(),
			min_area: $("#area_menu").val(),
			cats: $("#cats").attr("checked") ? 1 : 0,
			dogs: $("#dogs").attr("checked") ? 1 : 0,
			apartments: $("#apartments").val(),
			section8: $("#section8").val(),
			homes: $("#homes").val(),
			all: $("#all").val(),
			senior: $("#senior").val(),
			student: $("#student").val(),
			military: $("#military").val(),
			short_term: $("#short_term").val(),			
			s: -1,
			awesomebar: searchText,
			awesomeradius: $("#distance").val()
		};
		
		$.cookies.del('curPage');
		
		if (!checkSearchEmpty()) return;
		
		if (method == 'get_ranges')
			$.get('/ajax/search.php', data, displayBedroomResults);
		else $.get('/ajax/search.php', data, displayRefinedResults, 'json');
		
	});
	
	$("#advancedButton").click(function () {
		if (!checkSearchEmpty()) return false;
		var data = {
			form_method: "advanced",
			awesomebar: $("input[name=awesomebar]").val(),
			awesomeradius: $("input[name=awesomeradius]").val()
		};
		$.get('/ajax/search.php', data, populateAdvanced)
	});
	
	// When a user clicks on a tab
	$("#splash-search-top-tabs .splash-nav ul li").click( function() {
		var tabClass = $(this).attr("class");
		
		// If the affordable tab is clicked
		if(tabClass.match('apartments'))
		{
			$("#apartments").val(1);
			$("#section8").val(0);
			$("#homes").val(0);
			toggleTabs($(this));
		}
		// If the apartment tab is clicked
		else if(tabClass.match('affordable'))
		{
			$("#apartments").val(0);
			$("#section8").val(1);
			$("#homes").val(0);
			toggleTabs($(this));
		}
		// If the homes tab is clicked
		else if(tabClass.match('homes'))
		{
			$("#apartments").val(0);
			$("#section8").val(0);
			$("#homes").val(1);
			toggleTabs($(this));
		}
		
		return false;
	});
	
	// When a user clicks on a sub tab
	$("#splash-small-tabs .tab-nav ul li").click( function() {
		var tabClass = $(this).attr("class");
		
		// Works the same way as the above section
		if(tabClass.match('all'))
		{
			$("#all").val(1);
			$("#senior").val(0);
			$("#student").val(0);
			$("#military").val(0);
			$("#short_term").val(0);
			toggleSubTabs($(this));
		}
		else if(tabClass.match('senior'))
		{
			$("#all").val(0);
			$("#senior").val(1);
			$("#student").val(0);
			$("#military").val(0);
			$("#short_term").val(0);
			toggleSubTabs($(this));
		}
		else if(tabClass.match('student'))
		{
			$("#all").val(0);
			$("#senior").val(0);
			$("#student").val(1);
			$("#military").val(0);
			$("#short_term").val(0);
			toggleSubTabs($(this));
		}
		else if(tabClass.match('military'))
		{
			$("#all").val(0);
			$("#senior").val(0);
			$("#student").val(0);
			$("#military").val(1);
			$("#short_term").val(0);
			toggleSubTabs($(this));
		}
		else if(tabClass.match('short_term'))
		{
			$("#all").val(0);
			$("#senior").val(0);
			$("#student").val(0);
			$("#military").val(0);
			$("#short_term").val(1);
			toggleSubTabs($(this));
		}
		
		return false;
	});
	
	if ($("#apartments").val() == 1)
		toggleTabs($("#splash-search-top-tabs .splash-nav ul li.apartments"));

	if ($("#section8").val() == 1)
		toggleTabs($("#splash-search-top-tabs .splash-nav ul li.affordable"));
	
	if ($("#homes").val() == 1)
		toggleTabs($("#splash-search-top-tabs .splash-nav ul li.homes"));
		
	if ($("#all").val() == 1)
		toggleSubTabs($("#splash-small-tabs .tab-nav ul li.all"));

	if ($("#senior").val() == 1)
		toggleSubTabs($("#splash-small-tabs .tab-nav ul li.senior"));
		
	if ($("#student").val() == 1)
		toggleSubTabs($("#splash-small-tabs .tab-nav ul li.student"));
		
	if ($("#military").val() == 1)
		toggleSubTabs($("#splash-small-tabs .tab-nav ul li.military"));
		
	if ($("#short_term").val() == 1)
		toggleSubTabs($("#splash-small-tabs .tab-nav ul li.short_term"));
		
});

function populateAdvanced(data) {
	$("div.hider").html(data).slideDown("slow");
	$("#search-submit").hide();
	if (data.match('no results'))
		setTimeout(function() { $("div.hider").slideUp(); }, 4000);
}
	
function toggleTabs(selected) {
	$("#splash-search-top-tabs .splash-nav ul li").removeClass("selected").addClass("down");
	selected.removeClass("down").addClass("selected");
}

function toggleSubTabs(selected) {
	$("#splash-small-tabs .tab-nav ul li").removeClass("selected").addClass("down");
	selected.removeClass("down").addClass("selected");
}

function displayBedroomResults(data) {
	$("#bedroom_results_container").html(data).fadeIn();
	showCircle = true;
	mflMap.drawSearchRadius();
	mflMap.clearMarkers();
	$("#apartment-search-results").hide();
	$("#search_results_list").empty();
}

function displayRefinedResults(data) {
	if ($("#apartment-search-map").length == 0) {
		$("form[name=search-main]").submit();	
	}
	
	$("div.showing-apartments").removeClass("showing-apartments");
	var buttonContainer = $("#bedroom_button_" + $("#beds_menu").val());
	buttonContainer.addClass("showing-apartments");
	$("span.btn-icon").each(function() {
		$(this).find("span:eq(0)").text("Show");
	});
	buttonContainer.find("span.btn-icon").find("span").eq(0).text('Showing');
	
	commsArray = data;
	tempComms = loadCommData();
	curPage = 0;
	if (tempComms) numComms = tempComms;
	$("ul.results-pager").paginate({click: clickCommPage, numItems: numComms, textButtons: false});
	curSortOrder = 'desc';
	$("div.switcher a:eq(0)").click();
	//$("#search_results").hide();
}

function changeBeds(beds, mode) {
	if (mode == 'homes') {
		typeName = 'homes';
	} else {
		typeName = 'apartments';
	}
	//$("#beds_menu").val(beds).change();
	window.location = '/'+typeName+'/search/?awesomeradius=' + $("input[name=awesomeradius]").val() + '&awesomebar=' + escape($("input[name=awesomebar]").val()) + '&beds=' + beds;
}

function checkSearchEmpty() {
	var searchField = $("#search_query_input")
	var searchText = searchField.val();
	var distanceVal = $("input[name=awesomeradius]").val();
	
	if (distanceVal.length == 0) {
		$("#oops_text").text('Oooops! Choose your distance!');
		$("#search_oops").fadeIn();
		return false;
	}
	if (searchText.length == 0 || searchField.hasClass("search-text")) {
		$("#oops_text").text('Oooops! Fill me in please!');
		$("#search_oops").fadeIn();
		return false;
	} else {
		$("#search_oops").fadeOut();
		if ($("#homes").val() == 1)
		{
			$("#search-main").attr("action", "/homes/search/");
		}
		else
		{
			$("#search-main").attr("action", "/apartments/search/");			
		}
		return true;
	}
}

