var color_map = {
	'blue':'#6CF',
	'red':'#F66',
	'yellow':'#FC3',
	'green':'#6C6',
	'orange':'#F96',
	'purple':'#669'
};

var results;
var offset;
var results_per_page = 8;


function init() {
	var loc = "" + document.location;
	var index = loc.indexOf("#");
	if (index >= 0) {
		var param = loc.substr(index + 1);
		var errMsg = "";
		if (param == "nothing") {
			errMsg = "No typefaces found under that name, but they should definitely make one.";
		}
		document.getElementById("errormsg").innerHTML = errMsg;
	} else {
		ajaxcall("search.do?r=true", search_results);
	}
}


function check() {
	username = document.getElementById("nametextfield").value;
	typeface = document.getElementById("typefacetextfield").value;
	if (!(username == '' && typeface == '')) {
		search(username, typeface);
	}
}

function search(username, typeface) {
	var url = "search.do?";
	if (username != '') {
		url += "u=" + username + "&";
	}
	if (typeface != '') {
		url += "t=" + typeface;
	}
	document.getElementById("errormsg").innerHTML = "";
	ajaxcall(url, search_results);
}

function searchKey(e) {
	if (!e) e = event;
	if (e.keyCode == 13) {
		check();
	} else {
		return true;
	}
}



function show_search_results() {
	var resultsDiv = document.getElementById("results");
	var search = "";
	var top_px = 0;
	for (i = (offset * results_per_page); i < results.length && i < (offset + 1) * results_per_page; i++) {
		var borderStyle = 'solid 3px ' + color_map[results[i]['color']];
		search += '<div class="resultname" style="top:' + top_px + 'px">' + results[i]['username'] + '</div>';
		search += 	'<table class="resulttypeface" style="top: ' + top_px + 'px;">' +
				'<tr><td><img src="images/outline_' + results[i]['color'] + '_L.png"/></td>' +
				'<td style="vertical-align:top">' + 
				'<div style="border-top: ' + borderStyle + '; border-bottom: ' + borderStyle + ';height:20px;">' +
				'<a href="font.do?id=' + results[i]['id'] + '">' + results[i]['name']  + '</a>' +
				'</div></td>' + 
				'<td><img src="images/outline_' + results[i]['color'] + '_R.png"/></td>' + 
				'</tr></table>';

		top_px += 45;
	}
	resultsDiv.innerHTML = search;
}


function search_results() {
	if (xmlHttp.readyState == 4) {
		results = get_array_from_tabbed(xmlHttp.responseText);
		offset = 0;
		document.getElementById("prevbutton").style.display = "none";
		if (results.length == 0) {
			document.getElementById("errormsg").innerHTML = "No typefaces found under that name, but they should definitely make one.";
			document.getElementById("results").innerHTML = "";
			document.getElementById("nextbutton").style.display = "none";
		} else {
			if (results.length > results_per_page) {
				document.getElementById("nextbutton").style.display = "block";
			}
			show_search_results();				
		}
	}	
}

function next() {
	if ( (offset + 1) *  results_per_page < results.length) {
		offset++;
		if ( ( offset + 1) * results_per_page > results.length) {		
			document.getElementById("nextbutton").style.display = "none";
		}
		document.getElementById("prevbutton").style.display = "block";
		show_search_results();
	}
}

function prev() {
	if (offset > 0) {
		offset--;
		document.getElementById("nextbutton").style.display = "block";
		if (offset == 0) {
			document.getElementById("prevbutton").style.display = "none";
		}
		show_search_results();
	}
}

