
//js正则表达式常量-------------------------------------------------------------------------------------

//字符范围限制
var REGEXP_IS_VALID_STRFWXZ6_40 =".{6,40}" //6-40字符范围限制

//数据检验常量
var REGEXP_IS_VALID_NULL ="^[\\S]+$";//非空值校验常量
var REGEXP_IS_VALID_EMAIL ="^\\w+((-\\w+)|(\\.\\w+))*\\@\\w+((\\.|-)\\w+)*\\.\\w+$" ;//电子邮件校验常量
var REGEXP_IS_VALID_URL ="^http://([\\w-]+\\.)+[\\w-]+(//[\\w- .//?%&=]*)?"; //网址校验常量
var REGEXP_IS_VALID_ZIP ="\\d{6}"; //邮编校验常量
var REGEXP_IS_VALID_SSN ="\\d{18}|\\d{15}"; //身份证校验常量 
var REGEXP_IS_VALID_INT ="^\\d{1,}$"; //整数校验常量
var REGEXP_IS_VALID_DEMICAL ="^-?(0|\\d+)(\\.\\d+)?$"; //数值校验常量
//IP校验常量
var REGEXP_IS_VALID_IP ="^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$"; 
//日期校验常量
var REGEXP_IS_VALID_DATE = "";
var REGEXP_IS_VALID_SHORTDATE = "^(?:(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\\//|-|\\.)(?:0?2\\1(?:29))$)|(?:(?:1[6-9]|[2-9]\\d)?\\d{2})(\\//|-|\\.)(?:(?:(?:0?[13578]|1[02])\\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\\2(?:0?[1-9]|1\\d|2[0-8]))$";
var REGEXP_IS_VALID_FFZS ="^\\d+$";　　//非负整数（正整数 + 0） 
var REGEXP_IS_VALID_ZZS ="^[0-9]*[1-9][0-9]*$";　　//正整数 
var REGEXP_IS_VALID_FZZS ="^((-\\d+)|(0+))$";　　//非正整数（负整数 + 0） 
var REGEXP_IS_VALID_FZS ="^-[0-9]*[1-9][0-9]*$";　　//负整数 
var REGEXP_IS_VALID_ZS ="^-?\\d+$";　　　　//整数 
var REGEXP_IS_VALID_FFFDS ="^\\d+(\\.\\d+)?$";　　//非负浮点数（正浮点数 + 0） 
var REGEXP_IS_VALID_ZFDS ="^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$";　　//正浮点数 
var REGEXP_IS_VALID_FZFDS ="^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$";　　//非正浮点数（负浮点数 + 0） 
var REGEXP_IS_VALID_FFDS ="^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$";　　//负浮点数 
var REGEXP_IS_VALID_FDS ="^(-?\\d+)(\\.\\d+)?$";　　//浮点数 
var REGEXP_IS_VALID_26YWZM ="^[A-Za-z]+$";　　//由26个英文字母组成的字符串 
var REGEXP_IS_VALID_26YWZMD ="^[A-Z]+$";　　//由26个英文字母的大写组成的字符串 
var REGEXP_IS_VALID_26YWZMX ="^[a-z]+$";　　//由26个英文字母的小写组成的字符串 
var REGEXP_IS_VALID_SZ26YWZM ="^[A-Za-z0-9]+$";　　//由数字和26个英文字母组成的字符串 
var REGEXP_IS_VALID_SZ26YWZMXHX ="^\\w+$";　　//由数字、26个英文字母或者下划线组成的字符串 
var REGEXP_IS_VALID_REURL ="^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$";　　//url 
var REGEXP_IS_VALID_COLOR ="^#[0-9a-fA-F]{6}$" //颜色值十六进格式制检查
//颜色值十进制格式检查
var REGEXP_IS_VALID_COLORSZ ="^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\,(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\,(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$"; 
var REGEXP_IS_VALID_zwyw ="^[\\u4e00-\\u9fa5A-Za-z0-9]+$";　　//由数字、26个英文大小写字母或者中文组成的字符串


