<!--- global variables --->
var saved_job = '';

<!--- intiate scripts for ajax calls --->
function init()
{
	DWRUtil.useLoadingMessage();
	DWREngine._errorHandler =  errorHandler;
}

<!--- Clear select box of category on search.cfm, registration.cfm, job_notification.cfm --->
function clearCategory(frm, category_count) {
	var x = 1;
	
	for (x = 1; x <= category_count; x++)
	{
		var checkbox = document.getElementById("checkbox_" + x);
		checkbox.checked = false;
	}
}

<!--- Select all from select box of category on search.cfm, registration.cfm, job_notification.cfm --->
function selectAllCategory(frm, category_count) {
	var x = 1;
	
	for (x = 1; x <= category_count; x++)
	{
		var checkbox = document.getElementById("checkbox_" + x);
		checkbox.checked = true;
	}
}

<!--- show category box on registration.cfm --->
function showCategoryBox() {
	var categoryShow = document.getElementById("choose_job_emails");
	var emailCheckBox = document.getElementById("registrationForm");
	
	if (emailCheckBox.job_emails.checked == true)
	{
		categoryShow.style.display = "";
	}
	else
	{
		categoryShow.style.display = "none";
	}
}

<!--- add category from search page to hidden form field for submission --->
function addCategory(frm, categoryId)
{
	var searchCategory = document.getElementById('checkbox_' + categoryId);
	
	if (searchCategory.checked == true)
	{
		var found = frm.categorySearch.value.search(categoryId);
		
		if (found == -1)
		{
			if (frm.categorySearch.value.length == 0)
			{
				frm.categorySearch.value = frm.categorySearch.value + categoryId;
			}
			else
			{
				frm.categorySearch.value = frm.categorySearch.value + ',' + categoryId;
			}
		}
	}
	else
	{
		var found = frm.categorySearch.value.search(categoryId);
		
		if (found != -1)
		{
			if (found == 0)
			{
				if (frm.categorySearch.value.length > 1)
				{
					frm.categorySearch.value = frm.categorySearch.value.replace(categoryId + ',', '');
				}
				else
				{
					frm.categorySearch.value = frm.categorySearch.value.replace(categoryId, '');
				}
			}
			else
			{
				frm.categorySearch.value = frm.categorySearch.value.replace(',' + categoryId, '');
			}
		}
	}
}

<!--- expands/collapses description for jobs on search results --->
function jobDescriptionShowAll (descriptionType, loopCount)
{
	if (descriptionType == 'Detailed')
	{
		for (var x = 1; x <= loopCount; x++)
		{
			var description = document.getElementById('job' + x);
			description.style.display = "";
			
			var descriptionText = document.getElementById('job' + x + 'Text');
			descriptionText.innerHTML = "";
			descriptionText.innerHTML = "<br><a href=javascript:jobDescriptionShowOne('job" + x + "','job" + x + "Text')> + Collapse</a>";
		}
	}
	else
	{
		for (var x = 1; x <= loopCount; x++)
		{
			var description = document.getElementById('job' + x);
			description.style.display = "none";
			
			var descriptionText = document.getElementById('job' + x + 'Text');
			descriptionText.innerHTML = "";
			descriptionText.innerHTML = "<br><a href=javascript:jobDescriptionShowOne('job" + x + "','job" + x + "Text')> + Expand</a>";
		}
	}
}

<!--- expands/collapses description for one job --->
function jobDescriptionShowOne (job, jobText)
{
	var description = document.getElementById(job);
	var descriptionText = document.getElementById(jobText);
	descriptionText.innerHTML = "";
	
	if (description.style.display == "")
	{
		description.style.display = "none";
		descriptionText.innerHTML = "<br><a href=javascript:jobDescriptionShowOne('" + job + "','" + jobText + "')> + Expand</a>";
	}
	else
	{
		description.style.display = "";
		descriptionText.innerHTML = "<br><a href=javascript:jobDescriptionShowOne('" + job + "','" + jobText + "')> + Collapse</a>";
	}
}

