function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function validateNewAccountForm(f) {

	if (f.emailErrorState.value == 1) {
		f.userEmail.className = 'formInputError';
		alert("Please correct the problem with your email address.");
		return false;
	}

	var requiredFields = new Array("userEmail", "newPassword", "newPassword2", "userFirstName", "userLastName", "userAddr1", "userPostCode");
	var errorState = 0;
	var firstField = '';

	for (var i = 0; i < requiredFields.length; i++) {

		//var t = eval("f." + requiredFields[i]);

		var t = f.elements[requiredFields[i]];

		if (t.value == '') {
			t.className = 'formInputError';
			firstField == '' ? firstField = t.name : firstField = firstField;
			errorState = 1;
		} else {
			t.className = 'formInput';
		}

	}

	if (errorState == 1) {
		alert("Please complete the highlighted fields.");
		if (firstField != '') f.elements[firstField].focus();
		return false;
	}

	if (f.newPassword.value != f.newPassword2.value) {
		alert("The values in the two password fields don't match!");
		return false;
	} else if (f.newPassword.value < 4) {
		alert("Your password must be at least 4 characters long.");
		return false;
	}

	f.formAction.value = 'registerUser';
	f.submit();

	return true;
}

function validateEmployerForm(f) {
	var requiredFields = new Array("primaryContact", "companyName", "address1",
		"addressRegion", "postCode", "telephone", "emailAddress", "jobIndustry");
	var errorState = 0;
	var firstField = '';
	
	for (var i = 0; i < requiredFields.length; i++) {
		var t = f.elements[requiredFields[i]];

		switch (t.tagName) {
			case 'INPUT':
				if (t.type == 'text') {
					if (t.value == '') {
						errorState = 1;
						t.className = 'formInputError';
						firstField == '' ? firstField = t.name : firstField = firstField;
					} else {
						t.className = 'formInput';
					}
				}
				break;
			case 'SELECT':
				if (t.selectedIndex == 0) {
					errorState = 1;
					t.className = 'formInputError';
					firstField == '' ? firstField = t.name : firstField = firstField;
				} else {
					t.className = 'formInput';
				}
		}
	}

	if (errorState == 1) {
		if (firstField != '') f.elements[firstField].focus();
		alert("Please complete all fields.");
		return false;
	}
	
	f.formAction.value = 'submitEmployerForm';
	f.submit();
	
	return true;
	
}

function confirmDeleteEmployer(f) {
	if (confirm("Are you sure you want to delete this record?\n\nThis action cannot be undone.")) {
		f.formAction.value = 'deleteEmployer';
		f.submit();
		return true;
	}
	return false;
}

function validateJobForm(f) {
	var requiredFields = new Array("primaryContact", "companyName", "address1",
		"addressRegion", "postCode", "telephone", "emailAddress", "jobIndustry",
		"jobTitle", "jobDescription");
	var errorState = 0;
	var firstField = '';
	
	for (var i = 0; i < requiredFields.length; i++) {
		var t = f.elements[requiredFields[i]];

		switch (t.tagName) {
			case 'INPUT':
			case 'TEXTAREA':
				if (t.type == 'text' || t.type == 'textarea') {
					if (t.value == '') {
						errorState = 1;
						t.className = 'formInputError';
						firstField == '' ? firstField = t.name : firstField = firstField;
					} else {
						t.className = 'formInput';
					}
				}
				break;
			case 'SELECT':
				if (t.selectedIndex == 0) {
					errorState = 1;
					t.className = 'formInputError';
					firstField == '' ? firstField = t.name : firstField = firstField;
				} else {
					t.className = 'formInput';
				}
				break;
		}
	}

	if (errorState == 1) {
		if (firstField != '') f.elements[firstField].focus();
		alert("Please complete the highlighted fields.");
		return false;
	}
	
	f.submit();
	
	return true;
	
}

function confirmDeleteJobSeeker(f) {
	if (confirm("Are you sure you want to delete this record?\n\nThis action cannot be undone.")) {
		f.formAction.value = 'deleteJobSeeker';
		f.submit();
		return true;
	}
	return false;
}

