
var SlideMenu = {
    create: function (elementID, menuButton, direction, noevents) {
                var newmenu = Object();
                newmenu.props = 0;
                newmenu.mode = 'vertical';
                if (typeof(direction) != "undefined" && direction != null) newmenu.mode = direction;

                //Move the menu of the screen, show the menu, create the Menu, collapse the menu, replace the menu.
                newmenu.menu = $(elementID);
                newmenu.menu.slider = newmenu;
                if (!noevents)
                {
                    newmenu.menu.addEvent('mouseenter', function(){this.slider.prop();});
                    newmenu.menu.addEvent('mouseleave', function(){this.slider.unprop();});
                    if (menuButton)
                    {
                        $(menuButton).slider = newmenu;
                        $(menuButton).addEvent('mouseenter', function(){this.slider.show();});
                        $(menuButton).addEvent('mouseleave', function(){this.slider.unprop();});
                    }
                }
                newmenu.menu.style.visibility = "hidden";
                newmenu.menu.style.display = "block";
                newmenu.menu.style.left = (newmenu.menu.offsetLeft - 1000) + "px";
                newmenu.menu.style.visibility = "visible";
                newmenu.slider = new Fx.Slide(elementID, {
								  duration: 700,
									mode: newmenu.mode}).hide();
                newmenu.menu.style.left = (newmenu.menu.offsetLeft + 1000) + "px";

                newmenu.instanceID = elementID;
                SlideMenu.instances[newmenu.instanceID] = newmenu;

                newmenu.show = function(force) {
                    if (force) this.props = 0;
                    if (this.props == 0)
                    {
                        this.slider.cancel();
                        this.slider.slideIn();
                        this.prop();
                    }
                }

                newmenu.hide = function() {
                    if (this.props == 0)
                    {
                        this.slider.cancel();
                        this.slider.slideOut();
                    }
                }

                newmenu.prop = function() {
                    this.props++;
                }

                newmenu.hideTimer = null;
                newmenu.unprop = function() {
                    if (this.props <= 0)
                        this.props = 0;
                    else
                        this.props--;
                    clearTimeout(this.hideTimer);
                    this.hideTimer = setTimeout("SlideMenu.instances['"+this.instanceID+"'].hide();", 200);
                }

                return newmenu;
            },


    instances: new Array(), //Public static member containing references to all isntances of SlideMenu objects.

    //show will show a menu if it is not already shown, prop it open, and set a timeout for it to auto-hide when it is unpropped.
    show:   function (id, force) {
                if (typeof(SlideMenu.instances[id]) == "object")
                    SlideMenu.instances[id].show(force || false);
            },
    //unprop takes the prop off a menu so it can hide the next time it tries.
    unprop: function (id) {
                if (typeof(SlideMenu.instances[id]) == "object")
                    SlideMenu.instances[id].unprop();
            },
    //prop adds another prop to the menu so that it won't hide until it is unpropped.
    prop:   function (id) {
                if (typeof(SlideMenu.instances[id]) == "object")
                    SlideMenu.instances[id].prop();
            }
};


/* This is used for the pull-down window shade type thing at the top of every page */

window.addEvent('domready', function() {
   test1Menu = SlideMenu.create('slidein1', 'slideinButton1');
});

window.addEvent('domready', function() {

  $('loginForm').addEvent('submit', function(e) {
    //Prevents the default submit event from loading a new page.
    e.stop();
    //Empty the log and show the spinning indicator.
    var log = $('slideinButton1').empty().addClass('ajax-loading');
    //Set the options of the form's Request handler.
    //("this" refers to the $('myForm') element).
    this.set('send', {onComplete: function(response) {
			if(response == 'ERROR') {
        log.set('html', 'Log In');
				alert("The name and/or password don't match our records.");
			} else {
        log.set('html', 'Hi ' + response);
			}
      log.removeClass('ajax-loading');
    }});
    //Send the form.
    this.send();
  });
});



