//function for day pulldowns and validate forms

function printYear()

{



var monthChar = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var monthString = ["January","February","March","April","May","June","July","August","September","October","November","December"];

var monthNumChar = ["01","02","03","04","05","06","07","08","09","10","11","12"];



var currDate = new Date();

var month = currDate.getMonth() + 1;

var year = currDate.getFullYear();



var monthYearNext = month - 2;

var yearNext = year + 1;



document.write("<select name='month' id='month' class='form_input'>");

if (month == 1)

{

	for(j=0; j <= 11; j++)

	{

		//document.write("<option value='" + monthNumChar[j] + year + "'>" + monthChar[j] + " " + year + "</option>");
		document.write("<option value='" + monthString[j] + ", " + year + "'>" + monthChar[j] + " " + year + "</option>");

	}

}



else

{

	for(j=month-1; j<= 11; j++)

	{

		//document.write("<option value='" + monthNumChar[j] + year + "'>" + monthChar[j] + " " + year + "</option>");
		document.write("<option value='" + monthString[j] + ", " + year + "'>" + monthChar[j] + " " + year + "</option>");
	}

	

	for(k=0; k <= monthYearNext; k++)

	{

		//document.write("<option value='" + monthNumChar[k] + yearNext + "'>" + monthChar[k] + " " + yearNext + "</option>");
		document.write("<option value='" + monthString[k] + ", " + yearNext + "'>" + monthChar[k] + " " + yearNext + "</option>");
	}



}

document.write("</select>");

}



function printDay()

{



var currDate = new Date();

var day = currDate.getDate();



document.write("<select name='day' id='day' class='form_input'>");

for(i=1; i <= 31; i++)

{

	if((i<10) && (i==day))

	{

		document.write("<option value='" + "0" + i + "' selected='selected'>" + "0" + i + "</option>");

	}

	else if((i<10) && (i!=day))

	{

		document.write("<option value='" + "0" + i + "'>" + "0" + i + "</option>");

	}

	else if((i>=10) && (i==day))

	{

		document.write("<option value='" + i + "' selected='selected'>" + i + "</option>");

	}

	else if((i>=10) && (i!=day))

	{

		document.write("<option value='" + i + "'>" + i + "</option>");

	}

}

document.write("</select>");

}

//function to validate contact form
function validate_contactform()
{
	valid = true;
	var errorMessage = "The following fields are empty or invalid:\r\n";

	//validates whether name field is empty
	if(document.contact_form.name.value == "")
	{
		errorMessage = errorMessage + "Name field is empty. Please fill in your name.\r\n";
		valid = false;
	}

	//validate e-mail
	if(document.contact_form.email.value == "")
	{
		errorMessage = errorMessage + "E-mail field is empty. Please fill in your e-mail address.\r\n";
		valid = false;
	}
	else
	{	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   		var address = document.contact_form.email.value;
		if(reg.test(address) == false)
		{
      			errorMessage = errorMessage + "E-mail address is invalid. Please re-enter your e-mail address.\r\n";
      			valid = false;
		}
	}

	//validates whether name field is empty
	if(document.contact_form.comments.value == "")
	{
		errorMessage = errorMessage + "Comments field is empty. Please fill in your comments.";
		valid = false;
	}

	//if form invalid display error message
	if(valid == false)
	{
		alert(errorMessage);
	}

	return valid;
}

