function openWindow(url,w,h) {
  window.open(url, "",  "status=0,toolbar=0,scrollbars=1,directories=0,menubar=0,resizable=1,width="+w+",height="+h+"")
}
function blockContextMenu()
{
   document.oncontextmenu=new Function("return false");
}
function blockCopyKey() 
{
   // current pressed key
   var pressedKey = String.fromCharCode(event.keyCode).toLowerCase();
   //disables CTRL + C, CTRL + N, CTRL + V keys
   if (event.ctrlKey && (pressedKey == "c" || 
                        pressedKey == "n")) {
      // disable key press processing
      event.returnValue = 0;
   }
   //blocks the print Screen key
   if (45 == event.keyCode) {
      // disable key press processing
      event.keyCode = 0;
      event.returnValue = 0;
   }
   //blocks the F11 key
   if (122 == event.keyCode) {
      // disable key press processing
      event.keyCode = 0;
      event.returnValue = 0;
   }   

}
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) 
{
	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()
{
	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 IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) 
	  { 
	  Char = sText.charAt(i); 
	  if (ValidChars.indexOf(Char) == -1) 
		 {
		 IsNumber = false;
		 }
	  }
   return IsNumber;
}
function checkPWquestionFields(roForm) {
	if (roForm.cQuestion1.value == "") {
		alert ("Please enter security question 1.");
  		roForm.cQuestion1.focus();
		return (false);
	}
	if (roForm.cAnswer1.value == "") {
		alert ("Please enter an answer to security question 1.");
  		roForm.cAnswer1.focus();
		return (false);
	}	
	if (roForm.cQuestion2.value == "") {
		alert ("Please enter security question 2.");
  		roForm.cQuestion2.focus();
		return (false);
	}
	if (roForm.cAnswer2.value == "") {
		alert ("Please enter an answer to security question 2.");
  		roForm.cAnswer2.focus();
		return (false);
	}
	if (roForm.idx02.value == "") {
		alert ("Please enter your password.");
  		roForm.idx02.focus();
		return (false);
	}	
	if (roForm.cQuestion1.value == roForm.cQuestion2.value) {
		alert ("Security questions cannot be the same. Please change one of your questions.");
  		roForm.cQuestion1.focus();
		return (false);
	}	
	return (true);
}
function checkPWFields(roForm){
  if (roForm.idx02.value == "") {
	alert ("Please enter your current password.");
  	roForm.idx02.focus();
	return (false);
  }
  if (roForm.idx021.value == "") {
	alert ("Please enter your new password.");
  	roForm.idx021.focus();
	return (false);
  } 
  else if (roForm.idx021.value.length < 5) {
	alert ("Your password must be more than 4 characters long.");
  	roForm.idx021.focus();
	return (false);
  }         
  if (roForm.idx022.value == "") {
	alert ("Please confirm your new password.");
  	roForm.idx022.focus();
	return (false);
  }    
  else if (roForm.idx022.value != roForm.idx021.value) {
	alert ("The confirmation password did not match the new password entered. \nPlease re-enter.");
	roForm.idx022.value = "";
  	roForm.idx022.focus();
	return (false);
  } 
  return (true);  
}
function checkPWIdentFields(roForm) {
if(document.getElementById("idx02")) {
 if (roForm.idx02.value == "") {
  alert ("Please enter your password.");
    roForm.idx02.focus();
  return (false);
 }
 if (roForm.idx02.value == "") {
  alert ("Please enter your password.");
    roForm.idx02.focus();
  return (false);
 }
}

if(document.getElementById("cAnswer1")) {
 if (roForm.cAnswer1.value == "") {
  alert ("Please enter an answer to security question 1.");
    roForm.cAnswer1.focus();
  return (false);
 } 
}
if(document.getElementById("cAnswer2")) {
 if (roForm.cAnswer2.value == "") {
  alert ("Please enter an answer to security question 2.");
    roForm.cAnswer2.focus();
	return (false);
    } 
  }
  return (true);  
}
function checkRequiredFields(roForm) {
  return (true);
}

