var matches = 0;
var matchD;
var preserveJobs;
var terms;
var sr;

addEvent(window,'load',initSearch);

function initSearch() {

	sr = document.getElementById('searchResultsMeta');

		if(!document.getElementById('jobData')) return;
		preserveJobs = document.getElementById('jobData').innerHTML;

		if(document.getElementById('search')) {
			document.getElementById('search').value = '';
			document.onkeyup = autoComplete;
		}
		else {
			return false;
		}
}


function autoComplete() {

	terms = document.getElementById('search').value;
	var html = sr.innerHTML;


	if(terms && terms.length > 3) {
		checkJobs(terms);
	}
	else if(!terms || terms.length <= 3) {
// 		sr.innerHTML = '';
		hideAllJobs();
	}
	else {

	}
	
}


function checkJobs(terms)
{

	hideAllJobs;

	matches = 0;


	$("#jobData .job").each(function() {
		var job_id = $(this).attr("id");
		jobMatch(job_id, terms);
	});

	if(!matches) {
		sr.innerHTML = 'No jobs found. Please try different keywords';
	}
	else {
		sr.innerHTML = '';
			var searchTerms = terms.split(' ');
			var textContainerNode = document.getElementById("jobData");
				for (var i=0; i<searchTerms.length; i++) {
					// The regex is the secret, it prevents text within tag declarations to be affected
// 					var regex = new RegExp('>([^<]*)?('+searchTerms[i]+')([^>]*)?<' ,'ig');
// 					highlightTextNodes(textContainerNode, regex, i);
				}
		pinballEffect();
	}

}


function jobMatch(id, terms) {

	var sr = document.getElementById('searchResultsMeta');
	var el = document.getElementById(id);
	var state;
	var count = 0;

	job = el.innerHTML;

	// search per keyword / case insensitive
	terms = terms.replace(/,/g,'');
	chk_terms = terms.split(' ');


	for (var i=0; i<chk_terms.length; i++) {
		var re = new RegExp(chk_terms[i], "i");

		if(job.match(re)) {
			count++;
			matches++;
		}

	}

	if(count == chk_terms.length)
		state = 'block';
	else
		state = 'none';


	// show the jobs
	document.getElementById(id).style.display = state;


}


function hideAllJobs() {

	document.getElementById('jobData').innerHTML = preserveJobs;

}


function highlightTextNodes(element, regex, termid) {

	var tempinnerHTML = element.innerHTML;

	element.innerHTML = tempinnerHTML.replace(regex,'>$1<span class="highlighted term'+termid+'">$2</span>$3<');

}
