var didYouKnowCycleTime = 40; //seconds	
	
	function init() {
		// setup strecher
			myStretch = document.getElementsByClassName('menustretchtoggle');
			myStretcher = document.getElementsByClassName('menustretcher');
			myAccordion = new fx.Accordion(myStretch, myStretcher, {opacity: true});
		// Client reports is the default opened section when it exist.
			openMenuGroup(6);
			
		// Start Did you know cycle.  Refresh every 30 seconds
			didYouKnowFaderObj = new fx.Opacity('didYouKnowFader', {duration: 1000});	
			startDidYouKnow();
		
		
}


	function openMenuGroup(groupNumber)	{
		myAccordion.showThisHideOpen(myStretcher[groupNumber]);
	}
	
	function scrollTop(){
		scroll(0,0);
	}

// generic ajax call
	function callAjax(urlEvent,destination,onComplete)	{
		//scroll(0,0)
		new ajax ('index.cfm?event=' + urlEvent, {
			postBody: 'sleep=0', 
			update: $(destination),
			onComplete: eval(onComplete) || scrollTop
		});
	}

// ajax call with forms
	function callAjaxForm(urlEvent,formObject,destination,onComplete)	{
		//scroll(0,0)
			progressBarInit();// Create progress bar
		new ajax ('index.cfm?event=' + urlEvent, {
			postBody: Form.serialize(formObject),  //used with prototype.js
			update: $(destination), 
			onComplete: eval(onComplete) || hideProgressBar //
		});
	}

// ajax call on main content
	function callAjaxMain(urlEvent)	{
		//scroll(0,0)
		new ajax ('index.cfm?event=' + urlEvent, {
			postBody: 'sleep=0', 
			update: $('mainAJAXupdate')
			, onComplete: function() { scrollTop(); createPermalink(urlEvent); }
			//, onComplete: ajaxTest
		});
	}
	
	function createPermalink(urlEvent)
	{
		// Since this is a last minute hack job anyways, I'm not going to bother with proper DOM handling
		var permalink = window.location.href.substring(0, window.location.href.lastIndexOf('/')) + '/index.cfm?event=' + urlEvent + '&displayType=page';
		$('permalink').innerHTML = '<a href="' + permalink + '">[Permalink]</a>';
	}
	
// ajax test
	function ajaxTest(request)	{
		alert(trim(request.responseText));
	}
	

// Basic Functions
	function reloadWindow(urlEvent)	{
		window.location = 'index.cfm?event=' + urlEvent;
	}
	
	function trim(str) { 
		return str.replace(/^\s*|\s*$/g,"");
	} 


