var required = new Array ('surname','firstname','month','day','year','sex','birth','citizenship','study','address','telephone','email','lastschool','lastschooladdress','educationlevel','emonth','eday','eyear','certificate','currentlevel','program','start','future','interest','ad','fname','faddress','ftelephone','mname','maddress','mtelephone','cname','crelationship','caddress','ctelephone');
var contactrequired = new Array ('name','email','teacher','subject','message');
var realNames = new Array ();
realNames['name'] = "Name";
realNames['fname'] = "Father's Name";
realNames['mname'] = "Mother's Name";
realNames['cname'] = "Emergency Contact's Name";
realNames['subject'] = "Subject";
realNames['message'] = "Message";
realNames['teacher'] = "Teacher";
realNames['surname'] = "Surname";
realNames['firstname'] = "First name";
realNames['month'] = "Month you were born";
realNames['day'] = "Day you were born";
realNames['year'] = "Year you were born";
realNames['sex'] = "Sex/Gender";
realNames['birth'] = "Place of birth";
realNames['citizenship'] = "Country of citizenship";
realNames['study'] = "Eligibility to study in Canada";
realNames['address'] = "Home address";
realNames['faddress'] = "Father's address";
realNames['maddress'] = "Emergency Contact address";
realNames['caddress'] = "Emergency Contact address";
realNames['telephone'] = "Telephone number";
realNames['ftelephone'] = "Father's Telephone number";
realNames['mtelephone'] = "Mother's Telephone number";
realNames['ctelephone'] = "Emergency Contact Telephone number";
realNames['email'] = "Email address";
realNames['lastschool'] = "Current School";
realNames['lastschooladdress'] = "Current school address";
realNames['educationlevel'] = "Last level of education completed";
realNames['emonth'] = "Month of last education completed";
realNames['eday'] = "Day of last education completed";
realNames['eyear'] = "Year of last education completed";
realNames['certificate'] = "Last diploma/certificate received";
realNames['currentlevel'] = "Current level of study";
realNames['program'] = "Program applying for";
realNames['start'] = "Semester to start";
realNames['future'] = "Future plan of study";
realNames['interest'] = "Program of interest";
realNames['room'] = "Type of room preferred";
realNames['food'] = "Type of food requested";
realNames['ad'] = "How you heard of Bronte";
realNames['crelationship'] = "Emergency Contact relationship";

