var xmlHttp = null;
var xmlHttp2 = null;

function mySearch() {
	var myForm = document.getElementById('searchForm');
	var res = document.getElementById('results');
	var det = document.getElementById('details');

	if(myForm.searchCharacter.checked) {
		var sel = myForm.selectCharacter;
		var t = sel.options[sel.selectedIndex].value;
		res.innerHTML = 'Search by Character: ' + t;
		executeSearch('character', t);
	} else if(myForm.searchEpisode.checked) {
		var sel = myForm.selectEpisode;
		var t = sel.options[sel.selectedIndex].value;
		res.innerHTML = 'Search by Episode: ' + t;
		executeSearch('episode', t);
	} else if(myForm.searchAnyone.checked) {
		res.innerHTML = 'Search for everything';
		executeSearch('everything', '');
	} else if(myForm.searchCustom.checked) {
		var sel = myForm.searchText;
		var t = sel.value;
		if(t.length == 0) {
			alert('Please specify a custom search term');
			exit;
		}
		res.innerHTML = 'Search for ' + t;
		executeSearch('custom', escape(t));
	} else {
		alert('Select a type of search first!');
	}
	return true;
}

function doReset() {
	var myForm = document.getElementById('searchForm');
	var disp = document.getElementById('results');
	var det = document.getElementById('details');
	myForm.reset();
	disp.innerHTML = "Your search results will automagically appear here.";
	det.innerHTML = '<p>Individual sound file details will display here.</p>';
}

function GetXmlHttpObject() {
	var o = null;
	if(window.XMLHttpRequest) {
		o = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		o = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return o;
}

function process() {
	if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		var results = eval('(' + xmlHttp.responseText + ')');
		var resSize = results.length;
		var resText = "";
		var displayResults = document.getElementById('results');
		
		for(i=0; i<resSize; ++i) {
			var t = '<a href="" onClick="getDetails(' + results[i].Index + '); return false">';
			t += '(' + results[i].Speaker + ') ' + results[i].Short + '</a><br />';
			resText += t;
		}
		displayResults.innerHTML = resText;
	}
}

function executeSearch(searchType, searchText) {
	xmlHttp = GetXmlHttpObject();
	if(xmlHttp == null) {
		alert('Your browser does not support AJAX requests! Get a newer one.');
		return;
	}
	var uri = 'ajaxSearch.php?type=' + searchType;
	uri += '&text=' + searchText;
	
	xmlHttp.onreadystatechange = process;
	xmlHttp.open("GET", uri, true);
	xmlHttp.send(null);
}

function processDetails() {
	if(xmlHttp2.readyState == 4 || xmlHttp2.readyState == "complete") {
		var results = eval('(' + xmlHttp2.responseText + ')');
		var resText = "";
		var displayDetails = document.getElementById('details');
		
		var t = "";
		t += '<h3>' + results.Short + '</h3>';
		t += 'Index: ' + results.Index + '<br />';
		t += 'File: ' + results.File + '<br />';
		t += 'Speaker: ' + results.Speaker + '<br />';
		t += 'Episode: ' + results.Episode + '<br />';
		t += 'Transcription:<br /><pre>' + results.Transcription + '</pre><br />';
		t += '<strong>Download in</strong><br />';
		t += results.Link + ' or ';
		t += results.LinkMP3;
		
		displayDetails.innerHTML = t;
	}
}

function getDetails(idx) {
	xmlHttp2 = GetXmlHttpObject();
	if(xmlHttp2 == null) {
		alert('Your browser does not support AJAX requests! Get a newer one.');
		return;
	}
	var uri= 'ajaxDetails.php?index=' + idx;
	xmlHttp2.onreadystatechange = processDetails;
	xmlHttp2.open("GET", uri, true);
	xmlHttp2.send(null);
}

