//=====================.net客户段验证3.0===========================//
//   原作者:高处不胜寒   修改 周东生 2005-03-09 e-mail:500600949@sohu.com//


function alysxc(t, w, h)
{
	var d="xc"+Math.ceil(Math.random()*1000000);document.write("<div id="+d+"></div>");
	document.getElementById(d).innerHTML = "<OBJECT codeBase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0' WIDTH='"+w+"' HEIGHT='"+h+"' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'><PARAM NAME='Movie' VALUE='"+t+"'><param name='wmode' value='transparent'><EMBED src='"+t+"' quality='high' WIDTH='"+w+"' HEIGHT='"+h+"' TYPE='application/x-shockwave-flash'></EMBED></OBJECT>";
}

//取消右键//

function document.oncontextmenu() {event.returnValue=false;} 

//按控件名称获取控件对象   参数(控件名称,document对象)//

function fob(n, d)
{
   //p 名称中？的位置 ？后面的数字标示为第几帧
   //x返回的控件对象//
   
    
   var p;
   var i;
   var x;
      
   if(!d) 
   {
    d=document;
   }
   p=n.indexOf("?"); 
   if(p>0&&d.parent.frames.length) 
   {
    d=parent.frames[n.substring(p+1)].document;
    n=n.substring(0,p);
   }
   x=d[n]; 
   if(!(x)&&d.all) 
    x=d.all[n];
   for (i=0;!x&&i<d.forms.length;i++) 
    x=d.forms[i][n];
   for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
    x=fob(n,d.layers[i].document); 
   return x;
} 	   

//客户端控件验证函数，参数说明：'控件名','提示','类型'
//类型字符定义：r_ 不能为空的判断 
//              china 需输入中文 chinese 只能输入中文  char 26个字母  char>长度大于等于  nchar 数字或字符 nchar>长度大于等于    
//              float 浮点型  num 不能为空,必须是数字判断 <max 必须小于等于  >min 必须大于等于 <>min-max必须输入a-b之间的数字
//              date 日期 addr 住址判断，必须有汉字(数字+)
//              email 判断email linker 联系电话  tel 判断固话 mobile 判断手机
//              content 多行文本转china判断 
//              PID 身份证  file上传文件 filephoto图片文件 //