//js正则表达式常量-------------------------------------------------------------------------------------

//只允许正整数数字键输入
function IsInInt(){return ((event.keyCode >= 48) && (event.keyCode <= 57));}

//只允许正浮点数字键输入
function IsInDouble(){return (((event.keyCode >= 48) && (event.keyCode <= 57)) || (event.keyCode == 46));}

//只允许整数数字键输入
function IsMInInt(){return (((event.keyCode >= 48) && (event.keyCode <= 57)) || (event.keyCode == 45));}

//只允许浮点数字键输入
function IsMInDouble(){return (((event.keyCode >= 48) && (event.keyCode <= 57)) || (event.keyCode == 46) || (event.keyCode == 45));}

//正则表达式检查
//需要检查的字符串对象
//js正则表达式常量或js正则表达式
function IsInRegExp(ssvalue,jsname){
    if(jsname=="REGEXP_IS_VALID_NULL"){
        if(ssvalue.Trim()==""){
            return false;
        }else{
            return true; 
        }
    }
    if(jsname=="REGEXP_IS_VALID_DATE"){
        //alert(ssvalue);
        if(IsDate(ssvalue)==true){
            return true;
        }else{return false;}
    }
    var objRegExp = eval(jsname);
    var patrn=new RegExp(objRegExp,"ig");
    return patrn.test(ssvalue)
}

//验证给定的日期是否合法,参数格式要求：yyyy-mm-dd[ hh:mi:ss] 可以根据情况更改正则表达式
function IsDate(oDateTime){
    //对日期格式进行验证 要求为1000-9099年  格式为 yyyy-mm-dd[ hh:mi:ss]  并且可以正常转换成正确的日期
    var pat_hd=/^(\d{1,5}-(([1-9]{1})|(0[1-9]{1})|(1[0-2]{1}))-(([1-9]{1})|(0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))){1}(\s\d{1,2}:\d{1,2}:\d{1,2})?$/;
    try{
        if(!pat_hd.test(oDateTime)) throw "日期非法！";
        var arr_dt=oDateTime.split(" ");
        if(arr_dt[0]=='') throw "日期非法！";
        var oDate=arr_dt[0];
        var arr_hd=oDate.split("-");
        var dateTmp;
        dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
        if(dateTmp.getFullYear()!=parseFloat(arr_hd[0]) || dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1 || dateTmp.getDate()!=parseFloat(arr_hd[2])) throw "日期非法！";
        if(arr_dt[1] && arr_dt[1]!=''){
            var oTime=arr_dt[1];
            var arr_ht=oTime.split(":");
            dateTmp.setHours(arr_ht[0],arr_ht[1],arr_ht[2]);
            if(dateTmp.getHours()!=parseFloat(arr_ht[0]) || dateTmp.getMinutes()!=parseFloat(arr_ht[1]) || dateTmp.getSeconds()!=parseFloat(arr_ht[2])) throw "日期非法！";
        }
    }catch(ex){
        if(ex.description){return false;}
        else{return false;}
    }
    return true;
} 

//颜色选择器
function getMyColor(text,textcolor){
    var old_color = ( text.value.indexOf('#') == 0 ) ? '?'+text.value.substr(1) : '?' + text.value;
    var color = showModalDialog("/js/SelectColor.htm"+old_color+"", "", "dialogWidth:510px; dialogHeight:438px; status:0");
    if (color != null) {
        text.value = color;
        textcolor.style.color = color;
    }else{
        text.focus();
    }
    return true;
}

//全选本页所有复选框
function qxymfxk01(form){
    for (var i=0;i<form.elements.length;i++){
        var e = form.elements[i];
        if (e.Name != 'chkAll'&&e.disabled==false){
            e.checked = form.chkAll.checked;
        }
    }
}