//specialized functions
	function waitLogout(request)	{
		//reloadWindow('showHomeLayout');
		
		addressBar = window.location.toString();
		if(addressBar.charAt(4) == "s"){
			addressBar="http" + addressBar.slice(5);
		}
		endOfURL = addressBar.indexOf("?");
		addressBar=addressBar.slice(0,endOfURL);
		window.location = addressBar+"?event=showHomeLayout";
		
	};
	
	function verifyLogin(request)	{
		if(trim(request.responseText) == 'loginSuccess') {
			reloadWindow('redirectInitialPage');
		}
		else {
			callAjaxMain('userShowLogin&message=' + trim(request.responseText));
		}
	}
	
	// for the "did you know" widget
	function startDidYouKnow(refreshInterval)	{
		setTimeout(startDidYouKnow, didYouKnowCycleTime * 1000);//loop
		didYouKnowCycleNext();
	}	

	function didYouKnowCycleNext()	{
		//didYouKnowFaderObj.custom(1,0);//hide
		callAjax('showDidYouknow','didYouKnowContainer','showDidYouKNowShow');
	}	

	function showDidYouKNowShow(request)	{// waits for the request to complete then shows the text
		//didYouKnowFaderObj.custom(0,1);//show
	}		

	// for the "apply online" page
	function doCheckApplyOnline(oForm){
		// check the form for corrected data
		var message = ""
		var errorColor = "#ffcaca";
		var defaultColor = "#ffffff";
		
		// Do these checks in the reverse order that their fields appear on the page. This allows the focus the given to the top most missed field.
		
		if (oForm.resume.value == ""){
			message = "Resume\n" + message;
			oForm.resume.style.background = errorColor;
			oForm.resume.focus();
			}else{
			oForm.resume.style.background = defaultColor;
		}
		if (oForm.coverLetter.value == ""){
			message = "Cover Letter\n" + message;
			oForm.coverLetter.style.background = errorColor;
			oForm.coverLetter.focus()
			}else{
			oForm.coverLetter.style.background = defaultColor;
		
		}
		if (oForm.referrer.value == ""){
			message = "Position\n" + message;
			oForm.position.style.background = errorColor;
			oForm.position.focus();
			}else{
			oForm.position.style.background = defaultColor;
		}
		if (oForm.referrer.value == ""){
			message = "Referred By\n" + message;
			oForm.referrer.style.background = errorColor;
			oForm.referrer.focus();
			}else{
			oForm.referrer.style.background = defaultColor;
		}
		if (oForm.salary.value == ""){
			message = "Desired Salary\n" + message;
			oForm.salary.style.background = errorColor;
			oForm.salary.focus();
			}else{
			oForm.salary.style.background = defaultColor;
		}
		if (!emailcheck(oForm.email)){
			message = "Email Address\n" + message;
			oForm.email.style.background = errorColor;
			oForm.email.focus();
			}else{
			oForm.email.style.background = defaultColor;
		}
		if (oForm.phone.value == ""){
			message = "Phone\n" + message;
			oForm.phone.style.background = errorColor;
			oForm.phone.focus();
			}else{
			oForm.phone.style.background = defaultColor;
		}
		
		if (oForm.last_name.value == ""){
			message = "Last Name\n" + message;
			oForm.last_name.style.background = errorColor;
			oForm.last_name.focus();
			}else{
			oForm.last_name.style.background = defaultColor;
		}
		
		if (oForm.first_name.value == ""){
			message = "First Name\n" + message;
			oForm.first_name.style.background = errorColor;
			oForm.first_name.focus();
			}else{
			oForm.first_name.style.background = defaultColor;
		}
		
		if(message != ""){
			message = "The following fields need to completed:\n\n" + message;
			alert(message);
			return false;
		}
		
		
		oForm.action_name.value = "send"; // required to determine that user submitted form (to avoid data sending because of form multiply reloads)
		return true;
	}
	
	function emailcheck(email)	{
		if (email.value.indexOf("@") + "" != "-1" &&
			email.value.indexOf(".") + "" != "-1" &&
			email.value != "") 
		return true;
		else return false;
	} 

	
	// Check for null and for empty
	function isFilled(elm) {
		if (elm.value == "" ||
			elm.value == null) 
		return false;
		else return true;
	}
	
	function isReady(form) {
		
		if (isFilled(form.First_Name) == false) { 
		alert("Please enter your first name.");
		return false;
		}		
		
		// is address element a real email address?
		if (emailcheck(form.email) == false) { 
		alert("Please enter your email address.");
		return false;
		}
	return true;
	}

	
	// views/reports/rpt_option.cfm
	function preSubmit(strObjName) {
		document.formRO.id1.value = strObjName;
		if ( strObjName != 'bnGenerateReport') {
			document.formRO.target = '_self';	
			document.formRO.action = "javascript:callAjaxForm('reportOption&id="+ document.formRO.id.value + "',this,'mainAJAXupdate','');";			
		}
		if (strObjName == 'bnGenerateReport') {
			document.formRO.target = '_blank';			
			document.formRO.action = 'index.cfm?event=reportOption&printView=true&id=' + document.formRO.id.value;		
		}		

			document.formRO.submit();
		return false;
	};
	
	function selectAllRows_Click(currCheckBox) {
		var currentForm = document.formRO;
		var aCheckBoxes = document.formRO.ckSelectedItem;
		var aTxtNumSelected = document.formRO.txtNumSelected;
		var aTxtItemsSelectedOnPage = document.formRO.txtItemsSelectedOnPage;		
	
		if (currCheckBox.checked) {
			// check All
				numSelectedOnPage = -1;// minus the "select all" checkbox
				for(i=0; i<currentForm.elements.length; i++)	{
					if(currentForm.elements[i].type=="checkbox")	{
						currentForm.elements[i].checked=true;
						numSelectedOnPage = numSelectedOnPage + 1;
					}
				}
		}
		else {
			// un Check All
				for(i=0; i<currentForm.elements.length; i++)	{
					if(currentForm.elements[i].type=="checkbox")	{
						currentForm.elements[i].checked=false;
						numSelectedOnPage = 0;
					}
				}
		}

		aTxtNumSelected.value = numSelectedOnPage;
		aTxtItemsSelectedOnPage.value = numSelectedOnPage;
	}

	// Used in reports
		var numSelectedOnPage = new Number(0);

	function ckSelectedItem_Click(currCheckBox) {  // I fixed it! RW [there may be a better solution if we can identifiy which element is clicked on]
		var aTxtNumSelected = document.formRO.txtNumSelected;
		var aTxtItemsSelectedOnPage = document.formRO.txtItemsSelectedOnPage;
		var numSelectedOrig = new Number(aTxtNumSelected.value);

		if (currCheckBox.checked) {
			numSelectedOnPage = numSelectedOnPage + 1;
		}
		else {
			numSelectedOnPage = numSelectedOnPage - 1;
		}			

		aTxtNumSelected.value = numSelectedOrig + numSelectedOnPage - aTxtItemsSelectedOnPage.value;
		aTxtItemsSelectedOnPage.value = numSelectedOnPage;

	}
	
	function openMediaPlayer(URLstr) {
		var windowName=Math.floor(Math.random()*11);
		window.open('index.cfm?event='+URLstr+'&printView=true', windowName,'scrollbars=no,menubar=no,height=180,width=420,resizable=yes,toolbar=no,location=no,status=no');
		
		}
	 