/* // error checking functions //

function checkEmailInput(form) {
	if (invalidEmail(form.elements['emailaddress'].value)) {
		alert('Please enter a valid email address');
		form.elements['emailaddress'].focus();
		return false;
	}
	else return true;
}

function checkReason(form) {
	if (form.elements['UnlockReason'].value=="4") document.getElementById('OtherUnlockReasonId').style.display="block";
	else document.getElementById('OtherUnlockReasonId').style.display="none";
}

// data entry form checking functions //
*/

/* function checkRenewKey(form) {
	var errormsg="";
	var intstring="Please use international format (+xx xxxx xxxx xxxx), eg +64 9 476 7124 or +1 514 648 6648\n";

	if (form.elements['RenewalExpiration'].value=="") errormsg+="- Renewal Period is empty\n";
	if (form.elements['txtRegSiteId'].value=="") errormsg+="- Site ID is empty\n";
	if (form.elements['txtRegSiteName'].value=="") errormsg+="- Site Name is empty\n";
	if (form.elements['txtRegSiteAddress'].value=="") errormsg+="- Site Address is empty\n";
	if (form.elements['txtRegSiteContact'].value=="") errormsg+="- Site Contact is empty\n";
	if (invalidEmail(form.elements['txtRegSiteEMail'].value)) errormsg+="- Site Email Address is invalid\n";
	if (invalidPhoneNumber(form.elements['txtRegSitePhone'].value)) errormsg+="- Site Phone Number is invalid. "+intstring;
	if ((form.elements['txtRegSiteFax'].value.length>0) && (invalidPhoneNumber(form.elements['txtRegSiteFax'].value))) errormsg+="- Site Fax Number is invalid. "+intstring;

	if (form.elements['txtRegInstallerName'].value=="") errormsg+="- Installer Company Name is empty\n";
	if (form.elements['txtRegInstallerAddress'].value=="") errormsg+="- Installer Company Address is empty\n";
	if (form.elements['txtRegInstallerContact'].value=="") errormsg+="- Installer Name is empty\n";
	if (invalidEmail(form.elements['txtRegInstallerEMail'].value)) errormsg+="- Installer Email Address is invalid\n";
	if (invalidPhoneNumber(form.elements['txtRegInstallerPhone'].value)) errormsg+="- Installer Phone Number is invalid. "+intstring;
	if ((form.elements['txtRegInstallerFax'].value.length>0) && (invalidPhoneNumber(form.elements['txtRegInstallerFax'].value))) errormsg+="- Installer Fax Number is invalid. "+intstring;

	if (errormsg=="") return true;
	else {
		alert("You have the following errors\n\n"+errormsg);
		return false;
	}
}

function checkAssignUser(form) {
	if (form.elements['AddAssignToUserId'].value=="") {
		alert("Please enter a name or email address");
		form.elements['AddAssignToUserName'].focus();
		return false;
	}
	else return true;
} */

/*function checkLogin(form) {
	if (invalidEmail(form.elements['LoginEmailAddress'].value)) {
		alert("Please enter a valid email address");
		form.elements['LoginEmailAddress'].focus();
		return false;
	}
	else if ((form.elements['LoginPassword'].value=="") || (invalidInput(form.elements['LoginPassword'].value))) {
		alert("Please enter your password");
		form.elements['LoginPassword'].value="";
		form.elements['LoginPassword'].focus();
		return false;
	}
	else return true;
} */