function checkRequiredFieldsCompany(roForm) {
  if (roForm.cCode.value == "") {
    alert("\nPlease enter a Company Code.");
    roForm.cCode.focus();
    return (false);
  }
  if (roForm.cName.value == "") {
    alert("\nPlease enter the Company Name.");
    roForm.cName.focus();
    return (false);
  }
  if (roForm.cEmail.value == "") {
    alert("\nPlease enter a contact email.");
    roForm.cEmail.focus();
    return (false);
  }	  
  if (roForm.cEmail.value == "") {
    alert("\nPlease enter an email address.");
    roForm.cEmail.focus();
    return (false);
  }
  if (!checkEmailAddress(roForm)) {
    return (false);
  }

  
  return (true); //all valid
}


function checkRequiredFieldsEmail(roForm) {
  if (roForm.cSubject.value == "") {
    alert("\nPlease enter an email subject.");
    roForm.cSubject.focus();
    return (false);
  }
  if (roForm.cBody.value == "") {
    alert("\nPlease enter the email body.");
    roForm.cBody.focus();
    return (false);
  }
  return (true);
}

function checkRequiredFieldsMessage(roForm) {
  if (roForm.id269.value == "") {
    alert("\nPlease enter a message subject.");
    roForm.id269.focus();
    return (false);
  }
  if (roForm.cMessage.value == "") {
    alert("\nPlease enter the message body.");
    roForm.cMessage.focus();
    return (false);
  }
  return (true);
}
function checkRequiredFieldsAddStudent(roForm) {
  if (roForm.id007.value == "") {
    alert("\nPlease select a company name.");
    roForm.id007.focus();
    return (false);
  }
  if (roForm.idx01.value == "") {
    alert("\nPlease enter a username for the student.");
    roForm.idx01.focus();
    return (false);
  }
  
  if (roForm.cFirstName.value == "") {
    alert("\nPlease enter the student's first name.");
    roForm.cFirstName.focus();
    return (false);
  }
  if (roForm.cLastName.value == "") {
    alert("\nPlease enter the student's last name.");
    roForm.cLastName.focus();
    return (false);
  }

  if (roForm.cCity.value != "") {
  	if (IsNumeric(roForm.cCity.value)) {
		alert("\nSuburb/town/province cannot be numeric.");
		roForm.cCity.value = "";
		roForm.cCity.focus();
		return (false);
 	}  
  }	
  if (roForm.cState.value != "") {
	  if (IsNumeric(roForm.cState.value)) {
		alert("\nState/county cannot be numeric.");
		roForm.cState.value = "";
		roForm.cState.focus();
		return (false);
	  }
  }

  if (roForm.cEmail.value == "") {
    alert("\nPlease enter the student's email address.");
    roForm.cEmail.focus();
    return (false);
  }  
  if (!checkEmailAddress(roForm)) {
    return (false);
  } 
  if (checkRequiredFields(roForm) == false){
    return (false);
  }
  return (true);
}

