//Check form values
function check_form(form)
{
	var firstName = form.leaderName.value;
	var lastName = form.leaderLastName.value;
	var company = form.leaderCompany.value;
	var address = form.leaderAddress.value;
	var suburb = form.leaderSuburb.value;
	var state = form.leaderState.value;
	var postcode = form.leaderPostcode.value;
	var phone = form.leaderPhone.value;
	var email = form.leaderEmail.value;

	if (!checkName(firstName)) {
		alert("The first name for the main contact is not valid.\r\nPlease write a valid first name");
	    return false;
	} else if (!checkName(lastName)) {
		alert("That last name for the main contact is not valid.\r\nPlease write a valid last name");
	    return false;
	} else if (!isEmail(email)) {
		alert("The email for the main contact is not valid.\r\nPlease provide a valid email");
		return false;
	} else if (isEmpty(form.attendee_name_0.value)) {
		alert("Please ensure you input at least one attendee in your registration");
		return false;
	} else {
		var i = 0;
		while (document.getElementById('attendee_name_'+i)) {
			var attendeeName = document.getElementById('attendee_name_'+i).value;
			var attendeeLastname = document.getElementById('attendee_lastname_'+i).value;
			var attendeeEmail = document.getElementById('attendee_email_'+i).value;

			if (!checkName(attendeeName)) {
				alert("The first name of attendee #"+(i+1)+" is not valid.\r\nPlease write a valid first name");
				return false;
			} else if (!checkName(attendeeLastname)) {
				alert("The last name of attendee #"+(i+1)+" is not valid.\r\nPlease write a valid last name");
				return false;
			} else if (!isEmpty(attendeeEmail) && !isEmail(attendeeEmail)) {
				alert("The email of attendee #"+(i+1)+" is not valid.\r\nPlease write a valid email address");
				return false;
			}
			i++;
		}
		//Submit Form
		return true;
	}
}

function checkName(name)
{
    if (name.length<2) {
        return false;
    } else if (!isAlphabetic(name)) {
        return false;
    } else {
        return true;
    }
}

function isAlphabetic(s)
{
    var i;
    for (i=0;i<s.length;i++) {
        var c=s.charAt(i);
        if (!isLetter(c)) {
            return false;
        }
    }
    // All are letters
    return true;
}

function isLetter(c)
{
  return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || (c==" ") || (c=="'") || (c=="-") );
}

function checkNum(num)
{
  if (num.length<2)
    return false;
  else if (!isNumber(num))
    return false;
  else
    return true;
}

function isNumber(s)
{
  var i;
  for (i=0;i<s.length;i++) {
	var c=s.charAt(i);
    if (!isDigit(c))
	  return false;
  }
  // All are digits
  return true;
}

function isDigit(c)
{
  return ( ((c >= "0") && (c <= "9")) || (c=="-") || (c=="+") ||(c=="(") || (c==")") || (c=="[") || (c=="]") || (c==" ") );
}

function isEmpty(s)
{
  return ((s == null) || (s.length == 0));
}

function isEmail(s)
{
    var email = trim(s);
    //var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    var emailReg = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
    var regex = new RegExp(emailReg);
    return regex.test(email);
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}