//function to validate appointment forms
function validate_apptform()
{
	valid = true;
	validDay = true;
	var errorMessage = "The following fields are empty or invalid:\r\n";

	//validates whether name field is empty
	if(document.appointment_form.name.value == "")
	{
		errorMessage = errorMessage + "Name field is empty. Please fill in your name.\r\n";
		valid = false;
	}

	//validates phone number; must be in xxx-xxx-xxxx format
	if(document.appointment_form.phone.value.search(/\d{3}\-\d{3}\-\d{4}/)==-1)
   	{
      		errorMessage = errorMessage + "The phone number you entered is not valid.\r\nPlease enter a phone number with the format xxx-xxx-xxxx.\r\n";
      		valid = false;
   	}

	//validate e-mail
	if(document.appointment_form.email.value == "")
	{
		errorMessage = errorMessage + "E-mail field is empty. Please fill in your e-mail address.\r\n";
		valid = false;
	}
	else
	{	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   		var address = document.appointment_form.email.value;
		if(reg.test(address) == false)
		{
      			errorMessage = errorMessage + "E-mail address is invalid. Please re-enter your e-mail address.\r\n";
      			valid = false;
		}
	}

	//if name, phone number, e-mail fields are missing or invalid display error message
	if(valid == false)
	{
		alert(errorMessage);
	}

	//validates date
	var splitMonthYear = document.appointment_form.month.value.split(", ");
	var userMonth = splitMonthYear[0];
	var userMonthNum = getMonthNum(userMonth);
	var userYear = parseInt(splitMonthYear[1]);
	var userDay = parseInt(document.appointment_form.day.value);
	var leapYear = userYear % 4;
	var userDate = new Date();
	userDate.setFullYear(userYear,userMonthNum,userDay);
	var monthStringList = ["January","February","March","April","May","June","July","August","September","October","November","December"];
	var today = new Date();
	var todayYear = today.getFullYear();
	var todayMonth = monthStringList[today.getMonth()];
	var todayDay = today.getDate();

	if((userYear == todayYear) && (userMonth == todayMonth) && (userDay < todayDay))
	{
		alert(userMonth + " " + userDay + ", " + userYear + " is an invalid day.\r\nPlease choose another day.");
		valid = false;
		validDay = false;
	}
	if(((userMonth == "April") && (userDay == 31)) || ((userMonth == "June") && (userDay == 31)) ||
		((userMonth == "September") && (userDay == 31)) || ((userMonth == "November") && (userDay == 31)))
	{
		alert(userMonth + " " + userDay + ", " + userYear + " is an invalid day.\r\nPlease choose another day.");
		valid = false;
		validDay = false;
	}
	if(((userMonth == "February") && (userDay > 29)) && (leapYear == 0))
	{
		alert(userMonth + " " + userDay + ", " + userYear + " is an invalid day.\r\nPlease choose another day.");
		valid = false;
		validDay = false;
	}
	if(((userMonth == "February") && (userDay > 28)) && (leapYear != 0))
	{
		alert(userMonth + " " + userDay + ", " + userYear + " is an invalid day.\r\nPlease choose another day.");
		valid = false;
		validDay = false;
	}

	//validates business hours
	var dateString = userDay + " " + userMonth + ", " + userYear;
	daysOfWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
	userDayOfWeek=new Date(eval('"'+dateString+'"'));
	dayOfWeek=daysOfWeek[userDayOfWeek.getDay()];
	
	userTime = document.appointment_form.time.value;
	var adHours = 0;
	var splitTime = userTime.split(":");

	var monthStringList = ["January","February","March","April","May","June","July","August","September","October","November","December"];
	var currDate = new Date();
	var currYear = currDate.getFullYear();
	var currMonth = monthStringList[currDate.getMonth()];
	var currDay = currDate.getDate();
	var nextHour = currDate.getHours() + 1;

	if ((userTime.indexOf("PM") == 5) && (splitTime[0] != "12"))
	{
		var adHours = 12;
	}

	if(splitTime[0] == "09")
	{
		var userHour = 9;
	}
	else
	{
		var userHour = parseInt(splitTime[0]) + adHours;
	}

	if(validDay != false)
	{
		if((userYear == currYear) && (userMonth == currMonth) && (userDay == currDay) && (userHour < nextHour))
		{
			alert("Appointment time not available.\r\nPlease choose another time.");
			valid = false;
		}
		else if(((dayOfWeek == "Monday") && (userHour >= 12)) || ((dayOfWeek == "Wednesday") && (userHour >= 12)) ||
			((dayOfWeek == "Friday") && (userHour >= 12)))
		{
			alert("On " + dayOfWeek + ", " + userMonth + " " + userDay + ", " + userYear +
			" we are opened between 9:30AM-2:00PM.\r\nPlease choose another time.");
			valid = false;
		}
		else if(((dayOfWeek == "Tuesday") && (userHour < 14)) || ((dayOfWeek == "Thursday") && (userHour < 14)))
		{
			alert("On " + dayOfWeek + ", " + userMonth + " " + userDay + ", " + userYear +
			" we are opened between 1:00PM-5:30PM.\r\nPlease choose another time.");
			valid = false;
		}
		else if((dayOfWeek == "Saturday") && (userHour >= 12))
		{
			alert("On " + dayOfWeek + ", " + userMonth + " " + userDay + ", " + userYear +
			" we are opened between 9:30AM-12:00PM.\r\nPlease choose another time.");
			valid = false;
		}
		else if(dayOfWeek == "Sunday")
		{
			alert("We are closed on " + dayOfWeek + ", " + userMonth + " " + userDay + ", " + userYear + ".\r\nPlease choose another day.");
			valid = false;
		}
	}

	return valid;
}

//
function getMonthNum(monthString)
{

	var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];

	for(i = 0; i <= 11; i++)
	{
		if(monthString == months[i])
		{
			monthNum = i;
		}
	}

	return monthNum;
}
	