//全选本页对象内部分复选框
// DataGrid 第一个查找字符串
// objstr 第二个查找字符串
function qxymfxk02(form,DataGrid,objstr){
    for (var i=0;i<form.elements.length;i++){
        var e = form.elements[i];
        if (e.name != 'chkAll'&&e.disabled==false&&e.name.substr(0,DataGrid.length)==DataGrid&&e.name.substr(e.name.length-objstr.length,objstr.length)==objstr){
            e.checked = form.chkAll.checked;
        } 
    }
}

//全选指定参数复选框
// formname form名称
// starname 名字开始标示
// checkedstr 获取设置状态值
function AJAXqxcheckeds(formname,starname,checkedstr){
    for(var i=0;i<formname.elements.length;i++){
        var forme = formname.elements[i];
        if(forme.name.substr(0,starname.length)==starname){
            forme.checked = checkedstr;
        } 
    }
}

//获取formname内对象value集合
// formname form名称
// starname 名字开始标示
// dfgf 一级分割符
// xfgf 二级分割符
// names 获取名称集合 格式： 0|name1||1|name2
function ajaxformvalues(formname,starname,dfgf,xfgf,names){
    var me=this;
    me.namevalues="";
    me.errstr="";
    var namesarray=names.split("||");
    for(var i=0;i<formname.elements.length;i++){
        var forme = formname.elements[i];
        if(forme.name.substr(0,starname.length)==starname){
            if(forme.checked==true){
                if(me.namevalues!=""){me.namevalues+=dfgf;}
                me.namevalues+=forme.name+xfgf+forme.value;
                for(var ii=0;ii<namesarray.length;ii++){
                    var nameset=namesarray[ii].split("|");
                    var formobj =formname.item(nameset[1]+forme.value);
                    if(me.namevalues!=""){me.namevalues+=dfgf;}
                    if(nameset[0]==0){
                        if(nameset.length==4){
                            if(!IsInRegExp(formobj.value.Trim(),nameset[2])){
                                me.errstr="[ID："+forme.value+"]"+nameset[3];
                                return;
                            }
                        }
                        me.namevalues+=formobj.name+xfgf+escape(formobj.value);
                    }else{
                        if(formobj.checked==true){
                            me.namevalues+=formobj.name+xfgf+"1";
                        }else{
                            me.namevalues+=formobj.name+xfgf+"0";
                        }
                    }
                }  
            }
        } 
    }
}

//获取formname集合
// formname form名称
// starname 名字开始标示
// dfgf 一级分割符
// xfgf 二级分割符
function AJAXhqformnamevaluecks(formname,starname,dfgf,xfgf){
    var me=this;
    me.namevalues="";
    me.xhvalues="";
    for(var i=0;i<formname.elements.length;i++){
        var forme = formname.elements[i];
        if(forme.name.substr(0,starname.length)==starname){
            if(forme.checked==true){
                if(me.namevalues!=""){me.namevalues+=dfgf;}
                me.namevalues+=forme.name+xfgf+escape(forme.value);
                if(me.xhvalues!=""){me.xhvalues+=dfgf;}
                me.xhvalues+=forme.name.substring(starname.length,forme.name.length);
            }
        } 
    }
}

//获取formname集合
// formname form名称
// starname 名字开始标示
// dfgf 一级分割符
// xfgf 二级分割符
// ckstring 检查字符串数组
function AJAXhqformnamevalues(formname,starname,dfgf,xfgf,ckstring){
    var me=this;
    me.namevalues="";
    for(var i=0;i<formname.elements.length;i++){
        var forme = formname.elements[i];
        if(forme.name.substr(0,starname.length)==starname){
            if (ckstring !=""){
                ckstring=dfgf + ckstring + dfgf
                if (ckstring.indexOf(dfgf + forme.name.substring(starname.length,forme.name.length) + dfgf)>=0){
                    if(me.namevalues!=""){me.namevalues+=dfgf;}
                    me.namevalues+=forme.name+xfgf+escape(forme.value);
                }
            }
        } 
    }
}

