﻿//根据按下控件的对象获取要执行的按钮事件
//auguments = window.dialogArguments子页获取参数
function openwin(width, height, url,openbf,args)
{
   var result;
   var browser=navigator.appName; //游览器名称（类型
   if(url.indexOf("?")!=-1)
   {
      url+="&time="+new Date();
   }
   else
   {
      url+="?time="+new Date();
   }
   if(browser=="Microsoft Internet Explorer")
   {
     result=window.showModalDialog(url,args,"dialogHeight:"+height+"px; dialogWidth:"+width+"px; status:no; help:no; scroll:auto");
   }
   else
   {
     result=window.open (url,args, "height="+height+", width="+width+", toolbar= no, menubar=no, scrollbars=auto, resizable=no, location=no, status=no,top=100,left=300");

   }
   if(result!=undefined)
   {
      openbf(result);
   }
}

document.onkeydown = function () {
	try {
		var e = event.srcElement;
		if (event.keyCode == 13) {
		  if($(e.className)!=null&&$(e.className!=undefined))
		  {
			 $(e.className).click();
		  }
			return false;
		}
	}
	catch (err) {
	}
};

/*-----------------------------------------file文件操作------------------------------------------------*/
//获取文件扩展名
function getExeName(fileFullAddress)
{
  fileAddressArray=fileFullAddress.split(".");
  return fileAddressArray[fileAddressArray.length-1].toLocaleLowerCase();
}
//获取文件名
function getFileName(fileFullAddress)
{
fileAddressArray=fileFullAddress.split("\\");
if(fileAddressArray.length<=1)
{
   fileAddressArray=fileFullAddress.split("/");
}
return fileAddressArray[fileAddressArray.length-1];
}
//验证文件类型
function checkFileType(fileFullAddress,righty_type,errorCtrl)
{
   var fileExeName= getExeName(fileFullAddress).toLocaleLowerCase();
   for(i=0;i<righty_type.length;i++)
   {
      if(righty_type[i].toLocaleLowerCase()==fileExeName)
      {
         $(errorCtrl).innerHTML="";
         $(errorCtrl).style.display="none";
         return true;
      }
   }
   $(errorCtrl).style.display="block";
   $(errorCtrl).innerHTML="只支持:"+righty_type+"格式"
   alert("文件格式不正确，只支持以下格式:\n"+righty_type);
   
   return false;
}
//验证图片文件
function imgFileCheck(fileFullAddress,right_type,imageId,errorCtrl)
{
    
        if(checkFileType(fileFullAddress,right_type,errorCtrl))
        {
             var imageCtrl=$(imageId);
             
               $(errorCtrl).style.display="none";
               imageCtrl.innerHTML="";
               imageCtrl.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src =fileFullAddress
             
        }
    
}


/*-------------------------------------gridview---------------------------------------------*/
//GridView控件的多选
function   selectAll(obj)   
{   
  var   theTable     =   obj.parentElement.parentElement.parentElement;   
  var   i;   
  var   j   =   obj.parentElement.cellIndex;   
    
  for(i=0;i<theTable.rows.length;i++)   
  {   
      var   objCheckBox   =   theTable.rows[i].cells[j].firstChild;   
      objCheckBox.checked   =   obj.checked;   
  }   
} 
//单个CheckBox事件(GridView)            
function oncheck(obj,allObj)
{
    if(obj.checked==false)
    {
       document.getElementById(allObj).checked=false;
    }
    else
    {
        var isAllCheck=true;
        var theTable=obj.parentElement.parentElement.parentElement;
        
        var j= obj.parentElement.cellIndex;  
        for(i=1;i<theTable.rows.length;i++)   
          {   
              var   objCheckBox=theTable.rows[i].cells[j].firstChild;
              if(objCheckBox.checked==false)
                  isAllCheck=false;
          } 
        if(isAllCheck==true)
        {
          document.getElementById(allObj).checked=true;
        } 
    }
}
//只能选一项 checkbox
function onlyCheckedOne(gridViewid,message)
{
  	var strMessage="只能选择一条记录进行操作";
  	if(message!=undefined&&message!=null)
  	{
  	  strMessage=message;
  	}
  	var varGridView=null;
    
    if(gridViewid)
    {
      varGridView=$(gridViewid);
    }
    else
    {
      varGridView=$("gvMain");
    }
	var rowsCount=varGridView.rows.length;
	var checkCount=0;
	//判断复选框是否被选中
    for(i=1;i<rowsCount;i++)
    {
                  var   objCheckBox=varGridView.rows[i].cells[0].firstChild;  
                  if(objCheckBox.checked==true)
                  {
                   checkCount+=1;
                  }
    }
   
    if(checkCount==0)
    {
      alert("请选择操作记录");
      return false;
    }
    else if(checkCount!=1)
    {
       alert(strMessage);
       return false;
    }
    else
    {
       return true;
    }
}

