// Recommend This to A Friend =================================================
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
/**
 *是否同意Term
 */ 
function agreeTerm(frm){
    if(frm.agree.checked == true){
        frm.submitToNext.disabled = false;
    }else{
        frm.submitToNext.disabled = true;
    }
}
// 檢查Buyer 註冊資料表 =======================================================
function CheckRegisterFrm_v1(frm, authnum) {
		var check_files = new Array('bm_account','bm_password','bm_company_name','bm_city','bm_address','bm_province_state','bm_url','bm_profile','bm_first_name','bm_last_name','bm_position','bm_email','bm_mobile');
		for (var i=0; i < frm.elements.length; i++) 
		{
			var elements_value = frm.elements[i].value;
			var elements_name  = frm.elements[i].name;
			elements_value = elements_value.trim();
			
			for (var j=0; j<check_files.length; j++) 
			{
				if(checkNull(elements_value) && elements_name.indexOf(check_files[j]) != -1)
				{
					if(!checkChinese(frm.elements[i].value)){
						frm.elements[i].select();
						frm.elements[i].focus();
						return false;
					}else if (!checkHtml(frm.elements[i].value)){
						frm.elements[i].select();
						frm.elements[i].focus();
						return false;
					}
				}
			}
		}
        if (!checkNull(frm.bm_account.value)) {
            alert('Notice! The field of ID was still blank.');
            frm.bm_account.focus();
            return false;
        } else if (!checkLength(frm.bm_account.value,3,10)) {
            alert('The ID characters must be 3 ~ 10.');
			frm.bm_account.value = "";
            frm.bm_account.focus();
            return false;
        } else if (!checkPassword_2(frm.bm_account.value)) {
            alert('Your ID are not in correct format.');
			frm.bm_account.value = "";
            frm.bm_account.focus();
            return false;
        }
      if (!checkPassword_1(frm.bm_password.value, frm._password_.value)) {
            frm.bm_password.value = "";
            frm._password_.value = "";
            frm.bm_password.focus();
            return false;
        } else if (!checkLength(frm.bm_password.value, 6, 10)) {
            alert('Password should be 6 ~ 10 characters.');
            frm.bm_password.value = "";
            frm._password_.value = "";
            frm.bm_password.focus();
            return false;
        } else if (!checkPasswordRule(frm.bm_account, frm.bm_password)) {
            alert("Your Password entries did not match the correct format.");
            frm.bm_password.value = "";
            frm._password_.value = "";
            frm.bm_password.focus();
            return false;
        }
        /**/
        if (!nullCheckRadio(frm,'bm_member_type__id')){
            alert('Notice! The field of Member Type (buyer or seller) must be selected.');
            return false;
        }
        
        if (!checkNull(frm.bm_company_name.value)) {
            alert('Notice! The field of Company Name was still blank.');
            frm.bm_company_name.focus();
            return false;
        }
        if (!checkSelect(frm.bm_country__id)) {
            alert('Notice! The field of Country must be selected.');
            frm.bm_country__id.focus();
            return false;
        }
        if (!checkNull(frm.bm_city.value)) {
            alert('Notice! The field of City was still blank.');
            frm.bm_city.focus();
            return false;
        }
        if (!checkNull(frm.bm_address.value)) {
            alert('Notice! The field of Street Address was still blank.');
            frm.bm_address.focus();
            return false;
        }
        if (!checkNull(frm._tel1_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel1_.focus();
            return false;
        } else if (!checkNum(frm._tel1_.value, 'Tel No')) {
			frm._tel1_.value = "";
            frm._tel1_.focus();
            return false;
        }

        if (!checkNull(frm._tel2_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel2_.focus();
            return false;
        } else if (!checkNum(frm._tel2_.value, 'Tel No')) {
			frm._tel2_.value = "";
            frm._tel2_.focus();
            return false;
        }

        if (!checkNull(frm._tel3_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel3_.focus();
            return false;
        } else if (!checkNum(frm._tel3_.value, 'Tel No')) {
			frm._tel3_.value = "";
            frm._tel3_.focus();
            return false;
        }
        if (checkNull(frm._fax1_.value) && !checkNum(frm._fax1_.value,'Fax No')){
			frm._fax1_.value = "";
            frm._fax1_.focus();
            return false;
        }
        if (checkNull(frm._fax2_.value) && !checkNum(frm._fax2_.value,'Fax No')){
			frm._fax2_.value = "";
            frm._fax2_.focus();
            return false;
        }
        if (checkNull(frm._fax3_.value) && !checkNum(frm._fax3_.value,'Fax No')){
			frm._fax3_.value = "";
            frm._fax3_.focus();
            return false;
        }
		if (!nullCheckBox(frm, 'bm_company_type__id[]', 'Company Type')) {
            document.getElementById('_comtype').focus();
            return false;
		}         
        if (!checkNull(frm.bm_profile.value)) {
            alert('Notice! The field of Company Profile was still blank.');
            frm.bm_profile.focus();
            return false;
        }        
        if (!checkNull(frm.bm_first_name.value)) {
            alert('Notice! The field of First Name was still blank.');
            frm.bm_first_name.focus();
            return false;
        }
        if (!checkNull(frm.bm_last_name.value)) {
            alert('Notice! The field of Last Name was still blank.');
            frm.bm_last_name.focus();
            return false;
        }        
        if (!checkNull(frm.bm_email.value)) {
            alert('Notice! The field of E-mail was still blank.');
            frm.bm_email.focus();
            return false;
        } else if (!checkEmail(frm.bm_email.value)) {    
            frm.bm_email.value = "";
            frm.bm_email.focus();
            return false;
        }
        

        if (!checkNull(frm.authinput.value)) {
            alert('Notice! The confirm text was still blank.');
            frm.authinput.focus();
            return false;
        }
        /*
        if (authnum != frm.authinput.value) {
			alert('Please enter the correct letters in the confirm text.');
			frm.authinput.value = "";
			frm.authinput.focus();
			return false;
        }
        */

		frm.bm_tel.value = frm._tel1_.value +'-'+ frm._tel2_.value +'-'+ frm._tel3_.value;
		frm.bm_fax.value = frm._fax1_.value +'-'+ frm._fax2_.value +'-'+ frm._fax3_.value;
        
}

// 檢查Member Update Profile資料 =======================================================
function CheckProfileFrm_v1(frm) {
		
		if (!nullCheckRadio(frm,'bm_member_type__id')){
            alert('Notice! The field of Member Type (buyer or seller) must be selected.');
            return false;
        }
        
        if (!checkNull(frm.bm_company_name.value)) {
            alert('Notice! The field of Company Name was still blank.');
            frm.bm_company_name.focus();
            return false;
        }
        if (!checkSelect(frm.bm_country__id)) {
            alert('Notice! The field of Country must be selected.');
            frm.bm_country__id.focus();
            return false;
        }
        if (!checkNull(frm.bm_city.value)) {
            alert('Notice! The field of City was still blank.');
            frm.bm_city.focus();
            return false;
        }
        if (!checkNull(frm.bm_address.value)) {
            alert('Notice! The field of Street Address was still blank.');
            frm.bm_address.focus();
            return false;
        }
        if (!checkNull(frm._tel1_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel1_.focus();
            return false;
        } else if (!checkNum(frm._tel1_.value, 'Tel No')) {
			frm._tel1_.value = "";
            frm._tel1_.focus();
            return false;
        }

        if (!checkNull(frm._tel2_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel2_.focus();
            return false;
        } else if (!checkNum(frm._tel2_.value, 'Tel No')) {
			frm._tel2_.value = "";
            frm._tel2_.focus();
            return false;
        }

        if (!checkNull(frm._tel3_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel3_.focus();
            return false;
        } else if (!checkNum(frm._tel3_.value, 'Tel No')) {
			frm._tel3_.value = "";
            frm._tel3_.focus();
            return false;
        }
        if (checkNull(frm._fax1_.value) && !checkNum(frm._fax1_.value,'Fax No')){
			frm._fax1_.value = "";
            frm._fax1_.focus();
            return false;
        }
        if (checkNull(frm._fax2_.value) && !checkNum(frm._fax2_.value,'Fax No')){
			frm._fax2_.value = "";
            frm._fax2_.focus();
            return false;
        }
        if (checkNull(frm._fax3_.value) && !checkNum(frm._fax3_.value,'Fax No')){
			frm._fax3_.value = "";
            frm._fax3_.focus();
            return false;
        }
		if (!nullCheckBox(frm, 'bm_company_type__id[]', 'Company Type')) {
            document.getElementById('_comtype').focus();
            return false;
		}         
        if (!checkNull(frm.bm_profile.value)) {
            alert('Notice! The field of Company Profile was still blank.');
            frm.bm_profile.focus();
            return false;
        }        
        if (!checkNull(frm.bm_first_name.value)) {
            alert('Notice! The field of First Name was still blank.');
            frm.bm_first_name.focus();
            return false;
        }
        if (!checkNull(frm.bm_last_name.value)) {
            alert('Notice! The field of Last Name was still blank.');
            frm.bm_last_name.focus();
            return false;
        }        
        if (!checkNull(frm.bm_email.value)) {
            alert('Notice! The field of E-mail was still blank.');
            frm.bm_email.focus();
            return false;
        } else if (!checkEmail(frm.bm_email.value)) {    
            frm.bm_email.value = "";
            frm.bm_email.focus();
            return false;
        }
		// Add by @wheat -- 2007.10.25
		if(frm.Basket){
			var s= '';
			for(var i=0; i<frm.Basket.options.length; i++){
				s+= ','+frm.Basket.options[i].value;
			}
			frm.bm_interested_category__id.value= s.replace(/^,+|,+$/, '');
			/*
			alert(frm.bm_interested_category__id.value);
			if(frm.bm_interested_category__id.value=='')	{
				alert("Notice!\nPlease choose a category");
				frm.Basket.focus();
			}
			*/
		}
		
		if(frm.bm_interested_keyword){
			if (!checkLength(frm.bm_interested_keyword.value,0,1000)) {
	            alert('interested keyword execeeded 1000 characters.');
		    	//bm_interested_keyword.value = "";
	            frm.bm_interested_keyword.focus();
	            return false;
			}
			frm.bm_interested_keyword.value= cutstr(frm.bm_interested_keyword.value, 1000);
		}
		// -- END --

}



// add by livy @061005
function cutstr(str, len)	{
	return str.length>len?str.substring(0, len):str;
}

// 檢查Buyer 後台- 基本/進階資料維護 ==========================================
function CheckMyProfileFrm(frm, type) {

    if (type == "basic") {
        if (!checkNull(frm.bm_first_name.value)) {
            alert('Notice! The field of First Name was still blank.');
            frm.bm_first_name.focus();
            return false;
        }

        if (!checkNull(frm.bm_last_name.value)) {
            alert('Notice! The field of Last Name was still blank.');
            frm.bm_last_name.focus();
            return false;
        }

        if (!checkNull(frm.bm_company_name.value)) {
            alert('Notice! The field of Company Name was still blank.');
            frm.bm_company_name.focus();
            return false;
        }

		if (!nullCheckBox(frm, 't5_company_type__id[]', 'Company Type')) {
            return false;
		} 

        if (!checkSelect(frm.bm_country__id)) {
            alert('Notice! The field of Country must be selected.');
            frm.bm_country__id.focus();
            return false;
        }

        if (!checkNull(frm.bm_city.value)) {
            alert('Notice! The field of City was still blank.');
            frm.bm_city.focus();
            return false;
        }

        if (!checkNull(frm.bm_address.value)) {
            alert('Notice! The field of Address was still blank.');
            frm.bm_address.focus();
            return false;
        }

        if (!checkNull(frm.bm_province_state.value)) {
            alert('Notice! The field of Province was still blank.');
            frm.bm_province_state.focus();
            return false;
        }

        if (!checkNull(frm.bm_zip_code.value)) {
            alert('Notice! The field of Zip Code was still blank.');
            frm.bm_zip_code.focus();
            return false;
        } else if (!checkNum(frm.bm_zip_code.value, 'Zip Code')) {
			frm.bm_zip_code.value = "";
            frm.bm_zip_code.focus();
            return false;
        }

        if (!checkNull(frm._tel1_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel1_.focus();
            return false;
        } else if (!checkNum(frm._tel1_.value, 'Tel No')) {
			frm._tel1_.value = "";
            frm._tel1_.focus();
            return false;
        }

        if (!checkNull(frm._tel2_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel2_.focus();
            return false;
        } else if (!checkNum(frm._tel2_.value, 'Tel No')) {
			frm._tel2_.value = "";
            frm._tel2_.focus();
            return false;
        }

        if (!checkNull(frm._tel3_.value)) {
            alert('Notice! The field of Business Tel No. was still blank.');
            frm._tel3_.focus();
            return false;
        } else if (!checkNum(frm._tel3_.value, 'Tel No')) {
			frm._tel3_.value = "";
            frm._tel3_.focus();
            return false;
        }
        frm.bm_tel.value = frm._tel1_.value +'-'+ frm._tel2_.value +'-'+ frm._tel3_.value;

        /*if (!checkNull(frm._fax1_.value)) {
            alert('Notice! The field of Business Fax No. was still blank.');
            frm._fax1_.focus();
            return false;
        } else */if (!checkNum(frm._fax1_.value, 'Fax No')) {
			frm._fax1_.value = "";
            frm._fax1_.focus();
            return false;
        }

        /*if (!checkNull(frm._fax2_.value)) {
            alert('Notice! The field of Business Fax No. was still blank.');
            frm._fax2_.focus();
            return false;
        } else */if (!checkNum(frm._fax2_.value, 'Fax No')) {
			frm._fax2_.value = "";
            frm._fax2_.focus();
            return false;
        }

        /*if (!checkNull(frm._fax3_.value)) {
            alert('Notice! The field of Business Fax No. was still blank.');
            frm._fax3_.focus();
            return false;
        } else */if (!checkNum(frm._fax3_.value, 'Fax No')) {
			frm._fax3_.value = "";
            frm._fax3_.focus();
            return false;
        }
		if ((checkNull(frm._fax1_.value)) && (checkNull(frm._fax2_.value)) && (checkNull(frm._fax3_.value))) {
			frm.bm_fax.value = frm._fax1_.value +'-'+ frm._fax2_.value +'-'+ frm._fax3_.value;
		} else {
		    frm.bm_fax.value = " ";
		}

        if (!checkNum(frm.bm_mobile.value, 'Mobile No')) {
			frm.bm_mobile.value = "";
            frm.bm_mobile.focus();
            return false;
        }

		// add by livy @061005
		if (!checkNull(frm.bm_url.value)) {
			alert('Notice! The field of Company URL was still blank.');
			frm.bm_url.focus();
			return false;
		}
/*
        if (!checkNull(frm.industry_category.value)) {
            alert('Notice! The field of Industry Category was still blank.');
            frm.industry_category.focus();
            return false;
        }
*/
        if (!checkNull(frm.bm_profile.value)) {
            alert('Notice! The field of Company Profile was still blank.');
            frm.bm_profile.focus();
            return false;
        }
		
		// add by livy @061005
		frm.bm_profile.value= cutstr(frm.bm_profile.value, 400);
		
    } else {
	}
}


// 檢查Buyer id 是否重覆 ======================================================
/*
function checkID (frm, url) {
	if (!checkNull(frm.bm_email.value)) {
		alert('Notice! The field of ID was still blank.');
		frm.bm_email.focus();
	} else if (!checkEmail(frm.bm_email.value)) {
        frm.bm_email.select();
		frm.bm_email.focus();
	} else {
	    window.open(url+'?mod=check_buyerId&checkid='+frm.bm_email.value,'Check','toolbar=no,width=250,height=150,directories=no,status=no,scrollbars=no,resize=no,menubar=no');
	}
}
*/
function checkID (frm, url) {
	if (!checkNull(frm.bm_account.value)) {
		alert('Notice! The field of ID was still blank.');
		frm.bm_account.focus();
	} else {
	    window.open(url+'?action=check_memberId&bm_account='+frm.bm_account.value,'Check','toolbar=no,width=250,height=150,directories=no,status=no,scrollbars=no,resize=no,menubar=no');
	}
}


// 檢查Buyer login ============================================================
function CheckLoginFrm (frm) {
	if (!checkNull(frm.bm_account.value)) {
		alert('Notice! The field of ID was still blank.');
		frm.bm_account.focus();
		return false;
	}
	if (frm.bm_account.value=="(your id)") {
		alert('Notice! The field of ID was still blank.');
		frm.bm_account.focus();
		return false;
	}
	if (!checkNull(frm.bm_password.value)) {
		alert('Notice! The field of Password was still blank.');
		frm.bm_password.focus();
		return false;
	}
    // Confirm Text
    if (!checkNull(frm.authinput.value)) {
        alert('Notice! The field of Confirm Text was still blank.');
        frm.authinput.focus();
        return false;
    }else if(!checkvalue_Exists(frm['authinput'])){
        alert('Notice! The field of Confirm Text is Wrong!!');
        frm.authinput.value= "";
        frm.authinput.focus();
        return false;
    }
	return true;
}


// 檢查Member Change Password ==================================================
function CheckChangePwdFrm(frm) {

	if (!checkNull(frm.ori_password.value)) {
		alert('Notice! The field of Original Password was still blank.');
		frm.ori_password.focus();
		return false;
	}

	if (!checkPassword_1(frm.bm_password.value, frm._password_.value)) {
		frm.bm_password.value = "";
		frm._password_.value = "";
		frm.bm_password.focus();
		return false;
	} else if (!checkLength(frm.bm_password.value, 6, 10)) {
		alert('Password should be 6 ~ 10 characters');
		frm.bm_password.value = "";
		frm._password_.value = "";
		frm.bm_password.focus();
		return false;
	} else if (!checkPassword_2(frm.bm_password.value)) {
		alert('Your password and confirm password are not the same.');
		frm.bm_password.value = "";
		frm._password_.value = "";
		frm.bm_password.focus();
		return false;
	}

	if (frm.old_password.value != frm.ori_password.value)	{
		alert("Your Original Password is error.");
		frm.ori_password.value = "";
		frm.ori_password.focus();
		return false;
	}

	return true;
}


function checkEmail(control) {

    ind = control.indexOf ('@', 0);
    if (control.length==0) {
        alert('Notice! The field of E-Mail was still blank.');
        return false;
    } else if (ind==-1) {
//        alert("錯誤：必須包含「@」。");
        alert("Your email address entries did not match the correct format.");
        return false;
    } else if (ind==0) {
//        alert("錯誤：「@」之前不可為空字串。");
        alert("Your email address entries did not match the correct format.");
        return false;
    } else if (ind==control.length-1) {
//        alert("錯誤：「@」之後不可為空字串。");
        alert("Your email address entries did not match the correct format.");
        return false;
    } else {
        return true;
    }
}


function checkPassword_1(pwd1, pwd2) {

    if (pwd1.length==0) {
        alert('Notice! The field of Password was still blank.');
        return false;
    } else if (pwd2.length==0) {
        alert('Notice! The field of Confirm Password was still blank.');
        return false;
    } else if (pwd1 != pwd2) {
        alert("Password and Confirm Password must be the same.");
        return false;
    } else {
        return true;
    }
}

function checkPassword_2(pwd) {
    for( idx = 0 ; idx <pwd.length ; idx++ ) {
        if( !( ( pwd.charAt(idx)>= 'A' && pwd.charAt(idx) <= 'Z' ) || ( pwd.charAt(idx)>= 'a' && pwd.charAt(idx) <= 'z' ) || ( pwd.charAt(idx)>= '0' && pwd.charAt(idx) <= '9' ) ) ) {
            return false;
        }
    }
    return true;
}

function checkPassword_3(pwd1, pwd2) {
    if (pwd1 != pwd2) {
        //alert("Password and Confirm Password must be the same.");
        return false;
    } else {
        return true;
    }
}

function checkLength(column, limit1, limit2) {
    if (column.length < limit1 || column.length > limit2) {
        return false;
    }
    return true;
}


function checkNum (column, columnName) {
	for (i=0; i<column.length; i++)	{
		c = column.charAt(i);
		if ("0123456789".indexOf(c,0)<0) {
			alert('Please enter numbers into the ' + columnName);
			return false;
		}
	}
	return true; 
/*
	var FT = /[0-9]/;
	if(FT.test(column)==false)	{
		return false;
	} else {
        return true;    
    }
*/
}


// 去除字串前後空白 2005/10/25
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, '');
}
function checkNull (column) {
	column = column.trim();
	if( column.length == 0 ) {
		return false;
	} else {
		return true;
	}		
}


function checkSelect (select) {
	if( select.options[0].selected == true ) {
		return false;
	} else {
		return true;
	}
}


function nullCheckBox (frm, column, columnName) {
	var len = frm.elements.length;
	var flag = 0;
	for (var i = 0; i < len; i++) { 
		var e = frm.elements[i]; 
		if (e.name == column) { 
			if (e.checked)
				flag++;		
		} 
	} 
	if (flag==0) {
		alert('Notice! The field of ' + columnName + ' was still blank.');
		return false;
	}
	return true;
}


function nullCheckRadio (frm, column) {
	var len = frm.elements.length;
	var flag = 0;
	for (var i = 0; i < len; i++) { 
		var e = frm.elements[i]; 
		if (e.name == column) { 
			if (e.checked) flag++;		
		} 
	} 
	if (flag==0)  return false;
	return true;
}


function checkWordNumber (frmName, column, fieldName, limit) {
    if (eval("document." + frmName + "." + column + ".value.length") > limit) {
        alert('The ' + fieldName + ' is over ' + limit + ' characters!');
        eval("document." + frmName + "." + column + ".value = document." + frmName + "." + column + ".value.substr(0,limit)");
    }
}


function checkAccept(accpetfrm, column) {
	eval("document." +accpetfrm + ".submit();");
/*
    if (eval("document." +accpetfrm + "." + column + ".checked")) {
        eval("document."+accpetfrm + ".submit();");
    } else {
		alert('If you want to be the B2BChinaSources member, \n\nyou have to confirm B2B China Sources Terms of Service Agreement.');
	}
*/
}


// 忘記密碼
function ForgotPwd(frm) {
	if (!checkNull(frm.bm_account.value)) {
		alert('Notice! The field of ID was still blank.');
		frm.bm_account.focus();
		return false;
	}
	if (!checkNull(frm.bm_email.value)) {
		alert('Notice! The field of Email address was still blank.');
		frm.bm_email.focus();
		return false;
	}
	return true;
}


// 密碼規則(限用6~10字元, 英文/數位皆需使用, 不可包含帳號, 只限輸入A~Z, a~z, 0~9, 請勿輸入空白或其他符號)
function checkPasswordRule(account, password) {
    var pwd = password.value.trim();    // 去除前後空白
    var acc = account.value;
	//    if(pwd.indexOf( acc )>= 0)  return false;   // 不可含帳號
    if( pwd.indexOf( account.value )>= 0)  return false;   // 不可含帳號
    if( pwd.length == 0 ) return false;   // 未填資料 
    else password.value = pwd;
    for( idx = 0 ; idx <pwd.length ; idx++ ) {  // 只限輸入A~Z, a~z, 0~9
        if(!((pwd.charAt(idx)>='A' && pwd.charAt(idx)<='Z') || (pwd.charAt(idx)>='a' && pwd.charAt(idx)<='z') || (pwd.charAt(idx)>='0' && pwd.charAt(idx)<='9'))) {
            return false;
        }
    }
    if(!/.*[a-zA-Z]+.*/.test(pwd))  return false;    // 至少要一英文
    if(!/.*\d+.*/.test(pwd))  return false;   // 至少要一數字
    return true;
}

// 規則(只限輸入A~Z, a~z, 0~9, 請勿輸入空白或其他符號)
function checkStrRule(str) {
    var str = str.trim();    			// 去除前後空白
	if( str.length == 0 ) return false; // 未填資料 
	for( idx = 0 ; idx <str.length ; idx++ ) {  // 只限輸入A~Z, a~z, 0~9
        if(!((str.charAt(idx)>='A' && str.charAt(idx)<='Z') || (str.charAt(idx)>='a' && str.charAt(idx)<='z') || (str.charAt(idx)>='0' && str.charAt(idx)<='9'))) {
            return false;
        }
    }
	//if(!/.*[a-zA-Z]+.*/.test(str))  return false;    // 至少要一英文
    //if(!/.*\d+.*/.test(str))  		return false;  	 // 至少要一數字
	return true;
}

/*
// 檢查 '帳號', 'e-mail' 是否存在!!
function checkvalue_Exists(field){
	var FrmName = field.name;
	var FrmValue = field.value;
	var showNum = 0;
	if(FrmValue != '') {
		var xmlhttp_obj = createXMLHttpRequest();
		var host = "http://www.manufacturers.com.tw";
		var url = host+"/check_value_isexist.php?action=check_valueExists&c_name="+escape(FrmName)+"&c_val="+escape(FrmValue);
		var randNo = new Date().getTime();
		url += "&rand=" + randNo;	
		xmlhttp_obj.open("GET", url, false);
		xmlhttp_obj.send(null);
		showNum = parseInt(xmlhttp_obj.responseText);
		return (showNum >0 ) ? true : false;
	}else{
		return false;
	}
}
*/
/* === 函數: 檢查Buyer 註冊資料表 -- 全部欄位驗證  ===
 * 
 * @param (object)  $frm 		: 表單物件
 * @param (string)  $authnum	: 表單驗證文字
 * @return (boolean)
 * Description: 須用到 (CheckRegisterFields) 的函數
 */
function CheckRegisterFrm(frm, authnum) {
	var error_text ='';							// 訊息文字
	var error_type = 3; 						// 訊息型態(1-alert(), 2-span, 3-div)
	var error_num = 0;							// 錯誤訊息數量
	var eleLength = (frm.elements.length-1);	// 表單元素大小 
		
	// 訊息型態(alert)
	if (error_type == 1 ) { 
		for (var i= 0 ; i<eleLength; i++) {
			var fe_name = frm.elements[i].name;		
			var fe_value = frm.elements[i].value;
			var error_id = 'error_' + fe_name ;
			
			// 驗證
			if(!CheckRegisterFields(frm,fe_name,error_type,1)){
				return false;
			}
		}
		
	//  訊息型態(div) -- 顯示所有訊息	
	} else {
		for (var i= eleLength; i>=0; i--) {
			var fe_name = frm.elements[i].name;		
			var fe_value = frm.elements[i].value;
			var error_id = 'error_' + fe_name ;
			
			// 驗證
			if(!CheckRegisterFields(frm,fe_name,error_type,0)){
				var errFieldsnName = fe_name;
				var errFieldsType = frm.elements[i].type;
				error_num++;
			}
		}
		// 移至最後錯誤欄位焦點
		if(error_num > 0 && typeof(errFieldsnName) != 'undefined') {
			if(errFieldsType == "radio"){
				frm[errFieldsnName][0].focus();
			}else{
				frm[errFieldsnName].focus();
			}
			return false;
		}
	}
	/*
    frm.submit();
    document.getElementById("next_but").disabled = true;
    document.getElementById("next_but").value = "please wait ...."
    */
	return true;
} 

/* === 函數: 檢查Buyer 註冊資料表 -- 單一欄位驗證  ===
 * 
 * @param (object)  $frm 		: 表單物件
 * @param (number)  $error_type : 訊息型態(1-alert(), 2-span, 3-div)
 * @param (number)  $error_type : 是否啟用onFocus(0-關閉, 1-開啟)
 * @return (boolean)
 * Description: 須用到 tool.js (showMsg,display) 的函數
 */
function CheckRegisterFields(frm,fe_name,error_type,isFocus) {
	// 訊息文字
	var error_text = ''; 	
	// 訊息型態(1-alert(), 2-span, 3-div)
	var error_type = (typeof(error_type) != 'undefined') ? error_type : 3; 	
	// 是否啟用onFocus(0-關閉, 1-開啟)
	var isFocus = (typeof(isFocus) != 'undefined') ? isFocus : 0;  ; 
	
	// 檢查(中文 && html標簽) 清單 (字尾須加,)
	var check_fields = 'bm_email,bm_account,bm_password,_password_,bm_first_name,bm_last_name';
	    check_fields+= ',bm_company_name,bm_position,authinput,bm_interested_keyword';
	// e-mail 正規式
	var emailpattern = /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/;
	var error_id = 'error_' + fe_name;		// 欄位名稱
	var fe_value = frm[fe_name].value;		// 欄位值
	
	// (訊息型態不是以alert呈現),則清除之前該欄位錯誤訊息!!  
	if (error_type != 1) {
		if (document.getElementById(error_id)) {
			if (document.getElementById(error_id).parentNode) {
				document.getElementById(error_id).parentNode.removeChild(document.getElementById(error_id));
			} else {
				document.getElementById(error_id).innerHTML = "";
				display(error_id,'none');
			}
		}
	}
	
	//  step 01. 檢查是否包含 中文 && html標簽 !!  
	var myRE = new RegExp("(^|,)"+fe_name+"(,|$)","ig");
	if (typeof(fe_value) != 'undefined') {
		if (checkNull(fe_value) && check_fields.match(myRE.source)) {
			//alert(myRE.source);
			if (!checkChinese(fe_value)) {
				error_text = 'Please enter English!!';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select();
					frm[fe_name].focus();
				}
				return false;
			} 
			
			if (!checkHtml(fe_value)) {
				error_text = 'HTML format not supported.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select();
					frm[fe_name].focus();
				}
				return false;
			}
		}
	}
	
	//  step 02. 欄位驗證!! 
	switch(fe_name) {
		// Member Type
		case "bm_member_type__id":
			if (!nullCheckRadio(frm,fe_name)) {
				error_text = 'Notice! The field of Member Type (buyer or seller) must be selected.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name][0].focus();
				}
				return false;
			}
			break;
		
		// email
		case "bm_email":
			if (!checkNull(fe_value)) {
				error_text = 'Notice! The field of E-mail is still blank.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
				
			} else if (!emailpattern.test(fe_value)) {    
				error_text = 'Your email address entries do not match the correct format.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select;
					frm[fe_name].focus();
				}
				return false;
			}else if (checkvalue_Exists(frm[fe_name])) {
				error_text = "This e-mail is already  registered, if you are already a member, please <strong><a href='/member.php?view=member_signin' class='red'  >sign  in</a></strong> here.<br>Forgot your password? <strong><a href='/member.php?view=forgot_password' class='red'>Click here</a></strong> to retrieve it.<br>Or to  register with another email address.";
				showMsg(error_text,fe_name,3);
				if(isFocus == 1){
					frm[fe_name].select;
					frm[fe_name].focus();
				}
				return false;
			}
			break;
			
		// bm_account
		case "bm_account":
			if (!checkNull(fe_value)) {
				error_text = 'Notice! The field of ID is still blank.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			} else if (!checkLength(fe_value,3,10)) {
				error_text = 'The ID characters must be 3 ~ 10.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select;
					frm[fe_name].focus();
				}
				return false;
			} else if (!checkStrRule(fe_value)) {
				error_text = 'Your ID are not in correct format.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select;
					frm[fe_name].focus();
				}
				return false;
			} else if(checkvalue_Exists(frm[fe_name])) {
				error_text = "This ID is already  registered, if you are already a member, please <strong><a href='/member.php?view=member_signin' class='red'>sign  in</a></strong> here.<br>Forgot your password? <strong><a href='/member.php?view=forgot_password' class='red'>Click here</a></strong> to retrieve it.<br>Or to  register with another  ID.";
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select;
					frm[fe_name].focus();
				}
				return false;
			}
			break;
		// Password
		case "bm_password":
			if (!checkNull(fe_value)) {
				error_text = 'Notice! The field of Password is still blank.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			} else if (!checkLength(fe_value, 6, 10)) {
				error_text = 'Password should be 6 ~ 10 characters.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select;
					frm[fe_name].focus();
				}
				return false;
			} else if (!checkStrRule(fe_value)) {
				error_text = 'Your Password are not in correct format.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].select;
					frm[fe_name].focus();
				}
				return false;
			}else if(fe_value == frm.bm_account.value) {
				error_text = 'ID and Password must be different.';
				showMsg(error_text,fe_name,error_type);
				frm[fe_name].value = '';
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			}				
			break;
		case "_password_":
			if (!checkNull(fe_value)) {
				error_text = 'Notice! The field of Confirm Password is still blank.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			} else if (!checkLength(fe_value, 6, 10)) {
				error_text = 'The Confirm Password characters must be 6 ~ 10.';
				showMsg(error_text,fe_name,error_type);
				frm[fe_name].value = '';
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			} else if(!checkPassword_3(frm.bm_password.value, frm._password_.value)){
				error_text = 'Your password and confirm password are not the same';
				showMsg(error_text,fe_name,error_type);
				frm[fe_name].value = '';
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			}
			break;	
		
		// first name
		// last name
		// company name
		case "bm_first_name":
		case "bm_last_name":
		case "bm_company_name":
		case "authinput":
			//var fe_value = frm.bm_first_name.value
			if (!checkNull(fe_value)) {
				if (fe_name == "bm_first_name") {
					var field = 'First Name';
				} else if (fe_name == "bm_last_name") {
					var field = 'Last Name';
				} else if (fe_name == "bm_company_name") {
					var field = 'Company Name';
				} else if (fe_name == "authinput") {
					var field = 'Confirm Text';
				}
				error_text = 'Notice! The field of '+field+' is still blank.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			// Confirm Text
            }else if(fe_name == "authinput" && !checkvalue_Exists(frm['authinput'])){
                error_text = 'Notice! The field of '+field+' is Wrong!!';
                showMsg(error_text,fe_name,error_type);
                //reload img
                //chageImg('chage_img');
                if(isFocus == 1){
                    frm[fe_name].value= "";
                    frm[fe_name].focus();
                }
                return false;
            }
			break;
			
		// Country
		case "bm_country__id":
			if (!checkSelect(frm.bm_country__id)) {
				error_text = 'Notice! The field of Country must be selected.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			}
			break;
			
		// Product Keywords
		case "bm_interested_keyword":
			if (!checkNull(fe_value)) {
				error_text = 'Notice! The field of Product Keywords is still blank.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			} else if (fe_value == 'Please enter the product keywords that you would like to buy or sell to receive Products or News Alert mails related to these keywords.') {
				error_text = 'Please Enter Product Keywords!!';
				showMsg(error_text,fe_name,error_type);
				frm[fe_name].value = "";
				document.getElementById('keyword_len').innerHTML = frm[fe_name].value.length;
				return false;
			} else if (!checkLength(fe_value,3,1000)) {
				error_text = 'The Product Keywords characters must be 3 ~ 1000.';
				showMsg(error_text,fe_name,error_type);
				if(isFocus == 1){
					frm[fe_name].focus();
				}
				return false;
			}else if(!checkKeywords(frm[fe_name],error_type)){
				return false;
			}
			break;	
	}
	return true;
} 