function checkRequiredFieldsModifyStudent(roForm) {
  if (roForm.idx01.value == "") {
    alert("\nPlease enter a username for the student.");
    roForm.idx01.focus();
    return (false);
  }
  
  if (roForm.cFirstName.value == "") {
    alert("\nPlease enter the student's first name.");
    roForm.cFirstName.focus();
    return (false);
  }
  if (roForm.cLastName.value == "") {
    alert("\nPlease enter the student's last name.");
    roForm.cLastName.focus();
    return (false);
  }

  if (roForm.cCity.value != "") {
  	if (IsNumeric(roForm.cCity.value)) {
		alert("\nSuburb/town/province cannot be numeric.");
		roForm.cCity.value = "";
		roForm.cCity.focus();
		return (false);
 	}  
  }	
  if (roForm.cState.value != "") {
	  if (IsNumeric(roForm.cState.value)) {
		alert("\nState/county cannot be numeric.");
		roForm.cState.value = "";
		roForm.cState.focus();
		return (false);
	  }
  }

  if (roForm.cEmail.value == "") {
    alert("\nPlease enter the student's email address.");
    roForm.cEmail.focus();
    return (false);
  }  
  if (!checkEmailAddress(roForm)) {
    return (false);
  } 
  if (checkRequiredFields(roForm) == false) {
    return (false);
  }
  return (true);
}
function checkRequiredFieldsAddUser(roForm) {
  if (roForm.idx01.value == "") {
    alert("\nPlease enter a username.");
    roForm.idx01.focus();
    return (false);
  }
  
  if (roForm.cFirstName.value == "") {
    alert("\nPlease enter the first name.");
    roForm.cFirstName.focus();
    return (false);
  }
  if (roForm.cLastName.value == "") {
    alert("\nPlease enter the last name.");
    roForm.cLastName.focus();
    return (false);
  }

  if (roForm.cCity.value != "") {
  	if (IsNumeric(roForm.cCity.value)) {
		alert("\nSuburb/town/province cannot be numeric.");
		roForm.cCity.value = "";
		roForm.cCity.focus();
		return (false);
 	}  
  }	
  if (roForm.cState.value != "") {
	  if (IsNumeric(roForm.cState.value)) {
		alert("\nState/county cannot be numeric.");
		roForm.cState.value = "";
		roForm.cState.focus();
		return (false);
	  }
  }

  if (roForm.cEmail.value == "") {
    alert("\nPlease enter an email address.");
    roForm.cEmail.focus();
    return (false);
  }  
  if (!checkEmailAddress(roForm)) {
    return (false);
  } 
  if (checkRequiredFields(roForm) == false){
    return (false);
  }
  return (true);
}
function checkRequiredFieldsPersonalDetails(roForm) {
  if (roForm.idx01.value == "") {
    alert("\nPlease enter a username.");
    roForm.idx01.focus();
    return (false);
  }
  
  if (roForm.cFirstName.value == "") {
    alert("\nPlease enter a first name.");
    roForm.cFirstName.focus();
    return (false);
  }
  if (roForm.cLastName.value == "") {
    alert("\nPlease enter a last name.");
    roForm.cLastName.focus();
    return (false);
  }

  if (roForm.cCity.value != "") {
  	if (IsNumeric(roForm.cCity.value)) {
		alert("\nSuburb/town/province cannot be numeric.");
		roForm.cCity.value = "";
		roForm.cCity.focus();
		return (false);
 	}  
  }	
  if (roForm.cState.value != "") {
	  if (IsNumeric(roForm.cState.value)) {
		alert("\nState/county cannot be numeric.");
		roForm.cState.value = "";
		roForm.cState.focus();
		return (false);
	  }
  }

  if (roForm.cEmail.value == "") {
    alert("\nPlease enter an email address.");
    roForm.cEmail.focus();
    return (false);
  }  
  if (!checkEmailAddress(roForm)) {
    return (false);
  } 
  if (checkRequiredFields(roForm) == false){
    return (false);
  }
  return (true);
}
function checkRequiredFieldsStudent1(roForm) {
  if (roForm.id007.value == "") {
    alert("\nCompany name is required.\n\nPlease enter");
    roForm.id007.focus();
    return (false);
  }
  if (checkRequiredFields(roForm) == false){
    return (false);
  }

  return (true);
}
function checkHelpDeskFields(roForm){
  if (roForm.c001.value == "") {
	alert ("Please enter details of the problem.");
  	roForm.c001.focus();
	return (false);
  }
  if (roForm.c002.value == "") {
	alert ("Please enter your User Name.");
  	roForm.c002.focus();
	return (false);
  } 
  else if (roForm.c003.value == "") {
	alert ("Please enter your First Name");
  	roForm.c003.focus();
	return (false);
  }
  else if (roForm.c004.value == "") {
	alert ("Please enter your Last Name");
  	roForm.c004.focus();
	return (false);
  }         
  if (roForm.c005.value == "") {
	alert ("Please enter a contact phone number.");
  	roForm.c005.focus();
	return (false);
  }    
  else if (roForm.c006.value == "") {
	alert ("Please enter you email address");
	roForm.cEmail.focus();
	return (false);
  }
  if (!checkEmailAddresshelpDesk(roForm)) {
    return (false);
  } 
  
  return (true);  
}
function checkCommentsFields(roForm){
  if (roForm.c001.value == "") {
	alert ("Please enter a comment.");
  	roForm.c001.focus();
	return (false);
  } 
  return (true);  
}
function checkHomeHTMLRequiredFields(roForm){
  if (roForm.c005.value == "") {
	alert ("Please enter the type of Home Page Message.");
  	roForm.c005.focus();
	return (false);
  }
  if (roForm.c001.value == "") {
	alert ("Please enter your Home Page Message Title.");
  	roForm.c001.focus();
	return (false);
  }          
  if (roForm.c002.value == "") {
	alert ("Please enter your Home Page Message.");
  	roForm.c002.focus();
	return (false);
  }     
  return (true);  
}
//////////////////////////////////////////////////////////////////////////////////////////////////
function checkRequiredFieldsAVETMISS(roForm) {
  //validate day of birth field
  if (roForm.id315.value == "") {
    alert("\nPlease enter the day you were born.");
    roForm.id315.focus();
    return (false);  	
  }
  else if (roForm.id315.value > 31) {
    alert("\nDay of birth cannot exceed 31!. \nPlease re-enter.");
    roForm.id315.focus();
    return (false);  	
  }
  //validate month of birth field
  if (roForm.id316.value == "") {
    alert("\nPlease enter the month that you were born.");
    roForm.id316.focus();
    return (false);  	
  }
  else if (roForm.id316.value > 12) {
    alert("\nMonth of birth cannot exceed 12. \nPlease re-enter.");
    roForm.id316.focus();
    return (false);  	
  }
  //validate year of birth field
  if (roForm.id317.value == "") {
    alert("\nPlease enter the year that you were born.");
    roForm.id317.focus();
    return (false);  	
  }
  else if (roForm.id317.value < 1880 || roForm.id317.value > 2005) {
    alert("\nYear of birth invalid. \nPlease re-enter.");
    roForm.id317.focus();
    return (false);  	
  }
  //validate birth country field
  if (roForm.id305.value == "") {
    alert("\nPlease enter the country where you were born.");
    roForm.id305.focus();
    return (false);  	
  }
  //validate native language field
  if (roForm.id311.value == "") {
    alert("\nPlease enter your native language.");
    roForm.id311.focus();
    return (false);  	
  }
  //validate preferred language field
  if (roForm.id312.value == "") {
    alert("\nPlease enter which language you prefer to speak.");
    roForm.id312.focus();
    return (false);  	
  }
  //validate school level completed yr
  if (roForm.id318.value == "") {
    alert("\nPlease enter the year that you left school.");
    roForm.id318.focus();
    return (false);  	
  }
  else if (roForm.id318.value < 1880 || roForm.id318.value > 2020) {
    alert("\nYear of completion invalid. \nPlease re-enter.");
    roForm.id318.focus();
    return (false);  	
  }
  return(true);
}


