var CheResult = true;
var DBCheckUserName = true;
var DBCheckEmail = true;

function doSubmit()
{
	CheResult = true;
	firstErrorControl = "";
	
	if( emailCheck() == false)
		CheResult = false;
		

	if( passwordCheck() == false)
		CheResult = false;
		
	if( confirmPasswordCheck() == false)
		CheResult = false;
	
	if( firstNameCheck() == false ||  lastNameCheck() == false)
		CheResult = false;
	
	if( addressCheck() == false)
		CheResult = false;
	
	if( cityCheck() == false)
		CheResult = false;
	
	if( selectProvinceCheck() == false)
		CheResult = false;
		
	if( lstCompanyCategoryCheck() == false)
		CheResult = false;
	
	if( zipCheck() == false)
		CheResult = false;
	
	if( phoneCountryCodeCheck() == false || phoneAreaCodeCheck() == false || phoneNumberCheck() == false)
		CheResult = false;
		
	
	
		
	return CheResult;
}

function emailCheck()
{
	CtoH( 'txtEmail');
	if( isEmpty( GE('txtEmail').value) == true )
	{
		SetError( "txtEmail","block","Email is empty.");
		GE('txtEmail').focus;
		return false;
	}
	else if( isEmail( GE('txtEmail').value) == false )
	{
		SetError( "txtEmail","block","Please enter a correct email address.");
		GE('txtEmail').focus;
		return false;
	}
	else
	{
	SetError( "txtEmail","none","");
	}	
	
}



function passwordCheck()
{
	CtoH( 'txtPassword');
	if( isEmpty( GE('txtPassword').value) == true || GE('txtPassword').value.trim().length < 6)
	{
		SetError( "txtPassword","block","The password should have 6-20 characters.");
		GE('txtPassword').focus;
		return false;
	}
	else if( isComposite( GE('txtPassword').value) )
	{
		SetError( "txtPassword","block","The password is too simple. Consecutive or repeated numbers and letters.- e.g. 123456, abcdef, aaaaaa, 888888.");
		GE('txtPassword').focus;
		return false;
		}
	else
	{
	SetError( "txtPassword","none","");
	}	
		
}

function isComposite(password){
	var numberLine = '0123456789'					// numbers
	var charLine = 'abcdefghijklmnopqrstuvwxyz'	// alpha letters
	var haveNumber=false;
	var haveChar = false;
	var haveSame = false;
	
	if( numberLine.indexOf(password)>-1){haveNumber=true;}
	if(   charLine.indexOf(password)>-1){haveChar=true;}
	
	var samePassword = isSamePassword(password);

	if( samePassword == password.length)
	{
		haveSame = true;
	}
	
	return (haveNumber || haveChar || haveSame);
}

function isSamePassword(password)
{
	var	j = 1;
	for(var i=0;i<password.length-1;i++)
	{
		if(password.substring(i,i+1) == password.substring(i+1, i+2))
		{
			j++;
		}
	}
	return j;
}

function confirmPasswordCheck()
{
	CtoH( 'txtConfirmPassword');
	if( isEmpty( GE('txtConfirmPassword').value) == true )
	{
		SetError( "txtConfirmPassword","block","Please input password again");
		GE('txtConfirmPassword').focus;
		return false;
	}
	else if( GE('txtConfirmPassword').value != GE('txtPassword').value)
	{
		SetError( "txtConfirmPassword","block","Incorrect password");
		GE('txtConfirmPassword').focus;
		return false;
	}
	else
	{
		SetError( "txtConfirmPassword","none","");
	}
}

function firstNameCheck()
{
	 CtoH( 'txtFirstName');
	if( isEmpty( GE('txtFirstName').value) == true )
	{
		SetError( "txtFirstName","block","Please enter first name");
		GE('txtFirstName').focus;
		return false;
	}
	else if( isEngEmpty( GE('txtFirstName').value.trim() ) == false )
	{
		SetError( "txtFirstName","block","Please enter your name in English.");
		GE('txtFirstName').focus;
		return false;
	}
	else
	{
		SetError( "txtFirstName","none","");
	}
}

function lastNameCheck()
{
	 CtoH( 'txtLastName');
	if( isEmpty( GE('txtLastName').value) == true )
	{
		//SetError( "txtLastName","block","Please enter last name");
		return true;
	}
	else if( isEngEmpty( GE('txtLastName').value.trim()) == false )
	{
		SetError( "txtLastName","block","Please enter your name in English.");
		GE('txtLastName').focus;
		return false;
	}
	else
	{
		SetError( "txtLastName","none","");
	}
}