/* function checkKB(form) {
	var errormsg="";
	if (form.elements['title'].value.length<10) errormsg+="\n- Title";
	if (form.elements['summary'].value.length<10) errormsg+="\n- Summary";
	if (form.elements['details'].value.length<10) errormsg+="\n- Details";
	if (form.elements['date'].value.length<10) errormsg+="\n- Date";
	if (form.elements['appliesto'].value.length<2) errormsg+="\n- Applies To";
	if (form.elements['location'].value.length<10) errormsg+="\n- Location";
	if (form.elements['version'].value=="") errormsg+="\n- Version";
	if (form.elements['author'].value.length<5) errormsg+="\n- Author";
	if (form.elements['relateddocs'].value=="") errormsg+="\n- Related Documents";
	if (errormsg=="") {
		if (form.elements['title'].value.match("&")) {
			alert("Please remove the & from the title, as this will cause problems with the RSS feed");
			return false;
		}
		else if (form.elements['summary'].value.match("&")) {
			alert("Please remove the & from the summary, as this will cause problems with the RSS feed");
			return false;
		}
		else if (form.elements['details'].value.match("&")) {
			alert("Please remove the & from the description, as this will cause problems with the RSS feed");
			return false;
		}
		else return true;
	}
	else {
		alert("You have left the following fields empty:\n"+errormsg);
		return false;
	}
}

function checkSearch(form) {
	if (form.elements['searchstr'].value.length<3) return false;
	else return true;
}

function checkImageUpload(form) {
	if (form.elements['filename'].value=="") {
		alert("Please select an image");
		form.elements['filename'].focus();
		return false;
	}
	else if (form.elements['title'].value=="") {
		alert("Please enter a title");
		form.elements['title'].focus();
		return false;
	}
	else return true;
}

function checkDelegateImageUpload(form) {
	if (form.elements['filename'].value=="") {
		alert("Please select an image");
		form.elements['filename'].focus();
		return false;
	}
	else if (form.elements['UserId'].value=="") {
		alert("Please select a user");
		form.elements['UserId'].focus();
		return false;
	}
	else return true;
}

function checkConfirm(str) {
	if (confirm("Are you sure that you want to "+str)) return true;
	else return false;
}

function checkKeyOrder(form) {
	if (form.elements['product_id'].value=="") {
		alert("Please select the card type");
		form.elements['product_id'].focus();
		return false;
	}
	else if (form.elements['quantity'].value<1) {
		alert("Please enter the quantity");
		form.elements['quantity'].focus();
		return false;
	}
	else if (form.elements['po_number'].value.length<3) {
		alert("Please enter a valid PO number");
		form.elements['po_number'].focus();
		return false;
	}
	else if (confirm("Are you sure you want to place this order?")) return true;
	else return false;
}

function updateKeyOrder(form) {
	if (form.elements['type_id'].value==3) {
		form.elements['cd_key'].disabled=false;
		document.getElementById('cd_key_input').style.color="black";
		form.elements['edition_id'].disabled=true;
		document.getElementById('edition_id_input').style.color="#c0c0c0";
		document.getElementById('edition_text').innerHTML="Software Edition:";
	}
	else if  (form.elements['type_id'].value==4) {
		form.elements['cd_key'].disabled=false;
		document.getElementById('cd_key_input').style.color="black";
		form.elements['edition_id'].disabled=false;
		document.getElementById('edition_id_input').style.color="black";
		document.getElementById('edition_text').innerHTML="Upgrade To:";
		form.elements['quantity'].disabled=true;
		document.getElementById('quantity_id').style.color="#c0c0c0";
	}
	else {
		form.elements['cd_key'].value="";
		form.elements['cd_key'].disabled=true;
		document.getElementById('cd_key_input').style.color="#c0c0c0";
		form.elements['edition_id'].disabled=false;
		document.getElementById('edition_id_input').style.color="black";
		document.getElementById('edition_text').innerHTML="Software Edition:";
		form.elements['quantity'].disabled=false;
		document.getElementById('quantity_id').style.color="black";
	}
}

function checkCompleteOrder(form) {
	count=0;
	for (i=0; i<form.length; i++) if (form[i].checked==true) count++;
	if (count==0) {
		alert("No orders selected. Please select the closed orders, then press confirm");
		return false;
	}
	else {
		if (count==1) str="Are you sure you want to complete this order?";
		else str="Are you sure you want to complete these "+count+" orders?";
		if (confirm(str)) return true;
		else return false;
	}
}

function checkDeleteKey(id) {
	if (confirm("Are you sure you want to delete this key?")) window.location="cmr.php?mId=1&pId=3363&nmId=494&KeyId="+id+"&action=delete";
	else return false;
}

function checkInterestList(form) {
	count=0;
	for (i=0; i<form.length; i++) if (form[i].checked==true) count++;
	if (count==0) {
		alert("Please select the rows you would like to remove, then press delete");
		return false;
	}
	else {
		if (count==1) str="Are you sure you want to remove this user from the list?";
		else str="Are you sure you want to remove these "+count+" users from the list?";
		if (confirm(str)) return true;
		else return false;
	}
}
function ConfirmFirmwareUpload(form) {
	if (form.elements['filename'].value=="") {
		alert("Please select the firmware file to upload");
		form.elements['filename'].focus();
		return false;
	}
	else {
		if (confirm("Are you sure you want to delete the current firmware file and upload this one?")) return true;
		else return false;
	}
}

function checkComments(form) {
	if (form.elements['comments'].value.length<10) return false;
	else return true;
}
*/

/* -------------------- User Admin -------------------- */

function checkCourseId(form) {
	if (form.elements['CourseId'].value=="") {
		alert("Please select the course");
		form.elements['CourseId'].focus();
		return false;
	}
	else {
		if (confirm("Are you sure you want to create this exam?")) return true;
		else return false;
	}
}

/* -------------------- User Registration -------------------- */

function checkRegister(form) {
	var errormsg="";
	var intstring="Please use international format (+xx xxxx xxxx xxxx), eg +64 9 476 7124 or +1 514 648 6648";

	if (form.elements['UserTitle'].value=="") errormsg+="\n- Title is empty";
	if (form.elements['UserFirstName'].value=="") errormsg+="\n- First name is empty";
	if (form.elements['UserLastName'].value=="") errormsg+="\n- Last name is empty";
	if (form.elements['NewCompanyName'].value=="") errormsg+="\n- Company name is empty";
	if (form.elements['NewCompanyAddress'].value=="") errormsg+="\n- Company address is empty";
	if (form.elements['CompanyCountry'].value=="") errormsg+="\n- Company country is empty";

	// if (form.elements['CompanyCity'].value=="") errormsg+="\n- Company city is empty";
	// if ((invalidPhoneNumber(form.elements['CompanyPhone'].value)) && (invalidPhoneNumber(form.elements['CompanyMobile'].value))) errormsg+="\n- Phone number is invalid. "+intstring;
	if ((form.elements['CompanyMobile'].value!="") && (invalidPhoneNumber(form.elements['CompanyMobile'].value))) errormsg+="\n- Mobile number is invalid. "+intstring;

	if (form.elements['UserTypeId'].value=="") errormsg+="\n- User Type is empty";

	if (form.elements['UserExperience'].value=="") errormsg+="\n- Background / History is empty";

	if (invalidEmail(form.elements['UserEmail'].value)) errormsg+="\n- Email address is invalid";
	if (form.elements['UserEmail'].value!=form.elements['UserEmail'].value) errormsg+="\n- Email addresses do not match";

	/* if (invalidInput(form.elements['UserPassword'].value)) errormsg+="\n- Password contains invalid characters";
	if (form.elements['UserPassword'].value.length>20) errormsg+="\n- Password is too long (max 20 characters)";
	if (form.elements['UserPassword'].value.length<8) errormsg+="\n- Password is too short (min 8 characters)";
	if (countNums(form.elements['UserPassword'].value)<2) errormsg+="\n- Password must contain at least 2 numbers";
	if (form.elements['UserPassword'].value!=form.elements['UserPassword2'].value) errormsg+="\n- Passwords do not match"; */

	if (errormsg=="") return true;
	else {
		alert("The following fields are blank or invalid:\n"+errormsg);
		return false;
	}
}

/* -------------------- Lost Password -------------------- */

function checkReminder(form) {
	if (invalidEmail(form.elements['LostEMail1'].value)) {
		alert("Please enter a valid email address");
		form.elements['LostEMail1'].focus();
		return false;
	}
	else if (form.elements['LostEMail1'].value!=form.elements['LostEMail2'].value) {
		alert("Email addresses do not match");
		form.elements['LostEMail2'].focus();
		return false;
	}
	else if (form.elements['secans'].value=="") {
		alert("Please answer the security question");
		form.elements['secans'].focus();
		return false;
	}
	else return true;
}

