/**
*
* Copyright 2007
*
* Paulius Uza
* http://www.uza.lt
*
* Dan Florio
* http://www.polygeek.com
*
* Project website:
* http://code.google.com/p/custom-context-menu/
*
* --
* RightClick for Flash Player.
* Version 0.6.2
*
*/

 
var RightClick = {
    /**
     *  Constructor
     */
    init: function (foo) {
        this.FlashObjectID = "SpiderClient";
        this.FlashContainerID = "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();
    }
}


if (window.addEventListener) // W3C standard
{
	window.addEventListener('load', RightClick.init, false); // NB **not** 'onload'
} 
else if (window.attachEvent) // Microsoft
{
	window.attachEvent('onload', RightClick.init);
}