//获取formnamechecked集合
// formname form名称
// starname 名字开始标示
// dfgf 一级分割符
// xfgf 二级分割符
// ckstring 检查字符串数组
function AJAXhqformnamechecked(formname,starname,dfgf,xfgf,ckstring){
    var me=this;
    me.namevalues="";
    for(var i=0;i<formname.elements.length;i++){
        var forme = formname.elements[i];
        if(forme.name.substr(0,starname.length)==starname){
            if (ckstring !=""){
                ckstring=dfgf + ckstring + dfgf
                if (ckstring.indexOf(dfgf + forme.name.substring(starname.length,forme.name.length) + dfgf)>=0){
                    if(me.namevalues!=""){me.namevalues+=dfgf;}
                    if(forme.checked==true){me.namevalues+=forme.name+xfgf+"1";
                    }else{me.namevalues+=forme.name+xfgf+"0";}
                }
            }
        } 
    }
}

//获取属性设置
function hqsxformnamevalue(checkname){
    var httptext="";
    var namestrarray =document.getElementsByName(checkname);
    var namestr =checkname;
    var action="";
    if(arguments.length>1){namestr=arguments[1];}
    for(var i=0;i<namestrarray.length;i++){
        var objstr =namestrarray[i];
        if (objstr.checked==true){
            if(httptext!=""){httptext+="&";}
            httptext+=namestr + "=" + escape(objstr.value.Trim());
        }
    }
    return httptext;
}


//去掉字符串左边空格 例子： s.LTrim()
String.prototype.LTrim=function(){
	return this.replace(/^(\s+)/g, "");
}

//去掉字符串右边空格 例子： s.RTrim()
String.prototype.RTrim=function(){  
	return this.replace(/(\s+)$/g, "");
}

//去掉字符串两边空格 例子： s.Trim()
String.prototype.Trim=function(){
	return this.LTrim().RTrim();
}

//去掉字符串所有空格 例子： s.TrimAll
String.prototype.TrimAll=function(){
	return this.replace(/(\s)/g, "");
}

// 扩展escape编码，将更多的特出码编码
String.prototype.AES=function(){
    var ThisStrR=this.replace(/®/g,"%AE");
    ThisStrR =ThisStrR.replace(/©/g,"%A9");
    ThisStrR =ThisStrR.replace(/×/g,"%D7");
    ThisStrR =ThisStrR.replace(/\+/g,"%2B");
    ThisStrR =ThisStrR.replace(/÷/g,"%F7");
    ThisStrR =ThisStrR.replace(/·/g,"%B7");
    return ThisStrR;
}


//打开操作确认对话框
function tsxxqr(tsxx){
    if(confirm(tsxx)){
      return true;
    }
	else{
      return false;
	}
}

//确认关闭页面操作对话框
function qrgbpagecz() {
    if(confirm("你确认关闭么？")){
      window.close();
    }
}


function autosetimage(im1,width1,height1)
{

	if(im1.width>im1.height)
	{
	
	   if(im1.width>width1)
	   {
		  im1.height=(width1 * im1.height)/im1.width;
	   }
         
	}
	else
	{
		
	   if(im1.height>height1)
	   {
		  im1.width=(height1 * im1.width)/im1.height;
	   } 

	}

}

// 设置对象隐藏或显示
function setobjplay(ss) {

  if (ss.style.display=="none") {
    ss.style.display="";
  }
  else {
    ss.style.display="none"; 
  }
}

//读取url传递的变量

function QStr(name){
	var qs=(location.search||"").toString().substring(1).split("&");
	for(var i=0; i<qs.length; i++){
		var j=qs[i].indexOf("=");
		var n=qs[i].substring(0, j).toLowerCase();
		if(n==name.toLowerCase()) return qs[i].substring(j+1);
	}
	return "";
}

