// *******************************************************************************************************

function checkTxtLen(feildname, minlen, maxlen, dataname)
{
	if (feildname.value.length < minlen || feildname.value.length > maxlen)
	{
		alert('The '+dataname+' is expected to be between '+minlen+' and '+maxlen+' characters long !');
		feildname.focus();
		return false;
	}
return true;
}

// *******************************************************************************************************

function checkAllowTxt(feildname, chk_val, Alerttxt)
{
	if (!chk_val.test(feildname.value))
	{
		alert(Alerttxt);
		feildname.focus();
		return false;
	}	
return true;
}

// *******************************************************************************************************

function checkFeildval(feildname, minlen, maxlen, dataname, chk_val, Alert)
{
	if (!checkTxtLen(feildname,minlen,maxlen,dataname))
		return false;
	if (!checkAllowTxt(feildname,chk_val,Alert))
		return false;
return true;
}

// *******************************************************************************************************

function requiredFeild(feildname, dataname)
{
	
	if (feildname.value.length <= 0){
		alert('The '+dataname+' is Required!');
		feildname.focus();
		return false;
		}
	return true;
}

// *******************************************************************************************************

function TrimString(sString)
{

	while (sString.substring(0,1) == ' '){
	sString = sString.substring(1, sString.length);
	}
	
	while (sString.substring(sString.length-1, sString.length) == ' '){
	sString = sString.substring(0,sString.length-1);
	}

return sString;
}

// *******************************************************************************************************