function vdf() 
{
   var i,j;
   var max=0,min=0;
   var flag=true;
   //控件对象，名称，类型，控件值//

   var name,cb_name,type,value;   
   var message;
   var a=arguments;
   
   //按照3个一组的参数进行循环判断//
   
   for (i=0; i<(a.length-2); i+=3) 
   {
       if (a[i].indexOf('#')!=-1)
       {
           name=fob(a[i].substr(0,a[i].indexOf('#')));
           cb_name=fob(a[i].substr((a[i].indexOf('#')+1),a[i].length));
       }
       else
       {
           name=fob(a[i]);
       }
       
       //不是对象时忽略//
       
       if (!name)
       {
         continue;
       }

       message=a[i+1]; 
       type=a[i+2];
             
       // 备注型不能去 控件值 去空格等//
       
       if (type.indexOf("content")==-1)
       {
           value=name.value.replace(/[ ]+/g, "");
       }
       else if (type.indexOf("r_")==-1)
       {
		   type="china";
       } 
       else
       {
           type="r_china";
       }
       value=name.value.replace(/[']+/g, "");
       if (value!=name.value)
       {
           name.value=value;
       }
       
       //按照控件类型进行验证//
          // ===============不能为空的判断 //允许空并且空进入下一循环//================ //
	       
          if (type.indexOf("r_")!=-1) 
          {
             if (value=="")
             {
                 alert(message+"!\n");
                 name.focus();
                 name.select();
                 return false;
             }
			 else if (type=="r_")
             {
			     continue;
			 }	 
          }
          else if (value=="")
          {
			  continue;
          }
          
         // ===============必须输入中文================ //
         if (type.indexOf("china")!=-1)
         {
            if (value.search(/[\u4e00-\u9fa5]+/)!=-1) 
            {
			  continue;
            }
            else
            {
              alert(message+"!\n");
              name.focus();
              name.select();
              return false;
            }
		    continue;
         }
         
         // ===============只能输入中文================ //
         if (type.indexOf("chinese")!=-1)
         {
            if (value==""&&type.indexOf("r_")==-1) 
            {
               continue;
            }
            if (value.search(/^[\u4e00-\u9fa5]+$/)==-1) 
            {
               alert(message+"!\n");
               name.focus();
               name.select();
               return false;
             }
		     continue;
         }

         // ===============数字或者字符判断================ //
         if (type.indexOf("nchar")!=-1)
         {
            if (value.search(/^[0-9a-zA-Z_\-\/\.\?\=]+$/)==-1) 
            {
               alert(message+"!\n");
               name.focus();
               name.select();
               return false;
            }
			if (type.indexOf("r_nchar>")!=-1)
			{
                min=new Number(type.substring((type.indexOf('>')+1)));
			    if (value.length<min)
				{
                   alert(message+"!\n");
                   name.focus();
                   name.select();
                   return false;
				}
			}            
            continue;
         }
                   
         // ===============字母判断================ //
         if (type.indexOf("char")!=-1)
         {
            if (value.search(/^[a-zA-Z]+$/)==-1) 
            {
               alert(message+"!\n");
               name.focus();
               name.select();
               return false;
            }
			if (type.indexOf("r_char>")!=-1)
			{
                min=new Number(type.substring((type.indexOf('>')+1)));
			    if (value.length<min)
				{
                   alert(message+"!\n");
                   name.focus();
                   name.select();
                   return false;
				}
			}            
            continue;
         }
         
         // ===============数字判断================ //
         if (type.indexOf("num")!=-1)
         {
            if (value.search(/^[0-9.\-]+$/)==-1) 		
						{
                alert(message+"!\n");
                name.focus();
                name.select();
                return false;
            }          
            //===============有大小判断================ //
			flag=true;
			if (type!="r_num" && type!="num")
			{
			    if (type.indexOf("<")==-1)
				{
                    min=type.substring((type.indexOf('>')+1),type.length);
					
					flag=(new Number(value) >= new Number(min));
                 }
                else
                {
				 if (type.indexOf(">")==-1) 
				 {
                     max=type.substring((type.indexOf('<')+1),type.length);
					 
					 flag=(new Number(value) <= new Number(max));
				 }
				 else
				 {
                   min=type.substring((type.indexOf('>')+1),type.indexOf('-'));
				   
				   max=type.substring(type.indexOf('-')+1,type.length);
				   
				   flag=(new Number(value) >= new Number(min)&& new Number(value)<=new Number(max));
				  } 
                }
			    if (flag==false)
				{
                   alert(message+"!\n");
                   name.focus();
                   name.select();
                   return false;
				}
			}
             continue;
		 }      
		  // ===============必须是float类型================ //
         if (type.indexOf("float")!=-1)
         {
             if (!(value.search(/^[0-9]+$/)!=-1 || value.search(/^([0-9]+)|([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/)!=-1))
             {
                alert(message+"!\n"); 
                name.focus();
                name.select();
                return false;
             }
             continue;
         }	  
         // ===============必须带有数字汉字的住址================ //
         if (type.indexOf("addr")!=-1)
         {
            if (value.search(/[\u4e00-\u9fa5]+/)!=-1) 
            {
			   flag=true;
            }
            else
            {
			  flag=false;
            }
            if (flag && value.search(/[0-9]*/)!=-1)
		    {
			  continue;
			}
			else
			{
              alert(message+"!\n");
              name.focus();
              name.select();
              return false;
            }			
         }
         
	     // ===============判断联系电话================ //
	     if (type.indexOf("linker")!=-1)
	     {
            if (value.length<7 || value.search(/^[0-9\-\/]+$/)==-1)
	        {
		       alert(message+"!\n");
     	       name.focus();
		       name.select();
		       return false;
	        }
            continue;
	     }

         // ===============判断固定电话，可以为空================ //
	     if (type.indexOf("tel")!=-1)
	     {
	        if (value.search(/^[0-9]{7}$/)==-1&&value.search(/^[0-9]{8}$/)==-1&&value.search(/^(\([0-9]{3}\)|[0-9]{4}-)[0-9]{7}$/)==-1&&value.search(/^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{8}$/)==-1)
	        {
	           alert(message+"!\n");
     	       name.focus();
		       name.select();
		       return false;
	        }
            continue;
	     }
	  
	     // ===============判断手机================ //
	     if (type.indexOf("mobile")!=-1)
	     {
            if (value.search(/^[0-9]{11}$/)==-1&&value.search(/^[0-9]{7}$/)==-1)
	        {
		       alert(message+"!\n");
     	       name.focus();
		       name.select();
		       return false;
	        }
            continue;
	     }
	   
	    // ===============判断email================ //	
	    if (type.indexOf("email")!=-1)
	    {
	        if (value.search(/^[_\.a-z0-9A-Z]+@[a-z0-9A-Z]+[\.][a-z0-9A-Z]{2,}$/i)==-1)
		    {
		       alert(message+"!\n");
     	       name.focus();
		       name.select();
		       return false;
	        }
	        else
	        {
				continue;
	        }
	    }
	     // ===============身份证判断================ //
      if (type.indexOf("PID")!=-1)
      {
        flag=(value.length==15||value.length==18)
        if (flag)
        {
					flag=(value.search(/^[1-9]{1}\d{14}/)!=-1);
					if (!flag)
					{
						flag=(value.search(/^[1-9]{1}\d{16}[0-9xX]{1}$/)!=-1);
					}
				}
        if (flag) 
        {
          if (value.length==15)
          {
						year="19"+value.substr(6,2);
						month=value.substr(8,2);
						day=value.substr(10,2);
          }
          else
          {
						year=value.substr(6,4);
						month=value.substr(10,2);
						day=value.substr(12,2);
          }
			    newDate=new Date(year,month-1,day);
	        if (newDate.toString()=="NaN")
	        {
				    flag=false;
					}
					else
					{
				    flag=(new Number(month)==newDate.getMonth()+1);				
					}
				}	        
        if (flag==false)
        {
          alert(message+"!\n");
          name.focus();
          name.select();
          return false;
        }
        continue;
      }       	     

	     // ===============文本框日期判断================ //
      if (type.indexOf("date")!=-1)
      {
				flag=true; 
        if (value.search(/^[0-9]{4}-(0[1-9]|[1-9]|1[0-2])-((0[1-9]|[1-9])|1[0-9]|2[0-9]|3[0-1])$/)==-1)
        {
           flag=false;
        }
        else
        {
          var p1=value.indexOf('-');
          var p2=value.lastIndexOf('-');
          var year=value.substr(0,p1);
			    var month=value.substr(p1+1,p2-p1-1); 
					var day=value.substr(p2+1);
	        var newDate=new Date(year,month-1,day);
	        flag=(newDate.toString()!="NaN")
				}
			  if (flag==false)
        {
           alert(message+"!\n");
           name.focus();
           name.select();
           return false;
        }
        continue;
      }       	     
	    // ===============判断给定的两个对象值相等================ //	
	    if (type.indexOf("==")!=-1)
	    {
            if (value=="") 
            {
               alert(message+"!\n");
     	       name.focus();
		       name.select();
		       return false;
            }
            var newname=fob(type.substring(2,type.length));
	        if (newname&&value!=newname.value)
		    {
		       alert(message+"!\n");
		       name.value="";
		       newname.value="";
     	       name.focus();
		       return false;
	        }
        continue;
	    }
	    // ===============判断上传文件================ //	
	    if (type.indexOf("filephoto")!=-1)
	    {
	        if (value.search(":")==-1)
		    {
		       alert(message+"!\n");
     	       name.focus();
		       name.select();
		       return false;
	        }
	        else if (value.toLowerCase().search(/[.gif|.jpg|.bmp]$/)==-1)
			{
			   alert(message+"!\n");
     		   name.focus();
			   name.select();
			   return false;
		    }
		    else
		    {
				continue;
		    }
	    }

   }
	return true;  
}

//数值限制输入//

function IsDigit()
{
    return (event.keyCode == 46 || (event.keyCode >= 48 && event.keyCode <= 57));
}

//表格排序 //
 
function sortTable(tableNode, nCol, bDesc) 
{
 var tBody = tableNode.tBodies[0];
 var trs = tBody.rows;
 var a = new Array();
 for (var i=0; i<trs.length; i++) {
  a[i] = trs[i];
 }
 
 a.sort(compareByColumn(nCol,bDesc));
 
 for (var i=0; i<a.length; i++) {
  tBody.appendChild(a[i]);
 }
}

function CaseInsensitiveString(s) 
{
 return String(s).toUpperCase();
}

function parseDate(s) 
{
 s=s.replace(/[-\.]/g, '/');
 s=s.replace(/[^0-9\/]/g, "")
 return Date.parse(s);
}
function compareByColumn(nCol, bDescending) 
{
 var c = nCol;
 var d = bDescending;
 var fTypeCast = String;
 
 return function (n1, n2) {
  var m1=getInnerText(n1.cells[c]);
  var m2=getInnerText(n2.cells[c]);
  if (m1.search(/^[0-9\.]+$/)!=-1 && m1.search(/^[0-9\.]+$/)!=-1)
  {
	fTypeCast=Number;
  }
  else if (m1.search(/[a-z]+/)!=-1 || m2.search(/[a-z]+/)!=-1)
  {
	fTypeCast=CaseInsensitiveString;
  }
  
  if ( fTypeCast(m1) < fTypeCast(m2) )
   return d ? -1 : +1;
  if ( fTypeCast(m1) > fTypeCast(m2) )
   return d ? +1 : -1;
  return 0;
 };
}

function sortColumn(e) 
{
 var tmp, el, tHeadParent;
 tmp = e.srcElement;
  
 tHeadParent = getParent(tmp, "THEAD");
 el = getParent(tmp, "TH");
 if (tHeadParent == null)
  return;
  
 if (el != null) {
  var p = el.parentNode;
  var i;
  if (el._descending)
  {
	el._descending = false;
	if (!confirm('倒排序，将对本页按['+getInnerText(tmp).toString()+']列从大到小降序排列。确定排序吗？'))
	{
		return false;
	}
  }
  else
  {
    el._descending = true;
	if (!confirm('正排序，将对本页按['+getInnerText(tmp).toString()+']列从小到大升序排列。确定排序吗？'))
	{
		return false;
	}
  } 
  for (i=0; i<p.cells.length; i++) 
  {
   if (p.cells[i] == el) break;
  }
  var table = getParent(el, "TABLE");
  
  sortTable(table,i,el._descending);
 }
}

function getInnerText(el) 
{
  return el.innerText; 
}

function getParent(el, pTagName)
{
 if (el == null) return null;
 else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())
  return el;
 else
  return getParent(el.parentNode, pTagName);
}
// ===============判断复选框是否选中================ //
//ckName为复选框名称//

function vdCheckBoxs(ckName)
{      
  var e=document.forms(0).elements;
  var flag=false;
  for (i=0;i<e.length;i++)
  { 
    if (e[i].name==ckName)
    {
       if (e[i].checked==true)
       {
           flag=true;
           break;
       }
    }
  }
  if (flag==false)
  {
      alert(message+"!\n"); 
      return false;
  }
}


//checkBox 设置全选/全不选
//参数0 为全选框名称 1复选框名称//

function SetCheckBox(ckb)
{
   var e=document.forms[0].elements;
   for (i=0;i<e.length;i++)
   {
    if (e[i].type=="checkbox")
     {
	   if (ckb.checked)
	    {
			e[i].checked=true;
		}
	   else
	   {
			e[i].checked=false;
	   }	
	 }	
   }
}

//按钮选择ID//

function SelectID(rdb)
{
 var txt=fob("txtID");
 if (txt)
 {
	if (rdb.checked)
	{
		txt.value=rdb.value;
	}
	else
	{
		txt.value="";
	}
 }
}

//多项按钮选择ID//

function AddSelectID(ckb)
{
 var txt=fob("txtPID");
 if (txt)
 {
	if (ckb.checked)
	{
		if (txt.value=="")
		{
			txt.value=ckb.value;
		}
		else
		{
			txt.value+=","+ckb.value;
		}
	}
	else if (txt.value==ckb.value)
	{
		txt.value="";
	}
	else if (txt.value.substring(0,txt.value.indexOf(","))==ckb.value)
	{
		txt.value.substring(txt.value.indexOf(",")+1)
	}
	else
	{
		txt.value=txt.value.replace(","+ckb.value,"");
	}
 }
}


//是否确认继续的提示
//参数 m提示信息 s确认后冲定向页//

function AskDo(m,s)
{
   if (confirm(m+"确认吗？"))
   {
     window.location=s;
   }
   return false;
}

//如果没有在制定帧中显示标题图片//

function TopCenter(img)
{
	var t=document.parentWindow;
	if (t && t.name=="frameWork" && t.parent && t.parent.name=="")
	{
		document.write("<br>");
	}
	else
	{
		if (img=="")
		{
			img="../Images/top.gif";
		}
		document.write("<div align='center'><img src='"+img+"'></div><br>");
	}			
}

//按分辨率加回行指定回行数（偶数）居中//

function moveCenter(p)
{
	TopCenter("");
	if (!p)
	{
	  p=6;
	}
	if (screen.availWidth>=1024)
	{
	   for(var i=0;i<p-1;i++)
	    document.write("<br>")
	}
	else
	{
	   for(var i=0;i<p/2-1;i++)
	    document.write("<br>")
	}
}

//取消按钮函数//

function CancelClick(theForm)
{
	theForm.reset.click();
	return false;
}

// 清空控件数据//


function ClearCtrls()
{
 var e=document.forms[0].elements;
 
 for (var i=0;i<e.length-1;i++)
 {
	switch (e[i].type)
	 {
	  case "text":
	    if (e[i].id!="txtID")
	     e[i].value="";
	    break;
	  case "textarea":
	    e[i].value="";
	    break;
	  case "select":
	    if (e[i].length>0)
	     e[i].selectedIndex=0;
	    break; 
	  case "checkbox":
	    e[i].checked=false;
	    break;	
	  case "radio":
	    e[i].checked=false;
	    break;	
	  case "file":
	    e[i].value=0;
	    break;  	
	 }
	}
 return false;
 }

//加入参数，重新调取自己//

 
 function List(theForm,CID)
 {
	var str;	
	var p=theForm.action.indexOf("?");
	if (p!=-1)
	{
		str=theForm.action.substring(0,p+1);		
	}
	else
	{
		str=theForm.action+"?";
	}
	document.location.href=str+'CID='+CID+'&Check='+theForm.lsdCheck.selectedIndex;
	return false;
}
 function Show1(url,s)
{
	if(s && !v(s))
	{
		return false;
	}
	var r=showModalDialog(url, "", "dialogWidth:600px;dialogHeight:350px;help:no;status:no");
 	if (r)
	{
		return true;
	}
	else
	{
		return false;
	}
}
//checkBox 设置全选/全不选
//参数0 为全选框名称 1复选框名称//

function SetCheckBox(ckb)
{
   var e=document.forms[0].elements;
   for (i=0;i<e.length;i++)
   {
    if (e[i].type=="checkbox")
     {
	   if (ckb.checked)
	    {
			e[i].checked=true;
		}
	   else
	   {
			e[i].checked=false;
	   }	
	 }	
   }
}

function AddSelHandlers(theForm)
 {
    var str=showModalDialog("../hcsys/Sel.aspx?s="+theForm.txtMID.value, window, "dialogWidth:650px;dialogHeight:600px;help: no; scroll: auto; status: no");
    if (str)
    {
		var p=str.indexOf(" ");
		if (p>0)
		{
			theForm.txtMID.value=str.substr(0,p);
			theForm.txtSel1.value=str.substr(p+1);
			if (theForm.txtMID.value.indexOf(",")==-1)
			{
				theForm.txtPrecent.value=100;
			}
			else
			{
				var m=theForm.txtMID.value.length-theForm.txtMID.value.replace(/,/g,"").length+1;
				theForm.txtPrecent.value=Math.floor(100/m)+100 % m;
				for (i=1;i<m;i++)
				{
					theForm.txtPrecent.value += ","+Math.floor(100/m)	
				}
			}
		}
    }
 }

