function trim(str) {
  while (str.charAt(0) == ' ')
    str = str.substring(1);
  while (str.charAt(str.length - 1) == ' ')
    str = str.substring(0, str.length - 1);
  return str;
}

// trim string
function trimString(str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function verify_contact_form()
{
	var f = document.contactForm
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	
	if( trim(f.contact_name.value).length == 0 )
	{
		alert('Please enter your name.')
		f.contact_name.focus()
		return false
	}
	else if( trim(f.contact_email_address.value).length == 0 )
	{
		alert('Please enter an email address.')
		f.contact_email_address.focus()
		return false
	}	
	else if (f.contact_email_address.value.search(emailRegEx) == -1)
	{
		alert('Please enter a valid email address.')
		f.contact_email_address.focus()
		return false
	}
	else if( trim(f.contact_subject.value).length == 0 )
	{
		alert('Please enter a subject line.')
		f.contact_subject.focus()
		return false
	}
	else if( trim(f.contact_message.value).length == 0 )
	{
		alert('Please enter your message.')
		f.contact_message.focus()
		return false
	}	
	else
		f.submit();
}

function verify_reservation_enquiry_form()
{
	var f = document.reservation_enquiry
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	
	// get yyyy = str.substring(6,10)
	// get mm = str.substring(3,5)
	// get dd = str.substring(0,3)
	// 11/02/2010	
	var tempFirstDate = f.date_start.value;
	var tempLastDate = f.date_end.value;
	var firstDate = new Date(tempFirstDate.substring(6,10),tempFirstDate.substring(3,5)-1,tempFirstDate.substring(0,2));
	var lastDate = new Date(tempLastDate.substring(6,10),tempLastDate.substring(3,5)-1,tempLastDate.substring(0,2));
	
	for ( i = 0; i < f.preferred_apartment.length; i++ )
	{
		if ( eval('f.preferred_apartment['+i+'].selected') == true && eval('f.preferred_apartment['+i+'].value') == "Select Apartment" )
		{
			alert('Please select your preferred apartment.')
			return false;		
		}
	}	
	
	if( trim(f.date_start.value).length == 0 )
	{
		alert('Please select check in date.')
		f.date_start.focus()
		return false
	}
	else if( trim(f.date_end.value).length == 0 )
	{
		alert('Please select check out date.')
		f.date_end.focus()
		return false
	}
	
	// date_end must be after _date_start
	else if( trim(f.date_end.value).length == 0 )
	{
		alert('Please select check out date.')
		f.date_end.focus()
		return false
	}
	
	// calculate number of days
	else if (firstDate > lastDate)
	{
		alert('Your check in date is later than your check out date.')
		f.date_start.focus()
		return false
	}

	else if( trim(f.total_nights.value).length == 0 )
	{
		alert('Please enter total number of nights.')
		f.total_nights.focus()
		return false
	}
	else if( trim(f.total_guests.value).length == 0 )
	{
		alert('Please enter number of guests.')
		f.total_guests.focus()
		return false
	}
	
	// personal details
	else if( trim(f.first_name.value).length == 0 )
	{
		alert('Please enter your first name.')
		f.first_name.focus()
		return false
	}
	else if( trim(f.surname.value).length == 0 )
	{
		alert('Please enter your surname.')
		f.surname.focus()
		return false
	}
	else if (f.email.value.search(emailRegEx) == -1)
	{
		alert('Please enter a valid email address.')
		f.email.focus()
		return false
	}
	else if (f.confirm_email.value.search(emailRegEx) == -1)
	{
		alert('Please enter your email address again.')
		f.confirm_email.focus()
		return false
	}	
	else if (f.email.value != f.confirm_email.value )
	{
		alert('Email address mismatch.')
		f.confirm_email.focus()
		return false
	}
	else if( trim(f.phone.value).length == 0 )
	{
		alert('Please enter your phone number.')
		f.phone.focus()
		return false
	}
	else if( trim(f.mobile.value).length == 0 )
	{
		alert('Please enter your mobile number.')
		f.mobile.focus()
		return false
	}
	
	else if( trim(f.address.value).length == 0 )
	{
		alert('Please enter your address.')
		f.address.focus()
		return false
	}
	else if( trim(f.suburb.value).length == 0 )
	{
		alert('Please enter your suburb.')
		f.suburb.focus()
		return false
	}
	else if (f.TCAgree.checked == 0)
	{
		alert('Tick the checkbox to agree with our terms and conditions.')
		f.TCAgree.focus()
		return false	
	}
	else
		f.submit();
}

function calculate_nights()
{

	var f = document.reservation_enquiry
	
	var tempFirstDate = f.date_start.value;
	var tempLastDate = f.date_end.value;
	var firstDate = new Date(tempFirstDate.substring(6,10),tempFirstDate.substring(3,5)-1,tempFirstDate.substring(0,2));
	var lastDate = new Date(tempLastDate.substring(6,10),tempLastDate.substring(3,5)-1,tempLastDate.substring(0,2));

	var oneDay = 24*60*60*1000;	// hours*minutes*seconds*milliseconds
	 
	var diffDays = Math.abs((firstDate.getTime() - lastDate.getTime())/(oneDay));	
	
	f.total_nights.value = diffDays;
}

function wrong_dates()
{

	var f = document.reservation_enquiry
	
	if( trim(f.date_start.value).length > 0  && trim(f.date_end.value).length > 0)
	{
		var tempFirstDate = f.date_start.value;
		var tempLastDate = f.date_end.value;
		var firstDate = new Date(tempFirstDate.substring(6,10),tempFirstDate.substring(3,5)-1,tempFirstDate.substring(0,2));
		var lastDate = new Date(tempLastDate.substring(6,10),tempLastDate.substring(3,5)-1,tempLastDate.substring(0,2));

		if (firstDate > lastDate)
		{
			alert('Your check in date is later than your check out date.')
			f.date_start.focus()
			// return false
		}
	}
}