
var bgBad = "#99CCCC";
var bgGood = "white";
var focalnum = 0;



//*************************************************************************
//	Functions for topapply
//	Last Edited : SImon 10:27 1/10/2004
//*************************************************************************



function setColor(el, bg) {
  if (el.style) {el.style.backgroundColor = bg;}
		
}




function checkDate(theObj) {
	var err=0, a
	a=theObj.value
	if (a.length != 10) err=1
	myday = a.substring(0, 2)		// day
	c = a.substring(2, 3)				// '/'
	mymon = a.substring(3, 5)		// month
	e = a.substring(5, 6)				// '/'
	myyear = a.substring(6, 10)	// year
	
	if (myday<1 || myday>31) err = 1 

	if (c != '/') err = 1 

	if (mymon<1 || mymon>12) err = 1 
	
	if (e != '/') err = 1 
	
	if (myyear<0 || myyear>9999) err = 1 
	
	if (mymon==4 || mymon==6 || mymon==9 || mymon==11) {
		if (myyear==31) err=1
	}
	if (mymon==2){
		var g=parseInt(myyear/4)
		if (isNaN(g)) {
			err=1
		}
		if (myday>29) err=1
		if (myday==29) {
			if ((myyear/4)!=parseInt(myyear/4)) {
				err=1
			} else {
				if ((myyear/400)!=parseInt(myyear/400)) err=1
			}
		}
	}
	if (err==1) {
		return false;
  } return true;
}

