// JavaScript Document
var xmlHttpSK;
var xmlHttpCT;
var flag = true;
var streetMail = "";
function regVal(){
	subFlag = true;
	if(document.getElementById('businessName').value == ''){
		alert('Please enter a business name.');
		subFlag = false;
	}else if(document.getElementById('phone').value == ''){
		alert('Please enter a phone number.');
		subFlag = false;
	}else if(document.getElementById('tollFree').value == ''){
		alert('Please enter a toll free number.');
		subFlag = false;
	}else if((document.getElementById('webSite').value.match(/[^a-zA-Z.\/:]/) != null)){
		alert('Please enter properly formed website name.');
		subFlag = false;
	}else if((document.getElementById('phone').value.match(/[^0-9.() -]/) != null)){
		alert('Please enter properly formed phone number.');
		subFlag = false;
	}else if((document.getElementById('tollFree').value.match(/[^0-9.() -]/) != null)){
		alert('Please enter properly formed toll free number.');
		subFlag = false;
	}else if((document.getElementById('fax').value.match(/[^0-9.() -]/) != null)){
		alert('Please enter properly formed fax number.');
		subFlag = false;
	}else if(document.getElementById('streetNo').value == ''){
		alert('Please enter a street number.');
		subFlag = false;
	}else if((document.getElementById('streetNo').value.match(/[^0-9]/) != null) || (document.getElementById('streetNo').value == '')){
		alert('Please enter a street number for your street address.');
		subFlag = false;
	}else if(document.getElementById('streetName').value == ''){
		alert('Please enter a street name.');
		subFlag = false;
	}else if((document.getElementById('streetName').value.match(/[^0-9a-zA-Z ]/) != null) || (document.getElementById('streetName').value == '')){
		alert('Please enter a correct street name for your street address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('streetType').value.match(/[^a-zA-Z ]/) != null) || (document.getElementById('streetType').value == '')){
		alert('Please enter a correct street type for your street address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('streetDirection').value.match(/[^a-zA-Z]/) != null)){
		alert('Please enter a correct street direction for your street address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('streetSuite').value.match(/[^0-9]/) != null)){
		alert('Please enter a correct suite number for your street address. Whole numbers only.');
		subFlag = false;
	}else if(document.getElementById('streetProvince').value == 'Please select a province'){
		alert('Please select a province for your street address.');
		subFlag = false;
	}else if((document.getElementById('streetCity').value == 'Please select a city') || (document.getElementById('streetCity').value == '') || (document.getElementById('streetCity').value.match(/[^a-zA-Z .]/) != null)){
		alert('Please enter a city for your street address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('streetPostalCode').value == '') || (document.getElementById('streetPostalCode').value.length > 7) || (document.getElementById('streetPostalCode').value.match(/[^a-zA-Z0-9 ]/) != null) || (document.getElementById('streetPostalCode').value.length < 6)){
		alert('Please enter a correct postal code for your street address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('mailNo').value.match(/[^0-9]/) != null) || (document.getElementById('mailNo').value == '')){
		alert('Please enter a street number for your mailing address.');
		subFlag = false;
	}else if((document.getElementById('mailName').value.match(/[^0-9a-zA-Z ]/) != null) || (document.getElementById('mailName').value == '')){
		alert('Please enter a correct street name for your mailing address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('mailType').value.match(/[^a-zA-Z ]/) != null) || (document.getElementById('mailType').value == '')){
		alert('Please enter a correct street type for your mailing address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('mailDirection').value.match(/[^a-zA-Z]/) != null)){
		alert('Please enter a correct street direction for your mailing address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('mailSuite').value.match(/[^0-9]/) != null)){
		alert('Please enter a correct suite number for your mailing address. Whole numbers only.');
		subFlag = false;
	}else if(document.getElementById('mailProvince').value == 'Please select a province'){
		alert('Please select a province for your mailing address.');
		subFlag = false;
	}else if((document.getElementById('mailCity').value == 'Please select a city') || (document.getElementById('mailCity').value == '') || (document.getElementById('mailCity').value.match(/[^a-zA-Z .]/) != null)){
		alert('Please enter a city for your mailing address. No punctuation.');
		subFlag = false;
	}else if((document.getElementById('mailPostalCode').value == '') || (document.getElementById('mailPostalCode').value.length > 7) || (document.getElementById('mailPostalCode').value.match(/[^a-zA-Z0-9 ]/) != null) || (document.getElementById('mailPostalCode').value.length < 6)){
		alert('Please enter a correct postal code for your mailing address. No punctuation.');
		subFlag = false;
	}else if(document.getElementById('floorSpace').value.match(/[^0-9.]/) != null){
		alert('Please enter a correct value for the floor space. Decimals only.');
		subFlag = false;
	}else if(document.getElementById('yearEstablished').value.match(/[^0-9]/) != null){
		alert('Please enter a correct value for the establishment year. Whole numbers only.');
		subFlag = false;
	}else if(document.getElementById('currentEstablished').value.match(/[^0-9]/) != null){
		alert('Please enter a correct value for the year of establishment at the current location. Whole numbers only.');
		subFlag = false;
	}else if(document.getElementById('numberOfShifts').value.match(/[^0-9]/) != null){
		alert('Please enter a correct value for the number of shifts. Whole numbers only.');
		subFlag = false;
	}else if((document.getElementById('contactFirst').value.match(/[^a-zA-Z]/) != null) || (document.getElementById('contactFirst').value == '')){
		alert("Please enter a correct value for the contact's first name. Letters only.");
		subFlag = false;
	}else if((document.getElementById('contactLast').value.match(/[^a-zA-Z]/) != null) || (document.getElementById('contactLast').value == '')){
		alert("Please enter a correct value for the contact's last name. Letters only.");
		subFlag = false;
	}else if((document.getElementById('contactPhone').value.match(/[^0-9.() -]/) != null) || (document.getElementById('contactPhone').value == '')){
		alert('Please enter properly formed phone number for the given contact.');
		subFlag = false;
	}else if(document.getElementById('contactFax').value.match(/[^0-9.() -]/) != null){
		alert('Please enter properly formed fax number for the given contact.');
		subFlag = false;
	}else if(document.getElementById('contactCell').value.match(/[^0-9.() -]/) != null){
		alert('Please enter properly formed cell phone number for the given contact.');
		subFlag = false;
	}else if(document.getElementById('contactRole').value == 'Please select a role'){
		alert('Please select a role for the contact.');
		subFlag = false;
	}else{
		var str = document.getElementById('contactEmail').value;
		if (window.RegExp) {
			var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
			var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
			var reg1 = new RegExp(reg1str);
			var reg2 = new RegExp(reg2str);
			if (!reg1.test(str) && reg2.test(str)){
				//document.getElementById('emailFail').innerHTML = "";
			}else{
				subFlag = false;
				alert("Please enter a correctly formed contact email address.  E.g. myname@myhost.com");
			}
		} else {
			if(str.indexOf("@") >= 0){
				//document.getElementById('emailFail').innerHTML = "";
			}else{
				subFlag = false;
				alert("Please enter a correctly formed contact email address.  E.g. myname@myhost.com");
			}
		}
	}
	if(subFlag){
		var p=document.getElementById("someForm");
		p.action="businessRegister.php";
		p.submit();	
	}
	
}
//Checks to see if primary keys alread exist for email and user name during the registration process, this way the user doesn't have
//to be re-directed to another page to learn that the email or username entered already exists.
function check_key(){
	check.checkFunc(
					document.getElementById('nickName').value, 
					document.getElementById('email').value,
					document.getElementById('existingBusiness').checked, 
					document.getElementById('businessName').value, 
					document.getElementById('knownBusiness').value, 
					function (result) { 																																																																																																																	
	if(result != "pass"){
		alert(result);
		flag = false;
	}else{
		var p=document.getElementById("aForm");
		p.action="memberCreate.php";
		p.submit();
	}
	});
}

//function to validate the create member form.
function createVal(){
	flag = true;
	if((document.getElementById('nickName').value == '') || (document.getElementById('nickName').value == document.getElementById('nickName').title)){
		alert('Please enter a username.');
		flag = false;
	}else if(document.getElementById('nickName').value.match(/[^a-zA-Z0-9\'_.-]/) != null){
		alert('Your username may only contain letters, numbers, hyphens, underscores, and periods');
		flag = false;
	}else if(document.getElementById('email').value != document.getElementById('confEmail').value){
		alert('Please ensure both email addresses entered are the same.');
		flag = false;
	}else if(document.getElementById('password').value == ''){
		alert('Please enter a password');
		flag = false;
	}else if(document.getElementById('password').value.match(/[^a-zA-Z0-9]/) != null){
		alert('Please make sure that your password only contains letters and numbers');
		flag = false;
	}else if((document.getElementById('existingBusiness').checked==false) && (document.getElementById('businessName').value == '')){
		alert('Please enter a business name.');
		flag = false;
	}else if ((document.getElementById('existingBusiness').checked==false) && (document.getElementById('businessName').value.match(/[^a-zA-Z0-9\'_. -]/) != null)){
		alert('For you business name, letters, numbers, hyphens, space and apostrophes only please.');
		flag = false;
	}else if((document.getElementById('existingBusiness').checked==true) && (document.getElementById('knownBusiness').value == '')){
		alert('Please select an exising business.');
		flag = false;
	}else if(document.getElementById('password').value != document.getElementById('password1').value){
		alert('Please make sure that you have matching passwords');
		flag = false;
	}else if(document.getElementById('contactName').value.match(/[^a-zA-Z0-9 -]/) != null){
		alert('Please enter a correctly formed contact name.  Letters, numbers, hyphens, and spaces only please.');
		flag = false;
	}else if(document.getElementById('address').value.match(/[^a-zA-Z0-9 -.]/) != null){
		alert('Please enter a correctly formed address.  Letters, numbers, hyphens, periods, and spacess only please.');
		flag = false;
	}else if(document.getElementById('phoneNumber').value != document.getElementById('phoneNumber').title){
		if(document.getElementById('phoneNumber').value.match(/[^()0-9 -.]/) != null){
			alert('Please enter a correctly formed phone number.  Letters, hyphens, periods, round braces, and spacess only please.');
			flag = false;
		}
	}else{
		var str = document.getElementById('email').value;
		if (window.RegExp) {
			var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
			var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
			var reg1 = new RegExp(reg1str);
			var reg2 = new RegExp(reg2str);
			if (!reg1.test(str) && reg2.test(str)){
				//document.getElementById('emailFail').innerHTML = "";
			}else{
				flag = false;
				alert("Please enter a correctly formed email address.  E.g. myname@myhost.com");
			}
		} else {
			if(str.indexOf("@") >= 0){
				//document.getElementById('emailFail').innerHTML = "";
			}else{
				flag = false;
				alert("Please enter a correctly formed email address.  E.g. myname@myhost.com");
			}
		}
	}
	if(flag){
		check_key();
	}
}
//function to switch the content on membersOnly.php before the person is logged in. e.g. for non members.
function memberContent(elmnt){
	var panel1 = document.getElementById('memberContentLogin');
	var panel2 = document.getElementById('memberContentRegister');
	var panel3 = document.getElementById('memberContentForgot');
	
	switch(elmnt){
		case 'member':
			YAHOO.util.Dom.addClass(elmnt,'tabOn');
			YAHOO.util.Dom.removeClass('create','tabOn');
			YAHOO.util.Dom.removeClass('request','tabOn');
			
			YAHOO.util.Dom.setStyle(panel1.id, 'display', 'block');
			YAHOO.util.Dom.setStyle(panel2.id, 'display', 'none');
			YAHOO.util.Dom.setStyle(panel3.id, 'display', 'none');
		break;
		case 'create':
			YAHOO.util.Dom.addClass(elmnt,'tabOn');
			YAHOO.util.Dom.removeClass('member','tabOn');
			YAHOO.util.Dom.removeClass('request','tabOn');
			
			YAHOO.util.Dom.setStyle(panel1.id, 'display', 'none');
			YAHOO.util.Dom.setStyle(panel2.id, 'display', 'block');
			YAHOO.util.Dom.setStyle(panel3.id, 'display', 'none');			
		break;
		case 'request':
			YAHOO.util.Dom.addClass(elmnt,'tabOn');
			YAHOO.util.Dom.removeClass('member','tabOn');
			YAHOO.util.Dom.removeClass('create','tabOn');
			
			YAHOO.util.Dom.setStyle(panel1.id, 'display', 'none');
			YAHOO.util.Dom.setStyle(panel2.id, 'display', 'none');
			YAHOO.util.Dom.setStyle(panel3.id, 'display', 'block');
		break;
	}
	defaultTextboxes();
}
//function to check if the 'Other' option was selected from the city drop down box.  If so, a text field replaces the select
//box so a variable value may be entered rather than an enumerated one.
function checkOther(elmnt){
	if(elmnt == 'street'){
		if(document.getElementById('streetCity').value == "Other"){
			document.getElementById('streetText').innerHTML = "<input type=\"text\" class=\"field\" style=\"width: 454px;\" name=\"streetCity\" id=\"streetCity\" />";
		}
	}else{
		if(document.getElementById('mailCity').value == "Other"){
			document.getElementById('mailText').innerHTML = "<input type=\"text\" class=\"field\" style=\"width: 454px;\" name=\"mailCity\" id=\"mailCity\" />";
		}
	}
}
//function looks up the database for all of the cities that correspond to a given province.  The available options in the city
//select box are adjusted accordingly.  If the province is quebec, the city select box is replaced with a text field as their is
//no provincial distinction between town & city in Quebec & therefore a large number of alternatives.
function cityLookUp_MS(elmnt){
	if(elmnt == "mail"){
		document.getElementById('mailCity').innerHTML = '<option>Loading...</option>';
		if(document.getElementById('mailProvince').value == 'Quebec'){
			document.getElementById('mailText').innerHTML = '<input type="text" class="businessRegField" name="mailCity" id="mailCity" />';
		}else{
			var mailprov = document.getElementById('mailProvince').value;
			cityLookUp.cityFunc(mailprov, function (result){ 
				try { 				
			 	   var info = YAHOO.lang.JSON.parse(result);
				} 
				catch (e) { 
				    alert("Invalid data"); 
				}
																						 
				var provinces = info.cities;
				var text = '<select class="businessRegField" name="mailCity" id="mailCity" onchange="checkOther(\'mail\');">';
				text += '<option selected="selected" value="Please select a city">Please select a city</option>';
				for (x in provinces){
					text += '<option value="'+provinces[x]+'">'+provinces[x]+'</option>';
				}
				text += '<option value="Other">Other</option></select>';
				document.getElementById('mailText').innerHTML = text;	
			});
		}
	}else{
		document.getElementById('streetCity').innerHTML = '<option>Loading...</option>';
		if(document.getElementById('streetProvince').value == 'Quebec'){
			document.getElementById('streetText').innerHTML = '<input type="text" class="businessRegField" name="streetCity" id="streetCity" />';
		}else{
			var streetProv = document.getElementById('streetProvince').value;
			cityLookUp.cityFunc(streetProv, function (result){
				try { 				
			 	   var info = YAHOO.lang.JSON.parse(result);
				} 
				catch (e) { 
				    alert("Invalid data"); 
				}
				var provinces = info.cities;
				var text = '<select class="businessRegField" name="streetCity" id="streetCity" onchange="checkOther(\'street\');">';
				text += '<option selected="selected" value="Please select a city">Please select a city</option>';
				for (x in provinces){
					text += '<option value="'+provinces[x]+'">'+provinces[x]+'</option>';
				}
				text += '<option value="Other">Other</option></select>';
				document.getElementById('streetText').innerHTML = text;	
			});
		}
	}
}

//this function completes the totals in the employee numbers section of the form.
function employeeMath(elmnt){
	switch(elmnt){
		case 'ftOnSite':
			if(document.getElementById('ftOnSite').value.match(/[^0-9]/) == null){
				document.getElementById('ftTotal').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ftOffSite').value));
				document.getElementById('totalOnSite').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ptOnSite').value)+ Number(document.getElementById('seasonalOnSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
			}else{
				document.getElementById('ftOnSite').value = '';
				document.getElementById('ftTotal').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ftOffSite').value));
				document.getElementById('totalOnSite').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ptOnSite').value)+ Number(document.getElementById('seasonalOnSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
				alert("Only whole numbers are allowed for employee counts.");
				return;
			}
		break;
		case 'ftOffSite':
			if(document.getElementById('ftOffSite').value.match(/[^0-9]/) == null){
				document.getElementById('ftTotal').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ftOffSite').value));
				document.getElementById('totalOffSite').value = (Number(document.getElementById('ftOffSite').value) + Number(document.getElementById('ptOffSite').value)+ Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
			}else{
				document.getElementById('ftOffSite').value = '';
				document.getElementById('ftTotal').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ftOffSite').value));
				document.getElementById('totalOffSite').value = (Number(document.getElementById('ftOffSite').value) + Number(document.getElementById('ptOffSite').value)+ Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
				alert("Only whole numbers are allowed for employee counts.");
				return;
			}
		break;
		case 'ptOnSite':
			if(document.getElementById('ptOnSite').value.match(/[^0-9]/) == null){
				document.getElementById('ptTotal').value = (Number(document.getElementById('ptOnSite').value) + Number(document.getElementById('ptOffSite').value));
				document.getElementById('totalOnSite').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ptOnSite').value)+ Number(document.getElementById('seasonalOnSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
			}else{
				document.getElementById('ptOnSite').value = '';
				document.getElementById('ptTotal').value = (Number(document.getElementById('ptOnSite').value) + Number(document.getElementById('ptOffSite').value));
				document.getElementById('totalOnSite').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ptOnSite').value)+ Number(document.getElementById('seasonalOnSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
				alert("Only whole numbers are allowed for employee counts.");
				return;
			}
		break;
		case 'ptOffSite':
			if(document.getElementById('ptOffSite').value.match(/[^0-9]/) == null){
				document.getElementById('ptTotal').value = (Number(document.getElementById('ptOnSite').value) + Number(document.getElementById('ptOffSite').value));
				document.getElementById('totalOffSite').value = (Number(document.getElementById('ftOffSite').value) + Number(document.getElementById('ptOffSite').value)+ Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
			}else{
				document.getElementById('ptOffSite').value = '';
				document.getElementById('ptTotal').value = (Number(document.getElementById('ptOnSite').value) + Number(document.getElementById('ptOffSite').value));
				document.getElementById('totalOffSite').value = (Number(document.getElementById('ftOffSite').value) + Number(document.getElementById('ptOffSite').value)+ Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
				alert("Only whole numbers are allowed for employee counts.");
				return;
			}
		break;
		case 'seasonalOnSite':
			if(document.getElementById('seasonalOnSite').value.match(/[^0-9]/) == null){
				document.getElementById('seasonalTotal').value = (Number(document.getElementById('seasonalOnSite').value) + Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalOnSite').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ptOnSite').value)+ Number(document.getElementById('seasonalOnSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
			}else{
				document.getElementById('seasonalOnSite').value = '';
				document.getElementById('seasonalTotal').value = (Number(document.getElementById('seasonalOnSite').value) + Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalOnSite').value = (Number(document.getElementById('ftOnSite').value) + Number(document.getElementById('ptOnSite').value)+ Number(document.getElementById('seasonalOnSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
				alert("Only whole numbers are allowed for employee counts.");
				return;
			}
		break;
		case 'seasonalOffSite':
			if(document.getElementById('seasonalOffSite').value.match(/[^0-9]/) == null){
				document.getElementById('seasonalTotal').value = (Number(document.getElementById('seasonalOnSite').value) + Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalOffSite').value = (Number(document.getElementById('ftOffSite').value) + Number(document.getElementById('ptOffSite').value)+ Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
			}else{
				document.getElementById('seasonalOffSite').value = '';
				document.getElementById('seasonalTotal').value = (Number(document.getElementById('seasonalOnSite').value) + Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalOffSite').value = (Number(document.getElementById('ftOffSite').value) + Number(document.getElementById('ptOffSite').value)+ Number(document.getElementById('seasonalOffSite').value));
				document.getElementById('totalTotal').value = (Number(document.getElementById('ftTotal').value) + Number(document.getElementById('ptTotal').value)+ Number(document.getElementById('seasonalTotal').value)+ Number(document.getElementById('totalOnSite').value)+ Number(document.getElementById('totalOffSite').value))/2;
				alert("Only whole numbers are allowed for employee counts.");
				return;
			}
		break;
		default:
			if(elmnt != "seasonalTotal"){
				employeeMath('ftOnSite');employeeMath('ftOffSite');employeeMath('ptOnSite');employeeMath('pftOffSite');
				employeeMath('seasonalOnSite');employeeMath('seasonalOffSite');
			}else{
				document.getElementById('seasonalTotal').value = (Number(document.getElementById('seasonalOnSite').value) + Number(document.getElementById('seasonalOffSite').value));
			}
		break;
	}
}
//This function adds and removes time related fields from the event time section based on user interactivity.
var timeShow = true;
var endShow = false;
function timeChange(){
	if(timeShow){
		document.getElementById('startTime').innerHTML = "";	
		if(endShow){
			document.getElementById('endTime').innerHTML = "";	
		}
		timeShow = false;
	}else{
		var dhtml = "<select class=\"field\" name=\"startHour\" id=\"startHour\">";		
		for(i = 1; i < 13; i++){
		 	dhtml = dhtml+ "<option value=\""+i+"\">"+i+"</option>";
		}
		dhtml = dhtml + "</select>&nbsp;<select class=\"field\" name=\"startMinute\" id=\"startMinute\">";
		for(i = 1;i < 60;i++){
		 	dhtml = dhtml +"<option value=\""+i+"\">"+i+"</option>";
		}
		dhtml = dhtml + "</select>";
		timeShow = true;
		document.getElementById('startTime').innerHTML = dhtml;
		if(endShow){
			dhtml = "<select class=\"field\" name=\"endHour\" id=\"endHour\">";
			for(i = 1;i < 13;i++){
				dhtml = dhtml + "<option value=\""+i+"\">"+i+"</option>";
			}
			dhtml = dhtml + "</select>&nbsp;<select class=\"field\" name=\"endMinute\" id=\"endMinute\">";
			for(i = 1; i < 60; i++){
				dhtml = dhtml + "<option value=\""+i+"\">"+i+"</option>";
			}
			dhtml = dhtml + "</select>";
			document.getElementById('endTime').innerHTML = dhtml;
		}
	}
}

//this function validates the create event form from the membersOnly.php file.
function eventVal(){
	var eventFlag = true;
	if((document.getElementById('title').value == '')){
		alert('Please enter a value for the event title');
		eventFlag = false;
	}else if(document.getElementById('description').value == ''){
		alert('Please enter a value for the event description');
		eventFlag = false;
	}else if(document.getElementById('location').value == ''){
		alert('Please enter a value for event location');
		eventFlag = false;
	}else if(document.getElementById('host').value == ''){
		alert('Please enter a value for business or property');
		eventFlag = false;
	}else if(document.getElementById('firstName').value == ''){
		alert('Please enter a contact person first name');
		eventFlag = false;
	}else if(document.getElementById('firstName').value.match(/[^a-z A-Z]/) != null){
		alert('Please enter a correctly formatted contact first name.  Letters and spaces only please.');
		eventFlag = false;
	}else if(document.getElementById('lastName').value == ''){
		alert('Please enter a contact person last name');
		eventFlag = false;
	}else if(document.getElementById('lastName').value.match(/[^a-z A-Z]/) != null){
		alert('Please enter a correctly formatted contact last name.  Letters and spaces only please.');
		eventFlag = false;
	}else if(document.getElementById('phone').value.match(/[^0-9 .()-]/) != null){
		alert('Please enter a correctly formatted phone number.  Numbers, periods, spaces, hyphens and round braces only please.');
		eventFlag = false;
	}else if(document.getElementById('email').value == ''){
		alert('Please enter a contact email');
		eventFlag = false;
	}else{
		if(document.getElementById('email').value != ''){
			var str = document.getElementById('email').value;
			if (window.RegExp) {
				var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
				var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
				var reg1 = new RegExp(reg1str);
				var reg2 = new RegExp(reg2str);
				if (!reg1.test(str) && reg2.test(str)){
					//document.getElementById('emailFail').innerHTML = "";
				}else{
					eventFlag = false;
					alert("Please enter a correctly formed email address.  E.g. myname@myhost.com");
				}
			} else {
				if(str.indexOf("@") >= 0){
					//document.getElementById('emailFail').innerHTML = "";
				}else{
					eventFlag = false;
					alert("Please enter a correctly formed email address.  E.g. myname@myhost.com");
				}
			}
		}
	}
	if(eventFlag){
		var p=document.getElementById("eventForm");
		p.action="eventRegister.php";
		p.submit();
	}
}
//This ajax function checks the strathcona database for a matching key to the title field from the event creation form.  As this is the primary key for the table, there can't be any duplicates.  The user is notified if a duplicate event name is entered.
function titleCheck_MS(elmnt){
	titleCheck.titleFunc(document.getElementById('title').value, function (result){ 
		if(result != "pass"){
			document.getElementById('title').value = "";
			alert(result);
		}
	});
}

//This function validates the job posting form from the membersOnly.php file.
function jobVal(){
	var jobFlag = true;
	if((document.getElementById('contactName').value == '') || (document.getElementById('contactName').value.match(/[^a-z A-Z]/) != null)){
		jobFlag = false;
		alert('Please enter a value for contact name.  Letters and spaces only please.');
	}else if(document.getElementById('phone').value.match(/[^0-9 .()-]/) != null){
		jobFlag = false;
		alert('Please enter a correctly formed phone number.  Numbers, spaces, hyphens, and round braces only please.');
	}else if(document.getElementById('suite').value.match(/[^0-9]/) != null){
		jobFlag = false;
		alert('Please enter a correctly formed suite number.  Numbers only please.');
	}else{
		if(document.getElementById('email').value != ''){
			var str = document.getElementById('email').value;
			if (window.RegExp) {
				var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
				var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
				var reg1 = new RegExp(reg1str);
				var reg2 = new RegExp(reg2str);
				if (!reg1.test(str) && reg2.test(str)){
					//document.getElementById('emailFail').innerHTML = "";
				}else{
					jobFlag = false;
					alert("Please enter a correctly formed email address.  E.g. myname@myhost.com");
				}
			} else {
				if(str.indexOf("@") >= 0){
					//document.getElementById('emailFail').innerHTML = "";
				}else{
					jobFlag = false;
					alert("Please enter a correctly formed email address.  E.g. myname@myhost.com");
				}
			}
		}
	}
	if(jobFlag){
		var p=document.getElementById("jobForm");
		p.action="jobForm.php";
		p.submit();
	}
}
//checks the memberlog in
function checkMemberLog(){
	if((document.getElementById('uName').value == '') || (document.getElementById('uName').value == document.getElementById('uName').title) || (document.getElementById('pwd').value == '')){
		alert('Please enter your username and passowrd.');
		return false;
	}
}
//checks the new password
function checkNewPass(){
	if((document.getElementById('userName').value == '') || (document.getElementById('userName').value == document.getElementById('userName').title)){
		alert('Please enter your username or email address');
		return false;
	}
}
//checks for jpeg
function jpegCheck(){
	var ext = document.getElementById('photo').value.split('.'); 
	if((ext[1] != 'jpg') && (ext[1] != 'jpeg') && (ext[1] != 'JPEG') && (ext[1] != 'JPG')){
		alert('Only files of type JPEG are allowed.');
		document.getElementById('photo').value='';
	}
}
//hides or show the existing business box
function switchExisting(){
	if (document.getElementById('existingBusiness').checked){
		YAHOO.util.Dom.setStyle('existingBusinessBox','display','block');
		YAHOO.util.Dom.setStyle('newBusinessBox','display','none');
	}else{
		YAHOO.util.Dom.setStyle('existingBusinessBox','display','none');
		YAHOO.util.Dom.setStyle('newBusinessBox','display','block');
	}
}
//validates a member change
function checkMember(){
	var changePass = document.getElementById('changePass').checked;
	var oldPass = document.getElementById('oldPass').value;
	var newPass = document.getElementById('newPass').value;
	var newConfirm = document.getElementById('newConfirm').value;
	
	if ((changePass)&&(oldPass == '')){
		alert ('Please provide your old password');
	}else if ((changePass)&&(newPass == '')){
		alert ('Please provide a new password');
	}else if((changePass)&&(newPass.match(/[^a-zA-Z0-9]/) != null)){
		alert('Please make sure that your new password only contains letters and numbers');
	}else if ((changePass)&&(newPass != newConfirm)){
		alert ('Your new password doesn\'t match your confirmed password');
	}else{
		document.memberDetailsForm.submit();
	}
}
function previewEvent(){
	var title = document.getElementById('title').value;
	var description = document.getElementById('description').value;
	if (description != null) description = description.replace(/\n/g, "<br />");
	
	var whoshould = document.getElementById('whoAttends').value.replace(/\n/g, "<br />");
	var start = new Date(document.getElementById('startYear').value, parseInt(document.getElementById('startMonth').value,10)-1,
		document.getElementById('startDay').value, document.getElementById('startHour').value,
		document.getElementById('startMinute').value);
	var end = new Date(document.getElementById('endYear').value, parseInt(document.getElementById('endMonth').value,10)-1,
		document.getElementById('endDay').value, document.getElementById('endHour').value,
		document.getElementById('endMinute').value);
	var contact = document.getElementById('firstName').value +' '+ document.getElementById('lastName').value;
	var phone =  document.getElementById('phone').value;
	var email = document.getElementById('email').value;
	
	var preview = '<h2>'+title+'</h2>'
			+'<b>Description: </b>'+description+'<br />'
			+'<b>Who Should Attend: </b>'+whoshould+'<br />'
			+'<b>Starts: </b>'+formatDate(start)+'<br />'
			+'<b>Ends: </b>'+formatDate(end)+'<br />'
			+'<b>Contact Name: </b>'+contact+'<br />'
			+'<b>Phone: </b>'+phone+'<br />'
			+'<b>Email: </b><a href="mailto:'+email+'">'+email+'</a><br />';
	document.getElementById('eventPreview').innerHTML = preview;
}
function formatDate(date){
	var datestring = '';
	switch (date.getMonth()){
		case 0:
			datestring += 'January ';
			break;
		case 1:
			datestring += 'Febuary ';
			break;
		case 2:
			datestring += 'March ';
			break;
		case 3:
			datestring += 'April ';
			break;
		case 4:
			datestring += 'May ';
			break;
		case 5:
			datestring += 'June ';
			break;
		case 6:
			datestring += 'July ';
			break;
		case 7:
			datestring += 'August ';
			break;
		case 8:
			datestring += 'September ';
			break;
		case 9:
			datestring += 'October ';
			break;
		case 10:
			datestring += 'November ';
			break;
		case 11:
			datestring += 'December ';
			break;
	}
	datestring += date.getDate() +', ' + date.getFullYear() +' '+ date.toLocaleTimeString();
	return datestring;
}
function openDetails(l, email){
	document.getElementById('memberDetails').innerHTML = '';
	
	var myPanel = new YAHOO.widget.Panel('eventStuff', { 
    fixedcenter: false,  
	modal:true,
    constraintoviewport: true,  
	visible:true,
	close:true,
    draggable:false,
	zIndex:100} ); 
	
	memberinfo.getinfo(email, function(result){		
		try { 				
			var info = YAHOO.lang.JSON.parse(result);
		} catch (e) { 
			alert("Invalid data"); 
		}
		
		myPanel.setHeader("Member Details");
		myPanel.setBody('<b>Name:</b> ' + info.name + 
		'<br /><b>Email:</b> <a href="mailto:' + info.email + '">' + info.email + '</a>'+
		'<br /><b>Business Name:</b> ' + info.businessname + 	
		'<br /><b>Contact Name:</b> ' + info.contactname + 
		'<br /><b>Job Title:</b> ' + info.jobtitle + 
		'<br /><b>Phone:</b> ' + info.phone + 
		'<br /><b>Address:</b> ' + info.address +
		'<br /><b>Comment:</b> ' + info.comment);
		
		var xy = YAHOO.util.Dom.getXY(l);
		YAHOO.util.Dom.setStyle('memberDetails','left',(xy[0]-30)+'px');
		YAHOO.util.Dom.setStyle('memberDetails','top',(xy[1]+15)+'px');
	
		myPanel.render('memberDetails');
		YAHOO.util.Dom.setStyle('memberDetails','display','block');

		
		myPanel.cfg.subscribeToConfigEvent("visible", function (p_sType, p_aArgs) { 
				var oValue = p_aArgs[0]; 				
				if (oValue == false){
					YAHOO.util.Dom.setStyle('memberDetails','display','none');
					closingMod();
				}
	    }); 
	});
}
function closingMod(){
	YAHOO.util.Dom.setStyle('memberDetails','display','none');
}
//if SBIA event
function checkIsRegistered(){
	//var sbia = document.getElementById('typeOfEvent_sbia');
	var sbia = document.eventForm.typeOfEvent[0];
	var community = document.eventForm.typeOfEvent[1];
	var required = document.getElementById('regRequired_yes');
	
	if (sbia.checked || !community.checked){
		YAHOO.util.Dom.removeClass('regreq_label','disabled');
		required.disabled = false;
	}else if (community.checked){
		YAHOO.util.Dom.addClass('regreq_label','disabled');
		required.disabled = true;
	}
}