var g_debug = false;		//是否弹出JS错误信息,true:弹出,false:不弹出
var appprefix = "LZ8_";		//应用程序变量名前缀
		                    //所有Cache、Session、Cookies等名称都使用此前缀,可用于防止同一站点的各Web应用程序冲突
var loading = '<img src="/images/toploading.gif" />加载中...';

String.prototype.trim = function()
{
    // 用正则表达式将前后空格
    // 用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}


//判断是否为Firefox或IE
var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined'); 
var ie = (typeof window.ActiveXObject != 'undefined');
/*		全局变量定义完成		*/


//js错误调试
function self_debug(msg){
/// <summary>
/// js错误调试,根据配置是否显示调试
/// </summary>
/// <param name="msg">错误调试信息</param>
/// <returns></returns>

	if(g_debug){
		alert("[debug]:"+msg);
	}
}

function myescape(str){
	str = escape(str);
	str = str.replace("+","%2B");
	return str;
} 

//根据ID得到对象
function GetObj(objName){
	if(document.getElementById){
		return eval('document.getElementById("' + objName + '")');
	}else if(document.layers){
		return eval("document.layers['" + objName +"']");
	}else{
		return eval('document.all.' + objName);
	}
}

//读取与写入Cookie
function createCookie(name, value, days)
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }

    else expires = "";
    document.cookie = appprefix + name + "=" + value + expires + "; path=/";
}

function readCookie(name)
{
    var nameEQ = appprefix + name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++)
    {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1, c.length);
        }
        if (c.indexOf(nameEQ) == 0)
            return c.substring(nameEQ.length, c.length);
    }
    return null;
}
function delCookie(name) {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    document.cookie = appprefix + name + "=; expires=" + exp.toGMTString() + "; path=/";
}  

//生成XMLDOM对象
function createXMLDOM() { 
	var xmldom;
	if (window.ActiveXObject){
		var xmldom = new ActiveXObject("Microsoft.XMLDOM");
	} else {
		if (document.implementation && document.implementation.createDocument) {
			var xmldom = document.implementation.createDocument("","doc",null);
		}
	}
	xmldom.async = false;
	xmldom.resolveExternals = false;
	xmldom.validateOnParse = false;
	xmldom.preserveWhiteSpace = true;
	return xmldom;
}

//str:原字符串,a:要查找的字符,b:用来替换的字符串
function replace(str,a,b){ 
     var i; 
     var s2 = str; 
     
     while(s2.indexOf(a)>0)
     { 
		 i = s2.indexOf(a); 
		 s2 = s2.substring(0, i) + b + s2.substring(i + a.length, s2.length); 
     } 
     return s2; 
}

//返回参数值
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 AddOptionItem(Obj,strFileName){
	    try{
		    if(typeof(Obj) == "object"){
			    var arrAllUrl = strFileName.split('|');
			    for(var i=0; i<arrAllUrl.length; i++){
				    Obj.options[Obj.length]=new Option(arrAllUrl[i],arrAllUrl[i]);
			    }
		    }
	    }catch(e){
		    self_debug(e.message);
	    }
    }
//输出数字式下拉菜单项 
function writeNumOption(varFrom,varTo)
{
	for(var i=varFrom;i<=varTo;i++)
	{
		document.write("<option VALUE="+i+">"+i+"</option>");
	}
}

