// search_support.js

function showHeaderTab() {
	for (var i=0; i<this.allTabs.length; i++) {
		if (this.allTabs[i] == this) {
			// show this tab
			this.tabActive = true;
			this.tabContent.style.display = "block";
			this.style.backgroundImage = "url('images/header/header_tab_on.jpg')";
			this.style.color = "gray";
			switch (this.id) {
				case "tab_menu": $('#search_cmd').val('menu_search'); searchTab = "MENU"; break;
				case "tab_venue": $('#search_cmd').val('display'); searchTab = "VENUE"; break;
			}
		} else {
			// hide other tabs
			this.allTabs[i].tabActive = false;
			this.allTabs[i].tabContent.style.display = "none";
			this.allTabs[i].style.backgroundImage = "url('images/header/header_tab_off.jpg')";
			this.allTabs[i].style.color = "#666";
		}
	}
}
function initSearchTabs() {
	var tabs = [ "venue", "menu"];
	var tabsArray = [];
	for (var i=0; i<tabs.length; i++) tabsArray[i] = document.getElementById("tab_"+tabs[i]); 
	for (var i=0; i<tabs.length; i++) {
		if (tabsArray[i] == null) continue;
		tabsArray[i].tabContent = document.getElementById("tab_"+tabs[i]+"_div"); 
		tabsArray[i].allTabs = tabsArray;
		tabsArray[i].onclick = showHeaderTab;
		tabsArray[i].tabActive = false;
	}
	tabsArray[0].tabActive = true;
}

function selectItem(li) {
	if (li.extra) eval( 'document.location.href="' + li.extra[1] + '"' );
}
function formatItem(row) {
	return "<span><strong>" + row[0] + "</a></strong></span>";
}

var searchTab = "VENUE";
$(document).ready(function() {

	$('#simple_search').submit( function(e) {
		if (searchTab == "VENUE") {
			$('#simple_search').attr('action', 'search_results.php?search_for=' + $('#ac_me').val() );
		} else {
			$('#simple_search').attr('action', 'search_results.php?menu_search=' + $('#search_text_menu').val() );
		}
	});
	$("#ac_me").autocomplete("search_ac.php", {
		minChars:2, matchSubset:1, matchContains:1, cacheLength:10, onItemSelect:selectItem, formatItem:formatItem, selectOnly:1 });
	$(".find_button").bind("click", function() {
		$('#simple_search').submit();
	});

	$('#postal_code').keydown( function(e) {
		switch(e.keyCode) {
			case 13: $('#simple_search').submit(); break;
		}
	})
	// return key pressed on search_text field (id: ac_me )
	$('#ac_me').keydown( function(e) {
		switch(e.keyCode) {
			case 13: $('#simple_search').submit(); break;	
		}
	});
	// return key pressed on search_text field (id: ac_me )
	$('#search_text_menu').keydown( function(e) {
		switch(e.keyCode) {
			case 13: $('#simple_search').submit(); break; }
	});
	
	function populateElement(selector, defvalue) {
		sOffCol = '#bcbcbc';
		sOnCol = '#000000';
	
		if($.trim($(selector).val()) == "") {
			$(selector).css({"color":sOffCol });
			$(selector).val(defvalue);
		}
	
		$(selector).focus(function() {
			if($(selector).val() == defvalue) {
				$(selector).css({"color":sOnCol });
				$(selector).val("");
			}
		});
	
		$(selector).blur(function() {
			if($.trim($(selector).val()) == "") {
				$(selector).css({"color":sOnCol })
			} else {
				$(selector).val( $(selector).val().toUpperCase() ); // upper-case field
			}
		});
	}

	function setupButton(selector, defvalue) {
		button = '#search_button';
		search_field = '#ac_me'; // the search text field
		$(button).click( function() {
			// if the postal code is filled in and the search field is blank, do a postal-code search
			if($.trim($(selector).val()) != "" ) {
				$('#simple_search').attr('action', $('#simple_search').attr('action') + '?postal_search=1' );
				$('#simple_search').submit();
			}
			$('#postal_code').val( $('#postal_code').val().toUpperCase() ); // upper-case field
			$('#simple_search').submit();
		});
	}

	// set-up submit for #simple_search form
	$('#simple_search').submit( function() {
		if($.trim($('#postal_code').val()) != "" ) {
			$('#simple_search').attr('action', 'search_results.php?postal_search=1');
			$('#postal_code').val( $('#postal_code').val().toUpperCase() ); // upper-case field
			return(true);
		} else if ( $.trim($('#search_text').val()) != "" ) {
			$('#simple_search').attr('action', 'search_results.php');
			$('#postal_code').val( $('#postal_code').val().toUpperCase() ); // upper-case field
			return(true);
		}
	})
		
	// set-up default values here
	populateElement('#postal_code', '');
	setupButton( '#postal_code', 'M4J 1L9')
	initSearchTabs();
});


