!function(util){
	window.Utils = util();
}(
	function(){
		//document_event_attributes
		var DEA = "doc-attr";
		var key = function(dom){ return true; };
		document.addEventListener("click",function(e){
			var dom = e.target;
			//判断是否进行运行
			if( !key(dom) ) { return };
			//对dom进行taggle调用
			var _dom = dom;
			var dea = null;
			for( var i=0;i<3;i++ ){
				dea = _dom.getAttribute(DEA);
				if( dea ){
					dea = dea.split(" ");
					for( var i in dea )
						util.elementEventAttributes[dea[i]](_dom);
					break;
				} 
				_dom = util.parent(_dom);
			}
			
		})
		
		//工具对象
		var util = {
			//对document进行的属性操作指令 
			//直接通过标签进行事件识别
			elementEventAttributes : {}
              //版本号
              version : '1.0'

		};
		
		util.$ = function(querySelect){
			if( typeof $ !== undefined || typeof jQuery !== undefined  ){
				return Array.prototype.slice.apply(jQuery(querySelect));
			}else if( document.querySelectorAll ){
				return document.querySelectorAll(querySelect);
			}else {
				//扩展ie查询
//				return document.querySelectorAll(querySelect);
				return []; 
			}
		}
		
		//绑定事件
		util.addEvent = function(element,name,call){
			element.addEventListener(name,call);
		}
		
		//查询是否存在class
		util.hasClass = function(dom,className){
			var name = dom.className;
			var nameA = name.replace(/\s{2,}/g," ").split(" ");
			if( nameA.indexOf("className") ){
				
			}
		}
		
		//获取父级
		util.parent = function(dom){
			return dom.parentElement;
		}
		
		//显示
		util.show = function(element){
			if( util.SplitFunction() ) return
			element.oldDisplay = element.style.display; 
			element.style.display = "block";
		}
		
		//隐藏
		util.hide = function(element){
			if( util.SplitFunction() ) return;
			element.style.display = element.oldDisplay || "none";
		}
		
		//隐藏
		util.taggle = function(element){
			if( util.SplitFunction() ) return;
			if( util.isElementVisible(element) ){
				util.hide(element);				
			}else{
				util.show(element);		
			}
		}
		
		 //打开全屏方法
	    util.openFullscreen = function(element) {
	        if (element.requestFullscreen) {
	            element.requestFullscreen();
	        } else if (element.mozRequestFullScreen) {
	            element.mozRequestFullScreen();
	        } else if (element.msRequestFullscreen) {
	            element.msRequestFullscreen();
	        } else if (element.webkitRequestFullscreen) {
	            element.webkitRequestFullScreen();
	        }
	    }
	
	    //退出全屏方法
	    util.exitFullScreen = function() {
	        if (document.exitFullscreen) {
	            document.exitFullscreen();
	        } else if (document.mozCancelFullScreen) {
	            document.mozCancelFullScreen();
	        } else if (document.msExitFullscreen) {
	            document.msExiFullscreen();
	        } else if (document.webkitCancelFullScreen) {
	            document.webkitCancelFullScreen();
	        } else if (document.webkitExitFullscreen) {
	            document.webkitExitFullscreen();
	        }
	    }
		
		//将函数的参数如果是数组传入的话  进行拆分多次执行
		util.SplitFunction = function(name){
			//获取函数名
			var name = name || arguments.callee.caller;
			//获取函数参数
			var argu = arguments.callee.caller.arguments;
			if( argu.length !== 1 ) return;
			argu = argu[0];
			//如果参数为数组 切只有一个的话
			if( util.isArray(argu) ){
				for( var i in argu ){
					if( util.isArray(argu[i]) ) continue;
					name(argu[i]);
				}
				return true;
			}else{
				return false;
			}
		}
		
		util.download = function(filename, text){
		  	var element = document.createElement('a');
			element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
		  	element.setAttribute('download', filename);
			element.style.display = 'none';
			document.body.appendChild(element);
			element.click();
			document.body.removeChild(element);
			element = null;
		}
		
		util.getTime = function(i){
			var t = new Date();
			return t.getFullYear()+"_"+t.getMonth()+"_"+t.getDay();
		}
		
		util.isArray = function(obj){
			return typeof obj === "object" && obj.length !== undefined && obj.push !== undefined;
		}
		
		util.isElementVisible = function(obj){
			return !(obj.style.display === 'none');
		}
		
		//属性函数 显示按钮
		util.elementEventAttributes.showBtn = function(dom){
			var opt_queryselect = dom.getAttribute("showBtn-queryselect") || dom.getAttribute("e-queryselect");
			if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
			var doms = util.show(util.$(opt_queryselect));
		}
		
		//属性函数 显示按钮
		util.elementEventAttributes.hideBtn = function(dom){
			var opt_queryselect = dom.getAttribute("hideBtn-queryselect") || dom.getAttribute("e-queryselect");
			if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
			var doms = util.hide(util.$(opt_queryselect));
		}
		
		//属性函数 显示按钮
		util.elementEventAttributes.taggleBtn = function(dom){
			var opt_queryselect = dom.getAttribute("taggleBtn-queryselect") || dom.getAttribute("e-queryselect");
			if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
			var doms = util.taggle(util.$(opt_queryselect));
		}
		
		//属性函数 checkbox 总开关
		util.elementEventAttributes.checkboxBtn = function(dom){
			setTimeout(function(){
				var opt_queryselect = dom.getAttribute("checkboxBtn-queryselect") || dom.getAttribute("e-queryselect");
				if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
				for( var i in opt_queryselect ){
					opt_queryselect[i].checked = dom.checkbox;
					opt_queryselect[i].change
				}
			})
		}
		
		//属性函数 开启全屏
		util.elementEventAttributes.onFullScreen = function(dom){
			util.openFullscreen(dom);
		}
		
		//属性函数 关闭全屏
		util.elementEventAttributes.offFullScreen = function(dom){
			util.exitFullScreen(dom);
		}
		
		//属性函数 taggle全屏
		util.elementEventAttributes.taggleFullScreen = function(dom){
			var opt_queryselect = dom.getAttribute("taggleFullScreen-queryselect") || dom.getAttribute("e-queryselect");
			var _dom = util.$(opt_queryselect)[0];
			if( !document.fullscreenElement ){
				//如果不存在当前全屏的对象
				return util.openFullscreen(_dom);
			}else if( document.fullscreenElement === _dom ){
				//如果全屏对象等于传入函数
				return util.exitFullScreen();
			}else {
				//即存在的全屏对象不等于传入的操作dom
				util.exitFullscreen()
				return util.exitFullScreen(_dom)
			}
		}
		
		//属性函数 taggle文案
		util.elementEventAttributes.taggleAttr = function(dom){
			var opt_queryselect = dom.getAttribute("taggleAttr-queryselect") || dom.getAttribute("e-queryselect");
			var opt_replace = dom.getAttribute("taggleAttr-replace");
			var opt_replacetype = dom.getAttribute("taggleAttr-replacetype") || "innerText";
			var _dom = util.$(opt_queryselect)[0];
			var old = _dom[opt_replacetype]; 
			_dom[opt_replacetype] = opt_replace; 
			dom.setAttribute("taggleAttr-replace",old); 
		}
		
		return util;
		
	}
)

