// JavaScript Document

function checkform_submit()
{

	var valid = 0;	
	valid += validate_message();
	valid += validate_enquirytype();
	
	valid += validate_contactmethod();
	
	if( document.getElementById('frm_contactmethod').value == 'phone' )
	{
		valid += validate_phone();
	}
	
	if( document.getElementById('frm_contactmethod').value == 'email' )
	{
		valid += validate_email();		
	}
	
//	valid += validate_email();
	valid += validate_name();
	
	if( valid == 0 )
	{
		document.getElementById('error_message').style.display = 'none';
		return true;
	}
	else
	{
		document.getElementById('error_message').style.display = 'block';
		return false;
	}

}

function validate_name()
{

	var check = document.getElementById('frm_name').value;
	
	if( check.length == 0 )
	{
		document.getElementById('frm_name').className = 'input_textbox_invalid';
		document.getElementById('frm_name_status').src = '/images/icons/delete.png';
		document.getElementById('frm_name_status').style.visibility = 'visible';
		
		return 1;
	}

	document.getElementById('frm_name').className = 'input_textbox_valid';
	document.getElementById('frm_name_status').src = '/images/icons/accept.png';
	document.getElementById('frm_name_status').style.visibility = 'visible';
	return 0;
}

function validate_email()
{
	var check = document.getElementById('frm_email').value;

	if ( !check || check == "" )
	{
		document.getElementById('frm_email').className = 'input_textbox_invalid';
		document.getElementById('frm_email_status').src = '/images/icons/delete.png';
		document.getElementById('frm_email_status').style.visibility = 'visible';
		return 1;
	}
	
	// Can't contain contain more than one @; Cannot contain ..; Cannot contain @.; Cannot contain .@; Cannot begin with .;
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
	
	// Must contain one or more characters before @; Can contain [ after @; Sequence of valid characters;
	// A period . followed by 2-3 characters for suffix (right at the end - country code);
	// An optional ] at the very end to close the original [ (user@[255.255.255.255] is a valid address)
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 

	// If the email address DOES NOT match the reg1 AND DOES match reg2 then allow, else deny
	if (!reg1.test(check) && reg2.test(check))
	{
		document.getElementById('frm_email').className = 'input_textbox_valid';
		document.getElementById('frm_email_status').src = '/images/icons/accept.png';
		document.getElementById('frm_email_status').style.visibility = 'visible';
		return 0;
	}
	else
	{
		document.getElementById('frm_email').className = 'input_textbox_invalid';
		document.getElementById('frm_email_status').src = '/images/icons/delete.png';
		document.getElementById('frm_email_status').style.visibility = 'visible';
		return 1;
	}

}

function validate_message()
{

	var check = document.getElementById('frm_message').value;

	if( check.length == 0 )
	{
		document.getElementById('frm_message').className = 'input_textarea_invalid';
		document.getElementById('frm_message_status').src = '/images/icons/delete.png';
		document.getElementById('frm_message_status').style.visibility = 'visible';
		return 1;
	}

	document.getElementById('frm_message').className = 'input_textarea_valid';
	document.getElementById('frm_message_status').src = '/images/icons/accept.png';
	document.getElementById('frm_message_status').style.visibility = 'visible';
	return 0;
}

function validate_enquirytype()
{

	var check = document.getElementById('frm_enquirytype').value;
	
	if( check == "pleaseselect" )
	{
		document.getElementById('frm_enquirytype').className = 'input_combobox_invalid';
		document.getElementById('frm_enquirytype_status').src = '/images/icons/delete.png';
		document.getElementById('frm_enquirytype_status').style.visibility = 'visible';
		return 1;	
	}
	document.getElementById('frm_enquirytype').className = 'input_combobox_valid';
	document.getElementById('frm_enquirytype_status').src = '/images/icons/accept.png';
	document.getElementById('frm_enquirytype_status').style.visibility = 'visible';
	return 0;	
}

function trim_textarea_input( )
{
	var field = document.getElementById('frm_message');
	if( field.value.length > 750 )
	{
		field.value = field.value.substring( 0, 750 );
	}
	else
	{
		document.getElementById('frm_message_charsleft').innerHTML = 750 - field.value.length;
	}
}

