var syncProxy = new test();
var asyncProxy = new test (new callback());

function RunJobSearch () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('jobSearchFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_job_search (objTemp);
	return false;
}

function RunCandidateSearch () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('candidateSearchFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_candidate_search (objTemp);
	return false;
}

function RunEducationCPDSearch () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('educationCPDFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_education_cpd (objTemp);
	return false;
}

function RunSocialWorkCPDSearch () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('socialworkCPDFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_socialwork_cpd (objTemp);
	return false;
}

function EducationCPDApply  () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('educationCPDFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.education_cpd_apply (objTemp);
	return false;
}

function SocialWorkCPDApply  () {
	var x;
	var objTemp=new Object();
	if (document.getElementById ('socialworkapplyCPDFRM')) {
		var myElements = document.getElementById ('socialworkapplyCPDFRM').elements;
	} else {
		var myElements = document.getElementById ('socialworkCPDFRM').elements;
	}
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			if (myElements[x].type == 'checkbox') {
				if (myElements[x].checked) {
					objTemp[''+myElements[x].name+''] = myElements[x].value;
				}
			} else {
				objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
			}
		}
	}
	asyncProxy.socialwork_cpd_apply (objTemp);
	return false;
}

function AdjustStyles (IsHome) {
//--- adjust the settings of the page according to the page you are on
	/*if (IsHome == 1) {
		document.getElementsByTagName("BODY")[0].style.background = '#333333 url(images/website/phase2/lfsHeaderBg.gif) no-repeat top center';
		//document.getElementById ('header').style['height'] = '231px';
		document.getElementById ('main').style['paddingTop'] = '86px';
		if (document.getElementById ('topElement')) {
			document.getElementById ('topElement').style['display'] = '';
			//document.getElementById ('topElement2').style['display'] = '';
		}
	} else {
		document.getElementsByTagName("BODY")[0].style.background = '#333333 url(images/website/phase2/bg-body.gif) repeat-x';
		//document.getElementById ('header').style['height'] = '164px';
		document.getElementById ('main').style['paddingTop'] = '20px';
		if (document.getElementById ('topElement')) {
			document.getElementById ('topElement').style['display'] = 'none';
			//document.getElementById ('topElement2').style['display'] = 'none';
		}
	}*/
}

function ProcessAjaxComponent (userRequest) {
	var loading = document.getElementById('HTML_AJAX_LOADING');
	if (loading) {
		loading.style.display = 'block';
	}
	asyncProxy.process_component(userRequest);
	}

function LinkTo (url, friendlyname) {
	ProcessAjaxComponent (url); dhtmlHistory.add(url, friendlyname);
}

function doLogin () {
	var objTemp = new Object();
	objTemp['Username'] = document.getElementById('Username').value;
	objTemp['Password'] = document.getElementById('Password').value;
	asyncProxy.mainlogin(objTemp);
}

function doForgotPassword () {
	var objTemp = new Object();
	objTemp['Username'] = document.getElementById('Username').value;
	asyncProxy.forgotpassword(objTemp);
}

function initPage() {
	var arrLabels=document.getElementsByTagName("label");
	for (var i=0; i < arrLabels.length; i++) {
		var objTemp=arrLabels[i];
		var strFor=objTemp.getAttribute('for');
		if (strFor!='') {
			objTemp.setAttribute('id','l'+strFor);
			objTemp.setAttribute('classOrig',objTemp.getAttribute('class'));
		}
	}
	document.getElementById('username').focus();
}

function setElement (strElement,blnValidated) {
	var objElem = document.getElementById ('l'+strElement);
	if (objElem) {
		if (blnValidated==1) {
			strClass=objElem.getAttribute('classOrig');
		}else{
			strClass='error';}objElem.setAttribute('class',''+strClass);
		}return false;
	}

function toggleElement(strElement,blnVisible) {var objStyle=document.getElementById(strElement).style;if(objStyle){objStyle.display=(blnVisible==1)?'block':'none';}}

function showHideDiv(vis){
		if (vis) {
			document.getElementById('globalDiv').style.display='block';
			document.getElementById('shadow').style.width=document.body.offsetWidth;
			document.getElementById('shadow').style.height='1600px';
			document.getElementById('shadow').style.display='block';
			document.getElementById('globalDiv').style.top = '500px';
			document.getElementById('globalDiv').style.left = '200px';
		} else {
			document.getElementById('globalDiv').style.display='none';
			document.getElementById('shadow').style.display='none';
		}
		return false;
}

