
var def_wait_txt = 'Please wait...';
var def_search_txt = 'Type here to Search';
var cur_board = '';

function showOnly (title, board_class, num_jobs) {
	
	$('info').style.display = 'block';
	$('info').innerHTML =  def_wait_txt;

	if (board_class == cur_board) {
		showAll();
		return;
	}

	hideClass('date');
	hideClass('job');
	hideClass('spacer');
	
	showClass(board_class);
	resetBoardList();
	
	$('info').innerHTML = 'Showing Only <strong>' + title + '</strong> ... <a href="javascript:showAll();">Show All Jobs</a>';
	
	$('showall').style.display = 'block';
	$('showall').innerHTML =  '<span>*</span> <strong>' + num_jobs + ' Jobs</strong>';	
	
	$('search').value = def_search_txt;	
	if ($(board_class + '-list')) $(board_class + '-list').className += ' board-highlight';
	
	cur_board = board_class;
}

function showAll () {
	$('info').style.display = 'none';
	$('showall').style.display = 'none';
	$('search').value = def_search_txt;
	
	resetBoardList();
	cur_board = '';
	$('showall-list').className += ' showingall';	
	
	showClass('job');
	showClass('date');
	showClass('spacer');	
}

function hideClass (class_name) {
	var obj = document.getElementsByClassName(class_name);
	for(i = 0; i < obj.length; i++) {
		obj[i].style.display = 'none';
	}
}

function showClass (class_name) {
	var obj = document.getElementsByClassName(class_name);
	for(i = 0; i < obj.length; i++) {
		obj[i].style.display = 'block';
	}
}

function resetBoardList () {
	obj = document.getElementsByClassName('board');
	for(i = 0; i < obj.length; i++) {
		obj[i].className = 'board';
	}	
}

function search (me) {

	hideClass('date');
	hideClass('spacer');
	
	resetBoardList();
	cur_board = '';	
	
	var text = me.value;
	
	$('info').style.display = 'block';
	$('info').innerHTML = 'Searching for "' + text + '" ... <a href="javascript:showAll();">Show All Jobs</a>';	
		
	$('showall').style.display = 'block';		
	
	if (!text || text == def_search_txt) { return false; }
	
	var string;
	var results;
	
	var obj = document.getElementsByClassName('job');
	for(i = 0; i < obj.length; i++) {
		string = obj[i].innerHTML;
		
		// strip out .php 
		string = string.replace(/\.php/g, '');		
		string = string.toUpperCase();
		text = text.toUpperCase();
		
		results = string.search(text);
		
		if (results >= 1) {
			obj[i].style.display = 'block';
		} else {
			obj[i].style.display = 'none';
		}

	}	
	
}

var num_saved_jobs = 0;
var saved_jobs = '';

function initJobs () {
	buildArchive();
	highlightSaved();
}

function showOnlyHighlight () {
	showOnly('Saved Jobs', 'highlight', num_saved_jobs);
}

function buildArchive () {

	var sj = getSavedJobs();
	if (sj) var num_saved_jobs = sj.length;
	
	$('archive').innerHTML = '';
	
	if (num_saved_jobs > 0) { 
		for (var i = 0; i <= num_saved_jobs; i++) {
			if (sj[i]) {
				highlightJob( sj[i] );
				$('archive').innerHTML += '<li class="clearfix"><a href="javascript:clearJob(\'' + sj[i] + '\');" title="Remove Job from Saved" class="unsave">Unsave</a> ' + tasteCookie( sj[i] ) + '</li>';
			}
		}
		
		$('archive').innerHTML += '<li class="last"><a href="javascript:showOnlyHighlight();">View Only</a> - <a href="javascript:clearSaved();">Clear All</a></li>';		
	} else {
		$('archive').innerHTML += '<li class="last"><em>You have no saved jobs.</em></li>';
	}	
}

function checkToggle (id) {
	
	var job_class = $(id).className;
	
	if (job_class.search('highlight') >= 1) {
		uncheckJob(id);
	} else {
		checkJob(id);
	}
	
	buildArchive();
}

function checkJob (id) {

	saved_jobs = tasteCookie('saved_jobs');
	
	if (saved_jobs) {
		saved_jobs += id +':';
	} else {
		saved_jobs = id +':';
	}
	
	if (saved_jobs) { eatCookie('saved_jobs'); }
	bakeCookie('saved_jobs',saved_jobs,30);
	
	highlightJob(id);

	bakeCookie(id,$(id + '-link').innerHTML,30);
	
}

function uncheckJob (id) {
	lowlightJob(id);	
	clearSavedJob(id);
}

function clearJob (id) {
	uncheckJob(id);
	buildArchive();
}

function highlightSaved () {

	var sj = getSavedJobs();

	if (sj) { 
		for(var i=0;i < sj.length; i++) {	
			highlightJob(sj[i]);
		}
	}	
}

function highlightJob (id) {
	if ($(id)) $(id).className += ' highlight';
}

function lowlightJob (id) {
	if ($(id)) {
		var job_class = $(id).className;
		job_class = job_class.replace(/ highlight/g, '');
	
		$(id).className = job_class;
	}
}

function clearSaved () {
	var s = 's';
	
	var sj = getSavedJobs();
	var num_saved_jobs = sj.length - 1;	

	if (num_saved_jobs == 1) s = ''; 

	if (confirm('Are you sure you want to clear your ' + num_saved_jobs + ' saved job' + s + '?')) {
		eatCookie('saved_jobs');	
	
		if (sj) { 
			for(var i=0;i < num_saved_jobs; i++) {
				lowlightJob(sj[i]);		
				clearSavedJob(sj[i]);
			}
		}	
	
		buildArchive();	
	}
}

function clearSavedJob (id) {

	var sj = getSavedJobs();
	if (sj) var num_saved_jobs = sj.length;
	
	saved_jobs = '';	
	eatCookie('saved_jobs');	
	
	if (num_saved_jobs > 0) { 
		for (var i = 0; i <= num_saved_jobs; i++) {
			if (sj[i] && sj[i] != id) {
				saved_jobs += sj[i]+':';
			}
		}
	}

	bakeCookie('saved_jobs',saved_jobs,30);

	eatCookie(id);
}

function getSavedJobs () {
	saved_jobs = tasteCookie('saved_jobs');	
	if (saved_jobs) return saved_jobs.split(':');		
}

function bakeCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function tasteCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eatCookie(name) {
	bakeCookie(name,"",-1);
}