/* === 函數: 檢查Member Update Profile資料  -- 全部欄位驗證  ===
 * 
 * @param (object)  $frm 		: 表單物件
 * @return (boolean)
 * Description: 須用到 tool.js (showMsg,display) 的函數
 */
function CheckProfileFrm(frm) {
	var error_text = '';	// 訊息文字
	var error_type = 3; 	// 訊息型態(1-alert(), 2-span, 3-div)
	
	// step 01. 隱藏錯誤訊息!!
	if(error_type != 1) {
		for (var i=0; i< frm.elements.length; i++) {
			var fe_name = frm.elements[i].name;
			var fe_value = frm.elements[i].value.trim();
			
			// exception
			if(fe_name == "bm_company_type__id[]") { 
				var error_id = 'error_bm_company_div';
			}else{
				var error_id = 'error_' + fe_name;
			}
			
			if(document.getElementById(error_id)) {
				if(document.getElementById(error_id).parentNode){
					document.getElementById(error_id).parentNode.removeChild(document.getElementById(error_id));
				}else{
					document.getElementById(error_id).innerHTML = "";
					display(error_id,'none');
				}
			}
		}
	}
	
	// step 02. 
	for (var i=0; i< frm.elements.length; i++) {
		var fe_name = frm.elements[i].name;
		var fe_value = frm.elements[i].value.trim();
		var error_id = 'error_' + fe_name;
		
		switch(fe_name) {
			// member type
			case "bm_member_type__id":
				if (!nullCheckRadio(frm,'bm_member_type__id')) {
					error_text = 'Notice! The field of Member Type (buyer or seller) must be selected.';
					showMsg(error_text,fe_name,error_type);
					frm.bm_member_type__id[0].focus();
					return false;
				}
				break;
			
			// Company Name
			case "bm_company_name":
				if (!checkNull(frm.bm_company_name.value)) {
					error_text = 'Notice! The field of Company Name is still blank.';
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].focus();
					return false;
				}
				break;
			
			// country
			case "bm_country__id":
				if (!checkSelect(frm.bm_country__id)) {
					error_text = 'Notice! The field of Country is be selected.';
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].focus();
					return false;
				}
				break;
			
			// City
			// Street Address
			// Company Profile
			// First Name
			// Last Name
			case "bm_city":
			case "bm_address":
			case "bm_profile":
			case "bm_first_name":
			case "bm_last_name":
				if (!checkNull(fe_value)) {
					if (fe_name == "bm_city") {
						var field = 'City';
					} else if (fe_name == "bm_address") {
						var field = 'Street Address';
					} else if (fe_name == "bm_profile") {
						var field = 'Company Profile';
					} else if (fe_name = 'bm_first_name') {
						var field = 'First Name';
					} else if (fe_name = 'bm_last_name') {
						var field = 'Last Name';
					}
					error_text = 'Notice! The field of '+field+' is still blank.';
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].focus();
					return false;
				}
				break;
					
			// TEL	
			case "_tel1_":
			case "_tel2_":
			case "_tel3_":
				if (!checkNull(fe_value)) {
					error_text = 'Notice! The field of Business Tel No. is still blank.';
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].focus();
					return false;
				} else if (!checkNum(fe_value, 'Tel No')) {
					frm.elements[i].value = "";
					frm.elements[i].focus();
					return false;
				}
				break;
			
			// FAX
			case "_fax1_":
			case "_fax2_":
			case "_fax3_":
				if (!checkNum(fe_value, 'FAX No')) {
					frm.elements[i].value = "";
					frm.elements[i].focus();
					return false;
				}
				break;	
			
			// Company Type
			case "bm_company_type__id[]":
				if (!nullCheckBox(frm, 'bm_company_type__id[]', 'Company Type')) {
		            error_text = 'Notice! The field of Company Type is still blank.';
					showMsg(error_text,'bm_company_div',error_type);
					document.getElementById('_comtype').focus();
		            return false;
				}
				break;
				
			// category
			case "s_basket":
			case "b_basket":
				if(frm.bm_member_type__id[0].checked) {
					if(fe_name == "b_basket" && !checkBasket(frm.b_basket,frm.bm_buyer_category__id,error_type)) {
						frm.elements[i].focus();
						return false;
					}
				}else if(frm.bm_member_type__id[1].checked) {
					if(fe_name == "s_basket" && !checkBasket(frm.s_basket,frm.bm_seller_category__id,error_type)) {
						frm.elements[i].focus();
						return false;
					}
				}else if(frm.bm_member_type__id[2].checked){
					if(fe_name == "b_basket" && !checkBasket(frm.b_basket,frm.bm_buyer_category__id,error_type)) {
						
						frm.elements[i].focus();
						return false;
					}else if( fe_name == "s_basket" && !checkBasket(frm.s_basket,frm.bm_seller_category__id,error_type)) {
						return false;
					}
				}
				break;
			
			// Product Keywords
			case "bm_interested_keyword":
				if (!checkNull(fe_value)) {
					error_text = 'Notice! The field of Product Keywords is still blank.' ;
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].focus();
					return false;
				}else if (!checkLength(fe_value,0,1000)) {
					error_text = 'Notice! Interested keyword execeeded 1000 characters.' ;
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].focus();
					return false;
				}else if(!checkKeywords(frm[fe_name],error_type)){
					return false;
				}
				break;
			
			// E-mail
			case "bm_email":
				if (!checkNull(fe_value)) {
					error_text = 'Notice! The field of E-mail was still blank.';
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].focus();
					return false;
		        } else if (!checkEmail(fe_value)) {    
		            error_text = 'Your email address entries did not match the correct format.' ;
					showMsg(error_text,fe_name,error_type);
					frm.elements[i].value = "";
		            frm.elements[i].focus();
		            return false;
		        }
				break;
		}
	}	
}