function validateTenderForm(f) {
	var requiredFields = new Array("businessName", "tenderTitle", "projectLocation", 
		"startDate", "endDate", "dueDate", "tenderDescription");
		
	var errorState = 0;
	var firstField = '';
	
	for (var i = 0; i < requiredFields.length; i++) {
		var t = f.elements[requiredFields[i]];

		switch (t.tagName) {
			case 'TEXTAREA':
				if (t.innerHTML == '') {
					errorState = 1;
					t.className = 'formInputError';
					firstField = '' ? firstField = t.name : firstField = firstField;
				} else {
					t.className = 'formInput';
				}
				break;
			case 'INPUT':
				if (t.type == 'text') {
					if (t.value == '') {
						errorState = 1;
						t.className = 'formInputError';
						firstField == '' ? firstField = t.name : firstField = firstField;
					} else {
						t.className = 'formInput';
					}
				}
				break;
			case 'SELECT':
				if (t.selectedIndex == 0) {
					errorState = 1;
					t.className = 'formInputError';
					firstField == '' ? firstField = t.name : firstField = firstField;
				} else {
					t.className = 'formInput';
				}
		}
	}

	if (errorState == 1) {
		if (firstField != '') f.elements[firstField].focus();
		alert("Please complete all fields.");
		return false;
	}
	
	f.formAction.value = 'submitTenderForm';
	f.submit();
	
	return true;
	
}

function confirmDeleteTender(f) {
	if (confirm("Are you sure you want to delete this tender?\n\nThis action cannot be undone!")) {
		f.formAction.value='deleteTender';
		f.submit();
		return true;
	}
	return false;
}

function validateJobSeekerForm(f) {

	var requiredFields = new Array("title", "firstName", "lastName", "address1", "addressRegion",
			"postCode", "telephone", "emailAddress", "contactMethod", "gender",
			"isGraduate", "ukCitizen", "industryID");
	var errorState = 0;
	var firstField = '';

	for (var i = 0; i < requiredFields.length; i++) {
		var t = f.elements[requiredFields[i]];

		switch (t.tagName) {
			case 'INPUT':
				if (t.type == 'text') {
					if (t.value == '') {
						errorState = 1;
						t.className = 'formInputError';
						firstField == '' ? firstField = t.name : firstField = firstField;
					} else {
						t.className = 'formInput';
					}
				}
				break;
			case 'SELECT':
				if (t.selectedIndex == 0) {
					errorState = 1;
					t.className = 'formInputError';
					firstField == '' ? firstField = t.name : firstField = firstField;
				} else {
					t.className = 'formInput';
				}
		}
	}

	if (errorState == 1) {
		if (firstField != '') f.elements[firstField].focus();
		alert("Please complete the highlighted fields.");
		return false;
	}

	if (!f.isGraduate[0].checked && !f.isGraduate[1].checked) {
		alert("Please specify whether or not you are a graduate.");
		return false;
	} else if (!f.ukCitizen[0].checked && !f.ukCitizen[1].checked) {
		alert("Please specify whether or not you are a UK citizen.");
		return false;
	} else if (!f.drivingLicence[0].checked && !f.drivingLicence[1].checked) {
		alert("Please specify whether have a valid driving licence.");
		return false;
	} else if (!f.criminalOffence[0].checked && !f.criminalOffence[1].checked) {
		alert("Please specify whether you have been convicted of a criminal offence in the last 5 years.");
		return false;
	} else if (!f.registeredDisabled[0].checked && !f.registeredDisabled[1].checked) {
		alert("Please specify whether or not you are registered disabled in the UK.");
		return false;
	}

	f.formAction.value = 'submitJobForm';
	f.submit();

	return true;

}

