var _contactform =
{
	load:	function(settings)
			{
				var	checkInCalendar, buttonClick,
					Event = YAHOO.util.Event,
					Dom = YAHOO.util.Dom,
					todayDate = new Date();
				
				// Set the error messages
				this.errorMsg = settings.errorMessages;
				
				// load the calendars
				checkInCalendar = new YAHOO.widget.Calendar("checkincalendar","checkincal", { close:true, mindate: todayDate } );
				checkInCalendar.render();
				
				buttonClick = function(event, calendar)
				{
					// check if calendar is open
					var calendarcontainer = document.getElementById("checkincal");
					
					if(Dom.getStyle(calendarcontainer, "display") === "block")
					{
						calendar.hide();
						return;
					}
					
					calendar.show();
					
					// attach event to update date field when calendar date is selected
					var updateDateField = function(event, params, scope)
					{
						// compose date
						var dateTmp = params[0][0];
						var y = dateTmp[0];
						var m = dateTmp[1];
						var d = dateTmp[2];
						
						if(m<10)
						{
							m = "0" + m;
						}
						
						if(d<10)
						{
							d = "0" + d;
						}
						
						var selectedDate = y + "-" + m + "-" + d;
						
						// update date field
						var dateField = document.getElementById("fcheckin");
						dateField.value = selectedDate;
						
						// close calendar
						scope.hide();
					};
					calendar.selectEvent.subscribe(updateDateField, this);
				};
				
				Event.addListener("cbcheckin", "click", buttonClick, checkInCalendar, true);
				
				// pre validate the required form elements
				this.valFirstName();
				this.valLastName();
				this.valEmail();
				this.valDate();
				this.valComment();
				this.valQuestion();
			},
			
	valForm:	function(evt)
				{
					var outputMessage = "", temp;

					temp = _contactform.valFirstName();
					if(temp !== false)
					{
						outputMessage = "- " + temp + "\n";
					}
					
					temp = _contactform.valLastName();
					if(temp !== false)
					{
						outputMessage += "- " + temp + "\n";
					}

					temp = _contactform.valEmail();
					if(temp !== false)
					{
						outputMessage += "- " + temp + "\n";
					}
					
					temp = _contactform.valDate();
					if(temp !== false)
					{
						outputMessage += "- " + temp + "\n";
					}

					temp = _contactform.valComment();
					if(temp !== false)
					{
						outputMessage += "- " + temp + "\n";
					}
					
					if(outputMessage !== "")
					{
						title = this.errorMsg.form;
						alert(title+outputMessage);
						return false;
					}
					
					return true;
				},
				
	valFirstName:	function()
					{
						var message = false,
							valNode = document.getElementById("fname-val");
						
						valNode.innerHTML = "";
	
						if(document.contacts_form && document.contacts_form.fname && document.contacts_form.fname.value === "")
						{
							message = this.errorMsg.noFirstName;
							valNode.innerHTML = "*";
						}
	
						return message;
					},
	valLastName:	function()
					{
						var message = false, valNode = document.getElementById("lname-val");
						valNode.innerHTML = "";
				
						if(document.contacts_form && document.contacts_form.lname && document.contacts_form.lname.value === "")
						{
							message = this.errorMsg.noLastName;
							valNode.innerHTML = "*";
						}
				
						return message;
					},
	valEmail:	function()
				{
					var message = false, valNode = document.getElementById("femail-val");
					valNode.innerHTML = "";
				
					if(document.contacts_form && document.contacts_form.femail && document.contacts_form.femail.value === "")
					{
						message = this.errorMsg.noEmail;
						valNode.innerHTML = "*";
					}
					else if (document.contacts_form && document.contacts_form.femail)
					{
						if(!/^([a-zA-Z0-9\._\-])+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,4}$/.test(document.contacts_form.femail.value) )
						{
							message = this.errorMsg.invalidEmail;
							valNode.innerHTML = "*";
						}
					}
				
					return message;
				},
	valDate:	function()
				{
					var year, month, day, todayDate,
						message = false,
						todayDateTmp = new Date();
					
					if(document.contacts_form.fcheckin.value !== "")
					{
						year = todayDateTmp.getFullYear();
						month = todayDateTmp.getMonth() + 1;
						
						if(month < 10)
						{
							month = "0" + month;
						}
						
						day = todayDateTmp.getDate();
						if(day < 10)
						{
							day = "0" + day;
						}
						
						todayDate = year + "-" + month + "-" + day;
						
						if(document.contacts_form.fcheckin.value < todayDate)
						{
							message = this.errorMsg.invalidDate;
						}
					}
					
					return message;
				},
	valDate:	function()
				{
					var year, month, day, todayDate,
						message = false,
						todayDateTmp = new Date();
					
					if(document.contacts_form.fcheckin.value !== "")
					{
						year = todayDateTmp.getFullYear();
						month = todayDateTmp.getMonth() + 1;
						
						if(month < 10)
						{
							month = "0" + month;
						}
						
						day = todayDateTmp.getDate();
						if(day < 10)
						{
							day = "0" + day;
						}
						
						todayDate = year + "-" + month + "-" + day;
						
						if(document.contacts_form.fcheckin.value < todayDate)
						{
							message = this.errorMsg.invalidDate;
						}
					}
					
					return message;
				},
				
	valDate:	function()
				{
					var	year, month, day, todayDate,
						message = false,
						todayDateTmp = new Date();
					
					if(document.contacts_form && document.contacts_form.fcheckin && document.contacts_form.fcheckin.value !== "")
					{
						year = todayDateTmp.getFullYear();
						month = todayDateTmp.getMonth() + 1;
						
						if(month < 10)
						{
							month = "0" + month;
						}
						
						day = todayDateTmp.getDate();
						if(day < 10)
						{
							day = "0" + day;
						}
						
						todayDate = year + "-" + month + "-" + day;
						
						if(document.contacts_form.fcheckin.value < todayDate)
						{
							message = this.errorMsg.invalidDate;
						}
					}
					
					return message;
				},
				
	valComment:	function()
				{
					var message = false, valNode = document.getElementById("txtacomments-val");
					valNode.style.display = "none";
					
					// Check question
					var fquestion = document.getElementById("cbquestion");
					
					if (fquestion && fquestion.value != 2) {
						if(document.contacts_form && document.contacts_form.txtacomments && document.contacts_form.txtacomments.value === "")
						{
							message = this.errorMsg.noComment;
							valNode.style.display = "inline";
						}
					}
					
					return message;
				},
				
	valQuestion:	function(value)
					{
						var fquestion = document.getElementById("cbquestion");
						
						// hide reservation fields
						var reservationfields = document.getElementById("reservationFields");
						reservationfields.style.display = "none";
						
						// Change comment requirement
						var valNode = document.getElementById('txtacomments-val');
						valNode.style.display = "inline";
						
						if (fquestion && fquestion.value == 2) {
							reservationfields.style.display = "block";
							valNode.style.display = "none";
						}
					}
};

document.getElementById("flocation").value=window.location;