// ----------------------------------------------------------
// other search page javascript functions
// map show/hide, filtering, phoneclick
function ShowHideMap()
{
	map = document.getElementById('locations_map');
	
	if ( map.style.display == 'none')
		map.style.display = 'block';
	else
		map.style.display = 'none';

}

// ----------------------------------------------------------------------
function FilterOn( sType, iValue)
{
	switch(sType )
	{
		case 'neighbourhood':
			iNeighbourhood_filter = iValue;
			document.dto_results_form.neighbourhood_filter.value = iValue;
			document.dto_results_form.cmd.value = 'filter';
			break;
		case 'est_type':
			iEst_type_filter = iValue;
			document.dto_results_form.est_type_filter.value = iValue;
			document.dto_results_form.cmd.value = 'filter';
			break;
		case 'feature':
			iFeature_filter = iValue;
			document.dto_results_form.feature_filter.value = iValue;
			document.dto_results_form.cmd.value = 'filter';
			break;	
		case 'sortby':
			iFeature_filter = iValue;
			document.dto_results_form.feature_sort.value = iValue;
			document.dto_results_form.cmd.value = 'filter';
			break;						
	}

}

// =================================================================

// -----------------------------------------------------------------
function RunFilter()
{
	document.dto_results_form.cmd.value="filter";
	document.dto_results_form.submit();
}

// -----------------------------------------------------------------
function phoneclick_sponsored(obj,id, sNumber) 
{
	var el=getEl('phone_sponsored'+id);

		if (  el.innerHTML != sNumber ) {
			sndReq( id, sNumber );
		}
		
		el.innerHTML = sNumber;
		el.style.textDecoration = 'none';					

	return false;
}

// -----------------------------------------------------------------

		
function createRequestObject() {
	// from: http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro2/?ca=dgr-lnxw07AJAX-Request
	var request = false;
	try {
	  request = new XMLHttpRequest();
	} catch (trymicrosoft) {
	  try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	  } catch (othermicrosoft) {
		try {
		  request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
		  request = false;
		}
	  }
	}
	
	if (!request)
	  alert("Error initializing XMLHttpRequest!");
	else
		return(request);		
}

var http = createRequestObject();

function sndReq(iEst_id, sPhone_number) 
{
	http.open('get', 'profile_stats_update.php?est_id='+iEst_id + '&phone_num=' + escape(sPhone_number) );
	http.onreadystatechange = handleResponse;
	http.send(null);
}

function handleResponse() {
	if(http.readyState == 4){
		//alert(http.responseText)
	}
}	
// end of AJAX stuff

//var bPhone_number_displayed = false; // is the number already being displayed?

function getEl(id){
return (document.getElementById)?document.getElementById(id):((document.all)?document.all[id]:null);
}

function phoneclick(obj,id, sNumber) {

var el=getEl('phone'+id);

	if (  el.innerHTML != sNumber ) {
		sndReq( id, sNumber );
	}
	
	el.innerHTML = sNumber;
	el.style.textDecoration = 'none';					

return false;
}

