var FormValidation =
{
  init: function()
  {
    var forms = document.getElementsByTagName("form");
     
    for (var i = 0; i < forms.length; i++)
    {
      Core.addEventListener(forms[i], "submit", FormValidation.submitListener);
    }
		
},

  rules:
  {
    required: /./,
    requiredNotWhitespace: /\S/,
    positiveInteger: /^\d*[1-9]\d*$/,
    positiveOrZeroInteger: /^\d+$/,
    integer: /^-?\d+$/,
    decimal: /^-?\d+(\.\d+)?$/,
    email: /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/,
    telephone: /^(\+\d+)?( |\-)?(\(?\d+\)?)?( |\-)?(\d+( |\-)?)*\d+$/,
	rate: /./
  },

  errors:
  {
    required: "Please fill in this required field.",
    requiredNotWhitespace: "Please fill in this required field.",
    positiveInteger: "This fill this field out with numbers.",
    positiveOrZeroInteger: "This field may only contain a non-negative whole number.",
    integer: "This field may only contain a whole number.",
    decimal: "This field may only contain a number.",
    email: "Please enter a valid email address into this field.",
    telephone: "Please enter a valid telephone number into this field.",
	rate: "Please ensure that you have given a rating for all scale evaluation items."
  },
  
  submitListener: function(event)
  {
	
	<!-- registered option -->
	
	var registered1 = document.getElementById("registered1");
	var registered2 = document.getElementById("registered2");
	
	if ((registered1.checked == false) && (registered2.checked == false))
	{
		registered1.focus();
		alert("Please specify whether you are a registered member of AIPPEN");
		Core.preventDefault(event);
		return;
	}
	
	<!-- member option -->
	
	var member1 = document.getElementById("member1");
	var member2 = document.getElementById("member2");
	
	if ((member1.checked == false) && (member2.checked == false))
	{
		member1.focus();
		alert("Please specify whether you are already a member of an interprofessional health organisation.");
		Core.preventDefault(event);
		return;
	}
	
	<!-- default validation option -->
	
	var fields = this.elements;
	
    for (var i = 0; i < fields.length; i++)
    {
      var className = fields[i].className;
      var classRegExp = /(^| )(\S+)( |$)/g;
      var classResult;
      
      while (classResult = classRegExp.exec(className))
      {
        var oneClass = classResult[2];
        var rule = FormValidation.rules[oneClass];
        if (typeof rule != "undefined")
        {
          if (!rule.test(fields[i].value))
          {
            fields[i].focus();
            alert(FormValidation.errors[oneClass]);
            Core.preventDefault(event);
            return;
          }
        }
      }
    }
	
	<!-- member option -->
	
	var recommend1 = document.getElementById("recommend1");
	var recommend2 = document.getElementById("recommend2");
	
	if ((recommend1.checked == false) && (recommend2.checked == false))
	{
		recommend2.focus();
		alert("Please specify whether you would recommend the AIPPEN website to your peers/colleagues.");
		Core.preventDefault(event);
		return;
	}
	
	<!-- member option -->
	
	var checkbox = Core.getElementsByClass("checkboxes");  
	var count = 0;
	
	for( var i = 0; i < checkbox.length; i++) 
	{
		if (checkbox[i].checked == true) { 
			count++;
		}
		//Core.addEventListener(checkbox[i], "submit", FormValidation.checkToggle);		
		
	}
	//alert (count);
	
	if (count == 0) {
		alert("Please select at least one area in the last question");
		Core.preventDefault(event);
		return;
		}
	if (count > 3) {
		alert("Please select no more than three areas in the last question");
		Core.preventDefault(event);
		return;
		}
	
	var otherValue =  document.getElementById("moreinfoOtherInput");
	
	if ((checkbox[7].checked == true) && (otherValue.value == "")) {
		alert("Please indicate your other preference");
		otherValue.focus();
        Core.preventDefault(event);
        return;
		}
  }
};

Core.start(FormValidation);