/**
 * @auther luoyouhua
 */
if(!window.$ID) window.$ID = function(e){return document.getElementById(e)}

function formatDate(date, format) {
		if(!date) date = new Date();
		format=format || "yyyy-MM-dd";
			var dd=LZ(date.getDate());
			var MM=LZ(date.getMonth() + 1);
			var yyyy=date.getFullYear();
			var hh=LZ(date.getHours());
			var mi=LZ(date.getMinutes());
			var ss=LZ(date.getSeconds());
			return format.replace("yyyy", yyyy).replace("MM", MM).replace("dd", dd).replace("hh", hh).replace("mm", mi).replace("ss", ss);
}
function LZ(x) {
	return (x < 0 || x > 9 ? "" : "0") + x
}
/**只能输入数字*/
function justNum(passCode){
          var evt = window.event?window.event:justNum.caller.arguments[0];
	      var code = window.event?event.keyCode:evt.which;
	      var b0=((code>=48)&&(code<=57)||(code==8));var b1=false;
	      if(!!passCode){
	        for(var i=0;i<passCode.length;i++){
	           if(code==passCode[i]) b1=true;
	        }
	      }
	      if(!(b0||b1)){
	         window.event?window.event.keyCode=0:evt.preventDefault();
	      }
 }
String.prototype.trim = function(){
  return this.replace(/(^\s*)|(\s*$)/g,"");
}
/**
 * encodeURI(url):对url进行编码(只对参数部分进行编码)
 * encodeURIComponent(url):对整个url进行编码
 */
var endecode = {
  encodeURI :function(url){
     return encodeURI(url);
  },
  encodeURIComponent:function(url){
     return encodeURIComponent(url);
  },
  decodeURI : function(url){
     return decodeURI(url);
  },
  decodeURIComponent : function(url){
     return decodeURIComponent(url);
  }
};
var validate = {
  /**validagte null*/
  checkNull:function(s,msg/**错误信息*/,l/**最小长度*/,target,css){
     var lth = l||1;var b = s.trim().length<lth;
     if(!b) msg="";
     _alert(msg,target,css); 
     return b;
  },
  /**validate email*/
  isEmail:function(s,msg,target,css){
     var b= !!s?/^\w+@\w+\..+$/.test(s):false;
     if(b) msg="";
     _alert(msg,target,css);
     return b;
  },
  /**validate number*/
  isNumber : function(s){
     return !!s?/^[0-9]+$/.test(s):false;
  },
  /**validate chinese中文和全角符*/
  isChinese : function(s){
    return !!s?/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/.test(s):false;
  },
  /**validate url*/
  isURL:function(s,msg,target,css){
    var b = /(?:http|https):\/\/[^\.]+\..+$/.test(s);
    if(b) msg=""; 
     _alert(msg,target,css);
    return b;
  }
}



function _alert(msg,target,css){
  var c = css||"red4";
  if(target){
     target.innerHTML=msg;
     target.className = c;
  }else
    alert(msg);
}
/**浏览器判断*/
var broswer = {
  isMozilla :(typeof document.implementation!='undefined')&&(typeof document.implementation.createDocument!='undefined')&&(typeof HTMLDocument!='undefined'),
  isIE :window.ActiveXObject?true:false,
  isOpera:(window.navigator.userAgent.toLowerCase().indexOf('opera')!=-1)
}
var listen = {
  addEvent:function(target,t,fn){
     if(target.addEventListener){
        target.addEventListener(t,fn,false);
     }else if(target.attachEvent){
        target.attachEvent('on'+t,fn);
     }else{
        target['on'+t] = fn;
     }
  },
  removeEvent:function(target,t,fn){
     if(target.removeEventListener){
        target.removeEventListener(t,fn,false);
     }else if(target.detachEvent){
        target.detachEvent('on'+t,fn);
     }else{
        target['on'+t] = null;
     }
  }
}
function fileterSubString(target,len/**最大字符长度*/){
    if(!target) return;
    var v = target.value||"";
    target.innerHTML = v.length>len?v.substring(0,len):v;
}



