﻿Util=(function(){
    var each=function(queue,fn,scope){
        for(var i=0,item=null;item=queue[i];i++){
            if(fn.call(scope||window,item,i,queue)===false)break;
        }
    };
    String.prototype.trim=function(){
        var regex=/^(\s+)|(\s+)$/g;
        return this.replace(regex,"");
    };
    var $=function(selector){
        var pushNode=function(stack,node,cls){
            var regex=eval("/\\s"+cls+"\\s|^"+cls+"\\s|\\s"+cls+"$|^"+cls+"$/g");
            each(node.getElementsByTagName("*"),function(item){
                if(regex.test(item.className)){
                    stack.push(item);
                }
            });
        };
        document.getElementByClassName=function(className,parentNode){
            var node=[],element=parentNode?parentNode:document;
            pushNode(node,element,className);
            return node;
        };
        if(selector.indexOf("#")>-1){
            return document.getElementById(selector.replace("#",""));
        }else if(selector.indexOf(".")>-1){
            return document.getElementByClassName(selector.replace(".",""));
        }else{
            return document.getElementsByTagName(selector);
        }
    };

    return {
        $:$,
        each:each,
        according:function(list){
            var $=function(ID){return document.getElementById(ID);};
            var each=function(queue,fn){
                for(var i=0,item=null;item=queue[i];i++){
                    if(fn(i,item,queue)===false)break;
                }
            };
            var change=function(Panel){
                $(Panel).style.display=($(Panel).style.display=="block"?"none":"block");
            };
            each(list,function(i,item){
                var preTag=item.replace("Panel","");
                $(item).style.display="none";
                $(preTag+"Bt").onclick=function(){change(item);};
            });
        },
        subMenu:function(SubList,Container){
            
            var SubList=Util.$(SubList),DomList=Util.$(Container);
            Util.each(DomList,function(dom,index){
                dom.onmouseover=(function(i){
                    return function(){
                        var pattern=/<[^>]+>/g;
                        String.prototype.filterCss=function(){
                            return this.replace(pattern,'');
                        };
                        if(SubList[i].innerHTML.filterCss()=='')return;
                        SubList[i].style.display="block";
                        dom.style.border="1px solid #dfdfdf";
                    };
                })(index);   
                
                dom.onmouseout=(function(i){
                    return function(){
                        SubList[i].style.display="none";
                        dom.style.border="0px solid #dfdfdf";
                    };
                })(index);   
            });
        }
    }
})();
