var RightClick = {
    init: function () {

        this.FlashObjectID = "customRightClick";

        this.FlashContainerID = "flashcontent";

        this.Cache = this.FlashObjectID;

        document.getElementById("customRightClick").focus();

        if(window.addEventListener){
             
             window.addEventListener("mousedown", this.onGeckoMouse(),false);
             //window.addEventListener("keydown", this.onGeckoKey(), false);
             //document.getElementById(RightClick.FlashContainerID).setCapture();

        } 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;

            //document.getElementById(this.FlashContainerID).onkeypress = RightClick.onIEKey;
            
            //document.getElementById(this.FlashContainerID).onkeypress = RightClick.onIEKey;
                       
        }

    },

    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();

        }

    },

    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();
                //document.getElementById("customRightClick").escapePress();

            }

            RightClick.Cache = ev.target.id;

        }

      }

    },

    onGeckoKey: function(ev) {

        return function(ev) {


            RightClick.killEvents(ev);

            if(ev.target.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {
                if (ev.which == 27){
                  document.getElementById("customRightClick").escapePress();
                } else {
                  if ((ev.which == 65)||(ev.which == 90)){
                    if (ev.shiftKey){
                      document.getElementById("customRightClick").otherKeyPress(ev.which);
                    }
                  } else {
                    document.getElementById("customRightClick").otherKeyPress(ev.which);
                  }
                }

            }

            RightClick.Cache = ev.target.id;

      }

    },
    
    onIEKey: function() {

      //alert('iekey');
           /* if(window.event.srcElement.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {  */                
                if (window.event.keyCode == 27){
                  document.getElementById("customRightClick").escapePress();
                } else {
                  if ((window.event.keyCode == 65)||(window.event.keyCode == 90)){
                    if (window.event.shiftKey){
                      document.getElementById("customRightClick").otherKeyPress(window.event.keyCode);
                    }
                  } else {
                    document.getElementById("customRightClick").otherKeyPress(window.event.keyCode);
                  }                
                }

            //}

            document.getElementById(RightClick.FlashContainerID).setCapture();

            if(window.event.srcElement.id)

            RightClick.Cache = window.event.srcElement.id;

    },
        
    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;

        }

    },

    call: function() {

        document.getElementById(this.FlashObjectID).rightClick();

    }
}