function verifyPastDate (currMonth, currDay, currYear)
{
	var d = new Date();
	if (d.getFullYear() == currYear) 
	{
		if ((d.getMonth()+1) < currMonth)
			return false;
		else if (((d.getMonth()+1) == currMonth) && (d.getDate() < currDay))
			return false;
	}
	return true;
}
function verifyFutureDate (currMonth, currDay, currYear)
{
	var d = new Date();
	if (d.getFullYear() == currYear) 
	{
		if ((d.getMonth()+1) > currMonth)
			return false;
		else if (((d.getMonth()+1) == currMonth) && (d.getDate() > currDay))
			return false;
	}
	return true;
}
function verifyNumbers (currNum)
{
	var regex = /^[\d\s]+$/;
	if (currNum && (!regex.test(currNum)))
	{
		return false;
	}
	return true;
}
function verifyEmail (currEmail)
{
	var emailReg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var emailReg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/; // valid
	if (currEmail && !(!emailReg1.test(currEmail) && emailReg2.test(currEmail))) 
	{
		return false;
	}
	return true;
}
function inRequired (currName)
{
	for (var i=0; i<required.length; i++)
	{
		if (currName == required[i])
			return true;
	}
	return false;
}
function checkForm (form)
{
	var required = new Array ('surname');
	var mess = "";
	for (var i=0; i < form.elements.length; i++)
	{
		if ((!form.elements[i].value) && inRequired(form.elements[i].name))
		{
			mess = mess + "-   " + realNames[form.elements[i].name] + "\n";
		}
	}
	
	if (mess)
	{
		alert("The following fields cannot be left blank:\n" + mess);
		return false;
	}
	else
	{
		if (!verifyPastDate(form.emonth.value,form.eday.value,form.eyear.value))
		{
			alert("The date you completed your last level of education is invalid");
			return false;
		}
		else if ((!verifyNumbers(form.telephone.value)) || (!verifyNumbers(form.fax.value)) || (!verifyNumbers(form.cell.value)))
		{
			alert("Your telephone/cell/fax numbers cannot contain any characters other than numbers.");
			return false;
		}
		else if ((!verifyNumbers(form.mtelephone.value)) || (!verifyNumbers(form.mfax.value)) || (!verifyNumbers(form.mcell.value)))
		{
			alert("Your mother's telephone/cell/fax numbers cannot contain any characters other than numbers.");
			return false;
		}
		else if ((!verifyNumbers(form.ftelephone.value)) || (!verifyNumbers(form.ffax.value)) || (!verifyNumbers(form.fcell.value)))
		{
			alert("Your father's telephone/cell/fax numbers cannot contain any characters other than numbers.");
			return false;
		}
		else if ((!verifyNumbers(form.gtelephone.value)) || (!verifyNumbers(form.gfax.value)) || (!verifyNumbers(form.gcell.value)))
		{
			alert("Your guardian's telephone/cell/fax numbers cannot contain any characters other than numbers.");
			return false;
		}

		else if ((!verifyNumbers(form.ctelephone.value)) || (!verifyNumbers(form.cfax.value)) || (!verifyNumbers(form.ccell.value)))
		{
			alert("Your emergency contact telephone/cell/fax numbers cannot contain any characters other than numbers.");
			return false;
		}
		else if (!verifyEmail(form.email.value))
		{
			alert("You must enter a valid email address");
			return false;
		}
		else if (!verifyEmail(form.femail.value))
		{
			alert("You must enter a valid email address for your father");
			return false;
		}
		else if (!verifyEmail(form.memail.value))
		{
			alert("You must enter a valid email address for your mother");
			return false;
		}
		else if (!verifyEmail(form.gemail.value))
		{
			alert("You must enter a valid email address for your guardian");
			return false;
		}
		else if (!verifyEmail(form.cemail.value))
		{
			alert("You must enter a valid email address for your emergency contact");
			return false;
		}
	}
	return true;
}

function copyValue(obj1, obj2, obj3)
{
	if (obj1.value != "")
	{
		obj2.value = obj1.value;
		if (!obj2.disabled)
		{
			disableElement(obj2);
			disableColor(obj3);
		}
		if (!document.application.sameaddress.checked)
		{
			disableElement(obj2);
			disableColor(obj3);
		}
	}
	else
	{
		alert("You need to fill in " + obj1.name + " above.");
		document.application.sameaddress.checked = false;
		document.application.ptelephone.disabled = false;
		document.application.paddress.disabled = false;
		paddressApp.style.color='#000000';
		ptelephoneApp.style.color='#000000';
	}

}

function disableElement(obj)
{
	obj.disabled = !(obj.disabled);
	var z = (obj.disabled) ? 'disabled' : 'enabled';
}
function disableRadios(obj, num)
{
	for (var i=0; i<num; i++)
	{
		obj[i].disabled = !(obj[i].disabled);
		var z = (obj[i].disabled) ? 'disabled' : 'enabled';
	}
}
function disableColor(obj)
{
	if (obj.style.color != '#999999')
		obj.style.color='#999999';
	else
		obj.style.color='#000000';
}
function inRequired2 (currName)
{
	for (var i=0; i<contactrequired.length; i++)
	{
		if (currName == contactrequired[i])
			return true;
	}
	return false;
}
function checkForm2 (form)
{
	var required = new Array ('surname');
	var mess = "";
	for (var i=0; i < form.elements.length; i++)
	{
		if ((!form.elements[i].value) && inRequired2(form.elements[i].name))
		{
			if ((form.elements[i].name == 'paddress') || (form.elements[i].name == 'ptelephone'))
			{
				if (!document.sameaddress.checked)
					mess = mess + "-   " + realNames[form.elements[i].name] + "\n";
			}
			else
			{
				mess = mess + "-   " + realNames[form.elements[i].name] + "\n";
			}
		}
	}
	
	if (mess)
	{
		alert("The following fields cannot be left blank:\n" + mess);
		return false;
	}
	else
	{
		if (!verifyEmail(form.email.value))
		{
			alert("The email address you entered is not valid.");
			return false;
		}
	}
	return true;
}