
  //Accept an array of field id that need to be complete
	function chkEmpty(theFormObj, compulsoryArray)
  {
		var errorFields = "";
		var fieldObj;
	
		for(var i=0; i<compulsoryArray.length; i++)
    {
      fieldObj = theFormObj.elements[compulsoryArray[i]];
			if(isBlank(fieldObj.value))
      {
				if(errorFields != "")
					errorFields+=", \n";
				else
        {
					fieldObj.focus();
					//fieldObj.select();	
				}
				errorFields+=compulsoryArray[i];
			}
		}
		
		var errorMsg = "Please complete the following fields: \n(It must not be empty or whitespace.)\n";
		return checkError(errorFields, errorMsg);
	}
  
  //Accept an array of radio/check box fields
  function chkRadio(theFormObj, radioArray)
  { 
    var errorFields = "";

    for (var i=0; i<radioArray.length; i++)
    {
      if (isRadioChecked(theFormObj, radioArray[i]))
      {
        if (errorFields != "")
          errorFields +=", \n";
        errorFields+=radioArray[i];
      }
    }
		var errorMsg = "Please complete the following fields: \n(An option must be selected.)\n";
		return checkError(errorFields, errorMsg);    
  }
  
  //Check that at least one radio/check box is checked
  function isRadioChecked(theFormObj, radioElement)
  { 
    for (var j=0; j<theFormObj.elements[radioElement].length; j++)
    {
      if (theFormObj.elements[radioElement][j].checked)
        return false;
    }
    return true;
  }
  
	//Check for fields that only accept numbers
	function checkDigit(theFormObj, digitArray){
		var errorFields ="";
		var fieldObj;
		for(var i=0; i<digitArray.length; i++){
			fieldObj = theFormObj.elements[digitArray[i]];
			if(!(isBlank(fieldObj.value))){
				if(!isDigit(fieldObj.value)){
					if(errorFields != "")
						errorFields+=", \n";
					else{
					fieldObj.focus();
					fieldObj.select();	
					}
						
					errorFields+=digitArray[i];
				}
			}
		}
		
		
		var errorMsg = "Please enter a number value for the following fields: \n";
		return checkError(errorFields, errorMsg);
	}
	
	//Check for fields that only accept alphabets
	function checkAlphabet(fieldvalue){
		var returnvalue = true;
		for(var i=0;i<parseInt(fieldvalue.length);i++){
			var charTest = fieldvalue.charAt(i);
			if (!isAlphabet(charTest)){
				returnvalue = false
				break;
			}
		}
		return returnvalue;
	}

	//Check for valid email address
	function checkEmail(theFormObj, fieldID){
		var fieldObj;
		fieldObj = theFormObj.elements[fieldID];
		if(!isBlank(fieldObj.value)){
			if(!isEmailAddress(fieldObj.value)){
				alert("Please enter a valid Email address.");
				fieldObj.focus();
				fieldObj.select();
				return false
			}
		}
		return true;
	}

	//Validation of correct email address
	function isEmailAddress(fieldValue){
		var R1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)");
		var R2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
		return (!R1.test(fieldValue) && R2.test(fieldValue));
	}

  //Display Error message
	function checkError(ErrorFields,ErrorMsg){
		if(ErrorFields == "")
			return true;
		else{
			alert(ErrorMsg+"-------------------------------------------\n"+ErrorFields+"\n-------------------------------------------\n");
			return false;
		}
	}
  
  //Check whether the field contain any value
	function isBlank(fieldValue)
  {
		var R1 = /^\s+$/
		return ( R1.test(fieldValue) || fieldValue=="" );
	}  

  //Check whether the value is a number
	function isDigit(fieldValue){
		var R1 = /^\d+$/
		return ( R1.test(fieldValue) );
	}
  
  //Compare two password field
  function comparePassword(theFormObj,passwordFields){
		fieldObj1 = theFormObj.elements[passwordFields[0]];
		fieldObj2 = theFormObj.elements[passwordFields[1]];
		
		if(fieldObj1.value != fieldObj2.value){
			alert("Please check the password fields. Both fields must match.");
			fieldObj1.focus();
			fieldObj1.select();
			return false
		}
		else
			return true;
	}
  
  // Check for the minimum length
	function checkMinLength(theFormObj,minLengthFields){
		var errorFields ="";
		var fieldObj;
		for(var i=0; i<minLengthFields.length; i++){
			fieldObj = theFormObj.elements[minLengthFields[i]];
			
			if(!(isMinLength(fieldObj.value,minLengthFields[i+1]))){
				if(errorFields != "")
					errorFields+=", \n";
				else{
				fieldObj.focus();
				fieldObj.select();	
				}	
				errorFields+=minLengthFields[i];
			}
			i=i+1
		}
		
		var errorMsg = "Please enter the minimum number of characters for the following fields: \n";
		return checkError(errorFields, errorMsg);
	}
	
	function isMinLength(fieldValue, minLength){
		if(fieldValue.length < minLength)
			return false;
		else
			return true;
	}
	
	function isMaxLength(fieldValue, maxLength){
		if(fieldValue.length > maxLength)
			return false;
		else
			return true;
	}
  
  function checkDollar(getFieldVal, decPlace) 
   {  
      var theFieldVal = getFieldVal;
      var decallowed = decPlace * 1;  // how many decimals are allowed?
      
      if (isNaN(theFieldVal) || theFieldVal == "" || theFieldVal == 0) 
      {
         alert("Please key in a valid price.");
         return false;
      }
      else 
      {
         if (theFieldVal.indexOf('.') != -1)
         {
            if (decallowed != 0)
            {
               dectext = theFieldVal.substring(theFieldVal.indexOf('.')+1, theFieldVal.length);
               
               if (dectext.length > decallowed)
               {
                  alert ("Please enter a price with up to " + decallowed + " decimal places.");
                  return false;
               }
            }
            else
            {
               alert ("Please enter a price without decimal places.");
               return false;
            }   
         }
      }
      return true;
   }


	function findChar(myvalue,mychar){
		//function to see if the specified character is found
		if (myvalue.indexOf(mychar,0) < 0){
			//character not found
			return false;
		}
		else{
			return true;
		}
	}
	
	function checkChar(myvalue,charPosition,charToFind){
		//function to see if the specified character is found
		if (myvalue.charAt(charPosition) == charToFind){
			return true;
		}
		else{
			return false;
		}
	}
	
	function validatepasswordstring(mypassword,noChars){
		//criteria that is checked here:
		//1. 1st 3 characters cannot be the same
		//2. Password must be alphanumeric
		
		var newstring="";
		var alphabetind = false;
		var digitind = false;
		
		for (i=0;i<parseInt(mypassword.length);i++){
			if (digitind == true  && alphabetind == true){
				return true;
			}
			//perform checking for 1st 3 characters same for the password
			if (i<noChars){
				if (newstring.indexOf(mypassword.charAt(i)) < 0){
					//not found
					newstring = newstring.concat(mypassword.charAt(i));			
				}
				else{
					return false;
				}
			}
			//end of check for 1st 3 characters
			
			//start checking to ensure that the string contains only alphabets and numbers
			if (isDigit(mypassword.charAt(i)) && digitind == false){
				digitind = true;
			}
			
			if (isAlphabet(mypassword.charAt(i)) && alphabetind == false){
				alphabetind = true;
			}
		} //end for
		

		if (digitind == false || alphabetind == false){
			return false;
		}
		else{
			return true;
		}
	}
	
	//Check whether the value is a number or alphabet
	function isAlphabet(characterValue){
		var R1 = /^[a-zA-Z]$/
		return (R1.test(characterValue));
	}
	
	function checkpassword(thisObj,myuserid){
		//criteria for password:
		//1. Min 6 characters
		//2. No spaces in password
		var mypassword = thisObj.value;
		var useridstring = String(myuserid);
		var mypasswordstring = String(mypassword);
		var validateind= false;
		var myerrormsg = "Please ensure that the password fulfils the following criteria:\n";
		myerrormsg = myerrormsg.concat("1. Min 6 characters. \n");
		myerrormsg = myerrormsg.concat("2. No spaces allowed. \n");
		myerrormsg = myerrormsg.concat("3. Password must not match User Id. \n");

		if (isMinLength(mypasswordstring, 6) && !findChar(mypasswordstring," ") && useridstring!=mypasswordstring){
			validateind =true;
		}
		else{
			validateind = false;
		}
	
		if (validateind == false){
			alert(myerrormsg);
		}
		
		
		return validateind;
	}