function FMPcheck(el, checktype, al) {
// conventions: 
// empty = check for empty
// last character of a mandatory field name is "*"
// previous character indicates the data type
// N* = mandatory numeric (characters 0-9 only)
// Y* = mandatory 4-digit year
// S* = mandatory date with 4-digit year (dd/mm/yyyy)
// E* = mandatory email address
// E- = optional e-mail address (ie blank allowed, but not invalid mail address)

// other field naming conventions:
// S+ = 4-digit numeric value, blanks not allowed
// S- = any length numeric, blanks not allowed
// D- = date with 2-digit year (dd/mm/yy)

setColor(el, bgGood);

// *************************************************
// Empty

if (checktype == "empty") {
	if (el.value == "") {
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
	else {
		return false;
	}
}

// *************************************************
// Equal

if (checktype == "equal") {
	if (el.value != al.value) {
		setColor(el, bgBad);
		setColor(al, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
	else {
		return false;
	}
}

// *************************************************
// Not Equal

if (checktype == "nequal") {
	if (el.value == al.value) {
		setColor(el, bgBad);
		setColor(al, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
	else {
		return false;
	}
}

// *************************************************
// Email - Empty

if (checktype == "emaile") {
	if (el.value != ""){
                if((el.value.indexOf('@') == -1)||(el.value.indexOf('.') == -1)) {
	        		setColor(el, bgBad);
					if (focalnum == 0) {el.focus();focalnum=1;}
						return true;
				} 
				else {
					var atpos = el.value.indexOf('@')
					if(atpos < 1) {
						setColor(el, bgBad);
						if (focalnum == 0) {el.focus();focalnum=1;}
						return true;
					}
					else {
					var nachat = el.value.length - atpos
					if(nachat < 6 ) {
						setColor(el, bgBad);
						if (focalnum == 0) {el.focus();focalnum=1;}
						return true;
					}
				}
		}
	}

	else{
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}

// *************************************************
// Email

if (checktype == "email") {
	if (el.value != ""){
                if((el.value.indexOf('@') == -1)||(el.value.indexOf('.') == -1)) {
	        		setColor(el, bgBad);
					if (focalnum == 0) {el.focus();focalnum=1;}
						return true;
				} 
		else {
			var atpos = el.value.indexOf('@')
			if(atpos < 1) {
				setColor(el, bgBad);
				if (focalnum == 0) {el.focus();focalnum=1;}
				return true;
			}
			else {
				var nachat = el.value.length - atpos
				if(nachat < 6 ) {
					setColor(el, bgBad);
					if (focalnum == 0) {el.focus();focalnum=1;}
					return true;
				}
			}
		}
	}
}

// *************************************************
// Number - Empty

if (checktype == "numbere") {
if (el.value != ""){
	var valid = "0123456789";
	var ok = "yes";
	var temp;
	
	for (var j=0; j<el.value.length; j++){
		temp = el.value.substring(j, j+1);
		if ((valid.indexOf(temp) == "-1") && (temp != " ")){
					ok = "no";
		}
	}

	if (ok == "no"){
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
else{
	setColor(el, bgBad);
	if (focalnum == 0) {el.focus();focalnum=1;}
	return true;
}
}

// *************************************************
// Currency - Empty

if (checktype == "currencye") {
if (el.value != ""){
	var valid = "0123456789.";
	var ok = "yes";
	var temp;
	
	for (var j=0; j<el.value.length; j++){
		temp = el.value.substring(j, j+1);
		if ((valid.indexOf(temp) == "-1") && (temp != " ")){
					ok = "no";
		}
	}
	
	if (el.value.substring(((el.value.length)-3),((el.value.length)-2)) != "."){
		ok="no";
	}

	if (ok == "no"){
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
else{
	setColor(el, bgBad);
	if (focalnum == 0) {el.focus();focalnum=1;}
	return true;
}
}


// *************************************************
// Currency

if (checktype == "currency") {
if (el.value != ""){
	var valid = "0123456789.";
	var ok = "yes";
	var temp;
	
	for (var j=0; j<el.value.length; j++){
		temp = el.value.substring(j, j+1);
		if ((valid.indexOf(temp) == "-1") && (temp != " ")){
					ok = "no";
		}
	}
	
	if (el.value.substring(((el.value.length)-3),((el.value.length)-2)) != "."){
		ok="no";
	}

	if (ok == "no"){
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
}

// *************************************************
// Number

if (checktype == "number") {
if (el.value != ""){
	var valid = "0123456789";
	var ok = "yes";
	var temp;
	
	for (var j=0; j<el.value.length; j++){
		temp = el.value.substring(j, j+1);
		if ((valid.indexOf(temp) == "-1") && (temp != " ")){
					ok = "no";
		}
	}

	if (ok == "no"){
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
}

// *************************************************
// Phone - Empty

if (checktype == "phonee") {
if (el.value != ""){
	var valid = "0123456789()";
	var ok = "yes";
	var temp;
	
	for (var j=0; j<el.value.length; j++){
		temp = el.value.substring(j, j+1);
		if ((valid.indexOf(temp) == "-1") && (temp != " ")){
					ok = "no";
		}
	}

	if (ok == "no"){
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
else{
	setColor(el, bgBad);
	if (focalnum == 0) {el.focus();focalnum=1;}
	return true;
}
}

// *************************************************
// Phone

if (checktype == "phone") {
if (el.value != ""){
	var valid = "0123456789()";
	var ok = "yes";
	var temp;
	
	for (var j=0; j<el.value.length; j++){
		temp = el.value.substring(j, j+1);
		if ((valid.indexOf(temp) == "-1") && (temp != " ")){
					ok = "no";
		}
	}

	if (ok == "no"){
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
}

// *************************************************
// Year

if (checktype == "year") {
if (el.value != ""){
	var valid = "0123456789";
	var ok = "yes";
	var temp;
	if (el.value.length != 4){
		ok = "no";
	}

	for (var j=0; j<el.value.length; j++){
		temp = "" + el.value.substring(j, j+1);
		if (valid.indexOf(temp) == "-1"){
			ok = "no";
		}
	}
	if (ok == "no"){
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
else{
	setColor(el, bgBad);
	if (focalnum == 0) {el.focus();focalnum=1;}
	return true;

}
}

// *************************************************
// Date - Empty

if (checktype == "datee") {
if (el.value != ""){
	var valid = "012/3456789";
			var ok = "yes";
			var temp;

			if ((el.value.length < 6) || (el.value.length > 8))
			{
				ok = "no";
			}
									
			for (var j=0; j<el.value.length; j++) 
			{
				temp = el.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}
				
			if (ok == "no") 	
			{
				setColor(el, bgBad);
				if (focalnum == 0) {el.focus();focalnum=1;}
				return true;
			}
}
else{
	setColor(el, bgBad);
	if (focalnum == 0) {el.focus();focalnum=1;}
	return true;
}
}

// *************************************************
// Date - Special

if (checktype == "dates") {
if (el.value != ""){

	if (checkDate(el)){
		return false;
	}
	else{
		setColor(el, bgBad);
		if (focalnum == 0) {el.focus();focalnum=1;}
		return true;
	}
}
else{
	setColor(el, bgBad);
	if (focalnum == 0) {el.focus();focalnum=1;}
	return true;
}
}

return false;
}

function checkFields(hiddenValue, frmValue)
// conventions: 
// last character of a mandatory field name is "*"
// previous character indicates the data type
// N* = mandatory numeric (characters 0-9 only)
// Y* = mandatory 4-digit year
// S* = mandatory date with 4-digit year (dd/mm/yyyy)
// E* = mandatory email address
// E- = optional e-mail address (ie blank allowed, but not invalid mail address)

// other field naming conventions:
// S+ = 4-digit numeric value, blanks not allowed
// S- = any length numeric, blanks not allowed
// D- = date with 2-digit year (dd/mm/yy)

{
	for (i=0; i<document.forms[frmValue].elements.length; i++) 
	{
		obj = document.forms[frmValue].elements[i];
		len = obj.name.length;

		//*********************************************

		if (obj.name.substring(len-1, len) == "*") 
		{
			var objValue;
			
			if (obj.type == "select-one")
			{
				objValue = obj.options[obj.selectedIndex].value;
			} else {
				objValue = obj.value;
			}			

			if (objValue == "") 
			{
				alert ("Please complete this mandatory field");
				obj.focus();
				return false;
			}
		}

		if (obj.name.substring(len-2, len) == "N*") 
		{
			var valid = "0123456789";
			var ok = "yes";
			var temp;
			
			for (var j=0; j<obj.value.length; j++) 
			{
				temp = obj.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}

			if (ok == "no") 	
			{
				alert("Please enter a valid value.");
				obj.value = "";
				obj.focus();
				return false;
			}
		}

		//*********************************************
		// E-mail Addresses:		

		if (
			((obj.name.substring(len-2, len) == "E-") && (obj.value != "")) ||
			(obj.name.substring(len-2, len) == "E*"))
		{
			var ok = "no";

			var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
			var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
			if (!reg1.test(obj.value) && reg2.test(obj.value)) { // if syntax is valid
				ok = "yes";
			} 

			if (ok == "no")	
			{
				alert("Please enter a single valid e-mail address.");
				obj.focus();
				return false;
			}
		}

		//*********************************************
		
		if (obj.name.substring(len-2, len) == "S*") 
		{
			var valid = "0123456789";
			var ok = "yes";
			if (obj.value.length != 10) 
			{
				ok = "no";
			}

			for (var j=0; j<2; j++) 
			{
				temp = obj.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}	
		
			for (var j=3; j<5; j++) 
			{
				temp = obj.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}	
		
			for (var j=6; j<10; j++) 
			{
				temp = obj.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}	
		
			if ((obj.value.substring(2, 3) != "/") || (obj.value.substring(5, 6) != "/"))
			{
				ok = "no";
			}

			if (checkDate(obj) == false)
			{
				ok = "no";
			}

			if (ok == "no")	
			{
				alert("Please enter a valid date in the format 'dd/mm/yyyy'.");
				obj.value = "";
				obj.focus();
				return false;
			}
		}

		//*********************************************

		if (obj.name.substring(len-2, len) == "S-") 
		{
			var valid = "0123456789";
			var ok = "yes";
			var temp;

			for (var j=0; j<obj.value.length; j++) 
			{
				temp = obj.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}

			if (ok == "no") 	
			{
				alert("Please enter a valid value.");
				obj.focus();
				return false;
			}
		}
					
		//*********************************************

		if (obj.name.substring(len-2, len) == "S+") 
		{
			var valid = "0123456789";
			var ok = "yes";
			var temp;

			if ((obj.value.length != 4) && (obj.value.length != 0))
			{
				ok = "no";
			}

			for (var j=0; j<obj.value.length; j++) 
			{
				temp = obj.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}

			if (ok == "no") 	
			{
				alert("Please enter a valid value.");
				obj.focus();
				return false;
			}
		}
			
		//*********************************************

		if (obj.name.substring(len-2, len) == "D-") 
		{
			var valid = "012/3456789";
			var ok = "yes";
			var temp;

			if ((obj.value.length < 6) || (obj.value.length > 8))
			{
				ok = "no";
			}
									
			for (var j=0; j<obj.value.length; j++) 
			{
				temp = obj.value.substring(j, j+1);
				if ((valid.indexOf(temp) == "-1") && (temp != " "))
				{
					ok = "no";
				}
			}
				
			if (ok == "no") 	
			{
				alert("Please enter a valid date.");
				obj.value = "";
				obj.focus();
				return false;
			}
		}

		//*********************************************

		if (obj.name.substring(len-2, len) == "Y*") 
		{
			var valid = "0123456789";
			var ok = "yes";
			var temp;
			if (obj.value.length != 4) 
			{
				ok = "no";
			}

			for (var j=0; j<obj.value.length; j++) 
			{
				temp = "" + obj.value.substring(j, j+1);

				if (valid.indexOf(temp) == "-1")
				{
					ok = "no";
				}
			}

			if (ok == "no") 	
			{
				alert("Please enter a valid four digit year.");
				obj.focus();
				return false;
			}
		}
	}
	document.forms[frmValue].hiddenobj.value=hiddenValue;
	document.forms[frmValue].submit();

return true;
}


function doGoreg(form){
focalnum=0;
var VMsg = "Please complete the following fields:"

	if (FMPcheck(form.emailaddress, "emaile")){ VMsg = VMsg + "\n *  Email Address"; }
	else{
			if (FMPcheck(form.emailaddress2, "emaile")){ VMsg = VMsg + "\n *  Verify Email Address"; }
				else{
						if(form.emailaddress.value != form.emailaddress2.value){
								VMsg = VMsg + "\n *  You entered different Email Addresses.";
								focalnum = 1;
						}
				}
	}
	
	if (FMPcheck(form.firstname, "empty")){ VMsg = VMsg + "\n *  First Name"; }
	if (FMPcheck(form.lastname, "empty")){ VMsg = VMsg + "\n *  Last Name"; }
	
	if (focalnum == 1) {
		alert (VMsg);
		return false;
	}
return true;
} 