function checkRequiredFieldsUser(roForm) {
  if (checkRequiredFields(roForm) == false){
    return (false);
  }

  if (roForm.cQuestion1.value == "") {
    alert("\nQuestion 1 is required.\n\nPlease enter");
    roForm.cQuestion1.focus();
    return (false);
  }
  if (roForm.cAnswer1.value == "") {
    alert("\nAnswer 1 is required.\n\nPlease enter");
    roForm.cAnswer1.focus();
    return (false);
  }
  if (roForm.cQuestion2.value == "") {
    alert("\nQuestion 2 is required.\n\nPlease enter");
    roForm.cQuestion2.focus();
    return (false);
  }
  if (roForm.cAnswer2.value == "") {
    alert("\nAnswer 2 is required.\n\nPlease enter");
    roForm.cAnswer2.focus();
    return (false);
  }

  return (true);
}

function checkRequiredFieldsClient(roForm) {
  if (roForm.cCode.value == "") {
    alert("\nPlease enter the Domain Code");
    roForm.cCode.focus();
    return (false);
  }
  if (roForm.cName.value == "") {
    alert("\nPlease enter the Domain name.");
    roForm.cName.focus();
    return (false);
  }
  if (roForm.id2711.value == "") {
    alert("\nPlease Select a Country");
    roForm.id2711.focus();
    return (false);
  }
  if (roForm.cEmail.value == "") {
    alert("\nPlease enter an email address");
    roForm.cEmail.focus();
    return (false);
  }

  return (true);
}

function checkRequiredFieldsClient1(roForm) {
  if (roForm.cCode.value == "") {
    alert("\nCode is required.\n\nPlease enter");
    roForm.cCode.focus();
    return (false);
  }
  if (roForm.cName.value == "") {
    alert("\nName is required.\n\nPlease enter");
    roForm.cName.focus();
    return (false);
  }
  if (roForm.id2711.value == "") {
    alert("\nCountry is required.\n\nPlease enter");
    roForm.id2711.focus();
    return (false);
  }
  if (roForm.cEmail.value == "") {
    alert("\nEmail address is required.\n\nPlease enter");
    roForm.cEmail.focus();
    return (false);
  }

  return (true);
}

