﻿<!-- //
	
	// 浏览器的判断
	var MSIE = ( navigator.userAgent.indexOf("MSIE") > -1 );
	var NETS = ( navigator.userAgent.indexOf("Netscape") > -1 );
	var OPER = ( navigator.userAgent.indexOf("Opera") > -1 );
	var FIRE = ( navigator.userAgent.indexOf("Firefox") > -1 );
	
	<!-- AJAX begin -->
	// Use insertAdjacentHTML in FireFox
	if( typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement ){ 
		HTMLElement.prototype.insertAdjacentElement = function( where, parsedNode ){
			switch (where){ 
				case 'beforeBegin': 
					this.parentNode.insertBefore( parsedNode, this ) 
					break; 
				case 'afterBegin': 
					this.insertBefore( parsedNode,this.firstChild ); 
					break; 
				case 'beforeEnd':
					this.appendChild( parsedNode ); 
					break; 
				case 'afterEnd': 
					if ( this.nextSibling ) 
						this.parentNode.insertBefore( parsedNode,this.nextSibling ); 
					else this.parentNode.appendChild( parsedNode ); 
					break; 
				} 
			} 
	
		HTMLElement.prototype.insertAdjacentHTML = function( where, htmlStr ){ 
			var r = this.ownerDocument.createRange(); 
			r.setStartBefore( this ); 
			var parsedHTML = r.createContextualFragment( htmlStr ); 
			this.insertAdjacentElement( where, parsedHTML ) ;
		} 
	} 
	
	// Create XMLHttpRequest Object Both IE and Firefox
	HTTPRequest = function(){
		var xmlHttp = false;
		if( window.XMLHttpRequest ) {
			xmlHttp = new XMLHttpRequest();		// Mozilla、Opera
			if ( xmlHttp.overrideMimeType ) xmlHttp.overrideMimeType( "text/xml" );	// Set MiME Type
		}else if ( window.ActiveXObject ) {
			try{
				xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP" );	// IE
			}catch(e){
				try{
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");	// IE
				}catch(e){
					xmlHttp = false;
				}
			}
		}
		return xmlHttp;
	}
	<!-- AJAX End -->
	
	<!-- selectNodes & selectSingleNodes Begin -->
	// [Use selectNodes() in Firefox]
	// check for XPath implementation
	if( document.implementation.hasFeature("XPath", "3.0") ){
		// prototying the XMLDocument
		XMLDocument.prototype.selectNodes = function(cXPathString, xNode){
			if( !xNode ) { xNode = this; } 
			var oNSResolver = this.createNSResolver(this.documentElement)
			var aItems = this.evaluate(cXPathString, xNode, oNSResolver, 
			XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
			var aResult = [];
			for( var i = 0; i < aItems.snapshotLength; i++){
				aResult[i] = aItems.snapshotItem(i);
			}return aResult;
		}
		
		// prototying the Element
		Element.prototype.selectNodes = function(cXPathString){
			if(this.ownerDocument.selectNodes){
				return this.ownerDocument.selectNodes(cXPathString, this);
			}else{throw "For XML Elements Only";}
		}
	}
	
	// [use selectSingleNode() in Firefox]
	// check for XPath implementation
	if( document.implementation.hasFeature("XPath", "3.0") ){
		// prototying the XMLDocument
		XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode){
			if( !xNode ) { xNode = this; } 
			var xItems = this.selectNodes(cXPathString, xNode);
			if( xItems.length > 0 ){
				return xItems[0];
			}else{
				return null;
			}
		}
		
		// prototying the Element
		Element.prototype.selectSingleNode = function(cXPathString){ 
			if(this.ownerDocument.selectSingleNode){
				return this.ownerDocument.selectSingleNode(cXPathString, this);
			}else{throw "For XML Elements Only";}
		}
	}
	<!-- selectNodes & selectSingleNodes End -->
	
	<!-- Global Function begin -->
	function inputChose(id,IsChose){
	    for(var intSel=0;intSel<document.forms(0).length;intSel++)
	    {
	        if(document.forms(0).elements[intSel].name == id)
	        {   
	            document.forms(0).elements[intSel].checked = IsChose;
	        }
	    }
	}
	
	 function change()
     {
        if($Obj('btnChose').value=="全选")
        {
            $Obj('btnChose').value="取消全选";
            $Obj('btnChose').onclick=function(){
                  inputChose("cbItem",false);
                  change();
            }
        }
        else
        {
            $Obj('btnChose').value="全选";
            $Obj('btnChose').onclick=function(){
                  inputChose("cbItem",true);
                  change();
            }
        }
     }
	// 左右去除空格函数
	String.prototype.trim = function(){
		return this.replace( /(^\s*)|(\s*$)/g, "" );
	}
	
	//判断是否为空
	function IsNull(id,msg)
	{
	    if($Obj(id).value=="")
	    {
	        alert(msg);
	        $Obj(id).focus();
	        return false;
	    }
	    else 
	        return true;
	}
	
	function CheckPwd(id1,id2)
	{
	    if($Obj(id1).value!=$Obj(id2).value)
	    {
	        alert('两次输入密码不相同!');
	        $Obj(id1).focus();
	        return false;
	    }
	    else
	        return true;
	}
	
	// 判断输入是否是有效的短日期格式 - "YYYY-MM-DD"
	String.prototype.isValidDate = function(){
		var result = this.match( /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/ );
		if( result == null ) return false;
		var d = new Date( result[1], result[3]-1, result[4] );
		return ( d.getFullYear() == result[1] && d.getMonth()+1 == result[3] && d.getDate() == result[4] );
	}
	
	// 判断输入是否是有效的时间格式 - "HH:MM:SS"
	String.prototype.isValidTime= function(){
		var resule = this.match( /^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/ );
		if ( result == null ) return false;
		if ( result[1] > 24 || result[3] > 60 || result[4] > 60 ) return false;
		return true;
	}
	
	// 判断是否有效的长日期格式 - "YYYY-MM-DD HH:MM:SS"
	String.prototype.isValidDatetime = function(){
		var result = this.match( /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/ );
		if( result == null ) return false;
		var d= new Date( result[1], result[3]-1, result[4], result[5], result[6], result[7] );
		return ( d.getFullYear() == result[1] && ( d.getMonth()+1 ) == result[3] && d.getDate() == result[4] && d.getHours() == result[5] && d.getMinutes() == result[6] && d.getSeconds() == result[7] );
	}
	
	// 判断是否有效的整数	
	String.prototype.isNumber = function(){
		if ( isNaN( this ) ) return false;
		else return true;
	}
	
	// 判断是否有效的整数	
	String.prototype.isValidIntNumber = function(){
		if ( isNaN( parseInt( this ) ) || parseInt( this ).toString() != this ) return false;
		else return true;
	}
	
	// 判断是否有效的浮点数
	String.prototype.isValidFloatNumber = function(){
		if ( isNaN( parseFloat( this ) ) || parseFloat( this ).toString() != this ) return false;
		else return true;
	}

    //判断电话号码
    function PhoneCheck(id) {
        var str=$Obj(id).value;
        var reg=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
        if(!reg.test(str))
        {
            alert('电话号码输入错误!');
            $Obj(id).focus();
	         return false;
        }
        else
            return true;
    }
    //判断手机号码
    function MobilPhoneCheck(id)
    {
        var tel=$Obj(id).value;
        var myreg = /^(((13[0-9]{1})|159)+\d{8})$/;
        if(!myreg.test(tel) )
        {
            alert('手机号码输入错误!');
            $Obj(id).focus();
	         return false;
        }
        else
        return true;
                
    }
	//判断身份证号码是不是正确
	function checkIdcard(idcard){ 
		var Errors=new Array( 
		"验证通过!", 
		"身份证号码位数不对!", 
		"身份证号码出生日期超出范围或含有非法字符!", 
		"身份证号码校验错误!", 
		"身份证地区非法!" 
		); 
		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 checkZipCode(id)
	{
	    var v=$Obj(id).value;
		re= /^([0-9]{6})$/gi
		if(!regExpCheck(re,v))
		{
		    alert('邮编输入错误!');
            $Obj(id).focus();
	        return false;
		}
		return true;
	}


	// 判断是否有效的 EMAIL 格式 - a@b.com
	function checkEmail(id) {
	    var email=$Obj(id).value;
		var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
		if(!reg.test( email ))
		{
		    alert('Email输入错误!');
            $Obj(id).focus();
	        return false;
		}
        return true;
	}
	
	
	//判断IP地址是否合法
	function isUnconformityIPAddress(element){
        if(element.value == "255.255.255.255")
        {
            element.focus();
            return true;
        }
         var regExp = new RegExp("^([0-9]){1,3}.([0-9]){1,3}.([0-9]){1,3}.([0-9]){1,3}$","g");
         var result = element.value.match(regExp);
         if(result == null)
         {
          element.focus();
          return true;
         }
         var ipadress = element.value.split(".");
         for(var i = 0;i < ipadress.length; i ++ )
         {
          if(!isNumber(ipadress[i]))
          {
           element.focus();
           return true;
          }
          if(parseFloat(ipadress[i]) > 255)
          {
           element.focus();
           return true;
          }
         }
         return false;
    }


	// 判断是否合法的HTTP地址 - Http://www.msbnet.net
	String.prototype.isHttp = function() {
		if ( ( this.substring(0,7).toUpperCase() != "HTTP://" ) || ( this.length < 10 ) ) return false;
		else return true;
	}
	
	// 格式化中文的目录名，使用 IE 和 FF 均可以显示	
	String.prototype.toChinesePath = function(){
		return encodeChinesePath( this );
	}
	
	// 返回一个指定名称的对象
	function $Obj( s ){
		return document.getElementById( s );
	}
	
	// 格式化中文的目录名，使用 IE 和 FF 均可以显示	
	function encodeChinesePath( v ){
		return escape( v ).replace( /%5C/g, "/" );
	}
	
	// 判断输入的键值是否数字键
	function isNumber(){
		if ( event.keyCode < 48 || event.keyCode > 57 ) return false;
		else return true;
	}
	
	// 设置图片大小到指定高宽	
	function setSize( obj, maxW, maxH ){
		var scale = Math.min( maxW/obj.width, maxH/obj.height );
		obj.width *= scale;
	}
	
	// 截取指定长度的字符串
	function cutString( str, len ){
		if ( str.length > len ) return str.substring( 0, len ) + "…";
		else					 return str;
	}
	
	// 设置一个 Element 的值	
	function setElementValue( objName, val ){
		$obj( objName ).value = val;
	}
	
	// 转换布尔值为数字
	function TransBoolTxtToInt( BoolTxt ){
		if ( BoolTxt.toLowerCase() == "true" )	return 1;
		else									return 0;
	}
	
	// 获取一个图片的 Html 代码
	function getImgHTML( name, src, maxW, maxH ){
		return "<img id=\""+ name +"\" src=\""+ src +"\" width=\""+ maxW +"\" border=\"0\" onload=\"setSize( this, "+ maxW +", "+ maxH +" )\" onclick=\"window.open( this.src )\" />";
	}
	
	// 使用 XPATH 获取一个XML节点的文本	
	function xml_getNodeText( doc, xpath ){
      var retval = "";
      var value = doc.selectSingleNode( xpath );
      if (value) retval = value.firstChild.data;
      return retval;
    }
	
	// 打开新窗口	var newWin = "";
	function openWindow( url, name, width, height ){
		var str = "height=" + height + ",innerHeight=" + height +",width=" + width + ",innerWidth=" + width + ",scrollbars=yes";
		if ( window.screen ){
			var ah = screen.availHeight - 30;
			var aw = screen.availWidth - 10;
			var xc = (aw - width) / 2;
			var yc = (ah - height) / 2;
			str += ",left=" + xc + ",screenX=" + xc;
			str += ",top=" + yc + ",screenY=" + yc;
		}
		if ( newWin.closed ) newWin = "";
		if ( newWin != "" ) 	newWin.focus();
		else					newWin = window.open( url, name, str ); newWin.focus()
	}
	<!-- Global Function end -->
	
	//
	function ShowDetail(strHidden,strDisplay, strTextView, strTextClose, txtView, txtClose) {
	    for(var ElementQty=0;ElementQty<document.all.length;ElementQty++) {
	
		    if(document.all[ElementQty].id==strDisplay){
			    if(document.all[ElementQty].style.display=="none"){
				    document.all[ElementQty].style.display="inline";
			    }else{
				    document.all[ElementQty].style.display="none";
			    }
		    }

		    if(document.all[ElementQty].id==strTextClose){
			    if(document.all[ElementQty].innerHTML==txtView){
				    document.all[ElementQty].innerHTML=txtClose;
			    }else{
				    document.all[ElementQty].innerHTML=txtView;
			    }
		    }
	
	    }
    } 
// -- >
