/**
 * 不断丰富，持续优化
 * @version 1.0
 * @author lizonghai
 *
 */
 
 /**
  * 当浏览器不支持getElementById方法时
  */
 if(document.all && !document.getElementById) {
    document.getElementById = function(id) {
         return document.all[id];
    }
 }



 /** 
 *  命令空间HJS
 */
(
function(){
	
	/**
	 * 命名空间HJS
	 */
	if(!window.HJS)
	{
		window['HJS']={};
	}
	
	
	/**
	 * 类似于document.getElementById
	 * 根据页面元素获取指定对象
	 */
	function $()
	{
		//定义一个成员数据
		var elements=new Array();
		for(var i=0;i<arguments.length;i++)
		{
			var element=arguments[i];
			
			//如果是字符
			if(typeof element=='string')
			{
				element=document.getElementById(element);
			}
			
			//如果只有一个参数
			if(arguments.length==1)
			{
				return element;	
			}
			elements.push(element);			
		}
		
	};
	window['HJS']['$']=$;
	
	function isCompatible(other) {
	    if( other===false 
	        || !Array.prototype.push
	        || !Object.hasOwnProperty
	        || !document.createElement
	        || !document.getElementsByTagName
	        ) {
	        alert('对不起，您浏览器不支持某些属性或方法');
	        return false;
	    }
	    return true;
	};
	window['HJS']['isCompatible'] = isCompatible;
	
	
	/**
	 * 包含关于 Web 浏览器的信息
	 */
	function navigator_info()
	{
		var browse_info="获取浏览器的代码名称"+navigator.appCodeName+"<br/>"
		+"获取应用程序的次版本值:"+navigator.appMinorVersion+"<br>"
		+"获取浏览器的名称"+navigator.appName+"<br/>"
		+"获取浏览器运行的平台和版本"+navigator.appVersion+"<br/>"
		+"获取浏览器的当前语言"+navigator.browserLanguage+"<br>"
		+"获取客户端的永久 cookie 是否在浏览器中启用。永久 cookies 是储存在客户端计算机上的。"+navigator.cookieEnabled+"<br/>"
		+"获取指示 CPU 等级的字符串"+navigator.cpuClass+"<br/>"
		+"获取表明系统是否处于全局脱机模式的值"+navigator.onLine+"<br/>"
		+"获取用户的操作系统名称"+navigator.platform+"<br/>"
		+"获取操作系统适用的默认语言"+navigator.systemLanguage+"<br/>"
		+"获取等同于 HTTP 用户代理请求头的字符串"+navigator.userAgent+"<br/>"
		+"获取操作系统的自然语言设置"+navigator.userLanguage+"<br/>";
		//return browse_info;
		document.write(browse_info);
	};
	window['HJS']['navigator_info']=navigator_info;
	
	
	/**
	 * 注册事件
	 */
	 function addEvent(node,type,listener)
	 {
	 	//浏览器能力
	 	if(!isCompatible()){return false};
	 	//node是否为对象
	 	if(!(node=$(node))){return false};
	 	if(node.addEventListener)
	 	{
	 		node.addEventListener(type,listener,false);
	 		return true;
	 	}else if(node.attachEvent)
	 	{
	 		node["e"+type+listener]=listener;
	 		node[type+listener]=function(){node["e"+type+listener](window.event);}
	 		node.attachEvent("on"+type,node[type+listener])
	 		return true;
	 	}
	 	return false;
	 };
	 window['HJS']['addEvent']=addEvent;
	
	
	/**
	 * 注销事件
	 */
	
	function removeEvent(node,type,listener)
	{
		if(!(node=$(node))){return false};
		if(node.removeEventListener)
		{
			node.removeEventListener(type,listener,false);
			return true;
		}else if(node.detash)
		{
			node.detash("on"+type,node[type+listener])
			node[type+listener]=null;
			return true;
		}
		
		return false;
		
	};
	window["HJS"]['removeEvent']=removeEvent;

	/**
	 * 控制对象的显隐
	 */	
	 
	 function toggleDisplay(node,value)
	 {
	 	if(!(node=$(node))){return false};
	 	if(node.style.display!='none')
	 	{
	 		node.style.display='none';
	 	}else
	 	{
	 		node.style.display=vlaue||'';
	 	}
	 	return true;
	 }
	 window['HJS']['toggleDisplay']=toggleDisplay;
	 
	 /**
	  * 为给定对象绑定一个方法
	  * 
	  */
	function bindFunction(obj,func)
	{
		return function(){
			func.apply(obj,arguments);
		}
	};
	window['HJS']['bindFunction']=bindFunction;
	
	
	/**
	 * 获取浏览器窗体大小
	 */
	function getBrowserWindowSize()
	{
		var de=document.documentElement;
		return{
			width:(window.innerWidth||(de&&de.clientWidth)||document.body.clientWidth),
			height:(window.innerHeight||(de&&de.clientHeight)||document.body.clientHeight)
		}
			
	}
	window['HJS']['getBrowserWindowSize']=getBrowserWindowSize;
	
	
	/**
	 * 基于框架结构的侧栏显隐控制js
	 * @param frmstOuter 框架id
	 * @param frmToolbar 框架工具栏id
	 * @param divCollapsedNav 收缩栏层
	 * @param divOpenNav 展开栏层
	 * 
	 */
	 function ToggleNav(frmstOuter,frmToolbar,divCollapsedNav,divOpenNav)
	 {
	 	if(!(divCollapsedNav=$(divCollapsedNav))){return false;};
	 	if(!(divOpenNav=$(divOpenNav))){return false;};
	 	
	 	if($(divCollapsedNav).style.display == "none")
		{
			$(divCollapsedNav).style.display = "";
			$(divOpenNav).style.display = "none";
			if(parent.frmstOuter){parent.frmstOuter.cols = "20,*"};
			if(parent.document.all (frmToolbar)){parent.document.all (frmToolbar).noResize = true};
		}
		else
		{
			$(divOpenNav).style.display = "";
			$(divCollapsedNav).style.display = "none";
			if(parent.frmstOuter){parent.frmstOuter.cols = "237,*"};
			if(parent.document.all (frmToolbar)){parent.document.all (frmToolbar).noResize = false};
		}
	 }
	 window['HJS']['ToggleNav']=ToggleNav;
	 
	 /**
	 *是否是键盘触发
	 */
	 
	function isKeyTrigger(e,keyCode){   
     var argv = isKeyTrigger.arguments;   
     var argc = isKeyTrigger.arguments.length;   
     var bCtrl = false;   
     if(argc > 2){   
         bCtrl = argv[2];   
     }   
     var bAlt = false;   
     if(argc > 3){   
         bAlt = argv[3];   
     }   
     var nav4 = window.Event ? true : false;   
     if(typeof e == 'undefined') {   
         e = event;   
     }   
     if(bCtrl &&   
         !((typeof e.ctrlKey != 'undefined') ?    
         e.ctrlKey :   
         e.modifiers & Event.CONTROL_MASK > 0)) {   
         return false;   
     }   
     if( bAlt &&   
         !((typeof e.altKey != 'undefined') ?    
             e.altKey : e.modifiers & Event.ALT_MASK > 0)){   
         return false;   
     }   
     var whichCode = 0;   
     if (nav4) whichCode = e.which;   
     else if (e.type == "keypress" || e.type == "keydown") whichCode = e.keyCode;   
     else whichCode = e.button;   
        
     return (whichCode == keyCode);   
 }   
   
 function ctrlEnter(e,func){   
     var ie = navigator.appName == "Microsoft Internet Explorer" ? true : false;   
     if(ie){   
         if(event.ctrlKey && event.keyCode == 13) {   
            	func.call();   
         }   
         else {   
             if(isKeyTrigger(e,13,true)) func.call();   
         }   
     }   
 }
 window['HJS']['ctrlEnter']=ctrlEnter;
	 
}
)();