
AppInit = {
    doInit: function()
    {
        AppInit.fixMissingChildSelectorsForIE();
    },

    fixMissingChildSelectorsForIE: function()
    {
        if(!window.attachEvent || navigator.appName.toLowerCase().indexOf('opera') >= 0){
            /* Speed it up a bit for the rest of us. 
             * Have to check specifically for Opera because Opera does support some IE only tricks.
             */

            return;
        }
        
        /* Fix IE's lack of standard support for CSS by simulating it's missing
         * child selector implementation.
         */
        var menus = Element.getElementsByClassName(document.body,'menu');
        for( var i = 0; i < menus.length; i ++ ){
            var menu = menus[i];
            var lis = menu.getElementsByTagName( 'LI' );
            for( var j = 0; j < lis.length; j ++ ){
                var li = lis[j];
                li.onmouseenter = AppInit.onMouseOver.bindAsEventListener(li);
                li.onmouseleave = AppInit.onMouseOut.bindAsEventListener(li);
            }
        }
    },

    onMouseOver: function(e)
    {
        var el = this;
        Element.addClassName(el, 'sfHover');
    },

    onMouseOut: function(e)
    {
        var el = this;
        Element.removeClassName(el, 'sfHover');
    }
}

window.onload = AppInit.doInit.bindAsEventListener();


function MouseOverImage(element, over_img) {
    this.element    = $(element);
    this.img        = this.element.src;
    this.over_img   = this.preload(over_img);
    Event.observe(this.element, 'mouseover', this.mouseover.bind(this));
    Event.observe(this.element, 'mouseout',  this.mouseout.bind(this));
}
MouseOverImage.prototype = {
    preload: function(img_src) {
        var img = new Image();
        img.src = img_src;
        return img;
    },
    mouseover: function(e) {
        this.element.src = this.over_img.src;
    },
    mouseout: function(e) {
        this.element.src = this.img;
    }
}

MouseOvers = {
    images : {},
    add: function(element, over_img) {
        new MouseOverImage(element, over_img);
    }
}

























