
var SiteMenu = function() {
    return this.initialize.apply(this, arguments);
}

SiteMenu.prototype = {

initialize: function(menu, settings) {
    var self = this;
    
    self.settings = $.extend( {
        openDuration : 0.3,
        closeDuration : 0
    }, settings);
    
    self.openMenu = null;
    self.waiting = false;
    self.menu = menu;
    
    // Menu Events
    $('> li > a', self.menu).click( function() {
        self.toggle( $(' > ul', $(this).parent() ) );
    });
},

toggle: function(menu){    
    var self = this;
    if( ! $(menu).is(':visible') ) {
        self.open(menu);
    }
    else {
        self.close(menu);    
    }
},

open: function(menu){    
    var self = this;
    self.waiting = true;
    self.close(self.openMenu);
    $('> a', $(menu).parent() ).trigger('mouseover').rolloverUnbind();
    $(menu).fadeIn(self.settings.openDuration, function(){
        $('img', this).iepngfix();
    });
    self.openMenu = menu;
},

close: function(menu){
    var self = this;
    if(!menu) menu = self.openMenu; if(!menu) return;
    $('> a', $(menu).parent() ).textover({color:'000000'}).trigger('mouseover').
        rolloverUnbind().textover({color:link_color});
    $(menu).hide(self.settings.closeDuration);
    self.openMenu = null;
}

}

jQuery.SiteMenu= {
    list : []
};
jQuery.fn.SiteMenu= function(settings) {
    return this.each( function () {
        jQuery.SiteMenu.list.push (
            new SiteMenu(this, settings )
        );
    });
}