function UpdateHiddenDateField(Element, DatePart) {
// Updates the hidden date field using results from the day, month and year dropdowns
// Triggered by on onchange on the day, month and year dropdowns
	Form		= Element.form;
	Value		= Element.value;
	ElementName	= Element.name;
	ElementName	= ElementName.replace('_'+DatePart,'');
	Element		= Form.elements[ElementName];
	DateSTR		= Element.value; // Date is a reserved word
	DateARY		= DateSTR.split('-');
	ErrorText	= '';
	// Ensure not selecting 31st for say April
	if ( Form.elements[ElementName+'_Year'].value != '0000' && Form.elements[ElementName+'_Month'].value != '00' && Form.elements[ElementName+'_Day'].value != '00' ) {
		switch ( Form.elements[ElementName+'_Month'].value ) {
			// Feb
			case '02':
				/*
					leap years occur in years exactly divisible by four,
     				except that years ending in 00 are leap years
      				only if they are divisible by 400.
	  			*/
				if ( Form.elements[ElementName+'_Year'].value.search('00$') > -1 ) {
					if ( Form.elements[ElementName+'_Year'].value % 400 == 0 ) {
						NumDays = 29;
					} else {
						NumDays = 28;
					}
				} else {
					if ( Form.elements[ElementName+'_Year'].value % 4 == 0 ) {
						NumDays = 29;
					} else {
						NumDays = 28;
					}
				}
				if ( Form.elements[ElementName+'_Day'].value > NumDays ) {
					alert('There are a maximum of '+NumDays+' days in February '+Form.elements[ElementName+'_Year'].value);
					Form.elements[ElementName+'_Day'].selectedIndex = NumDays;
					if ( DatePart == 'Day' ) {
						Value = NumDays;
					} else {
						DateARY[2] = NumDays;
					}
				}
			break;
			// Apr
			case '04':
				if ( Form.elements[ElementName+'_Day'].value > 30 ) {
					alert('There are only 30 days in April');
					Form.elements[ElementName+'_Day'].selectedIndex = 30;
					if ( DatePart == 'Day' ) {
						Value = 30;
					} else {
						DateARY[2] = 30;
					}
				}
			break;
			// Jun
			case '06':
				if ( Form.elements[ElementName+'_Day'].value > 30 ) {
					alert('There are only 30 days in June');
					Form.elements[ElementName+'_Day'].selectedIndex = 30;
					if ( DatePart == 'Day' ) {
						Value = 30;
					} else {
						DateARY[2] = 30;
					}
				}
			break;
			// Sep
			case '09':
				if ( Form.elements[ElementName+'_Day'].value > 30 ) {
					alert('There are only 30 days in September');
					Form.elements[ElementName+'_Day'].selectedIndex = 30;
					if ( DatePart == 'Day' ) {
						Value = 30;
					} else {
						DateARY[2] = 30;
					}
				}
			break;
			// Nov
			case '11':
				if ( Form.elements[ElementName+'_Day'].value > 30 ) {
					alert('There are only 30 days in November');
					Form.elements[ElementName+'_Day'].selectedIndex = 30;
					if ( DatePart == 'Day' ) {
						Value = 30;
					} else {
						DateARY[2] = 30;
					}
				}
			break;
		}
	}

	switch (DatePart) {
		case 'Year':
			DateARY[0] = Value;
		break;
		case 'Month':
			DateARY[1] = Value;
		break;
		case 'Day':
			DateARY[2] = Value;
		break;
	}
	Element.value = DateARY[0] + '-' + DateARY[1] + '-' + DateARY[2];
}