//读取url传递的变量程序2
function QueryString(sName)
{
    var sSource = String(window.document.location);
    var sReturn = "";
    var sQUS = "?";
    var sAMP = "&";
    var sEQ = "=";
    var iPos;
    iPos = sSource.indexOf(sQUS);
    var strQuery = sSource.substr(iPos, sSource.length - iPos);
    var strLCQuery = strQuery.toLowerCase();
    var strLCName = sName.toLowerCase();
    iPos = strLCQuery.indexOf(sQUS + strLCName + sEQ);
    if (iPos == -1)
    {
        iPos = strLCQuery.indexOf(sAMP + strLCName + sEQ);
            if (iPos == -1)
                return "";
     }
    sReturn = strQuery.substr(iPos + sName.length + 2,strQuery.length-(iPos + sName.length + 2));
    var iPosAMP = sReturn.indexOf(sAMP);
    if (iPosAMP == -1)
        return sReturn;
            else
        {
            sReturn = sReturn.substr(0, iPosAMP);
        }
            return sReturn;
}

//复制数据到剪切板
function fzhi(Content){
    if(Content == "" ){
	    alert("复制失败！复制的数据不能为空！");	
	}
    else {  
	    window.clipboardData.setData("Text",Content);
	    alert("复制成功！");
	} 

}

