window.onload = windowOnLoad;

function windowOnLoad()
{
	var qs = new Querystring();
	var q = qs.get("q");
	if(q!=null) document.getElementById('letters-search-box').value = q;
	searchFilesList();
	showSearchHint();
}
function searchFilesList()
{
	if(document.getElementById('letters-search-box').value == "Search Letters & Downloads")
		return false;
		
	var children = document.getElementById('downloads-container').childNodes;
	var query = document.getElementById('letters-search-box').value;
	var terms = query.replace(/[^\w]+/g," ").split(" ");
	var haveResults = false;
	for(var i=0;i<children.length;i++)
	{
		var found = true;
		
		for(var j=0;j<terms.length;j++)
		{
			if(document.all)
				found = children[i].innerText.toLowerCase().replace(/[^\w]+/g," ").indexOf(terms[j].toLowerCase()) != -1;
			else
				found = children[i].textContent.toLowerCase().replace(/[^\w]+/g," ").indexOf(terms[j].toLowerCase()) != -1;
			if(!found)
				break;
		}
		if(found)
		{
			children[i].style.display = "block";
			haveResults = true;
		}
		else
			children[i].style.display = "none";
	}
	if(!haveResults)
	{
		document.getElementById('no-results-notice').style.display = "block";
		if(document.all)
			document.getElementById('no-results-query').innerText = query;
		else
			document.getElementById('no-results-query').textContent = query;
	}
	else
		document.getElementById('no-results-notice').style.display = "none";
}

function hideSearchHint()
{
	var searchBox = document.getElementById('letters-search-box');
	if(searchBox.value == "Search Letters & Downloads")
	{
		searchBox.value = "";
		searchBox.style.color = "#333";
	}
}

function showSearchHint()
{
	var searchBox = document.getElementById('letters-search-box');
	if(searchBox.value == "")
	{
		searchBox.value = "Search Letters & Downloads";
		searchBox.style.color = "#999";
	}
		
}

/* Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008
	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}