function validate_order(thisform){
	mode = document.getElementById('pagetype');
	return_value = true;
	error_message = "";
	var whitespaceRe = /^\s*|\s*$/g;
	switch (mode.value) {
		case "1":
			thisform.char_name.value = (thisform.char_name.value).replace(whitespaceRe,'');
			if (thisform.char_name.value.length == 0) {
				error_message += "Please enter character name!\n";
				return_value = false;
			}
			if(thisform.server.selectedIndex ==0){
				error_message += "Please select server!\n";
				return_value = false;
			}
			if(thisform.item.selectedIndex ==0){
				error_message += "Please select desire amount!\n";
				return_value = false;
			}
			if(thisform.time_zone.selectedIndex ==0){
				error_message += "Please select timezone!\n";
				return_value = false;
			}
			break;
		case "2":
			if (thisform.pl_price.value.length == 0 || thisform.pl_time.value.length == 0) {
				error_message += "Please select your level and calulcate the price!\n";
				return_value = false;
			}
			thisform.char_name.value = (thisform.char_name.value).replace(whitespaceRe,'');
			if (thisform.char_name.value.length == 0) {
				error_message += "Please enter character name!\n";
				return_value = false;
			}
			thisform.login_name.value = (thisform.login_name.value).replace(whitespaceRe,'');
			if (thisform.login_name.value.length == 0) {
				error_message += "Please enter login name!\n";
				return_value = false;
			}
			thisform.login_pass.value = (thisform.login_pass.value).replace(whitespaceRe,'');
			if (thisform.login_pass.value.length == 0) {
				error_message += "Please enter login password!\n";
				return_value = false;
			}
			if(thisform.server.selectedIndex ==0){
				error_message += "Please select server!\n";
				return_value = false;
			}
			break;
		case "3":
			thisform.char_name.value = (thisform.char_name.value).replace(whitespaceRe,'');
			if (thisform.char_name.value.length == 0) {
				error_message += "Please enter character name!\n";
				return_value = false;
			}
			thisform.login_name.value = (thisform.login_name.value).replace(whitespaceRe,'');
			if (thisform.login_name.value.length == 0) {
				error_message += "Please enter login name!\n";
				return_value = false;
			}
			thisform.login_pass.value = (thisform.login_pass.value).replace(whitespaceRe,'');
			if (thisform.login_pass.value.length == 0) {
				error_message += "Please enter login password!\n";
				return_value = false;
			}
			if(thisform.server.selectedIndex ==0){
				error_message += "Please select server!\n";
				return_value = false;
			}
			break;
	}
	if (return_value == false) {
		alert(error_message);
	}
	return return_value;
}

function checkForm(thisform, mode) {
	return_value = true;
	error_message = "";
	var emailRe = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
	var phoneRe = /^[1-9]\d{2}\-\d{3}\-\d{4}$/;
	var passwordRe = /^[a-zA-Z0-9]+$/;
	var whitespaceRe = /^\s*|\s*$/g;
	with(thisform){
		switch (mode) {
		case 0:
			if ((thisform.n_password1.value != null && thisform.n_password2.value != null )&& (thisform.n_password1.value != thisform.n_password2.value )) {
				error_message += "Please Confirm Password!\n";
				return_value = false;
			}
			break;
		case 1:
			if (thisform.email.value.length == 0 || !thisform.email.value.match(emailRe)) {
				error_message += "Please Enter Email Address in correct format!\n";
				return_value = false;
			}
			if (!thisform.password.value.match(passwordRe)) {
				error_message += "Please Enter the Password in the correct thisformat!\n";
				return_value = false;
			}
			else if(thisform.password.value.length >16 || thisform.password.value.length <6){
				error_message += "Length of Password has to be between 6 to 16 characters inclusively!\n";
				return_value = false;
			}
			if (thisform.password.value != thisform.conf_password.value ) {
				error_message += "Please Confirm Password!\n";
				return_value = false;
			}
			thisform.first_name.value = (thisform.first_name.value).replace(whitespaceRe,'');
			if (thisform.first_name.value.length == 0) {
				error_message += "Please Enter First Name!\n";
				return_value = false;
			}
			thisform.last_name.value = (thisform.last_name.value).replace(whitespaceRe,'');
			if (thisform.last_name.value.length == 0) {
				error_message += "Please Enter Last Name!\n";
				return_value = false;
			}
			thisform.phone.value = (thisform.phone.value).replace(whitespaceRe,'');
			if (thisform.phone.value.length == 0 ) {
				error_message += "Please Enter Phone Number!\n";
				return_value = false;
			}
			if (!thisform.check.checked) {
				error_message += "You have to agree the terms and conditions before continue.\n";
				return_value = false;
			}
			break;
		case 2:
			if (thisform.name.value != null && thisform.name.value.length == 0) {
				error_message += "Please Enter Contact Name!\n";
				return_value = false;
			}
			if (thisform.phone.value != null && (thisform.phone.value.length == 0)) {
				error_message += "Please Enter Phone Number!\n";
				return_value = false;
			}
			if (thisform.phone.value != null && (thisform.address.value.length == 0)) {
			error_message += "Please Enter Address!\n";
			return_value = false;
			}
			if(thisform.country.options.selectedIndex ==0){
				error_message += "Please Select the Country.\n";
				return_value = false;
			}
			if(thisform.province_text.value != null){
				thisform.province_text.value = (thisform.province_text.value).replace(whitespaceRe,'');
				if(thisform.province.options.selectedIndex ==0 && thisform.province_text.value.length ==0){
					error_message += "Please Select or Input the Province.\n";
					return_value = false;
				}
			}

			if(thisform.city_text.value != null){
				thisform.city_text.value = (thisform.city_text.value).replace(whitespaceRe,'');
				if(thisform.city.options.selectedIndex ==0 && thisform.city_text.value.length ==0){
					error_message += "Please Select or Input the City.\n";
					return_value = false;
				}
			}

			if (thisform.postal_code.value != null && (thisform.postal_code.value.length == 0 || thisform.postal_code.value.length > 7)) {
				error_message += "Please Enter Postal Code in correct format!\n";
				return_value = false;
			}
			break;
		case 3:  //check email's validation for reset email and newsletter
			if (thisform.email.value.length == 0 || !thisform.email.value.match(emailRe)) {
				error_message += "Please Enter Email Address in correct format!\n";
				return_value = false;
			}

			break;
		case 4:
			if(getCheckedValue(thisform.shipping) == ""){
				error_message += "Please Choose shipping method!\n";
				return_value = false;
			}
			break;
		case 5:// for login validation check
			//String.prototype.Trim   =   function(){
			//return   this.replace(/(^\s*)|(\s*$)/g,   "");   //move head and end's white space
			//}
			//var  tmp=thisform.email.value;
			//thisform.email.value=tmp.Trim();
			//if(thisform.email.length==0 || !eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)){
			//error_message += "Please input correct format email address.\n";
			//return_value = false;
			//}
			 if (thisform.email.value.length == 0 || !thisform.email.value.match(emailRe)) {
				error_message += "Please Enter Email Address in correct format!\n";
				return_value = false;
			}
			if (!thisform.password.value.match(passwordRe)) {
				error_message += "Please Enter the Password in the correct format!\n";
				return_value = false;
			}
			else if(thisform.password.value.length >16 || thisform.password.value.length <6){
				error_message += "Length of Password has to be between 6 to 16 characters inclusively!\n";
				return_value = false;
			}
			break;
		}
		}

	if (return_value == false) {
		alert(error_message);
	}

	return return_value;
}