/** 检测Email是否合法 */
function isEmail(s) {
	if (s.length > 100)	return false;
	//if (s.indexOf("'")!=-1) return false;
	s = s.replace('(', '');
	s = s.replace(')', '');
	s = s.replace('（', '');
	s = s.replace('）', '');
	var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[_.0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+(.+)$";
	//{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|cn|CN|cc|CC
	var re = new RegExp(regu);
	if (s.search(re) != -1)
		return true;
	else
		return false;
}

    //下拉框选择,可以传入多个值以","分隔
    function SelectOptions(Objname,P_value){
	    if(typeof(Objname)=="object"){
		    if(P_value.indexOf(",") == -1){
			    for(var j=0; j< Objname.length; j++){
				    if(Objname.options[j].value == P_value){
					    Objname.options[j].selected = true;
					    break;
			        }
			    }
		    }else{
			    var P_values = P_value.split(",");
			    for(var i=0; i < P_values.length; i++){
				    for(var j=0; j< Objname.length; j++){
					    if(Objname.options[j].value == P_values[i]){
						    Objname.options[j].selected = true;
						    break;
					    }
				    }
			    }
		    }
	    }
    }
    function ChkFormSelect(selectobj){
	    var ids=null;

	    if(selectobj != undefined){
		    if(selectobj.length == undefined){
			    if(!selectobj.checked){
				    return ids;
			    }
			    ids = selectobj.value;
			} else {
			    var chknum2 = 0;
			    for(i=0; i < selectobj.length; i++){
				    if(selectobj[i].checked){
					    if(ids == null){
						    ids = selectobj[i].value;
					    }else{
						    ids +="," + selectobj[i].value;
					    }
					    chknum2++;
				    }
			    }
			    if(chknum2 == 0){
				    return ids;
			    }			
		    }
	    }else{
		    return ids;
	    }
	    return ids;
    }
    function SetFormElement(obj, value) {
        //alert("object=" + obj + ",name=" + obj.name + ",type=" + obj.type);
        //alert("object=" + obj + ",name=" + obj.name + ",type=" + obj.type + ",value=" + value);

        if (typeof (obj) == "object") {
            switch (obj.type) {
                case "checkbox":
                    SetCheckbox(obj, value);
                    break;
                case "radio":
                    SetRadio(obj, value);
                    break;
                case "text":
                case "hidden":
                    obj.value = value;
                    break;
                default:
                    obj.value = value;
                    break;
            }
        }
    }
    

    //显示指定对象的内容
    function SetCheckbox(obj,value){
        value = value.replace("&",",");
        SetRadio(obj,value);
    }
    function SetRadio(obj, value) {
        //alert("object=" + obj + ",name=" + obj.name + ",type=" + obj.type + ",value=" + value);
        
        var result;
        if (isNaN(value))
            value = value.replace("&", ",");

        if (typeof (obj) == "object") {
            if (isNaN(value)) {
                value = value.replace(" ", "");
            }

            try {
                if (!isNaN(value)) {
                    if (!obj.length) {
                        if (parseInt(obj.value) == value)
                            obj.checked = true;
                        else
                            obj.checked = false;

                        return obj.value;
                    }

                    for (var i = 0; i < obj.length; i++) {

                        if (parseInt(obj[i].value) == value) {
                            obj[i].checked = true;
                            result = obj[i].value;
                        } else
                            obj[i].checked = false;
                    }
                    return result;
                }

                if (value.indexOf(",") != -1) {
                    var tmpvalue = "," + value + ",";
                    //alert(tmpvalue);
                    if (!obj.length) {
                        if (tmpvalue.indexOf("," + obj.value + ",") != -1)
                            obj.checked = true;
                        else
                            obj.checked = false;

                        return obj.value;
                    }


                    for (var i = 0; i < obj.length; i++) {
                        if (tmpvalue.indexOf("," + obj[i].value + ",") != -1) {
                            obj[i].checked = true;
                            result = obj[i].value;
                        } else
                            obj[i].checked = false;
                    }

                    return result;
                }

                if (isNaN(value)) {
                    if (!obj.length) {
                        if (obj.value == value)
                            obj.checked = true;
                        else
                            obj.checked = false;

                        return obj.value;
                    }

                    for (var i = 0; i < obj.length; i++) {
                        if (obj[i].value == value) {
                            obj[i].checked = true;
                            result = obj[i].value;
                        } else
                            obj[i].checked = false;
                    }
                    return result;
                }

            } catch (e) {
                self_debug(e.message);
            }

        }
    }
    function SetSelect(obj, value) {
        if (typeof (obj) == "object") {
            
        
            if (!obj.length) {
                if (value.indexOf(",") == -1) {
                    for (var j = 0; j < obj.length; j++) {
                        if (obj.options[j].value == value) {
                            obj.options[j].selected = true;
                            break;
                        }
                    }
                } else {
                    var P_values = value.split(",");
                    for (var i = 0; i < P_values.length; i++) {
                        for (var j = 0; j < obj.length; j++) {
                            if (obj.options[j].value == P_values[i]) {
                                obj.options[j].selected = true;
                                break;
                            }
                        }
                    }
                }
            }
            else {

                var _obj = obj;
                for (var ii = 0; ii < _obj.length; ii++) {
                    var obj = _obj[ii];
                    if (value.indexOf(",") == -1) {
                        for (var j = 0; j < obj.length; j++) {
                            if (obj.options[j].value.toString() == value.toString()) {
                                obj.options[j].selected = true;
                                break;
                            }
                        }
                    } else {
                        var P_values = value.split(",");
                        for (var i = 0; i < P_values.length; i++) {
                            for (var j = 0; j < obj.length; j++) {
                                if (obj.options[j].value.toString() == P_values[i].toString()) {
                                    obj.options[j].selected = true;
                                    break;
                                }
                            }
                        }
                    }

                }
            }
        }
    }

// 检查日期格式的有效性
function ChkDateTime(inpar)
{
	var reg;
	reg=/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2})\:(\d{2})\:(\d{2})$/;
	var r = inpar.match(reg); 
	if(r==null)
	{
	  return false;  // 时间格式检验未通过
	}
	else 
	{
	  return true;  // 时间格式检验通过
	}
}