//操作gridview[至少选一项进行操作]
function operateGridView(gridViewid,message)
{
    //定义提示信息如果参数为undefined则默认为..   
    var strMessage="数据删除后将无法恢复，您确认要删除吗?";
    //如果提示信息参数不为空则进行参数提示
    if(message)
    {
      strMessage=message;
    }
    
    //默认gridViewId为gvMain
    var varGridView=null;
    
    if(gridViewid)
    {
      varGridView=$(gridViewid);
    }
    else
    {
      varGridView=$("gvMain");
    }
    //gridView行的长度
    var gridViewRowCount=varGridView.rows.length;
    //定义复选框是否被选中对象
    var hasChecked=false;
    //判断复选框是否被选中
    for(i=0;i<gridViewRowCount;i++)
    {
                  var   objCheckBox=varGridView.rows[i].cells[0].firstChild;  
                  if(objCheckBox.checked==true)
                  {
                   hasChecked=true;
                   break;
                  }
    }
    //如果没有选择的记录则提示并返回false
    if(hasChecked==false)
    {
                 alert("请选择操作记录");
                 return false;
    }
    else
    {
            if(message=="")
            {
                return true;
            }
            else
            {
               if(window.confirm(strMessage))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    }
}




/*------------------------------------表单验证------------------------------------------------*/


var v = {
/*验证模式，默认为标签提示。"T" 为弹出框提示*/
mode:null,
/*获取验证信息*/
getValidateResult:function(errorArray)
{
   var wrongInfo="";
   for(i=0;i<errorArray.length;i++)
   {
      if($(errorArray[i]).innerHTML.trim()!="")
      {
         wrongInfo+=$(errorArray[i]).innerText+"\n";
      }
   }
   if(wrongInfo.trim()!="")
   {
      alert(wrongInfo);
      return false;
   }
   else
   {
      return true;
   }
},
clear:function(errorArray,txtArray)
{
  for(i=0;i<errorArray.length;i++)
   {
      if($(errorArray[i]).innerHTML.trim()!="")
      {
         $(errorArray[i]).innerHTML="";
         $(errorArray[i]).style.display="none";
      }
   }
   for(i=0;i<txtArray.length;i++)
   {
         $(txtArray[i]).style.backgroundColor="#ffffff";

   }
},
//所有出错信息
summary:function(vobj,error1,error2,error3,error4)
{
   var errorArray=new Array(error1,error2,error3,error4);
   for(i=0;i<errorArray.length;i++)
   {
      if(errorArray[i]&&document.getElementById(errorArray[i]).innerHTML.trim()!="")
      {
        vobj.style.backgroundColor="red";
        return true;
      }
   }
   return false;
},
//vobj验证对象
//wrongInfo提示信息
//vExpress验证表达式。如果为TRUE则验证通过，如果为FALSE则提示错误信息
//wrongCtrlid错误信息提示控件
//minLengh最小长度
//maxLength最大长度
//otherIsWrong相同控件的其他验证是否出错
_baseValidate:function (vobj,wrongInfo,vExpress,wrongCtrlid,minLengh,maxLength,otherIsWrong)
{
   //要验证控件值的长度
   var objvalueLength;
   
   if(vobj.tagName.toUpperCase()=="SELECT"&&vobj.multiple==true)
   {
      objvalueLength=vobj.options.length;
   }
   else
   {
      objvalueLength=vobj.value.getByteLength()
   }
   //最长限制默认为true
   var vmax=true;
   if(maxLength!=undefined)
   {
       if(objvalueLength<=maxLength)
       {
        vmax=true;
       }
       else
       {
        vmax=false;
       }
   }
   //最小长度限制默认为true
   var vmin=true;
   if(minLengh!=undefined)
   {
       if(objvalueLength>=minLengh)
       {
        vmin=true;
       }
       else
       {
        vmin=false;
       }
   }
   //最终验证
   if (vExpress&& vmax &&vmin) 
	{
	    if(!otherIsWrong)
	    {
	        	        vobj.style.backgroundColor="Transparent";
        }
	        
	        if(this.mode==null)
	        {
	           document.getElementById(wrongCtrlid).innerHTML="";
	        }
            document.getElementById(wrongCtrlid).style.display="none";
       
		return true;
	   } else {
	    if(this.mode==null)
	    {
	        document.getElementById(wrongCtrlid).innerHTML=wrongInfo;
	    }
	    else
	    {
	        alert(wrongInfo);
	    }
	    vobj.style.backgroundColor="red";
	    document.getElementById(wrongCtrlid).style.display="inline-block";
		return false;
	}
   
},
pass:function(srcObject,wrongCtrlId)
{
   srcObject.style.backgroundColor="Transparent";
   wrongCtrlId.style.display="inline-block";
   wrongCtrlId.innerHTML="";
   
},
noPass:function(srcObject,wrongCtrlId,wrongInfo)
{
   srcObject.style.backgroundColor="red";
   wrongCtrlId.style.display="inline-block";
   wrongCtrlId.innerHTML=wrongInfo;   
},

nameRole:function (vobj,wrongInfo,wrongCtrlId,minLengh, maxLength) {
/*
功能说明:命名规则以字母开头中间可以数据和字母和_
参数：
错误提示控件ID
错误提示信息
最小长度默认为5
最大长度默认为15
例子:
*/
    var objvalue=vobj.value;
	var vExpress=objvalue.search(/^[a-zA-Z][a-zA-Z0-9_]/) != -1;
	return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId,minLengh,maxLength);
}, isEmail:function (vobj,wrongCtrlId,wrongInfo,minLength, maxLength) {
	/*
功能说明:是否为邮箱
参数：
错误控件ID
错误信息
最小长度默认为10
最大长度默认为50
例子:
**/
    var objvalue=vobj.value;
    if(objvalue.trim()=="")
    {
	return this._baseValidate(vobj,wrongInfo,true,wrongCtrlId,0,0);
    }
    else
    {
	var vExpress=objvalue.search(/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/)!=-1;
	return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId,minLength,maxLength);
	}
},
 isTel:function(vobj,wrongCtrlId,wrongInfo)
 {
    vobjvalue=vobj.value;
    if(vobjvalue.trim()=="")
    {
	  return this._baseValidate(vobj,wrongInfo,true,wrongCtrlId);
    }
    else
    {
      var vExpress=vobjvalue.search(/^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/)!=-1;
	  return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId);
    }
 },
 isMobile:function(vobj,wrongCtrlId,wrongInfo)
 {
    vobjvalue=vobj.value;
    if(vobjvalue.trim()=="")
    {
	  return this._baseValidate(vobj,wrongInfo,true,wrongCtrlId);
    }
    else
    {
      var vExpress=vobjvalue.search(/^((\(\d{3}\))|(\d{3}\-))?13[0-9]\d{8}|15[12589]\d{8}|189\d{8}/)!=-1;
	  return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId);
    }
 },
 isIdCard:function (vobj,wrongCtrlId,wrongInfo) {
	/*
功能说明:是否为身份证号码
参数：
错误提示控件
错误信息
例子:
**/
    
    var objvalue=vobj.value;
    if(objvalue.trim()=="") 
    {
    return this._baseValidate(vobj,wrongInfo,true,wrongCtrlId,0,0);
    }
    else
    {
    var vExpress=objvalue.search(/\d{17}[\d|X]/)!=-1;
    return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId,18,18);
    }
}, isDigitalStr:function (vobj,wrongCtrlId,wrongInfo,minLength, maxLength) {
	/*
功能说明:是否为数据/正整数
参数：
错误提示控件ID
错误提示信息
例子:
**/
     var objvalue=vobj.value;
     if(objvalue.trim()=="")
     {
	return this._baseValidate(vobj,wrongInfo,true,wrongCtrlId);
     }
     else
     {
	 var vExpress=objvalue.search(/^[0-9]+[0-9]*]*$/)!=-1;
   
	return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId,minLength,maxLength);
	}
}, 
	/*
功能说明:是否为数据/小数
参数：
例子:
**/
isFloatStr:function (vobj,wrongCtrlId,wrongInfo,minLength, maxLength) {
	
	var objvalue=vobj.value;
	var vExpress=objvalue.search(/^[0-9]+.?[0-9]$/)!=-1;   
	return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId,minLength,maxLength);
}, isNull:function (vobj,wrongCtrlId,wrongInfo,confirmValue) {
	/*
功能说明:是否为空
参数：
例子:
**/
        //要验证控件值的长度
       var objvalueLength;
       
       if(vobj.tagName.toUpperCase()=="SELECT"&&vobj.multiple==true)
       {
          objvalueLength=vobj.options.length;
       }
       else
       {
          
          objvalueLength=vobj.value.getByteLength()
       }
	var vExpress;
	if(confirmValue)
	{
	 vExpress=vobj.value!=confirmValue;  
	}
	else
	{
	vExpress=objvalueLength != 0;
	}
	return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId);
}, 
	/*
功能说明:是否为中文
参数：
例子:
**/

