
function toggleDiv(div) {
	if (document.getElementById(div).style.display=="none") {
		new Effect.BlindDown(div);
		document.getElementById(div+"button").src = '/images/manager/collapse.gif';
	} else {
		new Effect.BlindUp(div);
		document.getElementById(div+"button").src = '/images/manager/expand.gif';
	}
}

// Called on page load, attempts to read cookie data and re-populate the search form
function initialiseSearch() {

	// get the cookie data
	var keywords = readCookie('keywords');
	var categories = readCookie('categories');
	var page = readCookie('page');
	
	// set the cookie data back into the form
	setKeywords(keywords);
	setCategoryOptions(categories);

	// check for 'null' in keywords box
	removeNullKeywords();

	// run the search
	doSearch(page);
}

function removeNullKeywords() {
	if (document.forms['search'].keywords.value == 'null') document.forms['search'].keywords.value = '';
}

// Reads the category checkboxes
function getCategoryOptions() {
	var result = '';
	var inputs = document.getElementById('job-categories').getElementsByTagName('input');
	for(var i=0; i<inputs.length; i++) {
		if(inputs[i].type == 'checkbox') {
			if (inputs[i].checked) result += inputs[i].value + ',';
		}
	}
	return result;
}

// Sets the category checkboxes that were saved in the cookie
function setCategoryOptions(categories) {
	if(categories) {
		var parts = categories.split(",");
		var inputs = document.getElementById('job-categories').getElementsByTagName('input');
		for(var i=0; i<parts.length; i++) {
			for(var j=0; j<inputs.length; j++) {
				if(inputs[j].type == 'checkbox') {
					if (inputs[j].value == parts[i]) inputs[j].checked=true;
				}
			}
		}
	}
	return true;
}

// Sets the keyword input field
function setKeywords(keywords) {
	if (keywords=='null' || keywords=='') {
		// nothing
	} else {
		document.forms['search'].keywords.value = keywords;
	}
}

// Run a search query
function doSearch(page) {

	var categories = getCategoryOptions();
	var keywords = document.forms['search'].keywords.value;

	// Writeout selected categories
	new Ajax.Updater('categorieschecked', '/ajax/getcheckedcategories', {method:'post', parameters:{categories:categories}});

	// Save the search data
	setSavedSearch(page, keywords, categories);
	new Ajax.Updater('results', '/ajax/search', {method:'post', parameters:{keywords:keywords, page:page, categories:categories}});
}

// Save the search data into multiple cookies
function setSavedSearch(page, keywords, categories) {
	createCookie('keywords',keywords,7);
	createCookie('categories',categories,7);
	createCookie('page',page,7);
}

// Start cookie utility functions
function createCookie(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 readCookie(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 eraseCookie(name) {
	createCookie(name,"",-1);
}
// End cookie utility functions