function verifyCompatibleBrowser()
{
	this.ver			= navigator.appVersion;
	this.dom			= document.getElementById?1:0;
	this.isMac			= (this.ver.indexOf("Mac")!=-1) ? true : false;
	this.ieMac			= ((document.all)&&(this.isMac)) ? true : false;
	this.ie4Plus		= (document.all) ? true : false;
	this.ie5			= (this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie4			= (document.all && !this.dom)?1:0;
	this.ns7			= (document.getElementById)?true:false;
	this.ns6			= (!document.layers) && (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
	this.ns4			= (document.layers && !this.dom)?1:0;
	this.ns3		 	= (navigator.userAgent.indexOf('Netscape')!=-1) && (navigator.appVersion == 3)?true:false;
	this.ns5			= this.ns6;	// ns skipped 5
	this.ver4			= (this.ns4 || this.ie4Plus) ? true : false;
	this.bw				= (this.ie5 || this.ie4 || this.ns4 || this.ns5);
	return this;
}

var bwr = new verifyCompatibleBrowser();



function trim(text)
{
	text = text.replace(/^\s+/, "");
	text = text.replace(/\s+\$/, "");

	return text;
}


function filterEmailField( fieldToFilter, min, max )
{
	filterFieldValue( fieldToFilter );

	var email = fieldToFilter.value;
	var invalid = " \:\,\;\#$\%\&\(\)\+\=\/";

	if (email == '')
	{
		return true;
	}

	for(var i=0; i<invalid.length; i++)
	{
		var badChar = invalid.charAt(i);

		if (email.indexOf(badChar,0) != -1)
		{
			alert( 'The e-mail address you entered \ncontains one or more invalid characters.' );
			return false;
		}
	}

	if ( fieldToFilter.value.charAt(fieldToFilter.value.length -1) == "." )
	{
		alert( 'The e-mail address you entered \ncontains one or more invalid characters.' );
		return false;
	}

	if (-1 != 	email.indexOf(".@"))
	{
		alert( 'The e-mail address you entered \ncontains one or more invalid characters.' );
		return false;
	}

	var atSignPos = email.indexOf('@',1);

	if (atSignPos == -1)
	{
		alert( 'The e-mail address you entered \nis missing its @ sign.' );
		return false;
	}
	else if (email.indexOf('@',atSignPos+1) != -1)
	{
		alert( 'The e-mail address you entered \ncontains too many @ signs.' );
		return false;
	}

	var dotPos = email.indexOf('.',atSignPos+2);

	if (email.indexOf('..', 1) != -1)
	{
		alert( 'The e-mail address you entered \ncontains one or more invalid characters.' );
		return false;
	}

	if (dotPos == -1)
	{
		alert( 'The e-mail address you entered \nis missing its extension.' );
		return false;
	}
	else if (dotPos+3 > email.length)
	{
		alert( 'The e-mail address you entered appears\nto use an invalid extension.' );
		return false;
	}

	if ((min) && (max) && (fieldToFilter.value != ''))
	{
		if (( fieldToFilter.value.length < min ) || ( fieldToFilter.value.length > max ))
		{

			alert ('\nPlease enter a value \nthat is between ' + min + ' and ' + max + ' \ncharacters in length.\n');

			fieldToFilter.value     = "";
			filtered                = "";

			if (document.images)
			{
				fieldToFilter.focus();
			}
			return false;
		}
	}
	return true;
}   


function filterPasswordValue( fieldToFilter, min, max, fieldPW, fieldPWVer, message )
{
	
	var filtered        = '';
	var chr             = '';

	filterFieldValue( fieldToFilter, min, max );

	if ( ( fieldPW )
	  && ( fieldPWVer )
	  && ( fieldPW.value != '' )
	  && ( fieldPWVer.value != '' )
	  && ( fieldPW.value.toUpperCase() != fieldPWVer.value.toUpperCase() ))
	{

		alert( "\n" + message + "\n" );
		fieldPWVer.value = '';

		if (document.images)
		{
			fieldPWVer.focus();
		}
		return
	}
}	


function filterFieldValue(fieldToFilter, min, max, content)
{
	var filtered	= '';
	var chr			= '';
	var end			= false;
	var whiteSpace	= ' 	';
	var startPos	= 0;
	var tempString	= '';

	while ( (whiteSpace.indexOf(fieldToFilter.value.charAt(0)) >= 0)
				&& (fieldToFilter.value.length > 0) )
	{
		fieldToFilter.value = fieldToFilter.value.substring(1, fieldToFilter.value.length);
	}
	if ( fieldToFilter.value.length == 0 )
	{
		fieldToFilter.value = "";
		return false;
	}

	if ( (content) && (content == "name") )
	{
		if ( ( fieldToFilter.value.charAt(0) >= "0")
			&& ( fieldToFilter.value.charAt(0) <= "9") )
		{
				alert( 
									    '\nThis field contains invalid characters.\n\n'
									    +   'Please avoid the use of non-standard \n'
									    +   'characters, such as:\n'
									    +   '     { } [ ] < > ! ^ | `\n'
									    +   '\nPlease enter corrected information.\n'
									 );
				end = true;
		}
	}

	for (var i=0; i < fieldToFilter.value.length; i++)
	{
		chr	= fieldToFilter.value.charAt(i);

		if ( (content) && (content == "int") )
		{
			if ( chr < '0' || chr > '9' )
			{
				alert("\nPlease enter a valid number in this field.\n");
				end = true;
			}
		}
		else if ( (content) && (content == "num") )
		{
			if ( (chr != ".") && ( chr < '0' || chr > '9' ) )
			{
				alert("\nPlease enter a valid number in this field.\n");
				end = true;
			}
		}
		else if ( (content) && (content == "phone") )
		{
			var validChars = ' +.-()/';
			if ( (validChars.indexOf(chr) == -1) && ( chr < '0' || chr > '9' ) )
			{
				alert("\nPlease enter a valid phone number in this field.\n");
				end = true;
			}
		}
		else
		{
		var invalid	= '';
		if ( (content) && (content == "name") )
			{
				invalid	= '/&*()#$@%!{}[]^|`<>\"';
			}
			else
			{
				invalid	= '!{}[]^|`<>\"';
			}			if ( ( invalid.indexOf(chr) >= 0 )
				|| ( chr < '\x20' ) || ( chr > '\x7f') )
			{
				alert( 
									    '\nThis field contains invalid characters.\n\n'
									    +   'Please avoid the use of non-standard \n'
									    +   'characters, such as:\n'
									    +   '     { } [ ] < > ! ^ | `\n'
									    +   '\nPlease enter corrected information.\n'
									 );
				end = true;
			}
		}

		if ( end )
		{
			fieldToFilter.value = "";
			if (document.images)
			{
				fieldToFilter.focus();
			}
			return false;
		}
	}

	if ( (content) && (content == "num") )
	{
		if ( fieldToFilter.value.indexOf(".") == -1 )
		{
			fieldToFilter.value = fieldToFilter.value + ".00";
		}
		else
		{
			dec = "00";
			fieldToFilter.value =
				fieldToFilter.value.substring( 0, fieldToFilter.value.indexOf(".") + 3  )
			  + dec.substring( fieldToFilter.value.length - 1 - fieldToFilter.value.indexOf(".") );
		}
	}

	if ((min) && (max) && (fieldToFilter.value != ''))
	{
		if ((min == max) && ( fieldToFilter.value.length != min ) )
		{
			alert ('\nPlease enter a value that is\n' + min + ' characters in length.\n');
			if ( fieldToFilter.value.length > min )
			{
				fieldToFilter.value	= "";
				filtered			= "";
			}

			if (document.images)
			{
				fieldToFilter.focus();
			}
			return false;
		}
		else if (( fieldToFilter.value.length < min ) || ( fieldToFilter.value.length > max ))
		{
			alert ('\nPlease enter a value \nthat is between ' + min + ' and ' + max + ' \ncharacters in length.\n');
			fieldToFilter.value	= "";
			filtered			= "";

			if (document.images)
			{
				fieldToFilter.focus();
			}
			return false;
		}
	}

	return true;

}  

function fieldToUpper( inputField )
{
        var str = inputField.value
        str = str.toUpperCase()
        inputField.value = str     
}


function non_blank_value(string_in)
{
	var numn = string_in.length
	for(i = 0; i < string_in.length; i++)
	{
		if(string_in.charAt(i) == ' ')
		{
			numn -= 1
		}
	}

	return(numn) ;
}


function check_password_fields()
{
	var pwd         = ''
	var pwd_conf    = ''

	pwd         = document.register_form.preferred_password.value.toUpperCase()
	pwd_conf    = document.register_form.preferred_password_confirm.value.toUpperCase()

	if ( (pwd != '') && (pwd_conf == '') )
	{
		if (error_message == '')
		{
			error_message = '\nPlease enter valid data for the \nfollowing required field(s): \n\n'
		}
		error_message += '- ' + 'Re-type the password:' + '\n'
	}
	else if ( (pwd == '') && (pwd_conf != '') )
	{
		if (error_message == '')
		{
			error_message = '\nPlease enter valid data for the \nfollowing required field(s): \n\n'
		}
		error_message += '- ' + 'Preferred password:' + '\n'
	}
	else if ( (pwd != '') && (pwd_conf != '') && (pwd != pwd_conf) )
	{
		error_message += '\n' + '\nThe passwords entered must be the same.\n' + ':'
		error_message += '\n- ' + 'Preferred password:'
		error_message += '\n- ' + 'Re-type the password:' + '\n'
	}
}






function check_text_field(target, name)
{
	if (!non_blank_value(target.value))
	{
		if (error_message == '')
		{
			error_message = '\nPlease enter valid data for the \nfollowing required field(s): \n\n'
		}
		error_message = error_message + name + '\n'
		target.value = ''
	}
}






function check_radio_field(target, name)
{
	var checked
	var j

	checked = false

	for (j = 0; j < target.length; j++)
	{
		if (target[j].checked)
		{
			checked = true
		}
	}

	if (checked == false)
	{
		if (error_message == '')
		{
			error_message = '\nPlease enter valid data for the \nfollowing required field(s): \n\n'
		}

		error_message = error_message + '- ' + name + '\n' ;
	}
}



function submit_form()
{
	var tmp_target;
	var tmp_name;
	var emailError;

	// Clear error message
	//
	error_message = '';

	// agency id number
	//
	tmp_target = document.register_form.iata;
	tmp_name = '- Your account ID';
	check_text_field(tmp_target, tmp_name);

	// agency name
	//
	tmp_target = document.register_form.address_name;
	tmp_name = '- Your agency name';
	check_text_field(tmp_target, tmp_name);

	// agency manager
	//
	tmp_target = document.register_form.manager_name;
	tmp_name = '- Your agency manager';
	check_text_field(tmp_target, tmp_name);

	// phone agency
	//
	tmp_target = document.register_form.phone;
	tmp_name = '- Your account phone';
	check_text_field(tmp_target, tmp_name);

	// fax agency
	//
	tmp_target = document.register_form.fax;
	tmp_name = '- Your account fax';
	check_text_field(tmp_target, tmp_name);

	// email
	//
	tmp_target = document.register_form.email;
	tmp_name = '- Your account email';
	if (! filterEmailField(tmp_target, tmp_name) )
	{ emailError = true }

	// address
	//
	tmp_target = document.register_form.address_1;
	tmp_name = '- At one address line';
	check_text_field(tmp_target, tmp_name);

	// city
	//
	tmp_target = document.register_form.city;
	tmp_name = '- Your town or city';
	check_text_field(tmp_target, tmp_name);


	

		// postal code
		//
		tmp_target = document.register_form.postal_code;
		tmp_name = '- Your postal code';
		check_text_field(tmp_target, tmp_name);

	


	// Country
	//
	if (document.register_form.country.selectedIndex == document.register_form.country.length-1) 
	{
	  	while ((document.register_form.country.options[document.register_form.country.selectedIndex].value == 'other')
		   ||(document.register_form.country.options[document.register_form.country.selectedIndex].value == null)
		   ||(document.register_form.country.options[document.register_form.country.selectedIndex].value == '') )
		  {
			document.register_form.country.options[document.register_form.country.selectedIndex].value = prompt("",'');
			filterFieldValue(document.register_form.country[document.register_form.country.selectedIndex],1,18);
		  }
	}


	// Perferred password - This check must be done last 
	// because the error message might be in a little    
	// different message (i.e. all other checks here    
	// just basically blank check the field, here we     
	// also check if the passwords entered are the       
	// same)                                             
	
	check_password_fields();


	if (emailError)
	{
		alert ("error email");
		return;
	}
	else if (error_message)
	{
		alert (error_message);
	}
	else
	{
		document.register_form.submit();
	}
}

function filterPasswordValue(fieldToFilter, fieldName, min, max)
{
	var filtered        = ''
	var chr             = ''

	if (!fieldName)
	{
		fieldName = 'value'
	}

	filterFieldValue( fieldToFilter, min, max )

	if (( document.register_form.preferred_password.value != '' )
	    && ( document.register_form.preferred_password_confirm.value != '' )
	    && ( document.register_form.preferred_password.value.toUpperCase() != document.register_form.preferred_password_confirm.value.toUpperCase() ))
	{
		alert("\nThe passwords entered must be the same\n")

		document.register_form.preferred_password_confirm.value = ''

		if (document.images)
		{
			document.register_form.preferred_password_confirm.focus()
		}
		return
	}
}// end filterPasswordValue()