



   var f = null;
   
   function FH(){  /* Void */     } 
   
   /* 设置表单名 */
   function FH.SetForm( vFormName )
   {
      f  = document.forms[vFormName];
      if ( !f ) {
	     alert("当前文件中无法找到 [ " + vFormName + " ] 表单！");
	     return false;
	  } 
	  //else {
      //   f  = document.forms[vFormName];
	  //}
   }

   /* 表单元素是否存在 */
   function FH.ElementIsExist( vElementName ) 
   {
      if ( !f ) {
	     return false;
	   
	   } else if( !f.elements[vElementName] ) {
		 alert("表单元素 [ " + vElementName + " ] 不存在！");
	     return false;

	   } else {
	     return true;
	   }
   }


   /* 检测单个表单元素值是否合理 */
   function FH.ValueIsValid(vElementName,  vRule, vErrorMsg, vRegPattern)
   {
       var check_reg_pattern = null; 

       if ( vErrorMsg == "" ) {
	      vErrorMsg = "您的输入信息有误！请检查...";
	   }

       switch ( vRule ) {
	     case "_not_empty":
		    //check_reg_pattern = /[　 ]+/g;  空值判断，单独进行 @1
	        break;

		 case "_only_chinese":
		    check_reg_pattern = /[^\u4E00-\u9FA5]/g;
		    break;

		 case "_only_english":
		    check_reg_pattern = /[^A-Za-z]+/g;
		    break;

		 case "_only_number":
		    check_reg_pattern = /[^0-9\.]+/g;
		    break;

		 case "_reg_exp":
            //check_reg_pattern = vRegPattern;  自定义正则匹配，单独进行 @2
			break;
		 
		 default:
		    alert("请设置验证匹配类型: [ _not_empty, _only_chinese, _only_english, _only_number, _reg_exp ] ");
		    return false;
       }
	   
	   if ( FH.ElementIsExist( vElementName ) ) {

           var element_value = '';

		   if( f.elements[vElementName].tagName == "select") {  // 表单元素是否为Select类型 
		      var i = f.elements[vElementName].selectedIndex;
		      element_value = f.elements[vElementName].options[i].value;

		   } else {
		      element_value = f.elements[vElementName].value;
		   }

		   if( vRule == '_not_empty' ) {    // 非空值
				 if ( element_value.replace(/[　 ]+/g, '') == '' ) {
					 alert( vErrorMsg );
					 return false;
				 }
		   
		   } else if( vRule == '_reg_exp' ) {   // 自定义正则匹配
				 if ( !vRegPattern.test( element_value ) ) {
					 alert( vErrorMsg );
					 return false;
				 }

		   
		   } else if( check_reg_pattern.test( element_value ) ) {  // 数字，中文，字母区配
			  alert( vErrorMsg );
			  return false;
		   }
	   }

	   return true;
   }



   /* CheckBox 全选 */
   function FH.CbSelectAll( vElementName )
   {
      if ( FH.ElementIsExist( vElementName ) ) {
	     if ( !f.elements[vElementName].length ) {
		    alert('CheckBox选择列表长度为空！');
		 } else {
		    for (var i=0; i<f.elements[vElementName].length; i++) 
			   if( f.elements[vElementName][i].value != '' ){
			      f.elements[vElementName][i].checked = true;
			   }
		 }
	  }
   }

   /* CheckBox 清除全选 */
   function FH.CbClearAll( vElementName )
   {
      if ( FH.ElementIsExist( vElementName ) ) {
	     if ( !f.elements[vElementName].length ) {
		    alert('CheckBox选择列表长度为空！');
		 } else {
		    for (var i=0; i<f.elements[vElementName].length; i++)
			   f.elements[vElementName][i].checked = false;
		 }
	  }
   }


   /* CheckBox 是否有选择项 */
   function FH.CbHasChecked( vElementName )
   {
      if ( FH.ElementIsExist( vElementName ) ) {
	     if ( !f.elements[vElementName].length ) {
		    alert('CheckBox选择列表长度为空！');
		 } else {
		    for (var i=0; i<f.elements[vElementName].length; i++) {
			   if ( f.elements[vElementName][i].checked )  break;
			}
			if ( i < f.elements[vElementName].length ) 
			  return true;   // 有选择
			else 
			  return false;  // 无选择
		 }
	  }
   }


   /* 获取指定CheckBox值串，以特定字符分融 */
   function FH.GetCbValue( vElementName, vSplitChar)
   {
		if ( vSplitChar == '' )
		  vSplitChat = '|';

		var cb_value = '';
		for (var i=0; i<f.elements[vElementName].length; i++) {
		   if ( f.elements[vElementName][i].checked ) 
			  cb_value += f.elements[vElementName][i].value + vSplitChar;
		}

		return cb_value;
   }


   /* 将所有换行符转换成 <P>标记 */
   function FH.ValueNL2P( s )
   {
	  var pl = /[\f\r\t\v'　']+/g;
	  s = s.replace(pl, "");
	  
	  var pl = /[\n]+[\s]*/g;
	  s = s.replace(pl, "</p>\n<p>　　");	  
	  
	  s = "\n<p>　　" + s + "</p>\n";

	  //s = s.replace("<p>　　</p>", "");	
	  
	  s = s.replace(/<p>[　 ]+<\/p>/g, "");	// 消除空段落　Modi: 2003-10-18
	  
	  return s;
   }


   /* 清除Select列表 */
   function FH.ClearSelect( vElementName )
   {
	  if ( FH.ElementIsExist( vElementName ) ) {
          	  while(length!=0){  
				   var obj = f.elements[vElementName];
				   var length = obj.options.length;
				   
				   for(var i=0;i<length;i++)
						 obj.options.remove(i);
				   
				   length=length/2;
			  }
	  }
   }



   /* 创建Select列表 */
   function FH.CreateSelect( vElementName, vValue )
   {
	  if ( FH.ElementIsExist( vElementName ) ) {
          for (var i=0; i < vValue.length; i++ ) {
		     var option_i = vValue[i].split('|');
			 f.elements[vElementName].options[i] = new Option(option_i[0], option_i[1]);
		  }
	  }
   }



