function addEvent(elem, evType, fn) {
    if (elem.addEventListener) {
        elem.addEventListener(evType, fn, false);
    }
    else if (elem.attachEvent) {
        elem.attachEvent('on' + evType, fn)
    }
    else {
        elem['on' + evType] = fn
    }
}
var OverImgMenu = function(OverMenuID) {
    var me = this;
    this.MenuContainer = document.getElementById(OverMenuID);
    this.MenuItems = this.MenuContainer.getElementsByTagName("LI");
    this.OverImgArr = new Array();
    this.OutImgArr = new Array();

    this.isImageLoaded = function(ImgObj) {
        if (ImgObj.readyState != undefined) {
            if (ImgObj.readyState == "complete")
                return true;
            else
                return false;
        }
        else {
            if (ImgObj.height != 0)
                return true;
            else
                return false;
        }
    }

    this.SetPic = function(ImageObj, imgInx) {
        if (this.isImageLoaded(this.OverImgArr[imgInx]))
            ImageObj.src = this.OverImgArr[imgInx].src;
    }

    this.RestorePic = function(event, ImageObj, imgInx) {
        var event = event || window.event;
        var relatedTarget = event.relatedTarget || event.toElement;
        if (relatedTarget != null)
            ImageObj.src = this.OutImgArr[imgInx].src;
    }

    this.AddEventsToMenuItem = function(LiObj, ImgObj, imgInx) {
        addEvent(LiObj, "mouseover", function() { me.SetPic(ImgObj, imgInx); });
        addEvent(LiObj, "mouseout", function(event) { me.RestorePic(event, ImgObj, imgInx); });
    }

    this.Init = function() {
        var imgInx = 0;
        for (var MItemInx = 0; MItemInx < this.MenuItems.length; MItemInx++) {
            if (this.MenuItems[MItemInx].className == "OverMenuItem") {
                var LiObj = this.MenuItems[MItemInx];
                var ImgObj = LiObj.getElementsByTagName("img")[0];
                var ImgSrc = ImgObj.src;
                this.OutImgArr[imgInx] = new Image();
                this.OutImgArr[imgInx].src = ImgSrc;
                this.OverImgArr[imgInx] = new Image();
                this.OverImgArr[imgInx].src = ImgSrc.substring(0, ImgSrc.lastIndexOf(".")) + "_over" + ImgSrc.substring(ImgSrc.lastIndexOf("."), ImgSrc.length);
                this.AddEventsToMenuItem(LiObj, ImgObj, imgInx);
                imgInx++;
            }
        }
    }
    this.Init();
}

addEvent(window, "load", function() { var TopOverMenu = new OverImgMenu("OverMenu"); });


