var links='';
var linksCount=0;

function initQA() {
	document.getElementById('qa_search').setAttribute('autocomplete','off');
	document.getElementById('qa_search').focus();
	getLinks();
}

function getLinks() {
	for (i=0,max=document.links.length;i<max;i++) if (document.links[i].className=='quick') {
		links=links+'<a href="'+document.links[i]+'" title="'+document.links[i].title+'">'+document.links[i].innerHTML.replace('\n','')+'</a>\n';
		linksCount++;
	};
};

function searchLinks(val) {
	val = RegExp.escape(val.replace('&','&amp;','g')).replace(' ','.*','g');
	var pattern=new RegExp('<a href=".+">(.*\\W)?'+val+'.*<\\/a>\\n','ig');
	var results=links.match(pattern);
	if(val.length<=1) {
		document.getElementById('quickresults').style.display='none';
		return;
	} else if (results!=null && results.length!=linksCount) {
		document.getElementById('quickresults').innerHTML='<h2>Top Match: '+results.shift().replace('href=','id="topmatch" href=')+'</h2>';
		for (i=0,max=results.length;i<max;i++) document.getElementById('quickresults').innerHTML+='<h2>'+results[i]+'</h2>';
		document.getElementById('quickresults').style.display='block';
	} else document.getElementById('quickresults').innerHTML='<h2>No results match your search.</h2>';
	document.getElementById('quickresults').style.display='block';
};

RegExp.escape = function(text) {
  if (!arguments.callee.sRE) {
    var specials = ['.','*','+','?','|','(',')','[',']','{','}','\\'];
    arguments.callee.sRE = new RegExp('(\\' + specials.join('|\\') + ')', 'g');
  }
  return text.replace(arguments.callee.sRE, '\\$1');
}

function topMatch() {
	if(document.getElementById('topmatch')) window.location=document.getElementById('topmatch').href;
}
