// JavaScript Document
//<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
//wj008 通用 表单处理函数库
var FromChk;
var oEditor;
//----获得表单数据为AJAX提交数据而使用----------------------------
function GetFromDate(Obj,IsSendNull)
{
  var Fobj=typeof(Obj)=="string"?$(Obj):Obj;
  var IsSn=IsSendNull==null?false:IsSendNull;
  var Str="";
  var len=Fobj.elements.length;
  if(len>0)
  {
  for (var i=0;i<len;i++)
  {  
  var e = Fobj.elements[i];
  if(e.disabled==false)
  {
  var fitem=e.name+"="+encodeURIComponent(e.value);
  if(!('reset'==e.type || 'button'==e.type || 'radio'==e.type || 'checkbox'==e.type ||'select-one'==e.type))
  {
  if(e.value!=""||IsSn)
  Str+=(fitem+"&");
  }
  if('radio'==e.type||'checkbox'==e.type)//单选筐处理
  {
  if(e.checked)
  Str+=(fitem+"&");
  }
  if('select-one'==e.type)//下拉筐处理
  {
  var v=encodeURIComponent(e.options[e.selectedIndex].value);
  if(v=="")
  v=encodeURIComponent(e.options[e.selectedIndex].text);
  fitem=e.name+"="+v;
  Str+=(fitem+"&");
  }
  }
  }
  var dr=Str.substring(Str.length-1,Str.length);
  if(dr=="&")
  Str=Str.substring(0,Str.length-1);
  }
  return Str;
}
//JS验证类型----------

//两位小数----
function validate(sDouble)
{ 
  if(isNum(sDouble))return true;
  var re =/^\d+[.]?\d{1,2}$/;
  return  re.test(sDouble); 
}
function isNum(num)
{
var re = /^\d+$/;
return re.test(num);
}
function isTime(Str)
{
	 var reg =/^(\d{4})-(\d{1,2})-(\d{1,2})$/; 
	 return reg.test(Str);
}
function IsUrl(Str)
{ 
  var reg=new RegExp("((^http)|(^https)|(^ftp)):\/\/(\\w)+\.(\\w)+");
   return reg.test(Str);
}

function isUserName(s,M,N)   
{   
var Max=N==0?20:N;
var Min=M==0?5:M;
if(s.length>Max||s.length<Min) return false;
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[_])*$/;   
return patrn.test(s); 
} 
function isLen(s,M,N)   
{   
var Max=N==0?20:N;
var Min=M==0?3:M;
if(s.length>Max||s.length<Min) return false;
return true;
} 