function validateNewAdvertForm(f) {
	var requiredFields = new Array("advertTitle", "advertAddress1", "advertPostCode", "advertDescription");
	var errorState = 0;
	var firstField = '';

	for (var i = 0; i < requiredFields.length; i++) {
		var t = f.elements[requiredFields[i]];

		switch (t.tagName) {
			case 'INPUT':
				if (t.value == '') {
					t.className = 'formInputError';
					firstField == '' ? firstField = t.name : firstField = firstField;
					errorState = 1;
				} else {
					t.className = 'formInput';
				}
				break;
			case 'SELECT':
				if (t.selectedIndex == '' || t.options[t.selectedIndex].value == '') {
					t.className = 'formInputError';
					firstField == '' ? firstField = t.name : firstField = firstField;
					errorState = 1;
				} else {
					t.className = 'formInput';
				}
				break;
			case 'TEXTAREA':
				if (t.innerHTML == '') {
					t.className = 'formInputError';
					firstField == '' ? firstField = t.name : firstField = firstField;
					errorState = 1;
				} else {
					t.className = 'formInput';
				}
				break;
			default:
				break;
		}
	}


	if (errorState == 1) {
		alert("Please complete the highlighted fields." + firstField);
		if (firstField != '') f.elements[firstField].focus();
		return false;
	}

	f.submit();
	return true;
}

function confirmDeleteAdvert(f) {
	if (confirm("Are you sure you want to delete this advert?\n\nThis action cannot be undone!")) {
		f.formAction.value = 'deleteAdvert';
		f.submit();
		return true;
	}
	return false;
}

function closeErrorTable(id) {
	if (document.getElementById('errorTable_' + id)) {
		document.getElementById('errorTable_' + id).style.display = 'none';
	}
}

function validateLoginForm(f) {
	if (f.userEmail.value == '' || f.password.value == '') {
		alert("Please enter your email address and password.");
		return false;
	}

	f.formAction.value = 'doLogin';
	f.submit();

	return true;
}

function focusUsernameField(f) {
	if (f.value == 'Email Address...') {
		f.value = '';
	}
}

function blurUsernameField(f) {
	if (f.value == '') {
		f.value = 'Email Address...';
	}
}

function blurPasswordField(f) {
	if (f.value == '') {
		f.value = 'Password...';
	}
}

function focusPasswordField(f) {
	if (f.value == 'Password...') {
		f.value = '';
	}
}

function addLoadEvent(func) {
	var oldOnLoad = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldOnLoad();
			func();
		}
	}
}

function validateTenderEnquiry(f) {

	var requiredFields = new Array("enquiryName", "enquiryEmail");
	var errorState = 0;
	var firstField = '';

	for (var i = 0; i < requiredFields.length; i++) {

		var t = f.elements[requiredFields[i]];

		if (t.value == '') {
			t.className = 'formInputError';
			firstField == '' ? firstField = t.name : firstField = firstField;
			errorState = 1;
		} else {
			t.className = 'formInput';
		}

	}

	if (errorState == 1) {
		alert("Please complete the highlighted fields.");
		if (firstField != '') f.elements[firstField].focus();
		return false;
	}
	
	f.formAction.value = 'sendTenderEnquiry';
	f.enquirySubmitButton.disabled = true;
	f.submit();
	
}

function validateJobEnquiry(f) {

	var requiredFields = new Array("enquiryName", "enquiryEmail");
	var errorState = 0;
	var firstField = '';

	for (var i = 0; i < requiredFields.length; i++) {

		var t = f.elements[requiredFields[i]];

		if (t.value == '') {
			t.className = 'formInputError';
			firstField == '' ? firstField = t.name : firstField = firstField;
			errorState = 1;
		} else {
			t.className = 'formInput';
		}

	}

	if (errorState == 1) {
		alert("Please complete the highlighted fields.");
		if (firstField != '') f.elements[firstField].focus();
		return false;
	}
	
	f.formAction.value = 'sendJobEnquiry';
	f.enquirySubmitButton.disabled = true;
	f.submit();
	
}

function confirmViewTender(tenderID) {
	var msg = 'Please click "OK" to confirm that you wish to view the tender details';
	msg += "\n\nYou will be charged one credit for viewing this record.\n\n";
	msg += "Click 'Cancel' to return to the tender list.";
	if (confirm(msg)) {
		document.location.href='/viewTender/' + tenderID;
	}
}