//身份证号码检查
function checkIdcard(idcard){
	var Errors=new Array(
	true,
	"<font color=\"red\">身份证号码位数不对!</font>",
	"<font color=\"red\">身份证号码出生日期超出范围或含有非法字符!</font>",
	"<font color=\"red\">身份证号码校验错误!</font>",
	"<font color=\"red\">身份证地区非法!</font>"
	);
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
	
	var idcard,Y,JYM;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	//地区检验
	if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
	//身份号码位数及格式检验
	switch(idcard.length){
	case 15:
		if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
			ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
		} else {
			ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
		}
		if(ereg.test(idcard)) return Errors[0];
		else return Errors[2];
		break;
	case 18:
		//18位身份号码检测
		//出生日期的合法性检查 
		//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
		//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
		if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
			ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
		} else {
			ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
		}
		if(ereg.test(idcard)){//测试出生日期的合法性
			//计算校验位
			S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
			+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
			+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
			+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
			+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
			+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
			+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
			+ parseInt(idcard_array[7]) * 1 
			+ parseInt(idcard_array[8]) * 6
			+ parseInt(idcard_array[9]) * 3 ;
			Y = S % 11;
			M = "F";
			JYM = "10X98765432";
			M = JYM.substr(Y,1);//判断校验位
			if(M == idcard_array[17]) return Errors[0]; //检测ID的校验位
			else return Errors[3];
		}
		else return Errors[2];
		break;
	default:
		return Errors[1];
		break;
	}

}

// 检查日期格式的有效性
function ChkDateForMat(inpar) 
{
	var reg;
	reg=/^(\d{4})-(\d{1,2})-(\d{1,2})$/;
	var r = inpar.match(reg); 
	if(r==null)
	{
	  return false;  // 日期格式检验未通过
	}
	else 
	{
	  return true;  // 日期格式检验通过
	}
}

// 检查日期格式的有效性
function ChkDateTime(inpar)
{
	var reg;
	reg=/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2})\:(\d{2})\:(\d{2})$/;
	var r = inpar.match(reg); 
	if(r==null)
	{
	  return false;  // 时间格式检验未通过
	}
	else 
	{
	  return true;  // 时间格式检验通过
	}
}

// 检查日期值的有效性
function ckdateValue(inpar)
{
    var inparDate;
	inparDate=inpar.split("-");
	inparY=inparDate[0];  // 得到年份
	inparY=parseInt(inparY);
	inparM=inparDate[1];  // 得到月份
    inparM=parseInt(inparM);
	inparD=inparDate[2];  // 得到日期
	inparD=parseInt(inparD);
	switch (inparM){
	  case 2: // 若为二月需要判断是否为闰年
	  {
	    if ((inparY%400==0)||((inparY%4==0)&&(inparY%100!=0)))
		{
		  if ((inparD>0)&&(inparD<29)) return true;
		}
		else if ((inparD>0)&&(inparD<28)) return true;
		else 
		{
		  //alert("输入的日期不正确！");
		  return false;
		}
	    break;
	  }
	  case 1:
	  case 3:
	  case 5:
	  case 7:
	  case 8:
	  case 10:
	  case 12:
	  {
	    if ((inparD>0) && (inparD<32)) return true;
		else
		{
		  //alert("输入的日期不正确！");
		  return false;		  
		}
	    break;
	  }
	  case 4:
	  case 6:
	  case 9:
	  case 11:
	  {
	    if ((inparD>0) && (inparD<31)) return true;
		else
		{
		 // alert("输入的日期不正确！");
		  return false;		  
		}
	    break;
      }
	  default:
	  {
	    //alert("输入的月份不正确！");
		return false;
	  }
    }
}

function CleanHtml(str){
	var s;
	var re = /<(.*)>(.*)<\/\1>/;
	var arr = re.exec(str);
	s = RegExp.$2;
	return(s);
}

String.prototype.format = function()
{
/// <summary>
/// 替换占位符
/// </summary>

	var number;
	var template = this;
	for (var i = 0; i < arguments.length; i++) 
	{
		number = "\{(" + i + ")\}";
		var reg = new RegExp(number, "ig");
		template = template.replace(reg, arguments[i]);
	}
   
	return template;
}

Array.prototype.Exists = function(stringToSearch) {
    /// <summary>
    /// 数组中是否包含某字符串
    /// </summary>
    var arrayToSearch = this;
    
    for (s = 0; s < arrayToSearch.length; s++) {
        thisEntry = arrayToSearch[s].toString();
        if (thisEntry == stringToSearch) {
            return true;
        }
    }
    return false;
}

function DisplaySwitch(open_obj1,close_obj2) {
    /// <summary>
    /// 显示开关
    /// </summary>
    Element.show(open_obj1);
    Element.hide(close_obj2);
}