function check_agent_form()
{
	formname = window.document.agentform;


// check names
	formname.fname.value = TrimString(formname.fname.value);
	if (!checkTxtLen(formname.fname,1,50,'First Name'))
		return false;

	formname.lname.value = TrimString(formname.lname.value);
	if (!checkTxtLen(formname.lname,1,50,'Last Name'))
		return false;
		
// check emails
	formname.email.value = TrimString(formname.email.value);
	if (!checkFeildval(formname.email,5,250,'Email',/^[a-zA-Z0-9][_a-zA-Z0-9\.\-]*@[a-zA-Z0-9][a-zA-Z0-9\-]+([\.]+[a-zA-Z0-9\-]+)*[a-zA-Z0-9]$/,'The contact Email format is wrong. Make sure you have not added a space at the end.'))
		return false;

	formname.email2.value = TrimString(formname.email2.value);
	if (!checkFeildval(formname.email2,5,250,'Confirm Email',/^[a-zA-Z0-9][_a-zA-Z0-9\.\-]*@[a-zA-Z0-9][a-zA-Z0-9\-]+([\.]+[a-zA-Z0-9\-]+)*[a-zA-Z0-9]$/,'The contact Email format is wrong. Make sure you have not added a space at the end.'))
		return false;

// match emails
	if (formname.email.value != formname.email2.value){
		alert('Both values of Email must be the same!');
		formname.email.focus();
		return false;
		}

// check Password
	formname.password.value = TrimString(formname.password.value);
	if (!checkFeildval(formname.password,8,30,'Password',/^[a-zA-Z0-9][a-zA-Z0-9\_\-\~\!\$\@\#\*\^\&\'\"\<\>]+$/,'Password must be alphanumeric, and may contain _,-,~,!,$,@,#,*,^,&,\',",<,>.\nNo spaces or other characters allowed !'))
		return false;

// check Password2
	formname.password2.value = TrimString(formname.password2.value);
	if (!checkFeildval(formname.password2,8,30,'Password',/^[a-zA-Z0-9][a-zA-Z0-9\_\-\~\!\$\@\#\*\^\&\'\"\<\>]+$/,'Password must be alphanumeric, and may contain _,-,~,!,$,@,#,*,^,&,\',",<,>.\nNo spaces or other characters allowed !'))
		return false;
		
// match password
	if (formname.password.value != formname.password2.value){
		alert('Both values of Password must be the same!');
		formname.password.focus();
		return false;
		}

// check company

	formname.company.value = TrimString(formname.company.value);
	if (!requiredFeild(formname.company, 'Company Name'))
		return false;
		
// check address

	formname.address.value = TrimString(formname.address.value);
	if (!requiredFeild(formname.address, 'Address'))
		return false;
		
	formname.zip.value = TrimString(formname.zip.value);
	if (!requiredFeild(formname.zip, 'Zip Code'))
		return false;
		
	formname.country.value = TrimString(formname.country.value);
	if (!requiredFeild(formname.country, 'Country'))
		return false;
	

// check phones
	
	if (formname.phone.value.length>0)
	{
		if (!checkFeildval(formname.phone,3,20,'Phone Number',/^[0-9\-]+$/,'Phone Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.fax.value.length>0 )
	{

		if (!checkFeildval(formname.fax,3,20,'Fax Number',/^[0-9\-]+$/,'Fax Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.mobile.value.length>0 )
	{

		if (!checkFeildval(formname.mobile,3,20,'Mobile Number',/^[0-9\-]+$/,'Mobile Number can contain only digits and dashes !'))
			return false;
	}
	else
	{
		alert('At least one contact number is required !');
		formname.phone.focus();
		return false;
	}


// check nature of business setttings, "Others" Option
	if (formname.business[2].checked && formname.business_others.value.length < 1)
	{
		alert ('Please tell us the nature of your Business.');
		formname.business_others.focus();
		return false;
	}

// check if verification code is supplied
	formname.code.value = TrimString(formname.code.value);
	if (!requiredFeild(formname.code, 'Verification Code'))
		return false;


return true;
}

// *******************************************************************************************************

function check_forgotpassword_form()
{

// check email

	formname = window.document.AgentsPassword;

	formname.Rusername.value = TrimString(formname.Rusername.value);
	if (!requiredFeild(formname.Rusername, 'Username'))
		return false;

return true;
}

// *******************************************************************************************************

function check_agent_edit_form()
{
	formname = window.document.agentformedit;

// check names
	formname.fname.value = TrimString(formname.fname.value);
	if (!checkTxtLen(formname.fname,1,50,'First Name'))
		return false;

	formname.lname.value = TrimString(formname.lname.value);
	if (!checkTxtLen(formname.lname,1,50,'Last Name'))
		return false;
		
// check emails
	formname.email.value = TrimString(formname.email.value);
	if (!checkFeildval(formname.email,5,250,'Email',/^[a-zA-Z0-9][_a-zA-Z0-9\.\-]*@[a-zA-Z0-9][a-zA-Z0-9\-]+([\.]+[a-zA-Z0-9\-]+)*[a-zA-Z0-9]$/,'The contact Email format is wrong. Make sure you have not added a space at the end.'))
		return false;


// check Password
	if (formname.password.value.length>0 || formname.password2.value.length>0) {

		formname.password.value = TrimString(formname.password.value);
		if (!checkFeildval(formname.password,8,30,'Password',/^[a-zA-Z0-9][a-zA-Z0-9\_\-\~\!\$\@\#\*\^\&\'\"\<\>]+$/,'Password must be alphanumeric, and may contain _,-,~,!,$,@,#,*,^,&,\',",<,>.\nNo spaces or other characters allowed !'))
			return false;
	
		formname.password2.value = TrimString(formname.password2.value);
		if (!checkFeildval(formname.password2,8,30,'Password',/^[a-zA-Z0-9][a-zA-Z0-9\_\-\~\!\$\@\#\*\^\&\'\"\<\>]+$/,'Password must be alphanumeric, and may contain _,-,~,!,$,@,#,*,^,&,\',",<,>.\nNo spaces or other characters allowed !'))
			return false;
			
	// match password
		if (formname.password.value != formname.password2.value){
			alert('Both values of Password must be the same!');
			formname.password.focus();
			return false;
			}
	}

// check company

	formname.company.value = TrimString(formname.company.value);
	if (!requiredFeild(formname.company, 'Company Name'))
		return false;

// check address

	formname.address.value = TrimString(formname.address.value);
	if (!requiredFeild(formname.address, 'Address'))
		return false;
		
	formname.zip.value = TrimString(formname.zip.value);
	if (!requiredFeild(formname.zip, 'Zip Code'))
		return false;
		
	formname.country.value = TrimString(formname.country.value);
	if (!requiredFeild(formname.country, 'Country'))
		return false;
	

// check phones
	
	if (formname.phone.value.length>0)
	{
		if (!checkFeildval(formname.phone,3,20,'Phone Number',/^[0-9\-]+$/,'Phone Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.fax.value.length>0 )
	{

		if (!checkFeildval(formname.fax,3,20,'Fax Number',/^[0-9\-]+$/,'Fax Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.mobile.value.length>0 )
	{

		if (!checkFeildval(formname.mobile,3,20,'Mobile Number',/^[0-9\-]+$/,'Mobile Number can contain only digits and dashes !'))
			return false;
	}
	else
	{
		alert('At least one contact number is required !');
		formname.phone.focus();
		return false;
	}


// check nature of business setttings, "Others" Option
	if (formname.business[2].checked && !formname.business_others.value.length > 0)
	{
		alert ('Please tell us the nature of your Business.');
		formname.business_others.focus();
		return false;
	}

return true;
}

// *******************************************************************************************************

function check_booking_tour()
{
	formname = window.document.tourbookingform;

// check names
	formname.title.value = TrimString(formname.title.value);
	if (!requiredFeild(formname.title, 'Title'))
		return false;

	formname.fname.value = TrimString(formname.fname.value);
	if (!checkTxtLen(formname.fname,1,50,'First Name'))
		return false;

	formname.lname.value = TrimString(formname.lname.value);
	if (!checkTxtLen(formname.lname,1,50,'Last Name'))
		return false;


// check address

	formname.address.value = TrimString(formname.address.value);
	if (!requiredFeild(formname.address, 'Address'))
		return false;
		
	formname.zip.value = TrimString(formname.zip.value);
	if (!requiredFeild(formname.zip, 'Zip Code'))
		return false;
		
	formname.country.value = TrimString(formname.country.value);
	if (!requiredFeild(formname.country, 'Country'))
		return false;


// check emails
	formname.email.value = TrimString(formname.email.value);
	if (!checkFeildval(formname.email,5,250,'Email',/^[a-zA-Z0-9][_a-zA-Z0-9\.\-]*@[a-zA-Z0-9][a-zA-Z0-9\-]+([\.]+[a-zA-Z0-9\-]+)*[a-zA-Z0-9]$/,'The contact Email format is wrong. Make sure you have not added a space at the end.'))
		return false;


// check phones
	
	if (formname.phone.value.length>0)
	{
		if (!checkFeildval(formname.phone,3,20,'Phone Number',/^[0-9\-]+$/,'Phone Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.fax.value.length>0 )
	{

		if (!checkFeildval(formname.fax,3,20,'Fax Number',/^[0-9\-]+$/,'Fax Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.mobile.value.length>0 )
	{

		if (!checkFeildval(formname.mobile,3,20,'Mobile Number',/^[0-9\-]+$/,'Mobile Number can contain only digits and dashes !'))
			return false;
	}
	else
	{
		alert('At least one contact number is required !');
		formname.phone.focus();
		return false;
	}

// Tour Coverage
	if (!formname.coverage[0].checked && !formname.coverage[1].checked)
	{
		alert ('Please choose your tour coverage.');
		formname.coverage[0].focus();
		return false;
	}


// Travel Date
	// month 1
	formname.month1.value = TrimString(formname.month1.value);
	if (!requiredFeild(formname.month1, 'Month of Check In'))
		return false;

	// day 1
	formname.day1.value = TrimString(formname.day1.value);
	if (!requiredFeild(formname.day1, 'Day of Check In'))
		return false;

	// year 1
	formname.year1.value = TrimString(formname.year1.value);
	if (!requiredFeild(formname.year1, 'Year of Check In'))
		return false;
		
	// month 2
	formname.month2.value = TrimString(formname.month2.value);
	if (!requiredFeild(formname.month2, 'Month of Check Out'))
		return false;

	// day 2
	formname.day2.value = TrimString(formname.day2.value);
	if (!requiredFeild(formname.day2, 'Day of Check Out'))
		return false;

	// year 2
	formname.year2.value = TrimString(formname.year2.value);
	if (!requiredFeild(formname.year2, 'Year of Check Out'))
		return false;
		
		
		
// Num. of Travellers
	// adult
	formname.adult.value = TrimString(formname.adult.value);
	if (!requiredFeild(formname.adult, 'Num. of Travellers'))
		return false;

// Tour Name
	formname.tourname.value = TrimString(formname.tourname.value);
	if (!requiredFeild(formname.tourname, 'Tour Name'))
		return false;

// Hotel Name
	formname.hotel.value = TrimString(formname.hotel.value);
	if (!requiredFeild(formname.hotel, 'Hotel Name'))
		return false;


return true;
}


// *******************************************************************************************************


function check_booking_ticket()
{
	formname = window.document.ticketbookingform;

// check required name
	formname.title.value = TrimString(formname.title.value);
	if (!requiredFeild(formname.title, 'Title'))
		return false;

	formname.fname.value = TrimString(formname.fname.value);
	if (!checkTxtLen(formname.fname,1,50,'First Name'))
		return false;

	formname.lname.value = TrimString(formname.lname.value);
	if (!checkTxtLen(formname.lname,1,50,'Last Name'))
		return false;

// check age
	if (!checkFeildval(formname.age,1, 2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
		return false;

// check required address

	formname.address.value = TrimString(formname.address.value);
	if (!requiredFeild(formname.address, 'Address'))
		return false;
		
	formname.zip.value = TrimString(formname.zip.value);
	if (!requiredFeild(formname.zip, 'Zip Code'))
		return false;
		
	formname.country.value = TrimString(formname.country.value);
	if (!requiredFeild(formname.country, 'Country'))
		return false;


// check requred email
	formname.email.value = TrimString(formname.email.value);
	if (!checkFeildval(formname.email,5,250,'Email',/^[a-zA-Z0-9][_a-zA-Z0-9\.\-]*@[a-zA-Z0-9][a-zA-Z0-9\-]+([\.]+[a-zA-Z0-9\-]+)*[a-zA-Z0-9]$/,'The contact Email format is wrong. Make sure you have not added a space at the end.'))
		return false;


// check required phone
	
	if (formname.phone.value.length>0)
	{
		if (!checkFeildval(formname.phone,3,20,'Phone Number',/^[0-9\-]+$/,'Phone Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.fax.value.length>0 )
	{

		if (!checkFeildval(formname.fax,3,20,'Fax Number',/^[0-9\-]+$/,'Fax Number can contain only digits and dashes !'))
			return false;
	}
	else if (formname.mobile.value.length>0 )
	{

		if (!checkFeildval(formname.mobile,3,20,'Mobile Number',/^[0-9\-]+$/,'Mobile Number can contain only digits and dashes !'))
			return false;
	}
	else
	{
		alert('At least one contact number is required !');
		formname.phone.focus();
		return false;
	}


// Check Other Passengers if not empty

	//check row 1
	if (formname.pass_title_1.value.length > 0 || formname.pass_fname_1.value.length > 0
		|| formname.pass_lname_1.value.length > 0 || formname.pass_age_1.value.length > 0)
	{
		formname.pass_title_1.value = TrimString(formname.pass_title_1.value);
		if (!requiredFeild(formname.pass_title_1, 'Title'))
			return false;
	
		formname.pass_fname_1.value = TrimString(formname.pass_fname_1.value);
		if (!checkTxtLen(formname.pass_fname_1,1,50,'First Name'))
			return false;
	
		formname.pass_lname_1.value = TrimString(formname.pass_lname_1.value);
		if (!checkTxtLen(formname.pass_lname_1,1,50,'Last Name'))
			return false;
	
		if (!checkFeildval(formname.pass_age_1,1,2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
			return false;
	}
	
	// check row 2
	if (formname.pass_title_2.value.length > 0 || formname.pass_fname_2.value.length > 0
		|| formname.pass_lname_2.value.length > 0 || formname.pass_age_2.value.length > 0)
	{
		formname.pass_title_2.value = TrimString(formname.pass_title_2.value);
		if (!requiredFeild(formname.pass_title_2, 'Title'))
			return false;
	
		formname.pass_fname_2.value = TrimString(formname.pass_fname_2.value);
		if (!checkTxtLen(formname.pass_fname_2,1,50,'First Name'))
			return false;
	
		formname.pass_lname_2.value = TrimString(formname.pass_lname_2.value);
		if (!checkTxtLen(formname.pass_lname_2,1,50,'Last Name'))
			return false;
	
		if (!checkFeildval(formname.pass_age_2,1,2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
			return false;
	}

	// check row 3
	if (formname.pass_title_3.value.length > 0 || formname.pass_fname_3.value.length > 0
		|| formname.pass_lname_3.value.length > 0 || formname.pass_age_3.value.length > 0)
	{
		formname.pass_title_3.value = TrimString(formname.pass_title_3.value);
		if (!requiredFeild(formname.pass_title_3, 'Title'))
			return false;
	
		formname.pass_fname_3.value = TrimString(formname.pass_fname_3.value);
		if (!checkTxtLen(formname.pass_fname_3,1,50,'First Name'))
			return false;
	
		formname.pass_lname_3.value = TrimString(formname.pass_lname_3.value);
		if (!checkTxtLen(formname.pass_lname_3,1,50,'Last Name'))
			return false;
	
		if (!checkFeildval(formname.pass_age_3,1,2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
			return false;
	}

	// check row 4
	if (formname.pass_title_4.value.length > 0 || formname.pass_fname_4.value.length > 0
		|| formname.pass_lname_4.value.length > 0 || formname.pass_age_4.value.length > 0)
	{
		formname.pass_title_4.value = TrimString(formname.pass_title_4.value);
		if (!requiredFeild(formname.pass_title_4, 'Title'))
			return false;
	
		formname.pass_fname_4.value = TrimString(formname.pass_fname_4.value);
		if (!checkTxtLen(formname.pass_fname_4,1,50,'First Name'))
			return false;
	
		formname.pass_lname_4.value = TrimString(formname.pass_lname_4.value);
		if (!checkTxtLen(formname.pass_lname_4,1,50,'Last Name'))
			return false;
	
		if (!checkFeildval(formname.pass_age_4,1,2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
			return false;
	}

	// check row 5
	if (formname.pass_title_5.value.length > 0 || formname.pass_fname_5.value.length > 0
		|| formname.pass_lname_5.value.length > 0 || formname.pass_age_5.value.length > 0)
	{
		formname.pass_title_5.value = TrimString(formname.pass_title_5.value);
		if (!requiredFeild(formname.pass_title_5, 'Title'))
			return false;
	
		formname.pass_fname_5.value = TrimString(formname.pass_fname_5.value);
		if (!checkTxtLen(formname.pass_fname_5,1,50,'First Name'))
			return false;
	
		formname.pass_lname_5.value = TrimString(formname.pass_lname_5.value);
		if (!checkTxtLen(formname.pass_lname_5,1,50,'Last Name'))
			return false;
	
		if (!checkFeildval(formname.pass_age_5,1,2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
			return false;
	}

	// check row 6
	if (formname.pass_title_6.value.length > 0 || formname.pass_fname_6.value.length > 0
		|| formname.pass_lname_6.value.length > 0 || formname.pass_age_6.value.length > 0)
	{
		formname.pass_title_6.value = TrimString(formname.pass_title_6.value);
		if (!requiredFeild(formname.pass_title_6, 'Title'))
			return false;
	
		formname.pass_fname_6.value = TrimString(formname.pass_fname_6.value);
		if (!checkTxtLen(formname.pass_fname_6,1,50,'First Name'))
			return false;
	
		formname.pass_lname_6.value = TrimString(formname.pass_lname_6.value);
		if (!checkTxtLen(formname.pass_lname_6,1,50,'Last Name'))
			return false;
	
		if (!checkFeildval(formname.pass_age_6,1,2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
			return false;
	}

	// check row 7
	if (formname.pass_title_7.value.length > 0 || formname.pass_fname_7.value.length > 0
		|| formname.pass_lname_7.value.length > 0 || formname.pass_age_7.value.length > 0)
	{
		formname.pass_title_7.value = TrimString(formname.pass_title_7.value);
		if (!requiredFeild(formname.pass_title_7, 'Title'))
			return false;
	
		formname.pass_fname_7.value = TrimString(formname.pass_fname_7.value);
		if (!checkTxtLen(formname.pass_fname_7,1,50,'First Name'))
			return false;
	
		formname.pass_lname_7.value = TrimString(formname.pass_lname_7.value);
		if (!checkTxtLen(formname.pass_lname_7,1,50,'Last Name'))
			return false;
	
		if (!checkFeildval(formname.pass_age_7,1,2,'Age',/^[0-9\-]+$/,'Age can contain only digits!'))
			return false;
	}


// Required Ticket Details
	
	// Required Destination
	formname.destination_1.value = TrimString(formname.destination_1.value);
	if (!requiredFeild(formname.destination_1, 'Destination'))
		return false;
		
	// Required Departure Date month
	formname.departure_1_month_1.value = TrimString(formname.departure_1_month_1.value);
	if (!requiredFeild(formname.departure_1_month_1, 'Month of Departure'))
		return false;
	// Required Departure Date day
	formname.departure_1_day_1.value = TrimString(formname.departure_1_day_1.value);
	if (!requiredFeild(formname.departure_1_day_1, 'Day of Departure'))
		return false;
		
	// Required Departure Date year
	formname.departure_1_year_1.value = TrimString(formname.departure_1_year_1.value);
	if (!requiredFeild(formname.departure_1_year_1, 'Year of Departure'))
		return false;
	
	// Required Return Date month
	formname.return_1_month_1.value = TrimString(formname.return_1_month_1.value);
	if (!requiredFeild(formname.return_1_month_1, 'Month of Return'))
		return false;
	// Required Return Date day
	formname.return_1_day_1.value = TrimString(formname.return_1_day_1.value);
	if (!requiredFeild(formname.return_1_day_1, 'Day of Return'))
		return false;
	// Required Return Date year
	formname.return_1_year_1.value = TrimString(formname.return_1_year_1.value);
	if (!requiredFeild(formname.return_1_year_1, 'Year of Return'))
		return false;




return true;
}
