var IE_hover_emulation = Class.create();
IE_hover_emulation.prototype = {

    initialize: function(container, childTagNames) {

        if(!document.getElementsByTagName) return;
        this.childTagNames = childTagNames;
        this.container = container;
        this.items = container.getElementsByTagName(childTagNames);

        var il = this.items.length;
        for(var i = il-1; i>=0; i--) {
            //this.items[i].attachEvent('onmouseover', this.onmouseOverListener);
            //this.items[i].attachEvent('onmouseout', this.onmouseOutListener);
            Event.observe(this.items[i], 'mouseover', this.onmouseOverListener.bindAsEventListener(this), false);
            Event.observe(this.items[i], 'mouseout', this.onmouseOutListener.bindAsEventListener(this), false);

        }

    },

    getParentChild: function(obj) {
        while(obj.nodeName.toLowerCase()!= this.childTagNames) {

            obj = obj.parentNode;
            if(obj.nodeName.toLowerCase() == 'html') {
                obj = null;
                break;
            }
        }
        return obj;
    },

    onmouseOverListener: function() {
        var item = window.event.srcElement;
        var related_child = this.getParentChild(item);
        if(related_child.className.indexOf('over') == -1) {
            related_child.className += ' over';
        }
    },

    onmouseOutListener: function() {
        var item = window.event.srcElement;
        var related_child = this.getParentChild(item);

        if(window.event.toElement) {
            var next_related_child = this.getParentChild(window.event.toElement);

            if(next_related_child) {
                var il = this.items.length;
                for(var i = il-1; i>=0; i--) {
                    if(this.items[i] == next_related_child && related_child != next_related_child) {
                        related_child.className = related_child.className.replace(/over/, '');
                    }
                }
            } else {
                related_child.className = related_child.className.replace(/over/, '');
            }

        }
    }

};

