



Class.create('Headnavigation');
Class.Headnavigation.declare(
    {
        element:null,
        setElement:function(element){
            var element=$dom.getElement(element);
            if (element){
                this.element=element;
            }
            this.initializeUl(this.element);
        },
        
        initializeUl:function(element){
            var childNodes=element &&
                    element.childNodes;
            if (childNodes && childNodes.length){
                this.convertToArray(childNodes).foreach(
                    function(i){
                        var element=i.value &&
                                i.value.tagName &&
                                i.value,
                            li=element &&
                                element.tagName.match(/li/i) &&
                                element;
                        if (li){
                            this.initializeLi(li);
                        }
                    }.bindEventListener(this)
                );
            }
        },
        initializeLi:function(element){
            var childNodes=element &&
                    element.childNodes;
            if (childNodes && childNodes.length){
                //-- initialize
                
                this.initializeLiEvents(element);
                
                this.convertToArray(childNodes).foreach(
                    function(i){
                        var element=i.value &&
                                i.value.tagName &&
                                i.value,
                            ul=element &&
                                element.tagName.match(/ul/i) &&
                                element,
                            a=element &&
                                element.tagName.match(/a/i) &&
                                element;
                        if (ul){
                            this.initializeUl(ul);
                        } else if (a && this.isSelected(a)){
                            a.parentNode.className+=' selected';
                        }
                        
                    }.bindEventListener(this)
                );
            }
        },
        initializeLiEvents:function(element){
            if (element){
                var listener={
                    handle:this,
                    element:element
                };
                element.onmouseover=function(e){
                    var className=this.element.className;
                    if (!className.match(/ ?hover ?/)){
                        this.element.className+=' hover';
                    }
                }.bindEventListener(listener);
                
                element.onmouseout=function(e){
                    var className=this.element.className;
                    this.element.className=className.replace(/ ?hover ?/,'');

                }.bindEventListener(listener);
            }
        },
        isSelected:function(element){
            //-- initialize href
            var href=element &&
                    element.href,
                browsed='http://'+window.location.host,
                baseUrl=Object.modulePath().replace(/\/site\/themes\/default\/js\/dmc\/$/,'');
                
                
            
            if (window.location.pathname.match(new RegExp('^'+baseUrl+'/bling'))){
                browsed+=baseUrl+'/bling';
            } else if (window.location.pathname.match(new RegExp('^'+baseUrl+'/company'))){
                browsed+=baseUrl+'/company';
            } else if (window.location.pathname.match(new RegExp('^'+baseUrl+'/games'))){
                browsed+=baseUrl+'/games';
            } else if (window.location.pathname.match(new RegExp('^'+baseUrl+'/cross-platform'))){
                browsed+=baseUrl+'/cross-platform';
            } else if (window.location.pathname.match(new RegExp('^'+baseUrl+'/services'))){
                browsed+=baseUrl+'/services';
            } else if (window.location.pathname.match(new RegExp('^'+baseUrl+'/contact-us'))){
                browsed+=baseUrl+'/contact-us';
                
            } else if (window.location.pathname.match(new RegExp('^'+baseUrl+'/'))){
                browsed+=baseUrl+'/home';
            } else {
                browsed+=baseUrl+'/home';

            }
            
            if (href){
                var chosen=false,
                    regex=new RegExp('^'+browsed);
                
                //alert(regex.toString()+' == '+);
                //alert(browsed+'!='+href);
                if (href.match(regex)){
                    chosen=true;
                    
                } else if (browsed.match(/\//)){
                
                    chosen=(browsed+'index.html' == href) ||
                        (browsed+'index.php' == href) ||
                        (browsed+'home' == href);
                        
                } else {
                    
                }
                return chosen;
            }
        },
        initialize:function(){
            
        }
    }
);






$dom.addOnloadEvent(
    function(){
        var navigation=new Class.Headnavigation(),
            navElement=document.getElementById('body-navigation'),
            ul=navElement && navElement.getElementsByTagName('ul')[0];
        if (ul){
            navigation.setElement(ul);
        }
    }
);