//检索全文关键字，并突出显示关键字颜色
//keywordvalue 要检索的关键字
//htmlvalue 要检索的html内容
//colorstr 突出文本颜色
function RedKeyWord(keywordvalue,htmlvalue,colorstr){
    if ((htmlvalue!=null)&&(keywordvalue!='')) {
	    var KeyWord = keywordvalue;
		KeyWord = KeyWord.replace(/^[ 　]*(.*?)[ 　]*$/ig, '$1');
		KeyWord = KeyWord.replace(/\\/ig, '\\\\');
		KeyWord = KeyWord.replace(/\//ig, '\\/');
		KeyWord = KeyWord.replace(/\^/ig, '\\^');
		KeyWord = KeyWord.replace(/\$/ig, '\\$');
		KeyWord = KeyWord.replace(/\./ig, '\\.');
		KeyWord = KeyWord.replace(/\*/ig, '\\*');
		KeyWord = KeyWord.replace(/\+/ig, '\\+');
		KeyWord = KeyWord.replace(/\?/ig, '\\?');
		KeyWord = KeyWord.replace(/\(/ig, '\\(');
		KeyWord = KeyWord.replace(/\)/ig, '\\)');
		KeyWord = KeyWord.replace(/\[/ig, '\\[');
		KeyWord = KeyWord.replace(/\]/ig, '\\]');
		KeyWord = KeyWord.replace(/[ 　]+/ig, '|');
		var re = new RegExp('<a name="?key"?></a><font color="?red"?>(.*?)</font>', 'ig');
		var el = htmlvalue;
		if (re.test(el.innerHTML)) {el.innerHTML = el.innerHTML.replace(re, '$1');}
		re = new RegExp('('+KeyWord+')', 'ig');
		if (re.test(el.innerHTML)) {
			for (var i=0; i<el.childNodes.length; i++){if (re.test(el.childNodes[i].innerHTML)) {el.childNodes[i].innerHTML = fnReplaceKey(el.childNodes[i].innerHTML, re, colorstr)}}
			//window.location.hash='key';
	    }else{return "全文中不存在您查询的关键字！";}
	}else{return "全文检索关键字不能为空！";}
}

function fnReplaceKey(src, rek, colorstr){
	var re = new RegExp('<.*?>', 'ig');
	var Content = '';
	var arr, str_temp='', idx_temp=0;
	rek.test(src);
	while ((arr=re.exec(src)) != null) {
		str_temp = src.substring(idx_temp, arr.index);
		idx_temp = arr.lastIndex;
		if (rek.test(str_temp)) {str_temp = str_temp.replace(rek, "<a name='key'></a><font color='" + colorstr+ "'>$1</font>")}
		Content += str_temp;
		Content += arr;
	}
	str_temp = src.substr(idx_temp);
	if (rek.test(str_temp)) {str_temp = str_temp.replace(rek, "<a name='key'></a><font color='" + colorstr+ "'>$1</font>")}
	Content += str_temp;
	return Content;
}

//============================================================================
//全文检索文字加强显示
//在底部加入
//highlightdocument("ssss");
//============================================================================


var SKEY_Color_HighLight="#ff0000";  // 替换颜色值。
var SKEY_Label_HighLight="font"; // 标签名称。
var SKEY_MS_HighLight=0; // 操作模式  0  替换颜色模式 1 替换成其他字符串模式。
var SKEY_String_HighLight=""; // 当模式为替换成其他字符串时的替换字符串。

function highlightstring(text,key){
    var html=text.nodeValue;
    var ss = html.split(key);
    if(SKEY_MS_HighLight==0){
        key = key.fontcolor(SKEY_Color_HighLight);
    }else{
        key = SKEY_String_HighLight;
    }
    html="";
    for(var j=0;j<ss.length;j++){
        if(j>0)
            html+= key;
        html+=ss[j];
    }
    var node = document.createElement(SKEY_Label_HighLight);
    node.innerHTML = html;
    //alert(html);
    return node;
}

function highlighttext(text,keys,index){
    var node = highlightstring(text,keys[index]);
    for(var i=index+1;i<keys.length;i++){
        highlightobject(node,keys,index+1);
    }
    return node;
}

function highlightobject(object,keys,index){
    var nodes = object.childNodes;
    for(var i=0;i<nodes.length;i++){
        if(nodes[i].nodeType==3){
            object.replaceChild(highlighttext(nodes[i],keys,index),nodes[i]);
        }else{
            highlightobject(nodes[i],keys,index);
        }
    }
}

function highlightdocument(ssgjz){
    s = ssgjz;
    keys = s.split("::");
    var aaa=clearBlank(keys);
    if(aaa.length>0){
        highlightobject(document.body,aaa,0);
    }
}

function clearBlank(arr){
    var j=0;
    var toArr=new Array();
    if(arr!=null){
        for(var i=0;i<arr.length;i++){
            if(arr[i]!=null && arr[i]!=""){
                toArr[j]=arr[i];
                j++;
            }
        }
    }
    return toArr;
}


//============================================================================


function RT(str){
    str = str.replace(/®/g,"&reg;");
    str = str.replace(/©/g,"&copy;");
    str = str.replace(/×/g,"&#215;");
    str = str.replace(/÷/g,"&#247;");
    return str;
}


//
function unselectall()
{
    if(document.form01.chkAll.checked){
	document.form01.chkAll.checked =false;
    } 	
}

function CheckAll(form)
  {
  for (var i=0;i<form.elements.length;i++)
    {
    var e = form.elements[i];
    if (e.Name != "chkAll"&&e.disabled==false)
       e.checked = form.chkAll.checked;
    }
  }
  
  
  function unselectNoall()
{
    if(document.form01.chkAll.checked){
	document.form01.chkAll.checked =false;
    } 	
}

  function CheckNoAll(form,starname,chkname)
  {
  for (var i=0;i<form.elements.length;i++)
    {
    var e = form.elements[i];
    if (e.disabled==false&&e.name.substr(0,starname.length)==starname)
       e.checked = document.getElementById(chkname).checked;
    }
  }

////////////
function left(mainStr,lngLen) {
if (lngLen>0) {return mainStr.substring(0,lngLen)}
else{return null}
} 

function right(mainStr,lngLen) {
// alert(mainStr.length)
if (mainStr.length-lngLen>=0 && mainStr.length>=0 && mainStr.length-lngLen<=mainStr.length) {
return mainStr.substring(mainStr.length-lngLen,mainStr.length)}
else{return null}
}
function mid(mainStr,starnum,endnum){
if (mainStr.length>=0){
return mainStr.substr(starnum,endnum)
}else{return null}
}

function IsExt(url, opt){
	var sTemp;
	var b=false;
	var s=opt.toUpperCase().split("|");
	for (var i=0;i<s.length ;i++ ){
		sTemp=url.substr(url.length-s[i].length-1);
		sTemp=sTemp.toUpperCase();
		s[i]="."+s[i];
		if (s[i]==sTemp){
			b=true;
			break;
		}
	}
	return b;
}
