var GLOBAL = {};
    GLOBAL.namespace=function(str){
        var arr = str.split("."),o = GLOBAL;
        for (i=(arr[0]=="GLOBAL")?1:0;i<arr.length;i++){
            o[arr[i]] = o[arr[i]] || {};
            o=o[arr[i]];   
        }   
    }
    GLOBAL.namespace("DOM");
    GLOBAL.DOM.getElementsByClassName = function(str,root,tag){
        if(root){
            root = typeof root =="string" ? document.getElementById(root) : root;
        }else{
            root = document.body;   
        }
        tag = tag || "*";
        var els = document.getElementsByTagName(tag),arr=[];
        for(var i=0,n=els.length;i<n;i++){
            for(var j=0,k=els[i].className.split(" "),l=k.length;j<l;j++){
                if(k[j]==str){
                    arr.push(els[i]);
                    break;   
                }
            }
        }
        return arr;
    }

GLOBAL.DOM.addClass = function(node,str){
    if(!new RegExp("(^|\\s+)"+str).test(node.className)){
        node.className = node.className + " " + str;   
    }   
}
GLOBAL.DOM.removeClass = function(node,str){
    node.className = node.className.replace(new RegExp("(^|\\s+)"+str),"");   
}
GLOBAL.namespace("Event");
//增加scope参数,用于设置handler中的this指针指向,默认指向node节点。
GLOBAL.Event.on = function(node,eventType,handler,scope){
    node=typeof node =="string" ? document.getElementById(node) : node;
    scope = scope || node;
    if(document.all){
        node.attachEvent("on" + eventType,function(){handler.apply(scope,arguments)});   
    }else{
        node.addEventListener(eventType,function(){handler.apply(scope,arguments)},false);   
    }
}