function checkEmailAddress(roForm)
{
  var lcEmail = roForm.cEmail.value;
  if (!emailCheck(lcEmail))  {
    roForm.cEmail.focus();
    return (false);
  }
  return (true);
}

function emailCheck (emailStr) {
  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars="\[^\\s" + specialChars + "\]"
  var quotedUser="(\"[^\"]*\")"
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+'
  var word="(" + atom + "|" + quotedUser + ")"
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
  var matchArray=emailStr.match(emailPat)
  if (matchArray==null) {
    alert("Email address seems incorrect (check @ and .'s)")
    return false
  }
  var user=matchArray[1]
  var domain=matchArray[2]
  if (user.match(userPat)==null) {
    alert("The username doesn't seem to be valid.")
    return false
  }
  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null) {
    for (var i=1;i<=4;i++) {
      if (IPArray[i]>255) {
        alert("Destination IP address is invalid!")
        return false
      }
    }
    return true
  }
  var domainArray=domain.match(domainPat)
  if (domainArray==null) {
    alert("The email address is invalid. Check the domain name.")
    return false
  }
  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>4) {
    alert("The email address must end in a three or four letter domain, or two letter country.")
    return false
  }
  if (len<2) {
    var errStr="This address is missing a hostname!"
    alert(errStr)
    return false
  }
  return true;
}
function checkEmailAddresshelpDesk(roForm)
{
  var lcEmail = roForm.c006.value;
  if (!emailCheck(lcEmail))  {
    roForm.c006.focus();
    return (false);
  }
  return (true);
}

function emailCheck (emailStr) {
  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars="\[^\\s" + specialChars + "\]"
  var quotedUser="(\"[^\"]*\")"
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+'
  var word="(" + atom + "|" + quotedUser + ")"
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
  var matchArray=emailStr.match(emailPat)
  if (matchArray==null) {
    alert("Email address seems incorrect (check @ and .'s)")
    return false
  }
  var user=matchArray[1]
  var domain=matchArray[2]
  if (user.match(userPat)==null) {
    alert("The username doesn't seem to be valid.")
    return false
  }
  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null) {
    for (var i=1;i<=4;i++) {
      if (IPArray[i]>255) {
        alert("Destination IP address is invalid!")
        return false
      }
    }
    return true
  }
  var domainArray=domain.match(domainPat)
  if (domainArray==null) {
    alert("The email address is invalid. Check the domain name.")
    return false
  }
  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>4) {
    alert("The email address must end in a three or four letter domain, or two letter country.")
    return false
  }
  if (len<2) {
    var errStr="This address is missing a hostname!"
    alert(errStr)
    return false
  }
  return true;
}

function setGrade(form, label)
{
   if (label == 'X')
   {
      form["GR_Y"].value = form["GR_X"].value
   }
   else
   {
      form["GR_X"].value = form["GR_Y"].value
   }
}
function calculate(form)
{
   addTotals(form);
}
function addTotals(form)
{
   var subTotal = 0
   var questionCount = form["id601"].value
   for (var i = 1; i <= questionCount; i++)
   {
     subTotal += (form["SC_" + i].value != "") ? parseFloat(form["SC_" + i].value) : 0
   }
   form["SC_X"].value = subTotal
   form["SC_Y"].value = subTotal
}
function checkPWChallengeFields(roForm) {
  if (roForm.cAnswer1.value == "") {
    alert("\nAnswer to Question 1 is required.\n\nPlease enter");
    roForm.cAnswer1.focus();
    return (false);
  }
  if (roForm.cAnswer2.value == "") {
    alert("\nAnswer to Question 2 is required.\n\nPlease enter");
    roForm.cAnswer2.focus();
    return (false);
  }

  return (true);
}
function getFormHomeHTML001(cCOMRootId)
{
   var id518=document.form_homehtml001.id518.value
   var id519=document.form_homehtml001.id519.value

   window.location = cCOMRootId + '01?m=091&id518=' + id518 + '&id519=' + id519;
   return (true);
}

function getLastError(cCOMRootId)
{
   var nRecords=document.lastError.nRecords.value;

   openWindow(cCOMRootId + '01?m=getLastError&nRecords=' + nRecords, 500, 500);
   return (true);
}



