﻿function Display_Hide(instance, id, dis_id){
    this.Instance = instance;
    this.ID = id;
    this.Dis_ID = dis_id;   
}

Display_Hide.prototype = {
    Init : function(){
        var Self = eval(this.Instance);
        DHAttachEvent(document.getElementById(this.ID), "mouseover", function(e){ Self.ShowEvent(e);});
        DHAttachEvent(document.getElementById(this.ID), "mouseout", function(e){ Self.HideEvent(e);});       
    },
    
    ShowEvent : function(e){                      
        this.Show(this.Dis_ID);       
        this.Bubble(e); 
    },
    
    Bubble : function(e){
        e = e || window.event;
        if(window.event)
             e.cancelBubble = true;
        else
             e.stopPropagation();
    },
    
    HideEvent : function(e){ 
        //debugger;
        
        if(Ext.isIE){    
            if(!ToChildElement(e.srcElement, e.toElement) && !findParentElement(e.toElement, this.ID)){              
                this.Hide(this.Dis_ID);
            }
        }
        else{
            this.Hide(this.Dis_ID);
        }
        this.Bubble(e);       
    },
    
    Show : function(ID){
        document.getElementById(ID).style.display = "block";
    },
    
    Hide : function(ID) {       
        document.getElementById(ID).style.display = "none";
    }
}

function DHAttachEvent(dom, eventName, func, bool){    
    if(window.attachEvent){
        dom.attachEvent("on"+eventName, func);
    }
    else if(window.addEventListener){
        if(bool == undefined)
            dom.addEventListener(eventName, func, false);
        else
            dom.addEventListener(eventName, func, bool);
    }
}

function ToChildElement(parent, child)
{
    if(parent == null || child == null) return false;
    for(var i=0; i<parent.childNodes.length; i++){
        if(child == parent.childNodes[i]){
            return true;            
        }
    }
    for(var i=0; i<parent.childNodes.length; i++){
       if(ToChildElement(parent.childNodes[i], child)){
            return true;
       }       
    }
    return false;
}
function findParentElement(obj, id) {
    var parentObj = obj;
    if(obj == null){
        return false;
    }
    else if(parentObj.id == id){
        return true;
    }
    else{
        return findParentElement(parentObj.parentNode, id);
    } 
}