var RightClick = { 
    /** 
     *  Constructor 
     */  
    init: function (fid, fcid) { 
        this.FlashObjectID = fid || "customRightClick"; 
        this.FlashContainerID = fcid || "flashcontent"; 
        this.Cache = this.FlashObjectID; 
        if(window.addEventListener){ 
             window.addEventListener("mousedown", this.onGeckoMouse(), true); 
        } else { 
            document.getElementById(this.FlashContainerID).onmouseup = function() { 
                document.getElementById(RightClick.FlashContainerID).releaseCapture(); 
            }            
            document.oncontextmenu = function(){
                if(window.event.srcElement.id == RightClick.FlashObjectID) {
                    return false; 
                } else { 
                    RightClick.Cache = "nan"; 
                }
                 
            }            
            document.getElementById(this.FlashContainerID).onmousedown = RightClick.onIEMouse; 
        } 
    }, 
    /** 
     * GECKO / WEBKIT event overkill 
     * @param {Object} eventObject 
     */ 
    killEvents: function(eventObject) { 
        if(eventObject) { 
            if (eventObject.stopPropagation){
                eventObject.stopPropagation(); 
            }
            if (eventObject.preventDefault){
                eventObject.preventDefault(); 
            }
            if (eventObject.preventCapture){
                eventObject.preventCapture(); 
            }
            if (eventObject.preventBubble){
                eventObject.preventBubble(); 
            }
        } 
    }, 
    /** 
     * GECKO / WEBKIT call right click 
     * @param {Object} ev 
     */ 
    onGeckoMouse: function(ev) {         
        return function(ev) { 
            if (ev.button != 0) { 
                 RightClick.killEvents(ev); 
                  if(ev.target.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) { 
                        RightClick.call(); 
                  } 
                  RightClick.Cache = ev.target.id; 
            } 
       } 
    }, 
    /** 
     * IE call right click 
     * @param {Object} ev 
     */ 
    onIEMouse: function() { 
        if (event.button> 1) { 
            if(window.event.srcElement.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) { 
                RightClick.call();  
            } 
            document.getElementById(RightClick.FlashContainerID).setCapture(); 
            if(window.event.srcElement.id) 
            RightClick.Cache = window.event.srcElement.id; 
        } 
    }, 
    /** 
     * Main call to Flash External Interface 
     */ 
    call: function() { 
        document.getElementById(this.FlashObjectID).rightClick(); 
    } 
}  
