﻿var groupChoice;

var iefix = window.navigator.appName.indexOf('Internet Explorer') == -1 ? false : true;

function initMenus(){
    var gs = $('groupSelectUL');
    var gsc = $('groupSelectChoice');
    if (iefix) {
        gs.insert({ after: '<iframe id="groupSelectUL_iefix" style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" src="javascript:false;" frameborder="0" scrolling="no"></iframe>' });
        iefix = $('groupSelectUL_iefix');
    }

    // position the lists with css:
    var gso = gsc.positionedOffset();
    var gsmx = gso.left;
    var gsmy = gso.top + gsc.getHeight();
    gs.setStyle({ left: (gsmx + 1) + 'px', top: gsmy + 'px' });

    Event.observe('groupSelectChoice', 'click', openGroupMenu);
    Event.observe('groupSelectButton', 'click', openGroupMenu);
}

// Handler for menu-opening events
function openGroupMenu(e) {
    var menu = $('groupSelectUL');
    menu.show();
    $('groupSelectButton').setStyle({ backgroundPosition: 'top' });
    Event.stop(e);
    Event.stopObserving('groupSelectChoice', 'click', openGroupMenu);
    Event.stopObserving('groupSelectButton', 'click', openGroupMenu);
    Event.observe(document, 'click', groupMenuClick);
    if (iefix) {
        iefix.setStyle({ display: 'block' });
        iefix.clonePosition(menu);
    }
}

// Event handler for clicks when the group select menu is open
function groupMenuClick(e) {
    var el = Event.element(e);
    var gsMenu = $('groupSelectUL');
    if (el.up() === gsMenu) { //if click was on a menu option
        var url = el.getAttribute('id');
        window.location = '/' + url + '/';
        return false;
    }
    gsMenu.hide();
    if (iefix)
        iefix.setStyle({ display: 'none' });
    $('groupSelectButton').setStyle({ backgroundPosition: '' });
    Event.stopObserving(document, 'click', groupMenuClick);
    Event.observe('groupSelectChoice', 'click', openGroupMenu);
    Event.observe('groupSelectButton', 'click', openGroupMenu);
}

initMenus();