<!--- go to certain page of results --->
function resultsPage(section)
{
	var selectPage = document.getElementById("goToPage" + section);
	page = selectPage.value;
	window.document.location.href = "search_results.cfm?p=" + page;
}

<!--- saves a job --->
function saveJob(jobID)
{
	saved_job = jobID;

	DWREngine._execute(_cfscriptSaveJob, null, 'saveJob', saved_job, saveJobResult);
}

function saveJobResult(msg)
{
	if (msg == 'saved')
	{
		alert("Job saved");
		window.document.location.reload();
	}
	else
	{
		if (msg == "login")
		{
			alert("You must login first to save a job.");
			showLogin();
		}
		else
		{
			window.document.location.reload();
			alert(msg);
		}
	}		
}
	
<!--- shows lightbox login form --->
function showLogin(jobID)
{
	var loginForm = document.getElementById("loginDataContainer");
	var forgotPasswordForm = document.getElementById("forgottenPasswordContainer");
	
	loginForm.style.display = "";
	forgotPasswordForm.style.display = "none";
	
	// stretch overlay to fill page and fade in
	var arrayPageSize = getPageSize();
	Element.setWidth('overlay_login', arrayPageSize[0]);
	Element.setHeight('overlay_login', arrayPageSize[1]);
	new Effect.Appear('overlay_login', { duration: 0.2, from: 0.0, to: 0.8 });
	
	document.getElementById("loginbox").style.display = "";
	
	// calculate top and left offset for the lightbox 
	var arrayPageScroll = getPageScroll();
	var loginboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
	var loginboxLeft = arrayPageScroll[0];
	Element.setTop('loginbox', loginboxTop);
	Element.setLeft('loginbox', loginboxLeft);
	
	Element.show('loginbox');
	
	if (jobID != undefined)
	{
		saved_job = jobID;
	}
	
}

<!--- forgot password lightbox form --->
function showForgotPassword()
{
	var loginForm = document.getElementById("loginDataContainer");
	var forgotPasswordForm = document.getElementById("forgottenPasswordContainer");
	
	loginForm.style.display = "none";
	forgotPasswordForm.style.display = "";
}

<!--- function called to check lightbox login --->
function loginAction(frm)
{
	var username = frm.username.value;
	var password = frm.password.value;

	DWREngine._execute(_cfscriptEmployeeForgotPassword, null, 'checkLogin', username, password, LightboxLoginResult);
}

function LightboxLoginResult(msg)
{
	if (msg == "Valid")
	{
		myLightbox.endLogin();
		saveJob(saved_job);
	}
	else
	{
		alert(msg);
	}
}

<!--- function called to retrieve forgotten password --->
function forgotPasswordAction(frm)
{
	var email = frm.password_email.value;

	DWREngine._execute(_cfscriptEmployeeForgotPassword, null, 'employeeForgotPassword', email, ForgotPasswordResult);
}

function ForgotPasswordResult(msg)
{
	if (msg == "Changed")
	{
		var loginForm = document.getElementById("loginDataContainer");
		var forgotPasswordForm = document.getElementById("forgottenPasswordContainer");
		
		loginForm.style.display = "";
		forgotPasswordForm.style.display = "none";
		
		alert("Your username and a new password has been sent to the email address associated with the account.");
	}
	else
	{
		alert(msg);
	}
}

<!--- function to update job contacted --->
function updateJobContacted(job, action, links)
{
	DWREngine._execute(_cfscriptJobContacted, null, 'jobContacted', job, action, links, updateJobContactedResult);
}

function updateJobContactedResult(msg)
{
	if (msg[0] == "Email")
	{
		location.href = "mailto:" + msg[1];
	}
	else
	{
		window.open(msg[1], "newWindow", "location=1, status=1. scrollbars=1, resizable=1, menubar=1");
	}		
}