/**===========================================*/
/** util define **/    
var D=document,util={
    //强制转换成数组
    $FA: function(a){
        var r=[];
        util.map(a,function(e){r.push(e)});
        return r
    }, 
    //增加事件监听
	$AEV: function(t,e,fn){
		if(t){
			if(window.addEventListener){
				t.addEventListener(e,fn,false)
			}else if(window.attachEvent){
				t.attachEvent("on"+e,fn)
			}else{
				t["on"+e]=fn
			}
		}
	},
	//获取Url中的参数
	$P: function(a,b){
		var s=null,str;
		b=b||location.href;
		if(util.isString(a)){
			if(b.match(new RegExp("[?&]?"+a+"=([^&#]*)[&$]?","gi"))){
				s=RegExp.$1
			}
		}else if(util.isNumber(a)&&(str=b.match(/\/([^\/]+)|^([^\/]+)$/gi))){
			s=a<str.length?str[a]:null;
			if(s.charAt(0)=="/"){
				s=s.substring(1)
			}
		}
		return s;
	},
	//函数绪定到某个对像
	$b: function(){
		var a=util.$FA(arguments),o=a.shift(),f=a.shift();
		return function(){
		   return f.apply(o,a.concat(util.$FA(arguments)))
		}		
	},	
	//根据name获取元素
	$by: function(n){
		return D.getElementsByName(n)	
	},
	//增加一个css样式
	addClass: function(e,c){
		if (!util.hasClass(e,c)) e.className = (e.className + ' ' + c).clean();
		return e
	},
	//移除一个css样式
	removeClass: function(e,c){
		e.className = e.className.replace(new RegExp('(^|\\s)' + c + '(?:\\s|$)'), '$1').clean();
		return e
	},	
	//是否包含样式类
	hasClass: function(e,c){
		return e.className.contains(c, ' ');
	},		
	//浏览器是否是IE
    isIe: function(){
    	var u=navigator.userAgent;
        return (u.toLowerCase().indexOf("msie")!=-1&&u.toLowerCase().indexOf("opera")==-1)
    },
    //浏览器是否是FireFox
    isMozilla: function(){
        return (navigator.userAgent.toLowerCase().indexOf("gecko")!=-1&&navigator.productSub>=20030210)
    },
    //是否是数组
    isArray: function(a){
        return a instanceof Array
    },    
    //是否是字符串
    isString:function(a){
        return (typeof a=='string')
    },
    isDict: function(o){
          return String(o).indexOf(" Object")!=-1
    },  
    isObject: function(obj) {
        return (typeof obj=='object')
    },      
    //是否是数字
    isNumber: function(a){
        return (typeof a=='number')
    },   
    //显示元素
    show: function(/*elms...*/){
        var a=util.$FA(arguments);
        util.map(a,function(e){$(e).style.display=''})
    },
	//隐藏元素
    hide: function(/*elms...*/) {
        var a=util.$FA(arguments);
        util.map(a,function(e){$(e).style.display='none'})
    },  
    //创建dom元素
    $C: function(d,n,a) {    	
        var p,doc=(d||D),e=doc.createElement(n),i=2,h;
        if(a&&util.isDict(a)){
        	var s='',h=util.isIe()&&a.type=='radio',hi=util.isIe()&&a.type=='checkbox';
            for(k in a){
                p=a[k];
               	if(h&&k||hi)
               		s+=' '+k+'='+(util.isString(p)?'\''+p+'\'':p);
         		else{                
	                if(k=="style")
	                    e.style.cssText=p;
	                else if(k=="class"||k=='className')
	                    e.className=p;
	                else
	                    e.setAttribute(k,p)
                }
            }
            if(h) e=doc.createElement('<input type=radio'+s+' >'); 
            if(hi) e=doc.createElement('<input type=checkbox'+s+'>');          
            i++
        }
        util.map(arguments,function(p){
        	if(p){
        		var t=typeof(p);
                if(t=='string'||t=='number')
                    p=D.createTextNode(p);
                e.appendChild(p)        		
        	}
        },i)
        return e
    }, 
    appChild:function(){
      var r = util.$FA(arguments);var p = r.shift();
      util.map(r,function(e){
         p.appendChild(e);
      })
    },     
    //获取单个css属性 
    getCss: function(e,p){
        e=$(e);
        var y;
        if(e.currentStyle)
            y=e.currentStyle[p];
		else if (window.getComputedStyle)
            y=D.defaultView.getComputedStyle(e,null).getPropertyValue(p);
		return y
    },  
    //转换成CSS尺寸  
    getCssDim: function(a){
        return util.isString(a)?a:a+"px"
    }, 
    //设置元素css样式
    setStyle: function(e,s) {
	    e=$(e);
	    var t=e.style,v;
	    for(var p in s){
	    	v=s[p];
	    	t[p]=p.toLowerCase()!='z-index'?util.getCssDim(v):v; 
	    }
    },
    //对数组中部分元素执行fn功能
    map: function(a,fn,/*optional*/f,l){
        var i=f||0,l=l||a.length;
        for(i;i<l;i++){
            var v=fn(a[i],i);
            if(v!=undefined)
                return v
        }
    },
    //查找元素
    find: function(a,fn,/*optional*/f,l){
        var i=f||0,l=l||a.length;
        for(i;i<l;i++)
            if(fn(a[i],i)) return a[i];
        return null
    },
    //获取元素值
    $v: function(a){
    	a=$(a);
    	var r=null;
    	if(a){
	    	var t=a.type,n=a.name;
	    	if(t=='radio'){
				a=util.find(util.$by(n),function(e){
					return e&&e.checked
				});  
				r=a?a.value:r;     		 	  		
	    	}else if(t=='checkbox'){ 
				util.map(util.$by(n),function(d){
					if(d&&d.checked){
						r=r?r+','+d.value:d.value
					}		
				});     		
	    	}
	    	else
	    		r=a.value;
    	}
		return r    
    },
    //设置元素值
    $s: function(e,v){
    	e=$(e);
    	var t=e.type,f;
    	if(t=='radio'){
			util.map(util.$by(e.name),function(d){
				if(d&&d.value==v)
					d.checked=1;
				else if(d)
					d.checked=0					
			});      		
    	}else{
    		f=e.tagName.toLowerCase();
    		if(f=='select'){
	      		util.map(e.options,function(d){
	      			if(d&&d.value==v)
						d.selected=1
	      		});	
    		}else if(e&&t=='checkbox'){
    			f=util.isArray(v);
				util.map(util.$by(e.name),function(d){
					if(d&&f)
						util.map(v,function(x){if(x==d.value) d.checked=1});
					else if(d&&d.value==v) 
						d.checked=1	
				});     			
    		}
    		else if(e&&f=='input')
    			e.value=v;
    		else
    			e.innerHTML=v
    	}
    },
    /*
	函数名称：trim
	函数功能: 去除字符串头部和尾部的空格
	传入参数：字符串变量
	传出结果：处理后的子串
   */
    $trim:function(str){
	   return str.replace(/(^\s*)|(\s*$)/g, "");
    },
    
    /*
     函数名称：$fixed
	函数功能: 保留小数点后n位
	*/
    $fixed: function (x, n) {
    var xiao="文件上传失败：上传文件过大;";
	with(Math){
		var N = Math.pow(10,n);
		return Math.round(x * N) / N;
	}
}  
    
  
 }