// valid category -- choose category isexist
function checkBasket(basketName,outName,error_type){
	var str = '';
	for (var i=0; i<basketName.options.length; i++) {
		if(i==0 || basketName.options.length ==1){
			str+= basketName.options[i].value;
		}else{
			str+= ','+basketName.options[i].value;
		}
		str = str.replace(/^,+|,+$/, '');
	}
	outName.value = str;
	if (outName.value == '') {
		var error_text = "Notice! Please choose a category";
		showMsg(error_text,basketName.name,error_type);
		return false;
	}else{
		return true;	
	}
}

// valid keyword
function checkKeywords(elementsKeywords,type) {
	var error_type = (typeof(type) != 'undefined') ? type : 3; 	// 訊息型態(1-alert(), 2-span, 3-div)
	var error_text = '' ; 						 	// 訊息文字
	var e_name = elementsKeywords.name;
	var str = elementsKeywords.value;
	//str = str.toLowerCase();					  	// 全部轉變成小寫.
	//str = str.replace(/[^a-zA-Z0-9,_\- ]+/i, ''); // A-Z,a-z,0-9, ',', '-', '_'
	
	str = str.replace(/^ | $/, '');			 		// 清除 前後空白
	str = str.replace(/[;:!\|\{\}\(\)]/ig, ''); 	// 清除 | ; ! : () <>
	str = str.replace(/\band\b/i, ''); 				// 清除 "and" 字串
	str = str.replace(/\bor\b/i, ''); 				// 清除 "or" 字串
	str = str.replace(/,{2,}/,  ',');				// 清除 2個以上","
	str = str.replace(/^,+|,+$/, '');			 	// 清除 前後","
	
	var strArray = str.split(",");
    var strArray_count = strArray.length;
	if (strArray.length > 10) {
		// 只能填入10組關鍵字
		error_text = 'You may not enter more than 10 sets of keywords.';
		showMsg(error_text,e_name,error_type);		
		return false;
	} else {
		for (var i=0; i<strArray_count; i++) {
			strArray[i] = strArray[i].replace(/\s{2,}/, ' '); 	// 清除2個以上空白
			//strArray[i] = strArray[i].replace(/^ /, '');		// 清除前空白
            strArray[i] = strArray[i].replace(/^ {0,}/, ' ');	// 換成1個空白
			strArray[i] = strArray[i].replace(/ $/, '');		// 清除後空白
			// 每組關鍵字不可以都是數字
			if(!strArray[i].match(/[a-zA-Z]+/i)) {
				error_text = '"'+strArray[i]+'" keywords should consist of English letters.';
				showMsg(error_text,e_name,1);
				strArray[i]	= "";			
				//return false;
			// 每組關鍵字不能超過40字元
			}else if (strArray[i].length > 40) {
				error_text = '"'+strArray[i]+'" keywords exceeds 40 characters.';
				showMsg(error_text,e_name,3);	
				return false;
			//每組關鍵最多由5個單字所組成
			}else{
				var substrArray = strArray[i].split(" ");
				if(substrArray.length>6) {
					error_text = '"'+strArray[i]+'" exceeds 5 words.';
					showMsg(error_text,e_name,3);	
					return false;
				}
			}
			//strArray[i] = strArray[i].replace(/ {2,}/, ' '); 	// 清除2個以上空白
			//strArray[i] = strArray[i].replace(/^ +| +$/, '');	// 清除前後空白
		}
	}
	str = strArray.toString();
    str = str.replace(/^ | $/, '');			 		// 清除 前後空白
	str = str.replace(/,{2,}/,  ',');				// 清除 2個以上","
	str = str.replace(/^,{0,}|,{0,}$/, '');			 	// 清除 前後","
	//if(str!="") str = str + ',';
	if(document.getElementById('keyword_len')) {
		document.getElementById('keyword_len').innerHTML = str.length;
	}
	elementsKeywords.value = str;
	//alert(str);
	return true;
}
