var menu_mapping = [
    ['menu-about_us', 'drop-menu-about_us'],
    ['menu-enterprise', 'drop-menu-enterprise'],
    ['menu-trade', 'drop-menu-trade'],
    ['menu-temp', 'drop-menu-temp'],
    ['menu-news', 'drop-menu-news']
]

function yet(d) {
    return d && d.fired == -1
}

addLoadEvent(function() {
    var d;

    forEach (menu_mapping, function(mapping) {

        connect(mapping[0], 'onmouseover', function(event) {
            addElementClass($(mapping[0]), 'hover')
            if (yet(d)) {
                d.addCallback(partial(removeElementClass, mapping[1], 'none'))
            } else {
                d = callLater(0, partial(removeElementClass, mapping[1], 'none'))
            }
        })
        connect(mapping[0], 'onmouseout', function(event) {
            removeElementClass($(mapping[0]), 'hover')
            if (yet(d)) {
                d.addCallback(partial(addElementClass, mapping[1], 'none'))
            } else {
                d = callLater(0.1, partial(addElementClass, mapping[1], 'none'))
            }
        })
        connect(mapping[1], 'onmouseover', function(event) {
            if (yet(d)) {
                d.cancel()
            }
        })
        connect(mapping[1], 'onmouseout', function(event) {
            //if (hasElementClass(event.relatedTarget(), 'menu_clear')) {
            if (event.relatedTarget().id != mapping[0]) {
                if (yet(d)) {
                    d.addCallback(partial(addElementClass, mapping[1], 'none'))
                } else {
                    d = callLater(0, partial(addElementClass, mapping[1], 'none'))
                }
            }
        })

    });

    //t13n();
})


function buildURI(uri) {
    var langs = ['ja', 'en'];
    forEach(langs, function(lang) {
        var i = location.pathname.lastIndexOf('/' + lang + '/');
        if (i != -1) {
            var prefix = location.pathname.substring(0, i + lang.length + 1);
            uri = prefix + uri;
            return;
        }
    });
    return uri;
}

addLoadEvent(function() {
    var mmi = 0; // menu mapping index
    var uri = buildURI('/folderListing');
    var d = loadJSONDoc(uri);
    d.addCallback(function(result) {
        forEach(result, function(elt) {
            var div = $(menu_mapping[mmi++][1]);
            appendChildNodes(div, map(function(menu) {
                return DIV({}, A({'href': menu[0]}, menu[1]));
            }, elt));
        });
    });
    setDropMenuPosition();
});

function setDropMenuPosition() {
    var ua = navigator.userAgent;
    p = 0;
    if (ua.indexOf('Firefox') != -1) {
        p = 2;
    } else if (ua.indexOf('Safari') != -1) {
        p = 1;
    }
    var test = parseInt(getStyle($('menu-home').parentNode, 'width'));
    var offset = test ? test + 1: $('menu-home').parentNode.offsetWidth; // ie
    forEach (menu_mapping, function(mapping) {
        var width = parseInt(getStyle($(mapping[0]).parentNode, 'width'));
        width = width ? width : $(mapping[0]).parentNode.offsetWidth; // ie
        $(mapping[1]).style.left = offset + 'px';
        $(mapping[1]).style.minWidth = (width - 8) + 'px';
        offset += width + p;
    });
}

window.onresize = setDropMenuPosition;


/////
/*function t13n() {
    connect('t13n', 'onclick', function(event) {
        var t13nmap = { 'ENGLISH': 'en', 'JAPANESE': 'ja' };
        location.href = '/' + t13nmap[event.src().value] + '/';
    });
}*/