function OnlyDecimals (which) {
//--- make sure that there are only two decimals
	var x = 0;
	x = which.value;
	var oldvalue = 0;
	oldvalue = which.value;
	var newvalue = '';
	var testing = 0;
	var i =0;
	for (i = 0; i < x.length; i++) {
	//--- go thru all of the characters
		switch (x.charAt (i)) {
			case "0" :
			case "1" :
			case "2" :
			case "3" :
			case "4" :
			case "5" :
			case "6" :
			case "7" :
			case "8" :
			case "9" :
			case "." :	newvalue = newvalue + x.charAt (i);
						if ((i < x.length) && (x.charAt (i) == '.')) {
							testing = x.substr (i, 100);
						}
						break;
				break;
			default : //--- here do nothing
				break;
		}; //--- end switch
	}
	which.value = newvalue;
	x = which.value;
	if (x.charAt (x.length - 1) == ".") {
		return true;
	} else {
		which.value = (Math.round (x * 100)) / 100;
		//--- add in here for the zero after decimal problem
		if ((testing == 0) && (testing != '') && (testing != '.')) {
			if (testing.length < 3) {
				which.value = which.value + testing;
			}
		}
		if (testing.length >= 2) {
		//--- if there are two or more numbers after the decimal
			if ((testing.charAt (2) == '0') && ((testing == 0.00) || (testing < 0.005)))  {
				which.value = which.value + '.00';
			}
		}
	}

	if (which.value == '0') {
		which.value = '';
	}
	if (oldvalue.length > 0) {
		if (oldvalue.charAt (0) == '0') {
			which.value = '0' + which.value;
		}
	}
	return true;
}

function OnlyIntegers (which) {
//--- make sure that there are only two decimals
	var x = 0;
	x = which.value;
	var oldvalue = 0;
	oldvalue = which.value;
	var newvalue = '';
	var testing = 0;
	var i =0;
	for (i = 0; i < x.length; i++) {
	//--- go thru all of the characters
		switch (x.charAt (i)) {
			case "0" :
			case "1" :
			case "2" :
			case "3" :
			case "4" :
			case "5" :
			case "6" :
			case "7" :
			case "8" :
			case "9" :	newvalue = newvalue + x.charAt (i);
						if ((i < x.length) && (x.charAt (i) == '.')) {
							testing = x.substr (i, 100);
						}
						break;
				break;
			default : //--- here do nothing
				break;
		}; //--- end switch
	}
	which.value = newvalue;
	x = which.value;
	if (x.charAt (x.length - 1) == ".") {
		return true;
	} else {
		which.value = (Math.round (x * 100)) / 100;
		//--- add in here for the zero after decimal problem
		if ((testing == 0) && (testing != '') && (testing != '.')) {
			if (testing.length < 3) {
				which.value = which.value + testing;
			}
		}
		if (testing.length >= 2) {
		//--- if there are two or more numbers after the decimal
			if ((testing.charAt (2) == '0') && ((testing == 0.00) || (testing < 0.005)))  {
				which.value = which.value + '.00';
			}
		}
	}

	if (which.value == '0') {
		which.value = '';
	}
	if (oldvalue.length > 0) {
		if (oldvalue.charAt (0) == '0') {
			which.value = '0' + which.value;
		}
	}
	return true;
}

function showHideDiv(vis){
	if (vis) {
		var height = 0;
		var width = 0;
		height = windowTotalHeight ();
		width = windowWidth ();

		if (height  > windowHeight ()) {
			document.getElementById('dummyTD').style.height = (height - windowHeight ()) + 'px';
		} else {
			document.getElementById('dummyTD').style.height = '0px';
		}
		document.getElementById('dummyTD').style.width = width + 'px';

		document.getElementById('globalDivTD').style.height = windowHeight () + 'px';
		document.getElementById('globalDivTD').style.width = width + 'px';

		document.getElementById('globalDiv').style.height = height + 'px';
		document.getElementById('globalDiv').style.width = width + 'px';
		document.getElementById('globalDiv').style.align = 'center';
		document.getElementById('globalDiv').style.valign = 'middle';
		document.getElementById('globalDiv').style.display='block';

		document.getElementById('shadow').style.width= width + 'px';
		document.getElementById('shadow').style.height= height + 'px';
		document.getElementById('shadow').style.display='block';
	} else {
		document.getElementById('globalDiv').style.display='none';
		document.getElementById('shadow').style.display='none';
	}
	return false;
}

function windowWidth() {
    var width = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		width = window.innerWidth;
		return parseInt(width);
    } else if( document.documentElement && document.documentElement.clientWidth ) {
		//IE 6+ in 'standards compliant mode'
		width = document.documentElement.clientWidth;
		return parseInt(width);
    } else if( document.body && document.body.clientWidth ) {
		//IE 4 compatible
		width = document.body.clientWidth;
    }
    return parseInt(width);
}