//Mst类型-------------
// +T|Yz(textfield)[div1|div2|div3]{M:请输入姓名！$M:必须和姓名一致！}
function GetAlt(Mst)
{
	var Mstr=Mst;
	var A=new Object();
	var Type='';
	var Band='';
	var Div='';
	var Msg='';
	var Other='';
	Rs=GetMidStr(Mstr,'(',')');
	Band=Rs.T;
	Mstr=Rs.Str;
	Rs=GetMidStr(Mstr,'[',']');
	Div=Rs.T;
	Mstr=Rs.Str;
	Rs=GetMidStr(Mstr,'{','}');
	Msg=Rs.T;
	Mstr=Rs.Str;
	Rs=GetMidStr(Mstr,'#','#');
	Other=Rs.T;
	Mstr=Rs.Str;
	if(Mstr!=""&&Type=="")Type=Mstr;
	//alert("Type["+Type+"]Band["+Band+"]Div["+Div+"]Msg["+Msg+"]Other["+Other+"]Mstr["+Mstr+"]");
	
	
	var F=false;
	var Idx=Type.indexOf("+")+1;
	if(Idx>0)
	{
				F=true;
				Type=Type.substring(1);
	}


	
	var MsObjArr=new Array();
	if(Msg!="")
	{
		var MsgArr=Msg.split("$");
		for(var k=0;k<MsgArr.length;k++)
		{
		  
		  var Ms=MsgArr[k]==""?null:MsgArr[k].split("|");
		  var MsArr=new Array();
		  if(Ms)
		  {
			  for(var i=0;i<Ms.length;i++)
			  {
				  MsArr[i]=new Object();
				  var MsA=Ms[i].split(":");
				  if(MsA.length==1)
				  {
					  MsArr[i].Type=0;
					  MsArr[i].Text=MsA[0];
				  }
				  else
				  {
					  MsArr[i].Type=MsA[0]=='M'?1:0;
					  MsArr[i].Text=MsA[1];
				  }
				  
			  }
		  }
		  MsObjArr[k]=MsArr.length==0?null:MsArr;
		}
	}
	A.Focus=F;
	A.Type=Type==""?null:Type.split("|");
	A.Band=Band==""?null:Band.split("|");
	A.Div=Div==""?null:Div.split("|");
	A.Msg=MsObjArr.length==0?null:MsObjArr;
	A.Other=Other;
	return A;
}
function GetMidStr(Str,Idx,Edx)
{
	var Fstr="";
	var R=new Object();
	R.T="";
	R.Str=Str;
	if(Str=="")return R;
	var idx=Str.indexOf(Idx)+1;
	if(idx!=0)
	{
	  if(idx>1)Fstr=Str.substring(0,idx-1);
	  Str=Str.substring(idx);
	  idx=Str.indexOf(Edx)+1;
	  if(idx!=0){R.T=Str.substring(0,idx-1);R.Str=Str.substring(idx);}
	  else{R.T=Str;R.Str="";}
	}
	else{R.T="";R.Str=Str;}
	R.Str=Fstr+R.Str;
    return R;
}
function YzFrom(Obj)
{
	var Fobj=typeof(Obj)=="string"?$(Obj):Obj;
	if(Obj)
	{
	  var len=Fobj.elements.length;
	  if(len>0)
	  {
		 
		  for (var i=0;i<len;i++)
		  {  
			  var e = Fobj.elements[i];
			  var Ast=e.getAttribute("chk");
			  if(Ast!=null&&Ast!="")
			  {
			  var Alt=GetAlt(Ast);
			  var IsCan=!e.disabled;
			  var type=e.type;
			  if(Alt.Type!=null)
				  {
					  for(var j=0;j<Alt.Type.length;j++)
					  {
						 var Da=new Object();
						 Da.Type=Alt.Type[j];
						 Da.Tn=j;
						 Da.Focus=Alt.Focus;
						 Da.Band=new Array();
						 if(Alt.Band)
						 {
							for(var l=0;l<Alt.Band.length;l++)
							{
							var Bobj=$(Alt.Band[l]);
							if(Bobj){Da.Band[Da.Band.length]=Bobj;}
							}
						 }
						 Da.SItems=new Array();
						 if(Alt.Div)
						 {
							for(var l=0;l<Alt.Div.length;l++)
							{
							var Bobj=$(Alt.Div[l]);
							if(Bobj){Da.SItems[Da.SItems.length]=Bobj;}
							}
						 }
						 Da.Alt=Alt;
						 Da.Obj=e;
						 Da.GetOTStr=Alt.Other;
						 Da.GetOT=function(key)
						 {
							 return GetOther(key,this.GetOTStr);
						 }
						 
						 if(!SysFromChk(Da))
						 {
						  ShowMsg(Da);
						  if(Da.Focus)
						  {
							 if(type!="hidden"){e.focus();}
							 if(Da.Type=="FckT")if(oEditor)oEditor.Focus();
						  }
						  return false;
						 }				  
				  }
			  }
			  }
		  }
	  }
return true;
}
return false;
}
function  GetMsg(Msg)
{
	if(Msg.Type==0)
	return Msg.Text;
	else
	{
		return "System:"+Msg.Text;
	}
}
function GetOther(key,str)
{
	if(str=="")return "";
	var Arr=str.split(" ");
	for(var i=0;i<Arr.length;i++)
	{
		var K=Arr[i].split("=");
		{
			if(K[0]==key)
			return K[1];
		}
	}
	return "";
}
function  GetSysMsg(type)
{
	if(type=="T")return "不能为空，请输入内容！";
	if(type=="Yz")return "必须和上面输入一致！";
	if(type=="P")return "密码格式不正确！";
	if(type=="U")return "用户名格式不正确！";
	if(type=="D")return "时间格式不正确！";
	if(type=="N")return "只能是数字格式！";
	if(type=="F")return "只能是带两位小数点的数值！";
	if(type=="Len")return "长度不正确！";
	if(type=="Email")return "Email格式不正确！";
	return "输入错误！";

}
function ShowMsg(Da)
{
	var Alt=Da.Alt;
	var N=Da.Tn;
	var MsgArr=Alt.Msg;
	if(MsgArr)
	{
	  var Msg=MsgArr[0];
	  if(MsgArr.length==Alt.Type.length&&N<Alt.Type.length)
	  {
		  Msg=MsgArr[N];
	  }
	  if(Msg)
	  {
		if(!Alt.Div)
		alert(GetMsg(Msg[0]));//没有显示器
		else
		{
			if(Alt.Div.length==Msg.length)
			{
			for(var k=0;k<Alt.Div.length;k++)_H(Alt.Div[k],GetMsg(Msg[k]));
			}
			else
			{
			for(var k=0;k<Alt.Div.length;k++)_H(Alt.Div[k],GetMsg(Msg[0]));
			}
		}
	  }
	}
	else
	{
		var MsgText=GetSysMsg(Alt.Type[N]);
		if(!Alt.Div)
		alert(MsgText);//没有显示器
		else
		{
			
			for(var k=0;k<Alt.Div.length;k++)_H(Alt.Div[k],MsgText);
			
		}
		
	}
  
}
function SysFromChk(Da)
{
	var value=Da.Obj.value;
	var type=Da.Obj.type;
	if('select-one'==type){value=Da.Obj.options[Da.Obj.selectedIndex].value;}
	if(Da.Type=="FCK")
	{
		if(FCKeditorAPI){Da.Obj.value =FCKeditorAPI.GetInstance(Da.Obj.id).GetXHTML();}
	}
	if(Da.Type=="T"&&value==""){return false;}
	var Min=Number(Da.GetOT("Min"));
	var Max=Number(Da.GetOT("Max"));
	//用户名格式======
	if(Da.Type=="U"&&value!=""&&!isUserName(value,Min,Max)){return false;}
	//用户名格式======
	if(Da.Type=="Len"&&value!=""&&!isLen(value,Min,Max)){return false;}
	if(Da.Type=="N"&&value!=""&&!isNum(value)){return false;}
	if(Da.Type=="D"&&value!=""&&!isTime(value)){return false;}
	if(Da.Type=="S"&&(value==""||value=="0")){return false;}
	if(Da.Type=="F"&&value!=""&&!validate(value)){return false;}
	if(Da.Type=="P"&&value!=""&&!isLen(value,6,30)){return false;}
	if(Da.Type=="Url"&&value!=""&&!IsUrl(value)){return false;}
	if(Da.Type=="Yz"){for(var l=0;l<Da.Band.length;l++){if(value!=Da.Band[l].value){return false;}}}
	if(Da.Type=="FckT"){
	  str = value.replace(/<\/?[^>]+>/g,''); //去除HTML tag
	  str = str.replace(/&nbsp;/g,''); //去除HTML tag
	  str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
	  str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
	  if(str==""||str=="请输入内容！")
	  {
		if(FCKeditorAPI&&Da.Focus)
		{
		  oEditor = FCKeditorAPI.GetInstance(Da.Obj.id);
		 
		}
		return false;
	  }
	 
	}
	if(Da.Type=="Email"&&value!="")
	{
		  var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
          return myreg.test(value);
	}
	if(FromChk)
	{
		var Rt=FromChk(Da,value);
		if(Rt!=null)return Rt;
	}
  return true;
}
function OnF(v,div,cls)
{
	var obj=$(div);
	if(obj)
	{
	obj.innerHTML=v;
	if(cls)
	obj.className=cls;
	}
}
