﻿var DropDownMenu = function(element) {
    this.navElement = element;
    var divs = this.navElement.getElementsByTagName('div');
    this.main = divs[0];
    this.sub = divs[1];
};

DropDownMenu.prototype = {
    menus: null,
    initialize: function(socks) {
        var context = this;
        for (var e in this.main.children) {
            var element = this.main.children[e];
            if (element.rel == 'menu') {
                element.onmouseover = function() {
                    context._showMenu(this.className);
                    context._triggerHappy();
                };
                element.onmouseout = function() {
                    context._triggerSad();
                };
            }
            if (socks) {
                this._showMenu(socks);
            }
        }
        this.sub.onmouseover = function() {
            context._triggerHappy();
        };
        this.sub.onmouseout = function() {
            context._triggerSad();
        };
    },
    _triggerSad: function() {
        var context = this;
        var timerFunction = function() {
            context._showMenu('barbie');
        };
        this.timer = setTimeout(timerFunction, 2500);
    },
    _triggerHappy: function() {
        clearTimeout(this.timer);
    },
    _showMenu: function(name) {
        var items = this.menus[name];
        this.sub.innerHTML = '';
        var context = this;

        for (var e in this.main.children) {
            var element = this.main.children[e];
            if (element.rel == 'menu') {
                if (element.className == name) {
                    element.style.backgroundColor = '#f9ef86';
                }
                else {
                    element.style.border = '';
                    element.style.backgroundColor = '';
                }
            }
        }
        if (items) {
            this.sub.style.display = 'block';
            for (var e in items) {
                var newItem = document.createElement('a');
                newItem.appendChild(document.createTextNode(e));
                newItem.href = items[e];
                this.sub.appendChild(newItem);
            }
        }
        else {
            this.sub.style.display = 'none';
        }
    }
};