function validate_contactmethod( )
{
	var field = document.getElementById('frm_contactmethod');	
	if( field.value == "pleaseselect" )
	{
		document.getElementById('telephone-compulsory').className = 'hidden';
		document.getElementById('email-compulsory').className = 'hidden';
		
		// reset telephone
		document.getElementById('frm_phone').className = 'input_textbox';
		document.getElementById('frm_phone_status').style.visibility = 'hidden';
		
		// reset email
		document.getElementById('frm_email').className = 'input_textbox';
		document.getElementById('frm_email_status').style.visibility = 'hidden';
		
		// has not selected a contact method	
		document.getElementById('frm_contactmethod').className = 'input_combobox_invalid';
		document.getElementById('frm_contactmethod_status').src = '/images/icons/delete.png';
		document.getElementById('frm_contactmethod_status').style.visibility = 'visible';
		return 1;	
		
	}
	else if( field.value == "phone" )
	{
		document.getElementById('frm_contactmethod').className = 'input_combobox_valid';
		document.getElementById('frm_contactmethod_status').src = '/images/icons/accept.png';
		document.getElementById('frm_contactmethod_status').style.visibility = 'visible';
		
		document.getElementById('telephone-compulsory').className = 'visible';
		document.getElementById('email-compulsory').className = 'hidden';
		// reset email
		document.getElementById('frm_email').className = 'input_textbox';
		document.getElementById('frm_email_status').style.visibility = 'hidden';
		// validate
		validate_phone();
		
		return 0;
	}
	else if( field.value == "email" )
	{
		document.getElementById('frm_contactmethod').className = 'input_combobox_valid';
		document.getElementById('frm_contactmethod_status').src = '/images/icons/accept.png';
		document.getElementById('frm_contactmethod_status').style.visibility = 'visible';
		
		document.getElementById('email-compulsory').className = 'visible';
		document.getElementById('telephone-compulsory').className = 'hidden';
		
		// reset telephone
		document.getElementById('frm_phone').className = 'input_textbox';
		document.getElementById('frm_phone_status').style.visibility = 'hidden';
		
		// validate
		validate_email();
		
		return 0;
	}
}

function validate_phone( )
{
	var field = document.getElementById('frm_phone').value;
	
	if( field.length == 0 || field == "" )
	{
		document.getElementById('frm_phone').className = 'input_textbox_invalid';
		document.getElementById('frm_phone_status').src = '/images/icons/delete.png';
		document.getElementById('frm_phone_status').style.visibility = 'visible';
		return 1;
	}
	
	var ValidChars = "0123456789 -()+";
	var Char;
	var IsValid = true;
	
//	alert ( field.length );

	for ( i = 0; i < field.length && IsValid == true; i++) 
	{ 
		Char = field.charAt(i); 
		if ( ValidChars.indexOf( Char ) == -1 ) 
		{
			IsValid = false;
			document.getElementById('frm_phone').className = 'input_textbox_invalid';
			document.getElementById('frm_phone_status').src = '/images/icons/delete.png';
			document.getElementById('frm_phone_status').style.visibility = 'visible';
			return 1;
		}
	}
	
	document.getElementById('frm_phone').className = 'input_textbox_valid';
	document.getElementById('frm_phone_status').src = '/images/icons/accept.png';
	document.getElementById('frm_phone_status').style.visibility = 'visible';
	return 0;	
}

function hearaboutus_change( )
{
	field = document.getElementById('frm_hearaboutus').value;
	
	switch ( field )
	{
		case "Trade Event":
		case "News / Article":
		case "Online Ad":
		case "Print Ad":
		case "Another Website":
		case "Search Engine":
			document.getElementById('hearaboutus_more_box').style.visibility = 'visible';
			document.getElementById('frm_hearaboutus_other').focus();
		break;
		
		case "Word of Mouth":
		case "pleaseselect":
			document.getElementById('hearaboutus_more_box').style.visibility = 'hidden'
			document.getElementById('frm_hearaboutus_other').value = '';
		break;
	}
}