function addressCheck()
{
	 CtoH( 'txtAddress');
	if( isEmpty( GE('txtAddress').value) == true )
	{
		SetError( "txtAddress","block","Please enter street address");
		 GE('txtAddress').focus;
		return false;
	}
	else if( includeChineseChar( GE('txtAddress').value) == false )
	{
		SetError( "txtAddress","block","Please enter English.");
		GE('txtAddress').focus;
		return false;
	}
	else
	{
		SetError( "txtAddress","none","");
	}
}

function cityCheck()
{
	 CtoH( 'txtCity');
	if( isEmpty( GE('txtCity').value) == true )
	{
		SetError( "txtCity","block","Please enter city");
		GE('txtCity').focus;
		return false;
	}
	else if( includeChineseChar( GE('txtCity').value) == false )
	{
		SetError( "txtCity","block","Please enter English.");
		GE('txtCity').focus;
		return false;
	}
	else
	{
		SetError( "txtCity","none","");
	}
}


function selectProvinceCheck()
{
	CtoH( 'txtProvince');
	if( isEmpty( GE('txtProvince').value) == true )
	{
		SetError( "txtProvince","block","Please select a province/state");
		GE('txtProvince').focus;
		return false;
	}
	else if( includeChineseChar( GE('txtProvince').value) == false )
	{
		SetError( "txtProvince","block","Please enter English.");
		GE('txtProvince').focus;
		return false;
	}
	else
	{
		SetError( "txtProvince","none","");
	}
}

function zipCheck()
{
	CtoH( 'txtZip');
	if( isEmpty( GE('txtZip').value) == true )
	{
		
		SetError( "txtZip","block","Please enter a Zip");
		GE('txtZip').focus;
		return false;
	
	}
	else if( isPostCode( GE('txtZip').value) == false )
	{
		SetError( "txtZip","block","Please enter numbers, dash and space only.");
		GE('txtZip').focus;
		return false;
	}
	else
	{
		SetError( "txtZip","none","");
	}
}


function lstCompanyCategoryCheck()
{
	 CtoH( 'lstCompanyCategory');
	if( isEmpty( GE('lstCompanyCategory').value) == true )
	{
		SetError( "lstCompanyCategory","block","Please select CompanyCategory");
		GE('lstCompanyCategory').focus;
		return false;
	}
	else
	{
		SetError( "lstCompanyCategory","none","");
	}
}




function phoneCountryCodeCheck()
{
	CtoH( 'txtPhoneCountryCode');
	if( isEmpty( GE('txtPhoneCountryCode').value) == true )
	{
		
		SetError( "txtPhoneCountryCode","block","Please enter a phone countrycode");
		GE('txtPhoneCountryCode').focus;
		return false;
		
	}
	else if( isCountryCode( GE('txtPhoneCountryCode').value) == false )
	{
		SetError( "txtPhoneCountryCode","block","Incorrect phone countrycode");
		GE('txtPhoneCountryCode').focus;
		return false;
	}
	else
	{
		SetError( "txtPhoneCountryCode","none","");
	}
}

function phoneAreaCodeCheck()
{
	CtoH( 'txtPhoneAreaCode');
	if( isEmpty( GE('txtPhoneAreaCode').value) == true )
	{
		
		SetError( "txtPhoneAreaCode","block","Please enter a phone areacode");
		GE('txtPhoneAreaCode').focus;
		return false;
		
	}
	else if( isDigit( GE('txtPhoneAreaCode').value) == false )
	{
		SetError( "txtPhoneAreaCode","block","Incorrect phone areacode");
		GE('txtPhoneAreaCode').focus;
		return false;
	}
	else
	{
		SetError( "txtPhoneAreaCode","none","");
	}
}

function phoneNumberCheck()
{
	CtoH( 'txtPhoneNumber');
	if( isEmpty( GE('txtPhoneNumber').value) == true )
	{
		
		SetError( "txtPhoneNumber","block","Please enter a phone number");
		GE('txtPhoneNumber').focus;
		return false;
	
	}
	else if( isTel( GE('txtPhoneNumber').value) == false )
	{
		SetError( "txtPhoneNumber","block","Please enter numbers, dash and space only.");
		GE('txtPhoneNumber').focus;
		return false;
	}
	else
	{
		SetError( "txtPhoneNumber","none","");
	}
}

