var samples_html;
var center_block;
var front_block;
var all_samples;
var samples_array;
var phrase_count;
var current_phrase;

function get_samples()  {
	var url = 'DB_Server.php';
	var params = 'action=samples';
	all_samples = true;
	do_xhr(url, params, samples_callback);
}

function match_phrase()  {
	var phrase_field = document.getElementById('phrase_in');
	var phrase_in = phrase_field.value;
	if (phrase_in == '')
		return;
	var url = 'DB_Server.php';
	var params = 'action=match_phrase&phrase=' + phrase_in;
	all_samples = false;
	do_xhr(url, params, samples_callback);
}

function match_synonyms()  {
	var synonym_field = document.getElementById('synonyms');
	var synonym_in = synonym_field.value;
	if (synonym_in == '')
		return;
	var url = 'DB_Server.php';
	var params = 'action=match_synonyms&phrase=' + synonym_in;
	all_samples = false;
	do_xhr(url, params, samples_callback);
}

function on_enter()  {
	var phrase_field = document.getElementById('phrase_in');
	if (phrase_field.value != '')
		match_phrase();
	else
		match_synonyms();
}

function samples_callback(content)  {
	if (content == "failed")  {
		alert("ajax failed big time");
		return;
	}
	center_block = document.getElementById('center_block');
	front_block = document.getElementById('front_block');
	if (center_block.style.visibility == 'hidden')
		center_block.style.visibility = 'visible';
	front_block.style.visibility = 'hidden';
	center_block.className = 'samples_block';
	var samples_array = content.split("\n");
	samples_html = '<p class="samples_buttons">';
	samples_html += '<input type="button" value="<< back" onClick="go_back()"/>&nbsp &nbsp &nbsp';
	if (all_samples)
		samples_html += '<input type="button" value="next >>" onClick="get_samples()"/><br />';
	samples_html += '</p>';
	samples_html += '<p class="samples_box">';
	
	for (var i = 0; i < samples_array.length; i++)  {
		var funct = "find_phrase('" + samples_array[i] + "')";
		samples_html += '<a href=# onclick="';
		samples_html += funct;
		samples_html += '">';
		samples_html += samples_array[i];
		samples_html += '</a><br />';
	}
	samples_html += '<br /></p>';
	center_block.innerHTML = samples_html;
}

function find_phrase(mod_phrase)  {
	var url = 'DB_Server.php';
	var params = 'action=find_phrase&phrase=' + mod_phrase;
	do_xhr(url, params, phrase_callback);
}

function phrase_callback(content)  {
	if (content == "failed")  {
		alert("ajax failed big time");
		return;
	}
	var center_block = document.getElementById('center_block');
	if (center_block == undefined)  {
		alert("undefined center_block");
		return;
	}
	samples_array = content.split("\n");
	phrase_count = (samples_array.length - 2) / 2;
	var common = samples_array[0];
	current_phrase = 0;
	var shakespeare = samples_array[1];
	var citation = samples_array[2];
	var html_string = '<table><tr><td><table width=400><tr><td class="common_phrase">' + common + '</td>';
	if (phrase_count > 1)
		html_string += '<td class="back_button" width=80><input type="button" value="next >>" onClick="next_phrase()"/></td>';
	html_string += '</tr></table></td></tr>';
	html_string += '<tr><td class="shakespeare" id="shakes">' + shakespeare + '</td></tr>';
	html_string += '<tr><td align="center"><table width=380><tr width=360>';
	html_string += '<td class="back_button"><input type="button" value="<< back" onClick="back_to_samples()"/></td>';
	html_string += '<td class="citation" id="citation">' + citation + '</td></tr></table></td></tr>';
	html_string += '</table>';
	center_block.innerHTML = html_string;
}

function back_to_samples()  {
	center_block.innerHTML = samples_html;
}

function next_phrase()  {
	if (++current_phrase >= phrase_count)
		current_phrase = 0;
	var shakes_field = document.getElementById('shakes');
	var index = current_phrase * 2 + 1;
	var shakespeare = samples_array[index];
	shakes_field.innerHTML = shakespeare;
	var citation_field = document.getElementById('citation');
	var citation = samples_array[index+1];
	citation_field.innerHTML = citation;
}

function go_back()  {
	front_block.style.visibility = 'visible';
	center_block.style.visibility = 'hidden';
}