isWord:function (vobj,wrongCtrlId,wrongInfo,minLength, maxLength) {
    var objvalue=vobj.value;
	var vExpress=objvalue.search(/[^\x00-\x80]/)!=-1
	return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId,minlength,maxlength);
}, 
	/*
功能说明:字符
参数：
例子:
**/

checkLength:function (vobj,wrongCtrlId,wrongInfo,minlength, maxlength) {
    return this._baseValidate(vobj,wrongInfo,true,wrongCtrlId,minlength,maxlength);

}, 
	/*
功能说明:是否相等
参数：
例子:
**/
isEquel:function (vobj,wrongCtrlId,wrongInfo,toCompareValue) {
   
   var vExpress=vobj.value==toCompareValue;	
   return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId);
},
/*
功能说明:比较函数
参数：
vobj:当前对象
wrongCtrlId:错误提示对象
wrongInfo：错误信息
tocomplarevalue:要比较的值
opration:操作符>\<\>=\<=\

例子:
**/
complare:function(vobj,wrongCtrlId,wrongInfo,toComplareValue,operation)
{
   var vExpress;
   var vobjvalue=vobj.value;
   switch(operation)
   { 
     case "==":
        vExpress=vobjvalue==toCompareValue;
        break;
     case ">=":
        vExpress=vobjvalue>=toComplareValue;
        break;
     case "<=":
        vExpress=vobjvalue<=toComplareValue;
        break;
     case ">":
        vExpress=vobjvalue>toComplareValue;
        break;
     case "<":
        vExpress=vobjvalue<toComplareValue;
        break;
     case "!=":
        vExpress=vobjvalue!=toComplareValue;
        break;

   }
   
   return this._baseValidate(vobj,wrongInfo,vExpress,wrongCtrlId);
},
isDigital:function(vobj,wrongCtrlId,wtrongInfo,minValue,maxValue) 
{
    var result=false;
    var objvalue=vobj.value;
    var vExpress=objvalue.search(/^[0-9]+[0-9]*]*$/)!=-1;
    //如果为数字
    if(vExpress)
    {
        var objValue=parseInt(vobj.value);
        if(objValue>=minValue&&objValue<=maxValue)
        {
           result=true;
        }
        else
        {
           result=false;
        }
    
    }
    //如果验证没通过
    if(!result)
    {
       $(wrongCtrlId).innerHTML=wtrongInfo;
       vobj.style.backgroundColor="red";
	   $(wrongCtrlId).style.display="inline-block";
	}
	else
	{
	   $(wrongCtrlId).innerHTML="";
       vobj.style.backgroundColor="#ffffff";
	   $(wrongCtrlId).style.display="none";
	}
    return result;
},
/*
功能说明：是否是为空串
参数：串

*/
isNullStr:function(str)
{
   if(str.trim().length==0)
   {
      return true;
   }
   else
   {
     return false;
   }
}, 
ajaxValidate:function(vobj,postUrl,wrongCtrlId,wrongInfo,otherIsWrong,updateId,parentId,callBack)
    {      
         if(vobj.value.trim()!="")
          {
              
              var postString="ay=true&validatefield="+vobj.id.substring(3)+"&validatevalue="+vobj.value.trim();
              if(updateId&&$(updateId).value!="")
              {
                 postString+="&updateId="+ $(updateId).value;
              }
              if(parentId)
              {
                postString+="&parentId="+$(parentId).value;
              }
              ajax.req("POST",postUrl,function(xmlHttpRequest)
               {
                    //如果没验证通过会显示错误信息
                    v._baseValidate(vobj,wrongInfo,xmlHttpRequest.responseText=="True",wrongCtrlId,null,null,otherIsWrong);
                    if(callBack)
                    {
                        callBack(xmlHttpRequest);
                    }
               },true,postString);
         }   
    }
}
/*------------------------------------------------------------------------------------------*/
