用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - javascript代码库

js常用代码整合

2013-10-29 作者: 免费源代码下载整理举报

[javascript]代码库

/*
    My Javascript zongliang
    Update Time 2012-12-31 10:41
*/
(function(window,undefined){
     
    var document = window.document;
    var navigator = window.navigator;
    var location = window.location;
    var undefined = undefined;
     
    var zl = function(id,dom,win){return zl.$(id,dom,win);};
 
    zl.version = '1.0.0.5';
    /* 
        zl.$ get Dom Object id:name,dom:parentNode Dom,win:window.
    */
    zl.$ = function(obj,dom,win){
        try{
            document = (win == undefined) ? window.document : win.document;
            if(typeof obj == 'string'){
                if(obj == '*'){
                    return (dom == undefined) ? document.getElementsByTagName('*') : zl.$(dom,undefined,win).getElementsByTagName('*');
                }
                var _obj = obj.split(' ');
                if(_obj.length > 1){
                    var pdom = zl.$(_obj[0], dom);
                    if(pdom != null){
                        if(zl.isset(pdom.length)){
                            var reary = [];
                            for(var i = 0; i < pdom.length; i++){
                                var _tmp = zl.$(obj.substr(_obj[0].length+1), pdom[i], win);
                                if(_tmp != null){
                                    if(zl.isset(_tmp.length)){
                                        for(var _i = 0; _i < _tmp.length; _i++){
                                            if(_tmp[_i] != null) reary[reary.length] = _tmp[_i];
                                        }
                                    }else{
                                        reary[reary.length] = _tmp;
                                    }
                                }
                                //reary[reary.length] = zl.$(obj.substr(_obj[0].length+1), pdom[i], win);
                            }
                            return (reary.length != 0) ? reary : null;
                        }else{
                            return zl.$(obj.substr(_obj[0].length+1), pdom, win);
                        }
                    }else{
                        return null;   
                    }
                } else if(obj.charAt(0) == '<' && obj.charAt(obj.length-1) == '>' && obj.length >= 3){
                    obj = obj.substr(1, obj.length-2);
                    return (dom == undefined) ? document.getElementsByTagName(obj) : zl.$(dom,undefined,win).getElementsByTagName(obj);
                } else if(obj.charAt(0) == '.' && obj.length >= 2){
                    obj = obj.substr(1, obj.length-1);
                    if(zl.isset(document.getElementsByClassName)){
                        return (dom == undefined) ? document.getElementsByClassName(obj) : zl.$(dom,undefined,win).getElementsByClassName(obj);
                    }else{
                        var oElm = (dom == undefined) ? document : zl.$(dom,undefined,win);
                        var arrElements = (oElm.all)? oElm.all : oElm.getElementsByTagName('*');
                        var arrReturnElements = new Array();
                        obj = obj.replace(/\-/g, "\\-");
                        var oRegExp = new RegExp('(^|\\s)' + obj + '(\\s|$)');
                        var oElement;
                        for(var i=0; i < arrElements.length; i++){
                            oElement = arrElements[i];
                            if(oRegExp.test(oElement.className)){
                                arrReturnElements.push(oElement);
                            }
                        }
                        return (arrReturnElements);
                    }
                } else if(obj.charAt(0) == '#' && obj.length >= 2){
                    obj = obj.substr(1, obj.length-1);
                    if(zl.isset(document.getElementsByName)){
                        return (dom == undefined) ? document.getElementsByName(obj) : zl.$(dom,undefined,win).getElementsByName(obj);
                    }else{
                        var oElm = (dom == undefined) ? document : zl.$(dom,undefined,win);
                        var arrElements = (oElm.all)? oElm.all : oElm.getElementsByTagName('*');
                        var arrReturnElements = new Array();
                        var oElement;
                        for(var i=0; i < arrElements.length; i++){
                            oElement = arrElements[i];
                            if(oElement.getAttribute('name') == obj){
                                arrReturnElements.push(oElement);
                            }
                        }
                        return (arrReturnElements);
                    }
                } else if(obj.charAt(0) == '[' && obj.charAt(obj.length-1) == ']' && obj.length >= 3){
                    _tmp = obj.substr(1, obj.length-2);
                    var _att = _tmp.split('=');
                    if(dom == undefined){
                        return zl.$('* '+obj,undefined,win);
                    }else{
                        return (zl.att(dom,_att[0]) == _att[1]) ? dom : null;
                    }
                } else {
                    return (dom == undefined) ? document.getElementById(obj) : zl.$(dom,undefined,win).getElementById(obj);
                }
            } else if(typeof obj == 'function'){
                zl.readyCallBacks[zl.readyCallBacks.length] = obj;
                zl.ready();
                //window.onload = function(){zl.ready();}
            } else {
                return obj;
            }
        }catch(e){
            zl.log('[Function][$] Get $ '+obj+' Error! '+e.message);
            return null;
        }
    };
    /*
        is Internet Explorer
    */
    zl.isIE = !!window.ActiveXObject;
    // close page
    zl.close = function(){window.opener = null; window.close();};
    // get rand int
    zl.r = zl.rand = function(rmin,rmax){
        if(!zl.isset(rmin))
            rmin = 0;
        if(!zl.isset(rmax))
            rmax = 100;
        return Math.round(rmin+(Math.random()*(rmax-rmin)));
    };
    // new error
    zl.e = zl.error = function(msg){throw new Error(msg);};
    //  Check Obj Is defined
    zl.isset = zl.isdefined = function(obj){ return (typeof obj != 'undefined'); };
    // log con:content ,e:error
    zl.log = function(con,e){
        if(window.console && window.console.log){
            if(e != undefined && e.message != undefined){
                console.log(con + '\r\n\t [Error: ' + e.message + ' ]\r\n');
            } else {
                console.log(con);
            }
        }
    };
    /*
        Show Error Msg
        msg     Error Content
    */
    zl.showError = function(msg){
        var showEr = zl.create({id:'show_Error_Msg',cssText:'border: 1px solid #CCC;background: #FFF;width:200px;min-height:50px;z-index:9999; filter:alpha(opacity=70);opacity:0.7;position:fixed;_position:absolute;right:5px;bottom:0px;_bottom:0px;'});
        zl.create({cssText:'width:100%;height:24px;background:#ccc;color:red;font-size:14px;',pdom:showEr,content:'\u9519\u8bef\u63d0\u793a<a href="javascript:zl.remove(\'show_Error_Msg\',3);" style="float:right;">Close</a>'});
        zl.create({cssText:'width:100%;background:#FFF;color:red;font-size:13px;padding:10px;overflow:hidden;display:block;',pdom:showEr,content:'<span>' + msg + '</span>'});
         
        setTimeout(function(){zl._fade(showEr,0,3,function(){zl.remove(this);});},3000);
         
    };
    /* 
        remove object dom  
    */
    zl.remove = zl.del = function(name,time){
        var obj = zl.$(name);
        if(time){
            zl._fade(obj,0,time,function(){zl.remove(this);});
        } else {
            if(obj != null){
                try{
                    obj.parentNode.removeChild(obj);
                    zl.log('Remove Object ' + obj + ' Success');
                }catch(e){
                    zl.log('Remove Object ' + obj + ' Failure! ', e);
                    return e.message;
                }
            }else{
                zl.log('[Function][remove]Remove Object ' + obj + ' Failure! [Error: Is Null! ]');
            }
        }
    };
    /*
        Verify CSS Style Att
         
    */
    zl.isCss = function(elem,css,val){
        try{
            elem = zl.$(elem);
            if(css in elem.style){
                if(zl.isset(val)){
                    elem.style[css] = val;
                    return elem.style[css] === val;
                }
                return true;
            }
            return false;
        }catch(e){
            zl.log('[Function][isCss] Get Elem ['+elem+'] CSS ['+css+'] Style Failure! ', e);
            return false;
        }
    };
    /*
        Set Dom CSS Style
         
    */
    zl.css = function(elem,css){
        try{
            elem = zl.$(elem);
            if(css.charAt(0) == '.'){
                zl.att(elem, 'class', css.substr(1, css.length-1));
            }else{
                zl.att(elem, 'style', css);
            }
        }catch(e){
            zl.log('[Function][css] Set Elem ['+elem+'] CSS ['+css+'] Style Failure! ', e);
            return false;
        }
    };
    /*
        Load JavaScript
    */
    zl.loadjs = zl.loadScript = function(src,charset,callback,kill){
        try{
            var h = zl.$('<head>')[0];
            var ss = zl.$('<script>', h);
            if (ss && ss.length > 0) {
                for(var i = 0; i < ss.length; i ++) {
                    if (zl.att(ss[i],'src') == src && !zl.isset(kill)) {
                        zl.log('Load JavaScript '+src+' Error.!  JS Already exists');
                        zl.run(callback);
                        return;
                    }
                }
            }
            var js = zl.create({tagName:'script',type:'text/javascript',_src:src,src:src,append:false});
            if(charset){js.charset = charset;}
            if (callback){
                if(zl.isIE){
                    js.onreadystatechange = function(){
                        if ('complete' == s.readyState || s.readyState == 'loaded'){
                            zl.run(callback);
                        }
                    };
                }else{
                    js.onload = function(){
                        zl.run(callback);
                    };
                }
            }
            zl.insert.child(h,js);
            return js;
        }catch(e){
            zl.log('[Function][loadjs] Load JavaScript '+src+' Failure! ', e);
        }
    };
    /*
        Run Function
    */
    zl.run = function(callback){
        try{
            if(typeof callback == 'string'){
                eval(callback);
            }else{
                callback.call(document);
            }
        }catch(e){
            zl.log('[Function][run] Run JavaScript Function '+callback+' Failure! ', e);
        }
    };
    /* 
        Get js parameter   
    */
    zl.p = zl.parameter = function(name,def,url){
        try{
            if(!zl.isset(url)){
                var scripts = zl.$('<script>');
                var js = scripts[scripts.length-1];
                if(name == undefined) return js;
                url = js.src;
            }
            var qs = url.split('?');
            if (name == null || name == ''){return (qs.length > 1) ? qs[qs.length-1] : ''; }
            var str = qs[qs.length-1].split("&");
            var i = 0;
            while(str[i] != null) {
                var keys = str[i].split("=");
                var j = 0,value = "";
                while(keys[j] != null) {
                    if(j != 0) value = value + keys[j];
                    j++;
                }
                if(keys[0] == name) return value;
                i++;
            }
            return (!zl.isset(def)) ? '' : def;
        }catch(e){
            zl.log('[Function][p] Get Parameter Failure! ', e);
            return '';
        }
    };
    /*
        Get All Child Nodes
    */
    zl.childNodes = function(elem,tag){
        try{
            var childs = new Array();
            var nodes = elem.childNodes;
            for(var i = 0; i < nodes.length; i++){
                if(zl.isset(nodes[i].tagName)){
                    if(typeof tag != 'string' || nodes[i].tagName.toLowerCase() == tag.toLowerCase()){
                        childs[childs.length] = nodes[i];
                    }
                }
            }
            return childs;
        }catch(e){
            zl.log('[Function][childNodes] Get Object Dom ' + elem + ' All ChildNodes Tag ' + tag + ' Failure! ', e);
            return zl.$('<' + tab + '>', elem);
        }
    };
    /*
        Get Or Set Attrib
    */
    zl.att = zl.attribute = function(elem,key,val){
        try{
            if(zl.isset(val)){
                if(typeof val == 'function'){
                    try{eval('elem.'+key+' = '+val+';');}catch(e){elem.setAttribute(key, val);}
                }else if(val == null){
                    elem.removeAttribute(key);
                }else{
                    try{elem.setAttribute(key, val);}catch(e){eval('elem.'+key+' = '+val+';');}
                }
            } else {
                return elem.getAttribute(key);
            }
        }catch(e){
            zl.log('[Function][att] Get Or Set Attribute In '+elem+' Failure! ', e);
            return null;
        }
    };
    /*
        Get Dom Location x,y,h,w
        return obj
    */
    zl.loc = zl.dom_location = function(elem){
        try{
            if(arguments.length != 1 || elem == null ){
                return null;
            }
            var offsetTop = elem.offsetTop;
            var offsetLeft = elem.offsetLeft;
            var offsetWidth = elem.offsetWidth;
            var offsetHeight = elem.offsetHeight;
            while( elem = elem.offsetParent){
                if(elem.style.position == 'absolute' || elem.style.position == 'relative' || ( elem.style.overflow != 'visible' && elem.style.overflow != '' )){
                    break;
                }
                offsetTop += elem.offsetTop;
                offsetLeft += elem.offsetLeft;
            }
            return {top:offsetTop,left:offsetLeft,width:offsetWidth,height:offsetHeight};
        }catch(e){
            zl.log('[Function][loc] Get Location '+elem+' Failure! ', e);
            return null;
        }
    };
    /*
        load dom time
    */
    zl.loadTime = 0;
    /*
        rand callbacks
    */
    zl.readyCallBacks = [];
    /*
        ready window.onload ,,,
    */
    zl.ready = function(obj){
        try{
            if(zl.isset(obj) ){
                zl.readyCallBacks[zl.readyCallBacks.length] = obj;
            }
            zl.loadTime = zl.loadTime + 1;
            if(document.readyState == 'complete' && zl.readyCallBacks != []){
                for(var i = 0,ic = zl.readyCallBacks.length; i < ic; i++ ){
                    try{
                        zl.run(zl.readyCallBacks[i]);
                        /*
                        if(typeof zl.readyCallBacks[i] == 'string'){
                            eval(zl.readyCallBacks[i]);
                        }else{
                            zl.readyCallBacks[i].call(document);
                        }
                        */
                        //delete zl.readyCallBacks[i];
                    }catch(e){
                        zl.log('[Function][ready] Ready CallBack Failure! ', e);
                    }
                }
                zl.readyCallBacks = [];
            }else{
                setTimeout(function(){zl.ready();},1);
            }
        }catch(e){
            zl.log('[Function][ready] Ready Function Failure!',e);
        }
    };
    /*
        Check Default Option
    */
    zl.cd = zl.checkDefaultOpt = function(def_opt,opt){
        try{
            if(!opt) {
                opt = def_opt;
            }else{
                for(var dfo in def_opt){
                    if(opt[dfo] == undefined)
                        opt[dfo] = def_opt[dfo];
                }
            }
            return opt;
        }catch(e){
            zl.log('[Function][checkDefaultOpt] Check Default Option Failure! ', e);
            return null;   
        }
    };
    /*
        Get XmlHttp Object Ajax
        return Object or null;
    */
    zl.getXmlHttpObject = function(){
        try{
            var xmlHttp = null;
            try{
                xmlHttp = new XMLHttpRequest();
            }catch(e){
                try{
                    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                }catch(e){
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
            return xmlHttp;
        }catch(e){
            zl.log('[Function][getXmlHttpObject] get XML In Ajax Object Demo Failure!',e); 
        }
    };
    /*
        My Ajax obj
        opt option
    */
    zl.ajax = function(opt){
        var df_opt = {type:'post', url:'', query:'', dataType:'', async:true, success:function(o){}};
        opt = zl.cd(df_opt,opt);
        var xmlAjax = zl.getXmlHttpObject();
        if(xmlAjax == null){
            alert('\u60a8\u7684\u6d4f\u89c8\u5668\u53ef\u80fd\u4e0d\u652f\u6301Ajax.\u8bf7\u68c0\u67e5!');
        }else{
            try{
                if(opt.type == 'get') opt.url = opt.url + '?' + opt.query;
                xmlAjax.onreadystatechange = function(){
                    if(xmlAjax.readyState == 4 || xmlAjax.readyState == "complete"){
                        try{
                            if(opt.success){
                                var reData = xmlAjax.responseText;
                                if(opt.dataType == 'json'){
                                    try{reData = zl.json(reData);}catch(e){zl.log('Content ReData Type Failure! ', e);}
                                } else if (opt.dataType == 'xml'){
                                    try{reData = zl.xml(reData);}catch(e){zl.log('Content ReData Type Failure! ', e);}
                                }
                                if(typeof opt.success != 'string'){
                                    opt.success.call(this,reData);
                                }else{
                                    eval(opt.success + '(reData);');
                                }
                            }
                        }catch(e){
                            zl.log('Get Ajax Data Failure! ', e);
                            alert(e.message);
                        }
                    }
                }
                xmlAjax.open(opt.type, opt.url, opt.async);
                xmlAjax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                xmlAjax.send(opt.query);
            }catch(e){
                zl.log('[Function][ajax] Send Ajax Failure! ', e);
                alert(e.message);
            }
        }  
    };
    /*
        open new window run code
        code Code
    */
    zl.runCode = function(code){
        try{
            if(code != ''){
                var newwin = window.open('','','');
                newwin.opener = null;
                newwin.document.write(code);
                newwin.document.close();
                return newwin;
            }
        }catch(e){
            zl.log('[Function][runCode] Run Code Failure!',e);
        }
    };
    /*
        Copy Elem Style
        New Elem In Elem
    */
    zl.cpem = zl.copyElem = function(elem,opt){
        try{
            elem = zl.$(elem);
            if(elem == null) return null;
            if(typeof opt == 'undefined') opt = {append:false};
            //var cssText = (typeof opt['cssText'] == 'undefined') ? '' : opt['cssText'];
            var cssText = '';
            var locElem = zl.loc(elem);
            cssText = cssText + 'width:' + locElem.width + 'px;';   //elem.offsetWidth
            cssText = cssText + 'height:' + locElem.height + 'px;'; //elem.offsetHeight
            cssText = cssText + 'left:' + locElem.left + 'px;';     //elem.offsetLeft
            cssText = cssText + 'top:' + locElem.top + 'px;';       //elem.offsetTop
            cssText = cssText + 'position:absolute;z-index:99999;';
 
            opt['cssText'] = (typeof opt['cssText'] == 'undefined') ? cssText : cssText + opt['cssText'];
             
            return zl.create(opt);
        }catch(e){
            zl.log('[Function][copyElem] Copy Element Failure!',e);
            return null;
        }
    };
    /* 
        Create Object Dom
        opt option
    */
    zl.create = zl.newDom = function(opt){
        try{
            if(typeof opt == 'string'){
                 var obj = document.createElement('div');
                 obj.innerHTML = opt;
                 return obj.childNodes;
            }else{
                var df_opt = {tagName:'div',id:'c_obj',name:'c_obj',css:'',cssText:'',content:'',append:true,pdom:'',bdom:'',adom:''};
                opt = zl.cd(df_opt,opt);
                var obj = document.createElement(opt.tagName);
                try{
                    obj.id = opt.id;
                    obj.name = opt.name;
                    obj.className = opt.css;
                    obj.style.cssText = opt.cssText;
                    try{obj.innerHTML = opt.content;}catch(ex){}
                    for(var i in opt){
                        if(i != 'tagName' && i != 'id' && i != 'name' && i != 'css' && i != 'cssText' && i != 'content' && i != 'append' && i != 'pdom' && i != 'bdom' && i != 'adom'){
                            zl.att(obj,i,opt[i]);
                            //try{
                            //  if(opt[i] != undefined) obj.setAttribute(i, opt[i]);
                            //}catch(e){
                            //  eval('obj.'+i+' = opt.'+i+';');
                            //}
                        }
                    }
                }catch(exs){}
                if(opt.append){
                    if(opt.pdom != ''){
                        zl.insert.child(opt.pdom, obj);
                    }else if(opt.bdom != ''){
                        zl.insert.before(opt.bdom, obj);
                    }else if(opt.adom != ''){
                        zl.insert.after(opt.adom, obj);
                    }else{
                        zl.insert.child(document.body, obj);
                    }
                }
                return obj;
            }
        }catch(e){
            zl.log('[Function][create] CreateElement Object Failure! ', e);
            //alert(e.message);
            return null;
        }
    };
    /*
        Insert Dom
    */
    zl.insert = {
        before : function(elem,newElem){
            try{
                return zl.$(elem).parentNode.insertBefore(newElem, zl.$(elem));
            }catch(e){
                zl.log('[Function][insert.before] Insert Object Dom '+newElem+' In '+elem+' Before Failure! ', e);
                return false;
            }
        },
        after : function(elem,newElem){
            try{
                if(elem.parentNode.lastChild == elem){
                    return elem.parentNode.appendChild(newElem);
                }else{
                    return elem.parentNode.insertBefore(newElem,elem.nextSibling);
                }
            }catch(e){
                zl.log('[Function][insert.after] Insert Object Dom '+newElem+' In '+elem+' After Failure! ', e);
                return false;
            }
        },
        child : function(elem,newElem){
            try{
                return zl.$(elem).appendChild(newElem);
            }catch(e){
                zl.log('[Function][insert.child] Insert Object Dom '+newElem+' In '+elem+' Failure! ', e);
                return false;
            }      
        }
    };
    /*
        My Form Option
        Form
    */
    zl.fm = zl.Form = {
        Init : function(){
            /*  Unfinished...   */
        }
    };
    /*
        ImageErr check images onerror
        img     image object
        url     default image url
    */
    zl.imageErr = function(img,url){
        try{
            img = zl.$(img);
            //img.onerror = function(){img.src = url;}
            var _img = new Image();
            _img.src = img.src;
            _img.onerror = function(){
                zl.att(img,'source-src',img.src);
                img.src = url;
            }
            /*
            if(!img.complete){
                var itp = obj.src.substr(-3);
                if(itp == 'jpg' || itp == 'peg' || itp == 'png' || itp == 'gif' || itp == 'bmp'){
                    obj.setAttribute('source-src', obj.src);
                    obj.src = url;
                }
            }
            */
        }catch(e){
            zl.log('[Function][imageErr] Load Image Error Failure! ', e);
            return '';
        }
    };
    /*
        Default Image
    */
    zl.imageDefault = function(url){
        try{
            var _img = new Image();
            _img.src = url;
            _img.onload = function(){
                var imgs = zl.$('<img>');
                for(var i in imgs){
                    zl.imageErr(imgs[i],url);
                }  
            }
        }catch(e){
            zl.log('[function][imageDefault] Setting Images Default Url Failure! ', e);
            return ''
        }
    };
    /*
        Get  Path
        src     path
        return (error)?'':the Path;
    */
    zl.getPath = function(src){
        try{
            if(!zl.isset(src)) src = zl.parameter().src;
            var path = src.substring(0,(src.length - zl.parameter('').length));
            return path.substring(0,path.lastIndexOf('/')+1);
        }catch(e){
            zl.log('[Function][getPath] Get Path Failure! ', e);
            return '';
        }
    };
    /*
        Get User Browser Info  
        r   retype
        return (r != null)?Browser Version:Object info;
    */
    zl.bs = zl.browser = function(r){
        try{
            var bsary = new Array();
            bsary[0] = new Array('MSIE ', 'Internet Explorer', 'Microsoft', '');
            bsary[1] = new Array('Chrome\\/', 'Chrome', 'Google', '');
            bsary[2] = new Array('Firefox\\/', 'Firefox', 'Mozilla', '');
            bsary[3] = new Array('Opera\\/', 'Opera', 'Opera Software', 'Version\\/[\\d+.\\d+]+');
            bsary[4] = new Array('Safari\\/', 'Safari', 'Apple', 'Version\\/[\\d+.\\d+]+');
            for(var i = 0; i < bsary.length; i++){
                var ocode = '_reg = /'+bsary[i][0]+'[\\d+.\\d+]+/;';
                ocode = ocode + 'var _bv = _reg.exec(navigator.userAgent);';
                eval(ocode);
                if(_bv){
                    if(bsary[i][3] != ''){
                        var ocode = '_reg = /'+bsary[i][3]+'/;';
                        ocode = ocode + 'var _bv = _reg.exec(navigator.userAgent);';
                        eval(ocode);
                    }
                    _reg = /[\d+.\d+]+/;
                    var _v = _reg.exec(_bv)[0];
                    var _obj = bsary[i][2]+' '+bsary[i][1]+' '+_v;
                    return (r != undefined) ? _obj : {obj:_obj,company:bsary[i][2],name:bsary[i][1],version:_v};
                }
            }
            return 'Unknown';
        }catch(e){
            zl.log('[Function][browser] Get Browser Info Failure! ', e);
            return e.message;
        }
    };
    /*
        Get User System Info   
        r   retype
        return (r != null)?System Version:Object info;
    */
    zl.os = zl.system = function(r){
        try{
            var osary = new Array();
            osary[0] = new Array('/windows nt 95/', 'Windows 95', 'Microsoft');
            osary[1] = new Array('/windows nt 4.90/', 'Windows ME', 'Microsoft');
            osary[2] = new Array('/windows nt 98/', 'Windows 98', 'Microsoft');
            osary[3] = new Array('/windows nt 5.0/', 'Windows 2000', 'Microsoft');
            osary[4] = new Array('/windows nt 5.1/', 'Windows XP', 'Microsoft');
            osary[5] = new Array('/windows nt 6.0/', 'Windows Vista', 'Microsoft');
            osary[6] = new Array('/windows nt 6.1/', 'Windows 7', 'Microsoft');
            osary[7] = new Array('/windows nt 6.2/', 'Windows 8', 'Microsoft');
            osary[8] = new Array('/windows nt 32/', 'Windows 32', 'Microsoft');
            osary[9] = new Array('/windows nt nt/', 'Windows NT', 'Microsoft');
            osary[10] = new Array('/mac os/', 'Mac OS', 'Apple');
            osary[11] = new Array('/linux/', 'Linux', 'Unknown');
            osary[12] = new Array('/unix/', 'Unix', 'Unknown');
            osary[13] = new Array('/sun os/', 'SunOS', 'SUN');
            osary[14] = new Array('/ibm os/', 'IBM OS/2', 'IBM');
            osary[15] = new Array('/mac pc/', 'Macintosh', 'Unknown');
            osary[16] = new Array('/powerpc/', 'PowerPC', 'Unknown');
            osary[17] = new Array('/aix/', 'AIX', 'Unknown');
            osary[18] = new Array('/hpux/', 'HPUX', 'Unknown');
            osary[19] = new Array('/netbsd/', 'NetBSD', 'Unknown');
            osary[20] = new Array('/bsd/', 'BSD', 'Unknown');
            osary[21] = new Array('/osfl/', 'OSF1', 'Unknown');
            osary[22] = new Array('/irix/', 'IRIX', 'Unknown');
            osary[23] = new Array('/freebsd/', 'FreeBSD', 'Unknown');
             
            for(var i = 0; i < osary.length; i++){
                var ocode = '_reg = '+osary[i][0]+';';
                ocode = ocode + 'var _bv = _reg.exec(navigator.userAgent.toLowerCase());';
                eval(ocode);
                if(_bv){
                    var _obj = osary[i][2]+' '+osary[i][1];
                    return (r != undefined) ? _obj : {obj:_obj,company:osary[i][2],name:osary[i][1]};
                }
            }
            return 'Unknown';
        }catch(e){
            zl.log('[Function][system] Get System Info Failure! ', e);
            return e.message;
        }
    };
    /*
        Change object Transparency
        element         Object Dom
        Transparency    Transparency value
        speed           Change Speed
        callback        CallBack
    */
    zl._fade = zl.fade = zl.transparency = function(element, transparency, speed, callback){
        try{
            element = zl.$(element);
            if(!element.effect){
                element.effect = {};
                element.effect._fade=0;
            }
            clearInterval(element.effect._fade);
            var speed=speed||1;
            var start=(function(elem){
                var alpha;
                if(navigator.userAgent.toLowerCase().indexOf('msie') != -1){
                        alpha=elem.currentStyle.filter.indexOf("opacity=") >= 0?(parseFloat( elem.currentStyle.filter.match(/opacity=([^)]*)/)[1] )) + '':
                        '100';
                }else{
                        alpha=100*elem.ownerDocument.defaultView.getComputedStyle(elem,null)['opacity'];
                }
                return alpha;
            })(element);
            //zl.log('start: '+start+" end: "+transparency);
            element.effect._fade = setInterval(function(){
                start = start < transparency ? Math.min(start + speed, transparency) : Math.max(start - speed, transparency);
                element.style.opacity =  start / 100;
                element.style.filter = 'alpha(opacity=' + start + ')';
                if(Math.round(start) == transparency){
                    element.style.opacity =  transparency / 100;
                    element.style.filter = 'alpha(opacity=' + transparency + ')';
                    clearInterval(element.effect._fade);
                    if(callback)callback.call(element);
                }
            }, 20);
        }catch(e){
            zl.log('[Function][_fade] Change object Transparency Failure![ ' + element + '] ', e);
            return e.message;
        }
    };
    /*
        Change object Location
        element         Object Dom
        position        Change Option
        speed           Change Speed
        callback        CallBack
    */
    zl._move = zl.move = function(element, position, speed, callback){
        try{
            element = zl.$(element);
            if(!element.effect){
                element.effect = {};
                element.effect._move=0;
            }
            clearInterval(element.effect._move);
            var speed=speed||10;
            var start=(function(elem){
                var posi = {left:elem.offsetLeft, top:elem.offsetTop};
                while(elem = elem.offsetParent){
                    posi.left += elem.offsetLeft;
                    posi.top += elem.offsetTop;
                };
                return posi;
            })(element);
            element.style.position = 'absolute';
            var style = element.style;
            var styleArr=[];
            if(typeof(position.left)=='number')styleArr.push('left');
            if(typeof(position.top)=='number')styleArr.push('top');
            element.effect._move = setInterval(function(){
                for(var i=0;i<styleArr.length;i++){
                    start[styleArr[i]] += (position[styleArr[i]] - start[styleArr[i]]) * speed/100;
                    style[styleArr[i]] = start[styleArr[i]] + 'px';
                }
                for(var i=0;i<styleArr.length;i++){
                    if(Math.round(start[styleArr[i]]) == position[styleArr[i]]){
                        if(i!=styleArr.length-1)continue;
                    }else{
                        break;
                    }
                    for(var i=0;i<styleArr.length;i++)style[styleArr[i]] = position[styleArr[i]] + 'px';
                    clearInterval(element.effect._move);
                    if(callback)callback.call(element);
                }
            }, 20);
        }catch(e){
            zl.log('[Function][_move] Change object Location Failure! [' + element + '] ', e);
            return e.message;
        }
    };
    /*
        Change object Size
        element         Object Dom
        size            Object New Size Option
        speed           Change Speed
        callback        CallBack
    */
    zl._reSize = zl.reSize = zl.size = function(element, size, speed, callback){
        try{
            element = zl.$(element);
            if(!element.effect){
                element.effect = {};
                element.effect._resize=0;
            }
            clearInterval(element.effect._resize);
            var speed=speed||10;
            var start = {width:element.offsetWidth, height:element.offsetHeight};
            var styleArr=[];
            if(!(navigator.userAgent.toLowerCase().indexOf('msie') != -1&&document.compatMode == 'BackCompat')){
                var CStyle=document.defaultView?document.defaultView.getComputedStyle(element,null):element.currentStyle;
                if(typeof(size.width)=='number'){
                    styleArr.push('width');
                    size.width=size.width-CStyle.paddingLeft.replace(/\D/g,'')-CStyle.paddingRight.replace(/\D/g,'');
                }
                if(typeof(size.height)=='number'){
                    styleArr.push('height');
                    size.height=size.height-CStyle.paddingTop.replace(/\D/g,'')-CStyle.paddingBottom.replace(/\D/g,'');
                }
            }
            element.style.overflow = 'hidden';
            var style = element.style;
            element.effect._resize = setInterval(function(){
                for(var i=0;i<styleArr.length;i++){
                    start[styleArr[i]] += (size[styleArr[i]] - start[styleArr[i]]) * speed/100;
                    style[styleArr[i]] = start[styleArr[i]] + 'px';
                }
                for(var i=0;i<styleArr.length;i++){
                    if(Math.round(start[styleArr[i]]) == size[styleArr[i]]){
                        if(i!=styleArr.length-1)continue;
                    }else{
                        break;
                    }
                    for(var i=0;i<styleArr.length;i++)style[styleArr[i]] = size[styleArr[i]] + 'px';
                    clearInterval(element.effect._resize);
                    if(callback)callback.call(element);
                }
            }, 20);
        }catch(e){
            zl.log('[Function][_reSize] Change object Size Failure! [' + element + '] ', e);
            return e.message;
        }
    };
    /*
        Hide Elem Dom
        time: hide time
        val: transparency
    */
    zl.hide = function(elem,time,val){
        try{
            if(!zl.isset(val)) val = 0;
            if(!zl.isset(time)) time = 1;
            zl.fade(elem,val,time);
        }catch(e){
            zl.log('[Function][hide] hide object Elem Failure![ ' + elem + '] ', e);
            return e.message;
        }
    };
    /*
        Show Elem Dom
        time: show time
        val: transparency
    */
    zl.show = function(elem,time,val){
        try{
            if(!zl.isset(val)) val = 100;
            if(!zl.isset(time)) time = 1;
            zl.fade(elem,val,time);
        }catch(e){
            zl.log('[Function][show] show object Elem Failure![ ' + elem + '] ', e);
            return e.message;
        }
    };
    /*
        Drag Object Dom
    */
    zl.drag = {
        /*  Unfinished...   */
    };
    /*
        Dom Keys Reg or Remove
        add Registration Key in Dom . shortcut:Key,callback:Trigger The Key CallBack,opt:Key Option
        remove() Remove Key In Dom. shortcut:key.
        weburl: http://www.openjs.com/scripts/events/keyboard_shortcuts/shortcut.js
    */
    zl.key = zl._key = zl.shortcuts = {
        all_shortcuts : [],
        add : function(shortcut_combination,callback,opt){
            try{
                var default_options = {'type':'keydown','propagate':false,'disable_in_input':false,'target':document,'keycode':false}
                opt = zl.cd(default_options, opt);
                var ele = zl.$(opt.target);
                var ths = this;
                shortcut_combination = shortcut_combination.toLowerCase();
                var func = function(e){
                    e = e || window.event;
                    if(opt['disable_in_input']){
                        var element;
                        if(e.target) element=e.target;
                        else if(e.srcElement) element=e.srcElement;
                        if(element.nodeType==3) element=element.parentNode;
                        if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return;
                    }
                    if (e.keyCode) code = e.keyCode;
                    else if (e.which) code = e.which;
                    var character = String.fromCharCode(code).toLowerCase();
                    if(code == 188) character=",";
                    if(code == 190) character=".";
                    var keys = shortcut_combination.split("+");
                    var kp = 0;
                    var shift_nums = {"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"};
                    var special_keys = {'esc':27,'escape':27,'tab':9,'space':32,'return':13,'enter':13,'backspace':8,'scrolllock':145,'scroll_lock':145,'scroll':145,'capslock':20,'caps_lock':20,'caps':20,'numlock':144,'num_lock':144,'num':144,'pause':19,'break':19,'insert':45,'home':36,'delete':46,'end':35,'pageup':33,'page_up':33,'pu':33,'pagedown':34,'page_down':34,'pd':34,'left':37,'up':38,'right':39,'down':40,'f1':112,'f2':113,'f3':114,'f4':115,'f5':116,'f6':117,'f7':118,'f8':119,'f9':120,'f10':121,'f11':122,'f12':123};
                    var modifiers = {
                        shift: { wanted:false, pressed:false},
                        ctrl : { wanted:false, pressed:false},
                        alt  : { wanted:false, pressed:false},
                        meta : { wanted:false, pressed:false}
                    };
                    if(e.ctrlKey)   modifiers.ctrl.pressed = true;
                    if(e.shiftKey)  modifiers.shift.pressed = true;
                    if(e.altKey)    modifiers.alt.pressed = true;
                    if(e.metaKey)   modifiers.meta.pressed = true;
                    for(var i=0; k=keys[i],i<keys.length; i++){
                        if(k == 'ctrl' || k == 'control') {
                            kp++;
                            modifiers.ctrl.wanted = true;
                        } else if(k == 'shift') {
                            kp++;
                            modifiers.shift.wanted = true;
                        } else if(k == 'alt') {
                            kp++;
                            modifiers.alt.wanted = true;
                        } else if(k == 'meta') {
                            kp++;
                            modifiers.meta.wanted = true;
                        } else if(k.length > 1) {
                            if(special_keys[k] == code) kp++;
                        } else if(opt['keycode']) {
                            if(opt['keycode'] == code) kp++;
                        } else {
                            if(character == k) kp++;
                            else {
                                if(shift_nums[character] && e.shiftKey) {
                                    character = shift_nums[character];
                                    if(character == k) kp++;
                                }
                            }
                        }
                    }
                    if(kp == keys.length && modifiers.ctrl.pressed == modifiers.ctrl.wanted && modifiers.shift.pressed == modifiers.shift.wanted && modifiers.alt.pressed == modifiers.alt.wanted && modifiers.meta.pressed == modifiers.meta.wanted){
                        var re = callback(e);
                        if((re != undefined && !re) || (re == undefined && !opt['propagate'])){
                            e.cancelBubble = true;
                            e.returnValue = false;
                            if (e.stopPropagation) {
                                e.stopPropagation();
                                e.preventDefault();
                            }
                            return false;
                        }else{
                            e.cancelBubble = false;
                            e.returnValue = true;
                            return true;   
                        }
                    }
                }
                this.all_shortcuts[shortcut_combination] = {
                    'callback':func,
                    'target':ele,
                    'event': opt['type']
                };
                if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
                else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
                else ele['on'+opt['type']] = func;
                zl.log('Registration Key '+shortcut_combination+' In '+opt['target']+' on'+opt['type']+' Success!');
            }catch(e){
                zl.log('[Function][key.add] Registration Key '+shortcut_combination+' Failure! ', e);
                return e.message;
            }
        },
        remove : function(shortcut_combination) {
            try{
                shortcut_combination = shortcut_combination.toLowerCase();
                var binding = this.all_shortcuts[shortcut_combination];
                delete(this.all_shortcuts[shortcut_combination])
                if(!binding) return;
                var type = binding['event'];
                var ele = binding['target'];
                var callback = binding['callback'];
                if(ele.detachEvent) ele.detachEvent('on'+type, callback);
                else if(ele.removeEventListener) ele.removeEventListener(type, callback, false);
                else ele['on'+type] = false;
                zl.log('Remove Key '+shortcut_combination+' In '+ele+' on'+type+' Success!');
            }catch(e){
                zl.log('[Function][key.remove] Remove Key '+shortcut_combination+' Failure! ',e);
                return e.message;
            }
        },
        source : 'http://www.openjs.com/scripts/events/keyboard_shortcuts/shortcut.js'
    };
    /*
        Cookie Class
        add Add New Cookie Afferent NewCookie Option
        get Get Cookie Value Afferent Cookie Name
        del Delete Cookie Afferent Cookie Name
    */
    zl.cookie = zl._cookie = {
        add : function(opt){
            try{
                if(!opt.name || !opt.value){throw new Error("Error: Cookie [name] And [value] Cant Null.");}
                var str = opt.name + "=" + escape(opt.value);
                if(opt.hours){
                    var exdate = new Date();
                    if(opt.hourstype=='d'){
                        exdate.setDate(exdate.getDay()+opt.hours);
                    }else if(opt.hourstype=='m'){
                        exdate.setDate(exdate.getMinutes()+opt.hours);
                    }else{
                        exdate.setDate(exdate.getHours()+opt.hours);
                    }
                    str += ";expires=" + exdate.toGMTString();
                }
                str += (opt.path) ? ";path=" + opt.path : "";
                str += (opt.domain) ? ";domain=" + opt.domain : "";
                str += (opt.secure) ? ";secure=" + opt.secure : "";
                document.cookie = str;
                zl.log('Add Cookie [' + opt.name + ']:[' + opt.value + '] Success.');
            }catch(e){
                zl.log('[Function][cookie.add] Add Cookie [' + opt.name + ']:[' + opt.value + '] Failure! ', e);
            }
        },
        get : function(ckName){
            try{
                if(document.cookie.length>0){
                    if(typeof ckName == 'undefined' || ckName == '') return document.cookie.toString();
                    var c_start = document.cookie.indexOf(ckName + "=");
                    if(c_start != -1){
                        c_start = c_start+ckName.length+1;
                        var c_end = document.cookie.indexOf(";",c_start)
                        if(c_end == -1) c_end = document.cookie.length;
                        return unescape(document.cookie.substring(c_start,c_end));
                    }
                }
                return null;
            }catch(e){
                zl.log('[Function][cookie.get] Get Cookie [' + ckName + '] Failure! ', e);
                return null;   
            }
        },
        del : function(ckName){
            try{
                var date = new Date();
                date.setTime(date.getTime() - 10000);
                document.cookie = ckName + "=; expires=" + date.toGMTString();
                zl.log('Delete Cookie [' + ckName + '] Success.');
            }catch(e){
                zl.log('[Function][cookie.del] Delete Cookie [' + ckName + '] Failure.');
            }
        }
    };
    /*
        My Check Class
        checkIsNull Check Afferent Object Dom Value Is Null or ''.o:object dom; return (is Null)?true:false;
        checkIsSame Check Afferent Object Dom Value Is Same .o:object dom,r:object dom; return true or false
        checkValLength Check Afferent Object Dom Value Length Is ok.o:object dom,n:min length,x:max length. return true or false
        checkObject Check Afferent Object Dom RegExp Verify.o:object dom,r:RegExp;return true or false;
    */
    zl.check = zl.myCheck = {
        checkIsNull : function(o){
            try{
                if(zl.$(o) == null){
                    if(typeof o == 'string') return (o == '' || o.replace(/(^\s+)|(\s+$i)/g,'') == '');
                    else return false;
                }else{
                    return (zl.$(o).value == '' || zl.$(o).value.replace(/(^\s+)|(\s+$i)/g,'') == '');
                }
            }catch(e){
                return false;
            }
        },
        checkIsSame : function(o,r){
            try{
                if(zl.$(o) == null || zl.$(r) == null){
                    if(typeof o == 'string' && typeof r == 'string') return (o == r);
                    else return false;
                }else{
                    return (zl.$(o).value == zl.$(r).value);
                }
            }catch(e){
                return false;
            }
        },
        checkIsInt : function(o){
            try{
                if(zl.$(o) == null){
                    if(typeof o == 'string' || typeof o == 'number') return !isNaN(o);
                    else return false;
                }else{
                    return !isNaN(zl.$(o).value);
                }
            }catch(e){
                return false;
            }
        },
        checkValLength : function(o,n,x){
            try{
                if(zl.$(o) == null){
                    if(typeof o == 'string') return (n <= o.length && o.length <= x);
                    else return false;
                }else{
                    return (n <= zl.$(o).value.length && zl.$(o).value.length <= x);
                }
            }catch(e){
                return false;  
            }
        },
        checkObject : function(o,r){
            try{
                if(zl.$(o) == null){
                    if(typeof o == 'string' && r != undefined) return (o.replace(new RegExp(r,'g'),'') == '');
                    else return false;
                }else{
                    return (zl.$(o).value.replace(new RegExp(r,'g'),'') == '');
                }
            }catch(e){
                return false;  
            }
        }
    };
    /*
        Check Object All ChildNodes Images size
        obj     Object
        w       Max Width
        h       Max Height
    */
    zl.checkImage = function(obj,w,h){
        try{
            var ImgCell = zl.$('<img>', zl.$(obj));
            for(var i=0; i<ImgCell.length; i++){
                var ImgWidth = ImgCell(i).width;
                var ImgHeight = ImgCell(i).height;
                if(ImgWidth > w){
                    var newHeight = w*ImgHeight/ImgWidth;
                    if(newHeight <= h){
                        ImgCell(i).width = w;
                        ImgCell(i).height = newHeight;
                    }else{
                        ImgCell(i).height = h;
                        ImgCell(i).width = h*ImgWidth/ImgHeight;
                    }
                }else{
                    if(ImgHeight > h){
                        ImgCell(i).height = h;
                        ImgCell(i).width = h*ImgWidth/ImgHeight;
                    }else{
                        ImgCell(i).width = ImgWidth;
                        ImgCell(i).height = ImgHeight;
                    }
                }
            }
        }catch(e){
            zl.log('[Function][runCode] Check Images Size Max or Min Failure!',e); 
        }
    };
    /*
        Check Object Html Dom is Pobj childNodes
        obj     Object
        parent  The ParentNode Object
        return (obj is Pobj ChildNodes)?true:false;
    */
    zl.checkHtml = function(obj,parent){
        try{
            parent = zl.$(parent);
            for(obj = zl.$(obj); obj != document.body; obj = obj.parentNode){
                if(!zl.isset(obj) || obj == null)
                    return false;
                if(obj == parent)
                    return true;
            }
            return false;
        }catch(e){
            zl.log('[Function][checkHtml] Check Object Dom Failure! ', e);
            return false;
        }
    };
    /*
        Get Object Parent Dom
        elem    object
        parent  parent type
    */
    zl.getParent = function(elem,parent){
        try{
            elem = zl.$(elem);
            for(; elem != document.body; elem = elem.parentNode){
                if(elem == undefined || elem == null) return null;
                if(elem.tagName.toLowerCase() == parent.toLowerCase()) return elem;
            }
            return null;
        }catch(e){
            zl.log('[Function][getParent] Get Object Parent Dom Failure! ', e);
            return null;
        }
    };
    /* 
        Show Object show or hide
        o   object
        t   Change Time
        opt opt obj
        cb  callback
    */
    zl._stips = zl.flash = function(obj,time,opt,callback){
        try{
            var obj = zl.$(obj);
            opt = zl.cd({i:0,x:100,v:5},opt);
            zl._fade(obj, opt.i, opt.v, function(){
                if(callback) callback.call(obj);
                zl._fade(obj, opt.x, opt.v, function(){
                    setTimeout(function(){zl._stips(obj, time, opt, callback); }, time);
                });
            });
        }catch(e){
            zl.log('[Function][flash] Show Object Dom Failure! ', e);
        }
    };
    /* 
        change Class Name
        obj         object
        newclass    New ClassName
        oldclass    Old ClassName
        other       OtherObject
    */
    zl.cc = zl.changDomClass = function(obj,newclass,oldclass,other){
        try{
            obj = zl.$(obj);
            var op = zl.childNodes(obj.parentNode,obj.tagName);
            for(var i=0; i<op.length; i++){
                if(op[i] != obj && op[i] != other && typeof oldclass != 'undefined'){
                    op[i].className = oldclass;
                }else if(op[i] != other && typeof newclass != 'undefined'){
                    op[i].className = newclass;
                }
            }
        }catch(e){
            zl.log('[Function][changeDomClass] Change Dom Class Failure! ', e);
        }
    };
    /*
        Tab
        Tab Object Show or Hide
    */
    zl.tab = zl._tab = function(elem,obj,nclass,oclass){
        try{
            zl.changDomClass(elem,nclass,oclass);
            obj = zl.$(obj);
            var op = zl.childNodes(obj.parentNode,obj.TagName);
            for(var i=0,c=op.length; i<c; i++){
                if(op[i].tagName != 'undefined' && op[i].tagName == obj.tagName){
                    if(op[i] != obj){
                        op[i].style.display = 'none';
                    }else{
                        op[i].style.display = '';
                    }
                }
            }
        }catch(e){
            zl.log('[Function][tag] Tab Object Dom Failure!',e);
        }
    };
    /* 
        conver Html Label
        con     HTMl Conetnt
    */
    zl.cv = zl.converHtmlLabel = function(con){
        //return document.createElement('div').appendChild(document.createTextNode(con)).parentNode.innerHTML;
        return con.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
    };
    /*
        Native Convert Ascii
    */
    zl.ascii = zl.nativeConvertAscii = function(str){
        try{
            var nativecode = str.split('');
            var ascii = '';
            for(var i = 0; i < nativecode.length; i++) {
                var code = Number(nativecode[i].charCodeAt(0));
                if (code > 127){
                    var charAscii = code.toString(16);
                    charAscii = new String('0000').substring(charAscii.length, 4) + charAscii;
                    ascii += '\\u' + charAscii;
                } else {
                    ascii += nativecode[i];
                }
            }
            return ascii;
        }catch(e){
            zl.log('[Function][ascii] Native Convert Ascii Failure!', e);
            return '';
        }
    };
    /*
        Ascii Convert Natvie
    */
    zl.natvie = zl.asciiConvertNative = function(str){
        try{
            var asciicode = str.split('\\u');
            var nativeValue = asciicode[0];
            for (var i = 1; i < asciicode.length; i++) {
                var code = asciicode[i];
                nativeValue += String.fromCharCode(parseInt('0x' + code.substring(0, 4)));
                if(code.length > 4) {
                    nativeValue += code.substring(4, code.length);
                }
            }
            return nativeValue;
        }catch(e){
            zl.log('[Function][natvie] Ascii Convert Native Failure!', e);
            return '';
        }
    }
    /* 
        conver Data JSON
        data    Conetnt
        source  JQuery http://code.jquery.com/jquery-1.7.2.js
    */
    zl.json = zl.parseJSON = function(data){
        try{
            if(typeof data !== 'string' || !data){
                return null;
            }
            if(window.JSON && window.JSON.parse){
                return window.JSON.parse(data);
            }
            rvalidchars = /^[\],:{}\s]*$/,
            rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
            rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
            rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g;
            if(rvalidchars.test(data.replace(rvalidescape,'@').replace(rvalidtokens,']').replace(rvalidbraces,''))){
                return (new Function('return ' + data))();
            }
            zl.log('Invalid JSON Failure!  ' + data );
        }catch(e){
            zl.log('[Function][json] Invalid Json Data Failure!',e);
            return null;
        }
    };
    /* 
        conver Data XML
        data    Conetnt
        source  JQuery http://code.jquery.com/jquery-1.7.2.js
    */
    zl.xml = zl.parseXML = function(data){
        try{
            if(typeof data !== 'string' || !data){
                return null;
            }
            var xml,tmp;
            try{
                if(window.DOMParser){
                    tmp = new DOMParser();
                    xml = tmp.parseFromString(data,'text/xml');
                }else{
                    xml = new ActiveXObject('Microsoft.XMLDOM');
                    xml.async = 'false';
                    xml.loadXML(data);
                }
            }catch(e){
                xml = undefined;
            }
            if(!xml || !xml.documentElement || xml.getElementsByTagName('parsererror').length){
                zl.log('Invalid XML Failure:' + data);
            }
            return xml;
        }catch(e){
            zl.log('[Function][tag] Invalid XML Data Failure!',e);
            return null;   
        }
    };
    /*
        MD5
        source: http://pajhome.org.uk/crypt/md5/2.2/md5-min.js
    */
    zl.md5 = {
        hexcase : 0,
        init : function(s){
            return zl.md5.hex_md5(s);
        },
        hex_md5 : function(a){
            return zl.md5.rstr2hex(zl.md5.rstr_md5(zl.md5.str2rstr_utf8(a)));
        },
        hex_hmac_md5 : function(a,b){
            return zl.md5.rstr2hex(zl.md5.rstr_hmac_md5(zl.md5.str2rstr_utf8(a),zl.md5.str2rstr_utf8(b)));
        },
        md5_vm_test : function(){
            return zl.md5.hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72";
        },
        rstr_md5 : function(a){
            return zl.md5.binl2rstr(zl.md5.binl_md5(zl.md5.rstr2binl(a),a.length*8));
        },
        rstr_hmac_md5 : function(c,f){
            var e=zl.md5.rstr2binl(c);
            if(e.length>16){
                e=zl.md5.binl_md5(e,c.length*8)
            }
            var a=Array(16),d=Array(16);
            for(var b=0;b<16;b++){
                a[b]=e[b]^909522486;
                d[b]=e[b]^1549556828
            }
            var g=zl.md5.binl_md5(a.concat(zl.md5.rstr2binl(f)),512+f.length*8);
            return zl.md5.binl2rstr(zl.md5.binl_md5(d.concat(g),512+128));
        },
        rstr2hex : function(c){
            try{
                zl.md5.hexcase
            }
            catch(g){
                zl.md5.hexcase = 0;
            }
            var f=zl.md5.hexcase?"0123456789ABCDEF":"0123456789abcdef";
            var b="";
            var a;
            for(var d=0;d<c.length;d++){
                a=c.charCodeAt(d);
                b+=f.charAt((a>>>4)&15)+f.charAt(a&15)
            }
            return b;
        },
        str2rstr_utf8 : function(c){
            var b="";
            var d=-1;
            var a,e;
            while(++d<c.length){
                a=c.charCodeAt(d);
                e=d+1<c.length?c.charCodeAt(d+1):0;
                if(55296<=a&&a<=56319&&56320<=e&&e<=57343){
                    a=65536+((a&1023)<<10)+(e&1023);
                    d++
                }
                if(a<=127){
                    b+=String.fromCharCode(a)
                }else{
                    if(a<=2047){
                        b+=String.fromCharCode(192|((a>>>6)&31),128|(a&63))
                    }else{
                        if(a<=65535){
                            b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))
                        }else{
                            if(a<=2097151){
                                b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))
                            }
                        }
                    }
                }
            }
            return b
        },
        rstr2binl : function(b){
            var a=Array(b.length>>2);
            for(var c=0;c<a.length;c++){
                a[c]=0
            }
            for(var c=0;c<b.length*8;c+=8){
                a[c>>5]|=(b.charCodeAt(c/8)&255)<<(c%32)
            }
            return a
        },
        binl2rstr : function(b){
            var a="";
            for(var c=0;c<b.length*32;c+=8){
                a+=String.fromCharCode((b[c>>5]>>>(c%32))&255)
            }
            return a
        },
        binl_md5 : function(p,k){
            p[k>>5]|=128<<((k)%32);
            p[(((k+64)>>>9)<<4)+14]=k;
            var o=1732584193;
            var n=-271733879;
            var m=-1732584194;
            var l=271733878;
            for(var g=0;g<p.length;g+=16){
                var j=o;
                var h=n;
                var f=m;
                var e=l;
                o=zl.md5.md5_ff(o,n,m,l,p[g+0],7,-680876936);
                l=zl.md5.md5_ff(l,o,n,m,p[g+1],12,-389564586);
                m=zl.md5.md5_ff(m,l,o,n,p[g+2],17,606105819);
                n=zl.md5.md5_ff(n,m,l,o,p[g+3],22,-1044525330);
                o=zl.md5.md5_ff(o,n,m,l,p[g+4],7,-176418897);
                l=zl.md5.md5_ff(l,o,n,m,p[g+5],12,1200080426);
                m=zl.md5.md5_ff(m,l,o,n,p[g+6],17,-1473231341);
                n=zl.md5.md5_ff(n,m,l,o,p[g+7],22,-45705983);
                o=zl.md5.md5_ff(o,n,m,l,p[g+8],7,1770035416);
                l=zl.md5.md5_ff(l,o,n,m,p[g+9],12,-1958414417);
                m=zl.md5.md5_ff(m,l,o,n,p[g+10],17,-42063);
                n=zl.md5.md5_ff(n,m,l,o,p[g+11],22,-1990404162);
                o=zl.md5.md5_ff(o,n,m,l,p[g+12],7,1804603682);
                l=zl.md5.md5_ff(l,o,n,m,p[g+13],12,-40341101);
                m=zl.md5.md5_ff(m,l,o,n,p[g+14],17,-1502002290);
                n=zl.md5.md5_ff(n,m,l,o,p[g+15],22,1236535329);
                o=zl.md5.md5_gg(o,n,m,l,p[g+1],5,-165796510);
                l=zl.md5.md5_gg(l,o,n,m,p[g+6],9,-1069501632);
                m=zl.md5.md5_gg(m,l,o,n,p[g+11],14,643717713);
                n=zl.md5.md5_gg(n,m,l,o,p[g+0],20,-373897302);
                o=zl.md5.md5_gg(o,n,m,l,p[g+5],5,-701558691);
                l=zl.md5.md5_gg(l,o,n,m,p[g+10],9,38016083);
                m=zl.md5.md5_gg(m,l,o,n,p[g+15],14,-660478335);
                n=zl.md5.md5_gg(n,m,l,o,p[g+4],20,-405537848);
                o=zl.md5.md5_gg(o,n,m,l,p[g+9],5,568446438);
                l=zl.md5.md5_gg(l,o,n,m,p[g+14],9,-1019803690);
                m=zl.md5.md5_gg(m,l,o,n,p[g+3],14,-187363961);
                n=zl.md5.md5_gg(n,m,l,o,p[g+8],20,1163531501);
                o=zl.md5.md5_gg(o,n,m,l,p[g+13],5,-1444681467);
                l=zl.md5.md5_gg(l,o,n,m,p[g+2],9,-51403784);
                m=zl.md5.md5_gg(m,l,o,n,p[g+7],14,1735328473);
                n=zl.md5.md5_gg(n,m,l,o,p[g+12],20,-1926607734);
                o=zl.md5.md5_hh(o,n,m,l,p[g+5],4,-378558);
                l=zl.md5.md5_hh(l,o,n,m,p[g+8],11,-2022574463);
                m=zl.md5.md5_hh(m,l,o,n,p[g+11],16,1839030562);
                n=zl.md5.md5_hh(n,m,l,o,p[g+14],23,-35309556);
                o=zl.md5.md5_hh(o,n,m,l,p[g+1],4,-1530992060);
                l=zl.md5.md5_hh(l,o,n,m,p[g+4],11,1272893353);
                m=zl.md5.md5_hh(m,l,o,n,p[g+7],16,-155497632);
                n=zl.md5.md5_hh(n,m,l,o,p[g+10],23,-1094730640);
                o=zl.md5.md5_hh(o,n,m,l,p[g+13],4,681279174);
                l=zl.md5.md5_hh(l,o,n,m,p[g+0],11,-358537222);
                m=zl.md5.md5_hh(m,l,o,n,p[g+3],16,-722521979);
                n=zl.md5.md5_hh(n,m,l,o,p[g+6],23,76029189);
                o=zl.md5.md5_hh(o,n,m,l,p[g+9],4,-640364487);
                l=zl.md5.md5_hh(l,o,n,m,p[g+12],11,-421815835);
                m=zl.md5.md5_hh(m,l,o,n,p[g+15],16,530742520);
                n=zl.md5.md5_hh(n,m,l,o,p[g+2],23,-995338651);
                o=zl.md5.md5_ii(o,n,m,l,p[g+0],6,-198630844);
                l=zl.md5.md5_ii(l,o,n,m,p[g+7],10,1126891415);
                m=zl.md5.md5_ii(m,l,o,n,p[g+14],15,-1416354905);
                n=zl.md5.md5_ii(n,m,l,o,p[g+5],21,-57434055);
                o=zl.md5.md5_ii(o,n,m,l,p[g+12],6,1700485571);
                l=zl.md5.md5_ii(l,o,n,m,p[g+3],10,-1894986606);
                m=zl.md5.md5_ii(m,l,o,n,p[g+10],15,-1051523);
                n=zl.md5.md5_ii(n,m,l,o,p[g+1],21,-2054922799);
                o=zl.md5.md5_ii(o,n,m,l,p[g+8],6,1873313359);
                l=zl.md5.md5_ii(l,o,n,m,p[g+15],10,-30611744);
                m=zl.md5.md5_ii(m,l,o,n,p[g+6],15,-1560198380);
                n=zl.md5.md5_ii(n,m,l,o,p[g+13],21,1309151649);
                o=zl.md5.md5_ii(o,n,m,l,p[g+4],6,-145523070);
                l=zl.md5.md5_ii(l,o,n,m,p[g+11],10,-1120210379);
                m=zl.md5.md5_ii(m,l,o,n,p[g+2],15,718787259);
                n=zl.md5.md5_ii(n,m,l,o,p[g+9],21,-343485551);
                o=zl.md5.safe_add(o,j);
                n=zl.md5.safe_add(n,h);
                m=zl.md5.safe_add(m,f);
                l=zl.md5.safe_add(l,e)
            }
            return Array(o,n,m,l)
        },
        md5_cmn : function(h,e,d,c,g,f){
            return zl.md5.safe_add(zl.md5.bit_rol(zl.md5.safe_add(zl.md5.safe_add(e,h),zl.md5.safe_add(c,f)),g),d)
        },
        md5_ff : function(g,f,k,j,e,i,h){
            return zl.md5.md5_cmn((f&k)|((~f)&j),g,f,e,i,h)
        },
        md5_gg : function(g,f,k,j,e,i,h){
            return zl.md5.md5_cmn((f&j)|(k&(~j)),g,f,e,i,h)
        },
        md5_hh : function(g,f,k,j,e,i,h){
            return zl.md5.md5_cmn(f^k^j,g,f,e,i,h)
        },
        md5_ii : function(g,f,k,j,e,i,h){
            return zl.md5.md5_cmn(k^(f|(~j)),g,f,e,i,h)
        },
        safe_add : function(a,d){
            var c=(a&65535)+(d&65535);
            var b=(a>>16)+(d>>16)+(c>>16);
            return(b<<16)|(c&65535)
        },
        bit_rol : function(a,b){
            return(a<<b)|(a>>>(32-b))
        },
        source : 'http://pajhome.org.uk/crypt/md5/2.2/md5-min.js'
    };
    /*
        SHA1
        source: http://pajhome.org.uk/crypt/md5/2.2/sha1-min.js
    */
    zl.sha1 = {
        hexcase : 0,
        b64pad : "",
        init : function(s){
            return zl.sha1.hex_sha1(s);
        },
        hex_sha1 : function(a){
            return zl.sha1.rstr2hex(zl.sha1.rstr_sha1(zl.sha1.str2rstr_utf8(a)))
        },
        hex_hmac_sha1 : function(a,b){
            return zl.sha1.rstr2hex(zl.sha1.rstr_hmac_sha1(zl.sha1.str2rstr_utf8(a),zl.sha1.str2rstr_utf8(b)))
        },
        sha1_vm_test : function(){
            return zl.sha1.hex_sha1("abc").toLowerCase()=="a9993e364706816aba3e25717850c26c9cd0d89d"
        },
        rstr_sha1 : function(a){
            return zl.sha1.binb2rstr(zl.sha1.binb_sha1(zl.sha1.rstr2binb(a),a.length*8))
        },
        rstr_hmac_sha1 : function(c,f){
            var e=zl.sha1.rstr2binb(c);
            if(e.length>16){
                e=zl.sha1.binb_sha1(e,c.length*8)
            }
            var a=Array(16),d=Array(16);
            for(var b=0;b<16;b++){
                a[b]=e[b]^909522486;
                d[b]=e[b]^1549556828
            }
            var g=zl.sha1.binb_sha1(a.concat(zl.sha1.rstr2binb(f)),512+f.length*8);
            return zl.sha1.binb2rstr(zl.sha1.binb_sha1(d.concat(g),512+160))
        },
        rstr2hex : function(c){
            try{
                zl.sha1.hexcase
            }catch(g){
                zl.sha1.hexcase=0
            }
            var f=zl.sha1.hexcase?"0123456789ABCDEF":"0123456789abcdef";
            var b="";
            var a;
            for(var d=0;d<c.length;d++){
                a=c.charCodeAt(d);
                b+=f.charAt((a>>>4)&15)+f.charAt(a&15)
            }
            return b
        },
        str2rstr_utf8 : function(c){
            var b="";
            var d=-1;
            var a,e;
            while(++d<c.length){
                a=c.charCodeAt(d);
                e=d+1<c.length?c.charCodeAt(d+1):0;
                if(55296<=a&&a<=56319&&56320<=e&&e<=57343){
                    a=65536+((a&1023)<<10)+(e&1023);
                    d++
                }
                if(a<=127){
                    b+=String.fromCharCode(a)
                }else{
                    if(a<=2047){
                        b+=String.fromCharCode(192|((a>>>6)&31),128|(a&63))
                    }else{
                        if(a<=65535){
                            b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))
                        }else{
                            if(a<=2097151){
                                b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))
                            }
                        }
                    }
                }
            }
            return b
        },
        rstr2binb : function(b){
            var a=Array(b.length>>2);
            for(var c=0;c<a.length;c++){
                a[c]=0
            }
            for(var c=0;c<b.length*8;c+=8){
                a[c>>5]|=(b.charCodeAt(c/8)&255)<<(24-c%32)
            }
            return a
        },
        binb2rstr : function(b){
            var a="";
            for(var c=0;c<b.length*32;c+=8){
                a+=String.fromCharCode((b[c>>5]>>>(24-c%32))&255)
            }
            return a
        },
        binb_sha1 : function(v,o){
            v[o>>5]|=128<<(24-o%32);
            v[((o+64>>9)<<4)+15]=o;
            var y=Array(80);
            var u=1732584193;
            var s=-271733879;
            var r=-1732584194;
            var q=271733878;
            var p=-1009589776;
            for(var l=0;l<v.length;l+=16){
                var n=u;
                var m=s;
                var k=r;
                var h=q;
                var f=p;
                for(var g=0;g<80;g++){
                    if(g<16){
                        y[g]=v[l+g]
                    }
                    else{
                        y[g]=zl.sha1.bit_rol(y[g-3]^y[g-8]^y[g-14]^y[g-16],1)
                    }
                    var z=zl.sha1.safe_add(zl.sha1.safe_add(zl.sha1.bit_rol(u,5),zl.sha1.sha1_ft(g,s,r,q)),zl.sha1.safe_add(zl.sha1.safe_add(p,y[g]),zl.sha1.sha1_kt(g)));
                    p=q;
                    q=r;
                    r=zl.sha1.bit_rol(s,30);
                    s=u;
                    u=z
                }
                u=zl.sha1.safe_add(u,n);
                s=zl.sha1.safe_add(s,m);
                r=zl.sha1.safe_add(r,k);
                q=zl.sha1.safe_add(q,h);
                p=zl.sha1.safe_add(p,f)
            }
            return Array(u,s,r,q,p)
        },
        sha1_ft : function(e,a,g,f){
            if(e<20){
                return(a&g)|((~a)&f)
            }
            if(e<40){
                return a^g^f
            }
            if(e<60){
                return(a&g)|(a&f)|(g&f)
            }
            return a^g^f
        },
        sha1_kt : function(a){
            return(a<20)?1518500249:(a<40)?1859775393:(a<60)?-1894007588:-899497514
        },
        safe_add : function(a,d){
            var c=(a&65535)+(d&65535);
            var b=(a>>16)+(d>>16)+(c>>16);
            return(b<<16)|(c&65535)
        },
        bit_rol : function(a,b){
            return(a<<b)|(a>>>(32-b))
        },
        source : 'http://pajhome.org.uk/crypt/md5/2.2/sha1-min.js'
    };
    /*
        Search In Ajax Tips In BaiDu
    */
    zl.search_ajax = {
        /*  input   */
        search_input : null,
        /*  list    */
        search_list : null,
        /*  Show Stop Time  */
        search_showtime : 8000,
        /*  Show Time Func  */
        search_timeout : null,
        /*  Init    */
        init : function(elem){
            try{
                elem = zl.$(elem);
                if(elem.tagName.toUpperCase() == "INPUT"){
                    zl.att(zl.$(elem),'onkeyup',function(){zl.search_ajax.keySearch(this,event)});
                    return 'Success';
                }else{
                    elem = zl.$('<input>',elem);
                    for(var i in elem){
                        if(zl.att(elem[i],'type').toUpperCase() == 'TEXT'){
                            zl.att(elem[i],'onkeyup',function(){zl.search_ajax.keySearch(this,event)});
                            return 'Success';
                        }
                    }
                    return 'Failure';
                }
            }catch(e){
                return e;
            }
        },
        /*  Key Search  */
        keySearch : function(elem,e){
            e = e || window.event;
            var keynum = 0;
            if(window.event) keynum = e.keyCode;
            else if(e.which) keynum = e.which;
            if (keynum == 38 || keynum == 40) return;
            alert(keynum);
            zl.remove(elem,3000);
            return;
            elem = zl.$(elem);
            var s_key = '';
            if(elem.tagName.toUpperCase() == "INPUT"){
                s_key = elem.value;
                search_input = elem;
            }else{
                s_key = zl.$('<input>',elem)[0].value;
                search_input = zl.$('<input>',elem)[0];
            }
            if(s_key == ''){
                this.clear_search();
                return;
            }
            var scripts = zl.$('<script>', zl.$('<head>')[0]);
            for(var ijs in scripts){
                if(zl.att(scripts[ijs],'id') == 'BaiDuJS'){
                    zl.remove(scripts[ijs]);
                }
            }
            var src = 'http://suggestion.baidu.com/su?wd='+encodeURIComponent(s_key)+'&p=3&cb=window.bdsug.sug&t='+(new Date()).getTime();
            //zl.create({tagName:'script',id:'BaiDuJS',charset:'utf-8',src:src,pdom:zl.$('<head>')[0]});
            var ajs = zl.loadjs(src,'utf-8',null,true);
            zl.att(ajs,'id','BaiDuJS');
            window.bdsug = {};
            window.bdsug.sug = function(data){zl.search_ajax.search_data(data);};       //load over
            var loc = zl.loc(elem);
            var w = t = l = 0;
            if(loc != null){
                w = loc.width;
                t = loc.top+loc.height+2;
                l = loc.left;
            }else{
                w = obj.offsetWidth;
                t = (obj.offsetTop+obj.offsetHeight+2);
                l = obj.offsetLeft;
            }
            var css = 'position:absolute;background:#fff;width:'+w+'px;top:'+t+'px;left:'+l+'px;border:1px solid #817F82;display:none;z-index:9999;';
            var div_search_list = zl.create({cssText:css/*,pdom:obj.parentNode*/});
            this.clear_search();
            this.search_list = div_search_list;
        },
        /*  Clear Search List   */
        clear_search : function(){
            if(this.search_list != null){ zl.remove(this.search_list); this.search_list = null;document.body.onclick = null;}  
        },
        /*  List In Click   */
        search_click : function(elem){
            if(this.search_input != null){
                this.search_input.value = elem.innerText;
            }
            this.clear_search();
        },
        /*  List In onmouseover */
        search_mouver : function(elem){
            if (this.search_timeout != null) clearTimeout(this.search_timeout);
            for(var i = 0; i < elem.parentNode.parentNode.getElementsByTagName('tr').length; i++){
                elem.parentNode.parentNode.getElementsByTagName('tr').item(i).className = 'soretr';
            }
            elem.parentNode.className = 'soretrs';
        },
        /*  List In onmouseout  */
        search_mouout : function(elem){
            if (this.search_timeout != null) clearTimeout(this.search_timeout);
            this.search_timeout = setTimeout(this.clear_search(),this.search_showtime);
            for(var i = 0; i < elem.parentNode.parentNode.getElementsByTagName('tr').length; i++){
                elem.parentNode.parentNode.getElementsByTagName('tr').item(i).className = 'soretr';
            }
        },
        /*  Load Ajax List  */
        search_data : function(data){
            if(this.search_list != null && data.s != ''){
                var reary = data.s;
                var list_code = '<style>.soretr{cursor: default;}.soretrs{cursor: default;background-color:#EBEBEB;}.soretd{color: black;font: 14px arial;height: 25px;line-height: 25px;padding: 0 8px; text-align: left;}</style>';//.soretr:hover{background-color:#EBEBEB;}
                list_code += '<table id="st_list" cellspacing="0" cellpadding="2" width="100%"><tbody>';
                for (i = 1; i < reary.length; i++) {
                    list_code += '<tr class="soretr"><td class="soretd">';
                    if(reary[i].toUpperCase().indexOf(data.q.toUpperCase()) != -1)
                        list_code += '<span>'+data.q+'</span><b style="color: black;">'+reary[i].slice(data.q.length)+'</b></td></tr>';
                    else
                        list_code += '<b style="color: black;">'+reary[i]+'</b></td></tr>';
                }
                list_code += '</tbody></table>';
                this.search_list.innerHTML = list_code;
                this.search_list.style.display = 'block';
                document.body.onclick = function(e){
                    if(e.srcElement !=  this.search_input){
                        this.clear_search();
                    }
                }
                /*
                var tds = zl.$('<td>',zl.$('st_list'));
                for(var td in tds){
                    zl.att(tds[td],'onclick',this.search_click(this));
                    zl.att(tds[td],'onmouseover',this.search_mouver(this));
                    zl.att(tds[td],'onmouseout',this.search_mouout(this));
                }
                */
                /* 
                    onclick="soclick(this);" onmouseover="mouver(this);" onmouseout="mouout(this);"
                */
                if (this.search_timeout != null) clearTimeout(this.search_timeout);
                this.search_timeout = setTimeout(this.clear_search(),this.search_showtime);
                if(this.search_input != null){ 
                    /*  input  onkeydown    */
                    this.search_input.onkeydown = function(e){
                        e = e || window.event;
                        var keynum = 0;
                        if(window.event) keynum = e.keyCode;
                        else if(e.which) keynum = e.which;
                        if (keynum == 38){
                            if (search_timeout != null) clearTimeout(search_timeout);
                            search_timeout = setTimeout(this.clear_search(),this.search_showtime);
                            if(this.search_list != null){
                                var altr = this.search_list.getElementsByTagName('tr');
                                var _i = 0;
                                for(var i = 0; i < altr.length; i++){
                                    if (altr.item(i).className == 'soretrs') _i = i;
                                    altr.item(i).className = 'soretr';
                                }
                                if(_i > 0){
                                    altr.item((_i-1)).className = 'soretrs';
                                    this.search_input.value = altr.item((_i-1)).innerText;
                                }else{
                                    altr.item((altr.length-1)).className = 'soretrs';
                                    this.search_input.value = altr.item((altr.length-1)).innerText;
                                }
                            }
                            return false;
                        } else if (keynum == 40){
                            if (search_timeout != null) clearTimeout(search_timeout);
                            search_timeout = setTimeout(this.clear_search(),this.search_showtime);
                            if(this.search_list != null){
                                var altr = this.search_list.getElementsByTagName('tr');
                                var _i = -1;
                                for(var i = 0; i < altr.length; i++){
                                    if (altr.item(i).className == 'soretrs') _i = i;
                                    altr.item(i).className = 'soretr';
                                }
                                if(_i+1 >= altr.length){
                                    altr.item(0).className = 'soretrs';
                                    this.search_input.value = altr.item(0).innerText;
                                }else{
                                    altr.item((_i+1)).className = 'soretrs';
                                    this.search_input.value = altr.item((_i+1)).innerText;
                                }
                            }
                            return false;
                        }
                        return true;
                    }
                    /*  input onblur    */
                    this.search_input.onblur = function(){
                        setTimeout(this.clear_search(),500);
                    }
                }
            }
        },
        source : 'BaiDu'
    };
    /*
        Disable Select Content
    */
    zl.noselect = zl.DisableSelect = function(elem,isdis){
        try{
            elem = zl.$(elem);
            if(typeof elem == 'undefined') elem = document;
            if(typeof isdis == 'undefined') isdis = false;
            elem.onselectstart = function(){return isdis;} 
        }catch(e){
            zl.log('[function][noselect] Failure! ',e);
        }
    };
    /*
        Disable Menu
    */
    zl.nomenu = zl.DisableMenu = function(elem,isdis){
        try{
            elem = zl.$(elem);
            if(typeof elem == 'undefined') elem = document;
            if(typeof isdis == 'undefined') isdis = false;
            elem.oncontextmenu = function(){return isdis;} 
        }catch(e){
            zl.log('[function][nomenu] Failure! ',e);  
        }
    };
    /*
        Select Elem Callback
    */
    zl.selcall = zl.SelectCallback = function(elem,callback){
        try{
            if(typeof elem == 'undefined') elem = document;
            elem = zl.$(elem);
            elem.onmouseup = function(){
                var selDom = window.getSelection().focusNode;
                if(typeof selDom.tagName != 'undefined') selDom = selDom.innerText;
                else selDom = selDom.nodeValue;
                if(selDom.length > 0){
                    if(typeof callback == 'undefined'){
                        //var selcon = (zl.isIE) ? this.ownerDocument.selection.createRange().text : this.ownerDocument.getSelection();
                        //var selcon = (zl.isIE) ? this.ownerDocument.selection.createRange().text : window.getSelection().toString();
                        alert(selDom);
                    }else{
                        zl.run(callback);
                    }
                }
            };
        }catch(e){
            zl.log('[function][nomenu] Failure! ',e);  
        }
    };
     
     
    zl.ready();
     
    window.zl = window.z = window._zl = window._z = zl;
 
})(window);


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...