function windowTotalHeight () {
	var x,y;
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight;
	var test3 = document.getElementById ('globalDivTD').clientHeight;

	if (test1 > test2) {
	//--- all but Explorer Mac
		y = document.body.scrollHeight;
	} else {
	// Explorer Mac and would also work in Explorer 6 Strict, Mozilla and Safari
		y = document.body.offsetHeight;
	}

	if (test3 > y) {
		y = test3;
	}

	return y;
}

function windowHeight() {
    var height = 0;
	if( typeof( window.innerHeight ) == 'number' ) {
		//Non-IE
		height = window.innerHeight;
		return parseInt(height);
    } else if( document.documentElement && document.documentElement.clientHeight ) {
		//IE 6+ in 'standards compliant mode'
		height = document.documentElement.clientHeight;
		return parseInt(height);
    } else if( document.body && document.body.clientHeight ) {
		//IE 4 compatible
		height = document.body.clientHeight;
    }
    return parseInt(height);
}

function setAlertText (alerttext) {
	document.getElementById ('layerdivtext').innerHTML = alerttext;
	showHideDiv (true);
}

function UpdateHiddenTimeField(Element, TimePart) {
// UpTimes the hidden Time field using results from the hour and minute dropdowns
// Triggered by on onchange on the hour and minute dropdowns
	Form		= Element.form;
	ElementName	= Element.name;
	ElementName	= ElementName.replace('_'+TimePart, '');
	Form.elements[ElementName].value = Form.elements[ElementName+'_Hour'].value+''+Form.elements[ElementName+'_Minute'].value;
}

function GoToLink (url, friendlyname) {
	ProcessAjaxComponent (url); dhtmlHistory.add(url, friendlyname);
}

function ProcessRegistrationForm () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('registrationFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_registration_form (objTemp);
	return false;
}

function ProcessProfileUpdateForm () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('registrationFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_profile_update_form (objTemp);
	return false;
}

function ProcessReferaFriend () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('referralFRM').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_referafriend_form (objTemp);
	return false;
}

function doContact () {
	var x;
	var objTemp=new Object();
	var myElements = document.getElementById ('contactform').elements;
	for (x = 0; x < myElements.length; x++) {
		if (myElements[x].name == '' || myElements[x].id == '') {
			continue;
		}
		if (myElements[x].type == 'radio') {
			if (myElements[x].checked) {
				objTemp[''+myElements[x].name+''] = myElements[x].value;
			}
		} else {
			objTemp[''+myElements[x].name+''] = document.getElementById(myElements[x].id).value;
		}
	}
	asyncProxy.process_contact_form (objTemp);
	return false;
}

function doQuestionAdd () {
	var x;
	var objTemp=new Object();
	objTemp['Question'] = document.getElementById('question').value;
	objTemp['QuestionName'] = document.getElementById('question_name').value;
	asyncProxy.process_question_add (objTemp);
	return false;
}

function doBlogComment () {
	var x;
	var objTemp=new Object();
	objTemp['Blog_Comments'] = document.getElementById('Blog_Comments').value;
	objTemp['BlogID'] = document.getElementById('BlogID').value;
	asyncProxy.process_blog_comment (objTemp);
	return false;
}

function AddComment (tableid, username, datetime, comment) {
 	if (document.getElementById(tableid)) {
	 	var tbody = document.getElementById(tableid).getElementsByTagName("TBODY")[0];
		var row = document.createElement("TR");
	    var td1 = document.createElement("TD")
	    var strHtml1 = username;
	    td1.innerHTML = strHtml1;
	    var td2 = document.createElement("TD")
	    var strHtml2 = datetime;
	    td2.innerHTML = strHtml2;
	    var td3 = document.createElement("TD")
	    var strHtml3 = comment;
	    td3.innerHTML = strHtml3;
	    row.appendChild(td1);
	    row.appendChild(td2);
	    row.appendChild(td3);
	    tbody.appendChild(row);
 	} else {
 		alert ('Thank you, your comment has been added successfully.');
 	}
}

var lastclicked = 0;

function ClearNav () {
	var x = 0;
	var elemname = '';
	for (x = 0; x <= 100; x++) {
		elemname = 'nav_' + x;
		if (lastclicked == x) {
			document.getElementById (elemname).className = 'navlinkhover';
			continue;
		}
		if (document.getElementById (elemname)) {
			document.getElementById (elemname).className = 'navlink';			
		} else {
			break;
		}
	}
}