/* -------------------- Remote Support -------------------- */

function checkSupport(form) {
	if (form.elements['Code'].value.length!=6) {
		alert("Please enter your 6-digit PIN code");
		form.elements['Code'].focus();
		return false;
	}
	else return true;
}

/* -------------------- Feedback -------------------- */

function checkFeedback(form) {
	var errormsg="";

	if (form.elements['feedbackname'].value.length<3) errormsg+="- Name is empty\n";
	if ((form.elements['feedbackemail'].value!="") && (invalidEmail(form.elements['feedbackemail'].value))) errormsg+="- Email address is not valid\n";
	if ((form.elements['feedbackemail'].value=="") && (form.elements['feedbackphone'].value=="")) errormsg+="- Email address and phone number are empty\n";
	if (form.elements['feedbackcity'].value=="") errormsg+="- City is empty\n";
	if (form.elements['feedbackcountryid'].value=="") errormsg+="- Country is empty\n";
	if (form.elements['feedbackcomments'].value=="") errormsg+="- Comments field is empty\n";
	if (form.elements['secans'].value=="") errormsg+="- Security question is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

function checkDINFeedback(form) {
	var errormsg="";

	if (form.elements['feedbackname'].value.length<3) errormsg+="- Name is empty\n";
	if ((form.elements['feedbackemail'].value!="") && (invalidEmail(form.elements['feedbackemail'].value))) errormsg+="- Email address is not valid\n";
	if ((form.elements['feedbackemail'].value=="") && (form.elements['feedbackphone'].value=="")) errormsg+="- Email address and phone number are empty\n";
	if (form.elements['feedbackcity'].value=="") errormsg+="- City is empty\n";
	if (form.elements['feedbackcountryid'].value=="") errormsg+="- Country is empty\n";
	if (form.elements['feedbackmechanical'].value=="") errormsg+="- Mechanical field is empty\n";
	if (form.elements['feedbackelectronics'].value=="") errormsg+="- Electronics field is empty\n";
	if (form.elements['feedbackfeatures'].value=="") errormsg+="- Features field is empty\n";
	if (form.elements['secans'].value=="") errormsg+="- Security question is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

function checkVegasFeedback(form) {
	var errormsg="";

	if (form.elements['feedbackname'].value.length<3) errormsg+="- Name is empty\n";
	if ((form.elements['feedbackemail'].value!="") && (invalidEmail(form.elements['feedbackemail'].value))) errormsg+="- Email address is not valid\n";
	if ((form.elements['feedbackemail'].value=="") && (form.elements['feedbackphone'].value=="")) errormsg+="- Email address and phone number are empty\n";
	if (form.elements['feedbackcity'].value=="") errormsg+="- City is empty\n";
	if (form.elements['feedbackcountryid'].value=="") errormsg+="- Country is empty\n";
	if (form.elements['PrefTime'].value=="") errormsg+="- Preferred time is empty\n";
	if (form.elements['secans'].value=="") errormsg+="- Security question is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

function checkTicketFeedback(form) {
	var errormsg="";

	var found=false;
	for (i=0; i<5; i++) if (form.elements['q1'][i].checked==true) found=true;
	if (found==false) errormsg+="- Inital contact\n";

	found=false;
	for (i=0; i<5; i++) if (form.elements['q2'][i].checked==true) found=true;
	if (found==false) errormsg+="- Efficiency of resolution\n";

	found=false;
	for (i=0; i<5; i++) if (form.elements['q3'][i].checked==true) found=true;
	if (found==false) errormsg+="- Quality of communication\n";

	found=false;
	for (i=0; i<5; i++) if (form.elements['q4'][i].checked==true) found=true;
	if (found==false) errormsg+="- Overall satisfaction\n";

	if (form.elements['CustomerFeedback'].value.length<10) errormsg+="- Comments\n";

	if (errormsg=="") return true;
	else {
		alert("The following questions have not been answered:\n\n"+errormsg);
		return false;
	}
}

/* -------------------- SSN Registration -------------------- */

function checkRegisterKey(form) {
	var errormsg="";
	var intstring="Please use international format (+xx xxxx xxxx xxxx), eg +64 9 476 7124 or +1 514 648 6648\n";

	if (form.elements['SiteName'].value=="") errormsg+="- Site Name\n";
	if (form.elements['SiteAddress1'].value=="") errormsg+="- Site Address\n";
	if (form.elements['SiteAddress3'].value=="") errormsg+="- Site Town/City\n";
	if (form.elements['SiteCountry'].value=="") errormsg+="- Site Country\n";
	if (invalidPhoneNumber(form.elements['SitePhone'].value)) errormsg+="- Site Phone Number is invalid. "+intstring;
	if ((form.elements['SiteFax'].value.length>0) && (invalidPhoneNumber(form.elements['SiteFax'].value))) errormsg+="- Site Fax Number is invalid. "+intstring;
	if (form.elements['SiteContact'].value=="") errormsg+="- Site Contact\n";
	if (invalidEmail(form.elements['SiteEmail'].value)) errormsg+="- Site Email Address is invalid\n";
	if (form.elements['SiteEmail'].value!=form.elements['SiteEmail2'].value) errormsg+="- Site Email Addresses do not match\n";

	if (form.elements['InstallerName'].value=="") errormsg+="- Installer Company Name\n";
	if (form.elements['InstallerAddress1'].value=="") errormsg+="- Installer Company Address 1\n";
	if (form.elements['InstallerAddress3'].value=="") errormsg+="- Installer Company Town/City\n";
	if (form.elements['InstallerCountry'].value=="") errormsg+="- Installer Company Country\n";

	if (invalidPhoneNumber(form.elements['InstallerPhone'].value)) errormsg+="- Installer Phone Number is invalid. "+intstring;
	if ((form.elements['InstallerFax'].value.length>0) && (invalidPhoneNumber(form.elements['InstallerFax'].value))) errormsg+="- Installer Fax Number is invalid. "+intstring;
	if (form.elements['InstallerContact'].value=="") errormsg+="- Installer Name\n";

	if (invalidEmail(form.elements['InstallerEmail'].value)) errormsg+="- Installer Email Address is invalid\n";
	if (form.elements['InstallerEmail'].value!=form.elements['InstallerEmail2'].value) errormsg+="- Installer Email Addresses do not match\n";

	if (form.elements['SSN'].value.length<25) errormsg+="- SSN\n";
	//if (form.elements['MachineKey'].value.length<25) errormsg+="- Machine ID\n";
	//if (form.elements['SiteId'].value=="") errormsg+="- Site ID\n";

	if (errormsg=="") return true;
	else {
		alert("The following fields are blank or invalid\n\n"+errormsg);
		return false;
	}
}

/* -------------------- SSN Admin -------------------- */

function checkSSNDetails(form) {
	var errormsg="";
	if (form.elements['TypeId'].value=="") errormsg+="- Software Type is empty\n";
	if (form.elements['lngEditionIndex'].value=="") errormsg+="- Software Edition is empty\n";
	if (form.elements['txtRegVersionRegistered'].value=="") errormsg+="- Software Version is empty\n";
	if (form.elements['lngRegLicenseType'].value=="") errormsg+="- License Type is empty\n";
	if (form.elements['ExpirationTimeStamp'].value=="") errormsg+="- Expiry Date is empty\n";
	if (form.elements['lngRegClientConnection'].value=="") errormsg+="- Number of Clients is empty\n";
	if (form.elements['lngRegRemainingCount'].value=="") errormsg+="- Registrations Remaining is empty\n";
	if(form.elements['CompanyId'].value=="") errormsg+="- Assigned To is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

function checkAssignUser(form) {
	if (form.elements['adduserid'].value=="") {
		alert("Please enter a name or email address");
		form.elements['addusername'].focus();
		return false;
	}
	else return true;
}

function checkUnassignSSN(ssn, uid) {
	if (checkConfirm("remove this user?")) window.location="index.php?id=151&tab=4&ssn="+ssn+"&userid="+uid+"&action=unassign";
	else return false;
}

function checkUpdateReason(form) {
	if (form.elements['reason'].value.length<4) {
		alert("Please enter a reason for the update");
		form.elements['reason'].focus();
		return false;
	}
	else return true;
}

function checkDeleteSSN(ssn) {
	if (confirm('Marking an SSN as deleted will remove it from all report and lists. Are you sure you want to continue?')) {
		window.location="index.php?id=150&ssn="+ssn+"&action=delete";
		return true;
	}
	else return false;
}

/* -------------------- ICTicket System -------------------- */

function checkTicket(form) {
	if (form.elements['adduserid'].value=="") {
		alert("Please enter the contact name");
		form.elements['addusername'].focus();
		return false;
	}
	else if (form.elements['EnquiryId'].value=="") {
		alert("Please select the enquiry type");
		form.elements['EnquiryId'].focus();
		return false;
	}
	else if (form.elements['Description'].value=="") {
		alert("Please enter the description");
		form.elements['Description'].focus();
		return false;
	}
	else if (form.elements['ShortDescription'].value=="") {
		alert("Please enter the short description");
		form.elements['ShortDescription'].focus();
		return false;
	}
	else return true;
}

function checkNewComment(form) {
	if (form.elements['CommunicationTypeId'].value=="") {
		alert("Please select the communication type");
		form.elements['CommunicationTypeId'].focus();
		return false;
	}
	else if (form.elements['Communication'].value=="") {
		alert("Please enter the details");
		form.elements['Communication'].focus();
		return false;
	}
	else return true;
}

function checkQuickRegister(form) {
	var errormsg="";
	if (form.elements['UserFirstName'].value=="") errormsg+=" - First name is empty\n";
	if (form.elements['UserLastName'].value=="") errormsg+=" - Last name is empty\n";
	if (form.elements['UserCompany'].value=="") errormsg+=" - Company is empty\n";
	if (form.elements['UserCompanyCountry'].value=="") errormsg+=" - Country is empty\n";
	if (invalidEmail(form.elements['UserEMailAddress'].value)) errormsg+=" - Email address is invalid\n";
	if (form.elements['UserMobileNumber'].value=="") errormsg+=" - Phone number is empty";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found\n\n"+errormsg);
		return false;
	}
}

/* -------------------- Product Admin -------------------- */

function checkProductForm(form) {
	if (form.elements['Code'].value=="") {
		alert("Please enter the product code");
		form.elements['Code'].focus();
		return false;
	}
	else if (form.elements['Title'].value=="") {
		alert("Please enter the product title");
		form.elements['Title'].focus();
		return false;
	}
	else if (form.elements['CategoryId'].value=="") {
		alert("Please select a category");
		form.elements['CategoryId'].focus();
		return false;
	}
	/* else if (form.elements['Highlights'].value=="") {
		alert("Please enter the product highlights");
		form.elements['Highlights'].focus();
		return false;
	} */
	else if (form.elements['Description'].value=="") {
		alert("Please enter the description");
		form.elements['Description'].focus();
		return false;
	}
	else return true;
}

function checkDeleteProduct(id) {
	if (checkConfirm("delete this product?")) window.location="<?=$php_self?>&productid="+id+"&action=delete";
	return false;
}

/* -------------------- My Account -------------------- */

function checkAccountDetails(form) {
	var errormsg="";
	var intstring="Please use international format (+xx xxxx xxxx xxxx), eg +64 9 476 7124 or +1 514 648 6648";

	if (form.elements['UserFirstName'].value=="") errormsg+="- First name is empty\n";
	if (form.elements['UserLastName'].value=="") errormsg+="- Last name is empty\n";
	if (invalidEmail(form.elements['UserEMailAddress'].value)) errormsg+="- Email address is invalid\n";
	if ((form.elements['UserMobileNumber'].value!="") && (invalidPhoneNumber(form.elements['UserMobileNumber'].value))) errormsg+="- Mobile number is invalid. "+intstring+"\n";
	if (form.elements['UserPassword1'].value.length<8) errormsg+="- Password is too short (min 8 characters)\n";
	if ((form.elements['UserPassword1'].value!="********") && (countNums(form.elements['UserPassword1'].value)<2)) errormsg+="- Password must contain at least 2 numbers";
	if (form.elements['UserPassword1'].value!=form.elements['UserPassword2'].value) errormsg+="- Passwords do not match\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

function checkCompanyDetails(form) {
	var errormsg="";
	var intstring="Please use international format (+xx xxxx xxxx xxxx), eg +64 9 476 7124 or +1 514 648 6648";

	if (form.elements['CompanyName'].value=="") errormsg+="- Company name is empty\n";
	if (form.elements['Address1'].value=="") errormsg+="- Address is empty\n";
	if (form.elements['City'].value=="") errormsg+="- Town / city is empty\n";
	if (invalidPhoneNumber(form.elements['Phone'].value)) errormsg+="- Phone number is invalid. "+intstring+"\n";
	if ((form.elements['Fax'].value!="") && (invalidPhoneNumber(form.elements['Fax'].value))) errormsg+="- Fax number is invalid. "+intstring+"\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

/* -------------------- My Account -------------------- */

function checkRegisterInterest(form) {
	if (form.elements['courseid'].value=="") {
		alert("Please select the training course you are interested in attending");
		form.elements['courseid'].focus();
		return false;
	}
	else if (form.elements['countryid'].value=="") {
		alert("Please select your country");
		form.elements['countryid'].focus();
		return false;
	}
	else if (form.elements['area'].value=="") {
		alert("Please enter your area");
		form.elements['area'].focus();
		return false;
	}
	else if (form.elements['eventdate'].value=="") {
		alert("Please enter your preferred date");
		form.elements['eventdate'].focus();
		return false;
	}
	else return true;
}

/* -------------------- Training Admin -------------------- */

function checkTrainingCourse(form) {
	if (form.elements['Title'].value=="") {
		alert("Please enter the course title");
		form.elements['Title'].focus();
		return false;
	}
	else if (form.elements['RequiredLevel'].value=="0") {
		alert("Please select the minimum PSI level for the course trainer");
		form.elements['RequiredLevel'].focus();
		return false;
	}
	else if (form.elements['Online'].value=="Y") {
		if (form.elements['Duration'].value=="") {
			alert("Please enter the duration of the online exam");
			form.elements['Duration'].focus();
			return false;
		}
		else if (form.elements['PassMark'].value=="") {
			alert("Please enter the pass mark for the online exam");
			form.elements['PassMark'].focus();
			return false;
		}
		else return true;
	}
	else return true;
}

/* -------------------- Feedback Admin -------------------- */

function checkDeleteFeedback(fid) {
	if (checkConfirm('delete this feedback?')) window.location="index.php?id=165&fid="+fid+"&action=delete";
	else return false;
}

/* -------------------- Mass Mail -------------------- */

function ConfirmMassMail(form) {
	if (form.elements['CountryId'].value=="") {
		alert("Please select a country");
		form.elements['CountryId'].focus();
		return false;
	}
	else if (form.elements['UserType'].value=="") {
		alert("Please select a user type");
		form.elements['UserType'].focus();
		return false;
	}
	else if (form.elements['Subject'].value=="") {
		alert("Please enter the email subject");
		form.elements['Subject'].focus();
		return false;
	}
	else if (form.elements['TextBody'].value=="") {
		alert("Please enter the email text body");
		form.elements['TextBody'].focus();
		return false;
	}
	else if (form.elements['HtmlBody'].value=="") {
		alert("Please enter the email HTML body");
		form.elements['HtmlBody'].focus();
		return false;
	}
	else {
		if (confirm("Are you sure you want to continue?")) return true;
		else return false;
	}
}

function hideOptions(form) {
	var val=form.elements['CountryId'].value;
	if (val=="list") {
		$('#UserType').slideUp();
		$('#EmailList').slideDown();
		form.elements['UserType'].value="%";
	}
	else if ((val=="software") || (val=="firmware")) {
		$('#UserType').slideUp();
		$('#EmailList').slideUp();
		form.elements['UserType'].value="%";
	}
	else {
		$('#UserType').slideDown();
		$('#EmailList').slideUp();
	}
}

function doubleCheck(num) {
	if (checkConfirm("send this email to "+num+" users?")) return true;
	else return false;
}

function tripleCheck(form) {
	if (form.elements['ConfirmBox'].checked==false) {
		alert("Please confirm that this email is correct");
		return false;
	}
	else if (checkConfirm("send this email to "+form.elements['NumUsers'].value+" users?")) return true;
	else return false;
}

/* -------------------- Training Events -------------------- */

function checkDeleteEvent(id) {
	if (checkConfirm('delete this training event?')) window.location="index.php?id=160&eventid="+id+"&action=delete";
	else return false;
}

function checkCancelEvent(id) {
	if (checkConfirm('cancel this training event?')) window.location="index.php?id=160&eventid="+id+"&action=cancel";
	else return false;
}

function checkTrainingEvent(form) {
	if (form.elements['Date'].value=="") {
		alert("Please enter the date, eg 10th April 2010");
		form.elements['Date'].focus();
		return false;
	}
	else if (form.elements['Duration'].value=="") {
		alert("Please enter the course duration");
		form.elements['Duration'].focus();
		return false;
	}
	else if (form.elements['Address1'].value=="") {
		alert("Please enter the address");
		form.elements['Address1'].focus();
		return false;
	}
	else if (form.elements['Location'].value=="") {
		alert("Please enter the location");
		form.elements['Location'].focus();
		return false;
	}
	else if (form.elements['CountryId'].value=="") {
		alert("Please select a country");
		form.elements['CountryId'].focus();
		return false;
	}
	else if (form.elements['Cost'].value=="") {
		alert("Please enter the cost");
		form.elements['Cost'].focus();
		return false;
	}
	else if (form.elements['MinSize'].value=="") {
		alert("Please enter the minimum class size");
		form.elements['MinSize'].focus();
		return false;
	}
	else if (form.elements['MaxSize'].value=="") {
		alert("Please enter the maximum class size");
		form.elements['MaxSize'].focus();
		return false;
	}
	else return true;
}

function checkCreateEventKeys(id, num) {
	if (checkConfirm("create and assign "+num+" training SSN?")) window.location="index.php?id=160&eventid="+id+"&tab=2&action=keys";
	else return false;
}

function checkEmailSSN(id) {
	if (checkConfirm("email all delegates their training SSN?")) window.location="index.php?id=160&eventid="+id+"&tab=2&action=emailssn";
	else return false;
}

function checkCloseEvent(id) {
	if (checkConfirm('close this training event and assign PSI ID\'s?')) window.location="index.php?id=160&eventid="+id+"&tab=3&action=close";
	else return false;
}

function checkCreateExams(id) {
	if (checkConfirm('create exams for all delegates?')) window.location="index.php?id=160&eventid="+id+"&tab=3&action=exams";
	else return false;
}

/* -------------------- Register Interest -------------------- */

function checkInterestList(form) {
	count=0;
	for (i=0; i<form.length; i++) if (form[i].checked==true) count++;
	if (count==0) {
		alert("Please select the rows you would like to remove, then press delete");
		return false;
	}
	else {
		if (count==1) str="Are you sure you want to remove this user from the list?";
		else str="Are you sure you want to remove these "+count+" users from the list?";
		if (confirm(str)) return true;
		else return false;
	}
}

/* -------------------- Exam Question Admin -------------------- */

function updateMultipleOptions(form) {
	if (form.elements['QuestionType'].value=="T") {
		document.getElementById('MultipleOptions').style.display="none";
		document.getElementById('TextOptions').style.display="block";
	}
	else {
		document.getElementById('MultipleOptions').style.display="block";
		document.getElementById('TextOptions').style.display="none";
	}
}

/* function checkConfirmDeleteQuestion(id) {
	if (checkConfirm('delete this exam question?')) window.location="index.php?id=162&q="+id+"&action=delete";
	else return false;
} */

function checkQuestion(form) {
	answer=0;
	for (i=0; i<form.elements['MultipleChoiceAnswer'].length; i++) {
		if (form.elements['MultipleChoiceAnswer'][i].checked) answer=form.elements['MultipleChoiceAnswer'][i].value;
	}

	if (form.elements['Question'].value.length<10) {
		alert("Please enter the Question");
		form.elements['Question'].focus();
		return false;
	}
	else if (form.elements['QuestionType'].value=="M") {
		if (form.elements['Option1'].value=="") {
			alert("Please enter Answer 1");
			form.elements['Option1'].focus();
			return false;
		}
		else if (form.elements['Option2'].value=="") {
			alert("Please enter Answer 2");
			form.elements['Option2'].focus();
			return false;
		}
		else if (form.elements['Option3'].value=="") {
			alert("Please enter Answer 3");
			form.elements['Option3'].focus();
			return false;
		}
		else if (form.elements['Option4'].value=="") {
			alert("Please enter Answer 4");
			form.elements['Option4'].focus();
			return false;
		}
		else if (answer==0) {
			alert("Please select the correct answer");
			return false;
		}
		else if (form.elements['CourseId'].value=="") {
			alert("Please select the course");
			form.elements['CourseId'].focus();
			return false;
		}
		else return true;
	}
	else {
		if (form.elements['TextAnswer'].value=="") {
			alert("Please enter a specimen answer");
			form.elements['TextAnswer'].focus();
			return false;
		}
		return true;
	}
}

/* -------------------- Card Configurator -------------------- */

function calculateNumCards(form) {
	numcards = (parseInt(form.elements['EndCard'].value)-parseInt(form.elements['StartCard'].value)+1);
	if (parseInt(numcards)>0) form.elements['NumCards'].value = numcards;
}

function calculateEndCard(form) {
	endcard = (parseInt(form.elements['StartCard'].value)+parseInt(form.elements['NumCards'].value)-1);
	if (parseInt(endcard)>0) form.elements['EndCard'].value = endcard;
}

function checkDualFormat(form) {
	if (form.elements['DualFormat'].checked) {
		document.getElementById('step2c').style.display="block";
		if (form.elements['Card2Format'].value=="") document.getElementById('step3').style.display="none";
	}
	else {
		document.getElementById('step2c').style.display="none";
		if (form.elements['Card1Format'].value!="") document.getElementById('step3').style.display="block";
	}
}

function checkFirstFormat(form) {
	if (form.elements['Card1Format'].value=="") document.getElementById('step3').style.display="none";
	else document.getElementById('step3').style.display="block";

	classtype=form.elements['Card1Format'].value.charAt(0);
	if (classtype==1) {
		document.getElementById('type1').style.display="none";
		document.getElementById('type2').style.display="block";
	}
	else {
		document.getElementById('type1').style.display="block";
		document.getElementById('type2').style.display="none";
	}
}

function checkSecondFormat(form) {
	if ((form.elements['Card1Format'].value=="") || (form.elements['Card2Format'].value=="")) document.getElementById('step3').style.display="none";
	else document.getElementById('step3').style.display="block";
}

function checkConfigurator(form) {
	errormsg="";
	if (form.elements['CardType'].value=="") errormsg+="- Card type is empty\n";
	else if (form.elements['Card1Format'].value=="") errormsg+="- Card format is empty\n";

	if (form.elements['DualFormat'].checked) {
		if (form.elements['Card2Format'].value=="") errormsg+="- Dual format is empty\n";
		if (form.elements['Card1Format'].value.substring(0, 2)==form.elements['Card2Format'].value.substring(0, 2)) errormsg+="- Both card formats are in the same range\n";
	}

	if (form.elements['SiteCode'].value=="") errormsg+="- Site code is empty\n";
	if (form.elements['StartCard'].value=="") errormsg+="- Start card is empty\n";
	if (form.elements['EndCard'].value=="") errormsg+="- End card is empty\n";
	if ((form.elements['EndCard'].value-form.elements['StartCard'].value+1)!=form.elements['NumCards'].value) errormsg+="- Number of cards is invalid\n";

	if (errormsg=="") {
		if (checkConfirm('add this to your order?')) return true;
		else return false;
	}
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

/* ----------  ---------- */

function validate(obj) {
	val=obj.value.toUpperCase();

	// only allow a-z, A-Z, 0-9, &@():$!#-_ characters
	if ((val.length==1) && (!/^[a-zA-Z0-9\&\@\(\)\:\$\!\#\-\_]/i.test(val))) obj.value=val.replace(/[^a-zA-Z0-9\&\@\(\)\:\$\!\#\-\_]/ig, '');
	else if ((val.length==2) && (val!="-C") && (val!="-F") && (val!="-S")) obj.value=val.substr(0, 1);
	else if (val.length>2) obj.value=val.substr(0, 2);
	else obj.value=val;
}

/* ---------- Create Training SSN ---------- */

function checkCreateKey(form) {
	if (form.elements['adduserid'].value=="") {
		alert("Please enter a name or email address");
		form.elements['addusername'].focus();
		return false;
	}
	else {
		if (confirm("Are you sure you want to create this SSN?")) return true;
		else return false;
	}
}

/* ---------- Company Admin ---------- */

function checkCompany(form) {
	errormsg="";
	if (form.elements['CompanyName'].value=="") errormsg+="- Company name is empty\n";
	if (form.elements['Address1'].value=="") errormsg+="- Address is empty\n";
	if (form.elements['City'].value=="") errormsg+="- City name is empty\n";
	if (form.elements['Postcode'].value=="") errormsg+="- Postcode  is empty\n";
	if (form.elements['CountryId'].value=="") errormsg+="- Country is empty\n";
	if (invalidPhoneNumber(form.elements['Phone'].value)) errormsg+="- Phone Number is invalid.";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found\n\n"+errormsg);
		return false;
	}
}

/* ---------- Website Help ---------- */

function checkHelpTopic(form) {
	if (form.elements['Keyword'].value=="") {
		alert("Please enter the keyword");
		form.elements['Keyword'].focus();
		return false;
	}
	else if (form.elements['Title'].value=="") {
		alert("Please enter a short title");
		form.elements['Title'].focus();
		return false;
	}
	else if (form.elements['Description'].value=="") {
		alert("Please enter the help text");
		form.elements['Description'].focus();
		return false;
	}
	else if (form.elements['AccessLevel'].value=="") {
		alert("Please select the access level");
		form.elements['AccessLevel'].focus();
		return false;
	}
	else return true;
}

/* ---------- SMA Renewal ---------- */

function checkSSN(form) {
	if ((form.elements['ssn'].value.length<25) || (form.elements['ssn'].value.length>29)) {
		alert("Please enter your 25-digit Software Serial Number.");
		form.elements['ssn'].focus();
		return false;
	}
	else return true;
}

function checkReference(form) {
	if (form.elements['reference'].value=="") {
		alert("Please enter a Purchase Order Number, or Reference Number that you would like to appear on your invoice.");
		form.elements['reference'].focus();
		return false;
	}
	else return true;
}

/* ---------- Unlock SSN ---------- */

function checkSSNInput(form) {
	if (form.elements['ssn'].value.length<25) {
		alert('Please enter a valid SSN');
		form.elements['ssn'].focus();
		return false;
	}
	else if (form.elements['ContactName'].value=="") {
		alert('Please enter the contact name');
		form.elements['ContactName'].focus();
		return false;
	}
	else if (form.elements['CompanyName'].value=="") {
		alert('Please enter the company name');
		form.elements['CompanyName'].focus();
		return false;
	}
	else {
		if (form.elements['UnlockReason'].value=="") {
			alert('Please select a reason');
			form.elements['UnlockReason'].focus();
			return false;
		}
		else if ((form.elements['UnlockReason'].value=="4") && ((form.elements['OtherUnlockReason'].value=="Please Specify") || (form.elements['OtherUnlockReason'].value.length<3))) {
			alert('Please enter a reason');
			form.elements['OtherUnlockReason'].focus();
			return false;
		}
		else return true;
	}
}

/* ---------- Checkout ---------- */

function checkOrderNumber(form) {
	if (form.elements['po_number'].value=="") {
		alert("Please enter your company PO / reference number");
		form.elements['po_number'].focus();
		return false;
	}
	else return true;
}

function checkoutStep2(form) {
	if (form.elements['PONumber'].value=="") {
		alert("Please enter your PO / reference number");
		form.elements['PONumber'].focus();
		return false;
	}
	else if (form.elements['deladdress'][1].checked) {
		if (form.elements['AltAddress1'].value=="") {
			alert("Please enter the delivery address");
			form.elements['AltAddress1'].focus();
			return false;
		}
		else if (form.elements['AltCity'].value=="") {
			alert("Please enter the delivery town / city");
			form.elements['AltCity'].focus();
			return false;
		}
		else if (form.elements['AltPostcode'].value=="") {
			alert("Please enter the delivery postcode");
			form.elements['AltPostcode'].focus();
			return false;
		}
		else if (form.elements['AltCountryId'].value=="") {
			alert("Please select the delivery country");
			form.elements['AltCountryId'].focus();
			return false;
		}
		else return true;
	}
	else return true;
}

function toggleMethod(obj) {
	document.getElementById("continueinv").style.display="none";
	document.getElementById("continuecc").style.display="none";

	if (obj.value==0) document.getElementById("continueinv").style.display="inline";
	if (obj.value==1) document.getElementById("continuecc").style.display="inline";
}

function checkoutStep3(form, po_number) {
	if (form.elements['paymethod'][0].checked) return true;
	else if (checkConfirm('submit this order?\n\nPurchase Order / Reference: '+po_number)) return true;
	else return false;
}

/* ---------- Blog ---------- */

function checkBlogArticle(form) {
	var errormsg="";
	if (form.elements['title'].value.length<10) errormsg+="\n- Title";
	if (form.elements['details'].value.length<10) errormsg+="\n- Details";
	if (form.elements['date'].value.length<10) errormsg+="\n- Date";
	if (form.elements['author'].value.length<5) errormsg+="\n- Author";
	if (form.elements['visibility'].value=="") errormsg+="\n- Visibility";
	if (form.elements['location'].value.length<5) errormsg+="\n- Location";
	if (errormsg=="") return true;
	else {
		alert("You have left the following fields empty:\n"+errormsg);
		return false;
	}
}

function checkFilename(form) {
	var filename=form.elements['filename'].value;
	var str=filename.substr(0, filename.length-4);
	if (confirm("Do you want to change the image title to '"+str+"' ?")) form.elements['title'].value=str;
}

/* ---------- Registration ---------- */

function ConfirmInviteUser(form) {
	var errormsg="";

	if (form.elements['UserFirstName'].value=="") errormsg+="- First name is empty\n";
	if (form.elements['UserLastName'].value=="") errormsg+="- Last name is empty\n";
	if (invalidEmail(form.elements['UserEmail'].value)) errormsg+="- Email address is not valid\n";
	if (form.elements['CompanyId'].value=="") errormsg+="- Company is empty\n";
	if (form.elements['UserTypeId'].value=="") errormsg+="- User Type is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

/* ---------- Licensing ---------- */

function checkManualForm(form) {
	var errormsg="";
	if (form.elements['SiteName'].value=="") errormsg+="- Site name is empty\n";
	if (form.elements['SiteContact'].value=="") errormsg+="- Site contact name is empty\n";
	if (invalidEmail(form.elements['SiteEmail'].value)) errormsg+="- Site email address is invalid\n";
	if (form.elements['InstallerContact'].value=="") errormsg+="- Installer contact name is empty\n";
	if (invalidEmail(form.elements['InstallerEmail'].value)) errormsg+="- Installer email address is invalid\n";
	if (form.elements['SoftwareSerialNumber'].value=="") errormsg+="- SSN is empty\n";
	if (form.elements['filename'].value=="") errormsg+="- License request file has not been selected\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

/* ---------- Qualification Admin ---------- */

function checkQualification(form) {
	if (form.elements['QualificationTitle'].value=="") {
		alert("Please enter the qualification title");
		form.elements['QualificationTitle'].focus();
		return false;
	}
	else return true;
}

function checkModule(form) {
	var errormsg="";

	if (form.elements['ModuleCode'].value=="") errormsg+="- Module code is empty\n";
	if (form.elements['ModuleTitle'].value=="") errormsg+="- Module title is empty\n";
	if (form.elements['QualificationId'].value=="") errormsg+="- Qualification is empty\n";
	if (form.elements['ExamDuration'].value=="") errormsg+="- Exam duration is empty\n";
	if (form.elements['NumQuestions'].value=="") errormsg+="- Number of exam questions is empty\n";
	if (form.elements['PassMark'].value=="") errormsg+="- Exam pass mark is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found\n\n"+errormsg);
		return false;
	}
}

function checkObjective(form) {
	if (form.elements['ObjectiveTitle'].value=="") {
		alert("Please enter the objective title");
		form.elements['ObjectiveTitle'].focus();
		return false;
	}
	else return true;
}

/* ---------- Online Payments ---------- */

function calculateTotal(form) {
	if (form.elements['GST'].value=="") form.elements['GST'].value="0.00";
	if (form.elements['Shipping'].value=="") form.elements['Shipping'].value="0.00";

	if (form.elements['Add_GST'].checked) {
		form.elements['GST'].value=((parseFloat(form.elements['Amount'].value)+parseFloat(form.elements['Shipping'].value))*0.15).toFixed(2);
		var gst = parseFloat(form.elements['GST'].value);
	}
	else {
		form.elements['GST'].value="0.00";
		var gst = 0;
	}

	var total=(parseFloat(form.elements['Amount'].value)+gst+parseFloat(form.elements['Shipping'].value));
	if (total>0) {
		var e = document.getElementById("CurrencyId");
		var currency = e.options[e.selectedIndex].text;
		document.getElementById('Total').innerHTML=currency+(total.toFixed(2));
	}
}

function checkPayment(form) {
	var errormsg="";
	if (form.elements['CustomerName'].value=="") errormsg+="- Customer name is empty\n";
	if (form.elements['PaymentReference'].value=="") errormsg+="- Payment reference is empty\n";
	if (form.elements['CurrencyId'].value=="") errormsg+="- Currency is empty\n";
	if ((form.elements['Amount'].value=="") || (parseFloat(form.elements['Amount'].value)==0.00)) errormsg+="- Amount is empty\n";
	if (form.elements['OrderNote'].value=="") errormsg+="- Notes field is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

/* ---------- RMA ---------- */

function checkRMA(form) {
	if (form.elements['SiteReference'].value.length<3) {
		alert("Please enter a site reference");
		form.elements['SiteReference'].focus();
		return false;
	}
	else return true;
}

function checkRmaProduct(form) {
	var errormsg="";

	if (form.elements['Code'].value=="") errormsg+=" - Product code is empty\n";
	if (form.elements['SerialNumber'].value=="") errormsg+=" - Serial number is empty\n";
	if (form.elements['HardwareVersion'].value=="") errormsg+=" - Hardware version is empty\n";
	if (form.elements['PurchaseMonth'].value=="") errormsg+=" - Date of purchase is empty\n";
	if (form.elements['Description'].value.length<10) errormsg+=" - Description is empty\n";

	if (errormsg=="") return true;
	else {
		alert("The following errors have been found:\n\n"+errormsg);
		return false;
	}
}

