/**
 * events.js
 *
 * Replaces the submit button on the event display controls with select
 * menus that automatically submit upon change.
 */

/******************************************************************************
 *  Initialization Functions                                                  *
 ******************************************************************************/

addEvent(window, "load", initEvents);

function initEvents()
{
    var controls = document.getElementById("event_controls");
    var menus = controls.getElementsByTagName("select");
    var inputs = controls.getElementsByTagName("input");

    for (var i = 0; i < menus.length; i++) {
        addEvent(menus[i], "change", function () { this.form.submit(); } )
    }

    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute("type") == "submit")
            inputs[i].parentNode.removeChild(inputs[i]);
    }
}

/******************************************************************************
 *  Utility Functions                                                         *
 ******************************************************************************/

function addEvent(element, type, handler )
{
    if (element.addEventListener) {
        element.addEventListener( type, handler, false );
    } else if (element.attachEvent) {
        element["e" + type + handler] = handler;
        element[type + handler] = function() { element["e" + type + handler](window.event); }
        element.attachEvent("on" + type, element[type + handler]);
    }
}

function removeEvent(element, type, handler)
{
    if (element.removeEventListener) {
        element.removeEventListener(type, handler, false);
    } else if (element.detachEvent) {
        element.detachEvent("on" + type, element[type+handler]);
        element[type+handler] = null;
    }
}
