/*
	This is the JavaScript file for the AJAX Suggest Tutorial

	You may use this code in your own projects as long as this 
	copyright is left	in place.  All code is provided AS-IS.
	This code is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
	
	For the rest of the code visit http://www.DynamicAJAX.com
	
	Copyright 2006 Ryan Smith / 345 Technical / 345 Group.	

*/
//Gets the browser specific XmlHttpRequest Object

function getXmlHttpRequestObject_a() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}

function getXmlHttpRequestObject_b() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}


//Our XmlHttpRequest object to get the auto suggest
var searchReq_a = getXmlHttpRequestObject_a();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchBandSuggest() {
	if (searchReq_a.readyState == 4 || searchReq_a.readyState == 0) {
		var str = escape(document.getElementById('band').value);
		// /scripts/get_data.php?choice=venue&venue=
		searchReq_a.open("GET", '/scripts/get_data.php?choice=band&band=' + str, true);
		searchReq_a.onreadystatechange = handleSearchSuggest_a; 
		searchReq_a.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest_a() {
	if (searchReq_a.readyState == 4) {
		var ss = document.getElementById('search_band_suggest')
		ss.innerHTML = '';
		var str = searchReq_a.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div onmouseover="javascript:suggestOver_a(this);" ';
			suggest += 'onmouseout="javascript:suggestOut_a(this);" ';
			suggest += 'onclick="javascript:setSearch_a(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

//Mouse over function
function suggestOver_a(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut_a(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch_a(value) {

	var venue=value;
	document.getElementById('band').value = value;
	document.getElementById('search_band_suggest').innerHTML = '';

	//does the date exist?
	var does_concert_exist = searchconcert_existSuggest();	

	// what is the tour name?
	var what_is_tour_name = searchTour_NameSuggest();

	// get band members for selected tour
	var tour_band_members = setTimeout("searchTour_Band_MembersSuggest()",500);
	
}


//concert exists
var searchReq_concert_exist = getXmlHttpRequestObject_a();

function searchconcert_existSuggest() {

	if (searchReq_concert_exist.readyState == 4 || searchReq_concert_exist.readyState == 0) {
		// /scripts/get_data.php?choice=venue&venue=
		var band = escape(document.getElementById('band').value);
		var concertdate = escape(document.getElementById('concertdate').value);
		var url = '/scripts/get_data.php?get_date=' + concertdate + '&band=' + band;
		//alert(url);
		searchReq_concert_exist.open("GET", url, true);
		searchReq_concert_exist.onreadystatechange = handleSearchSuggest_concert_exist; 
		searchReq_concert_exist.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest_concert_exist() {
	if (searchReq_concert_exist.readyState == 4) {
		//var str_members = searchReq_Band_Members.responseText;
		document.getElementById('concert_exists').innerHTML = searchReq_concert_exist.responseText;

	}
}

// tour name?
var searchReq_Tour_Name = getXmlHttpRequestObject_a();

function searchTour_NameSuggest() {

	if (searchReq_Tour_Name.readyState == 4 || searchReq_Tour_Name.readyState == 0) {
		// /scripts/get_data.php?choice=venue&venue=
		var band = escape(document.getElementById('band').value);
		var concertdate = escape(document.getElementById('concertdate').value);
		var url = '/scripts/get_data.php?tours=tours&concertdate=' + concertdate + '&band=' + band;
		//alert(url);
		searchReq_Tour_Name.open("GET", url, true);
		searchReq_Tour_Name.onreadystatechange = handleSearchSuggest_Tour_Name; 
		searchReq_Tour_Name.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest_Tour_Name() {
	if (searchReq_Tour_Name.readyState == 4) {
		//var str_members = searchReq_Band_Members.responseText;
		//alert(searchReq_Tour_Name.responseText);
		document.getElementById('tour').value = searchReq_Tour_Name.responseText;
		return searchReq_Tour_Name.responseText;
	}
}

// band members
var searchReqTour_Band_Members = getXmlHttpRequestObject_b();

function searchTour_Band_MembersSuggest() {
	if (searchReqTour_Band_Members.readyState == 4 || searchReqTour_Band_Members.readyState == 0) {
		// /scripts/get_data.php?choice=venue&venue=
		var tour = escape(document.getElementById('tour').value);
		var url = '/scripts/get_data.php?get_members=' + tour;
		//alert(url);
		searchReqTour_Band_Members.open("GET", url, true);
		searchReqTour_Band_Members.onreadystatechange = handleSearchSuggestTour_Band_Members; 
		searchReqTour_Band_Members.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggestTour_Band_Members() {
	if (searchReqTour_Band_Members.readyState == 4) {
		//var str_members = searchReq_Band_Members.responseText;
		//alert(searchReq_Tour_Name.responseText);
		document.getElementById('band_members').value = searchReqTour_Band_Members.responseText;

	}
}