API

  addEvent(element,name,call) //绑定函数  

  hasClass(dom,classname,newClass)     //判断是否存在class 可以选择替换

  parent(element)    //获取父级

  show(element)      //显示

  hide(element)       //隐藏

  taggle( element )         //交替显示或隐藏

  openFullscreen( element )  //打开全屏方法
  exitFullScreen()      //退出全屏方法

  SplitFunction( )        //将函数的参数如果是数组传入的话  进行拆分多次执行

  download( filename , text )   //下载   文件名   文件内容

  getTime(index)      //获取时间 格式为  year_month_day

  isArray(obj)     //判断类型

  isElementVisible(element) //判断是否是隐藏的

 

doc-attr 函数合集

  showBtn //显示按钮

    showBtn-queryselect  //显示对象的css选择器表达式  通用queryselect

 

  hideBtn

    hideBtn-queryselect  //显示对象的css选择器表达式  通用queryselect

 

  taggleBtn

    taggleBtn-queryselect  //显示对象的css选择器表达式  通用queryselect

 

  checkboxBtn  //属性函数 checkbox 总开关

    checkboxBtn-queryselect //选择器

 

  onFullScreen //开启全屏

    onFullScreen-queryselect  

 

  offFullScreen //关闭全屏

 

  taggleFullScreen 

    taggleFullScreen-queryselect

 

  taggleAttr

    taggleAttr-queryselect

    taggleAttr-replace   //替换的值

    taggleAttr-replacetype  //替换的属性  默认为innerHTML