﻿var g_debug = true;		//是否弹出JS错误信息,true:弹出,false:不弹出
var LanguageType = "Chinese";		//语言类型;


//判断是否为Firefox或IE
var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined'); 
var ie = (typeof window.ActiveXObject != 'undefined');
/*		全局变量定义完成		*/


//js错误调试
function self_debug(msg){
	if(g_debug){
		alert("[debug]:"+msg);
	}
}

//生成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;
}
//加载语言包,并返回指定的内容
function getPageLanguage(FileName,LangName) { 
	var xmldom = createXMLDOM();
	if (xmldom.load(FileName)){
		return xmldom.getElementsByTagName(LanguageType)[0].getElementsByTagName(LangName)[0].firstChild.nodeValue;
	}else{
		alert("加载语言包失败 -- loading LanauagePack Error");
	}
}

//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(ObjName,strFileName){
	var arrAllUrl = strFileName.split('|');
	for(var i=0; i<arrAllUrl.length; i++){
		ObjName.DefaultPicList.options[ObjName.DefaultPicList.length]=new Option(arrAllUrl[i],arrAllUrl[i]);
	}
}
//显示指定对象的内容
function ShowObjValue(P_Type,P_Obj,P_Value){
	if(typeof(P_Obj)=="object"){
		switch(P_Type){
        case "checked":
			P_Obj.checked = P_Value;
			break;
		case "disabled":
			P_Obj.disabled = P_Value;
			break;
		default:
			P_Obj.value = P_Value;
			break;
		}
	}
}

//输出数字式下拉菜单项 
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;
			}
		}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;
					}
				}
			}
		}
	}
}






//输出学历下拉菜单
function writeDegree()
{
	with(document)
	{
		write("<option value=''>请选择学位</option>");
		write("<option value='9'>博士</option>");
		write("<option value='8'>MBA</option>");
		write("<option value='7'>硕士</option>");
		write("<option value='6'>本科</option>");
		write("<option value='5'>大专</option>");
		write("<option value='4'>中专</option>");
		write("<option value='3'>中技</option>");
		write("<option value='2'>高中</option>");
		write("<option value='1'>初中</option>");
	}
}

// 检查日期格式的有效性
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);
}