/**
 * @library
 * SOE WebPrez - flashinjection class.
 * @author Benjamin Neil
 */

var flashInjection = {
   DEFAULT_WINDOW_SETTING : "window",
   wmode : "window",
   quality : "high",
   id : "flash",
   scriptAccess : "sameDomain",
   allowFullscreen : "false",
   params : null,
   
   writeFlashMovie : function(url, width, height)
    {
        var embedLine = "";

        if(flashInjection.gotFlash())
        {
            embedLine += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + width + '" height="' + height + '" id="' + flashInjection.id + '">';
            embedLine += '<param name="allowScriptAccess" value="' + flashInjection.scriptAccess + '" />';
            embedLine += '<param name="allowFullScreen" value="' + flashInjection.allowFullscreen + '" />';
            embedLine += '<param name="movie" value="'+url+'" /><param name="quality" value="' + flashInjection.quality + '" />';
            embedLine += '<param name="wmode" value="' + flashInjection.wmode + '" />';

            if(flashInjection.params != null)
            {
                embedLine += '<param name="flashvars" value="' + flashInjection.params + '" />';
            }

            embedLine += '<embed src="'+url+'" quality="' + flashInjection.quality + '" ';

            if(flashInjection.params != null)
            {
                // Non-IE browsers need this
                embed_line += 'flashvars="' + flashInjection.params + '" ';
            }

            embedLine += 'wmode="' + flashInjection.wmode + '" width="' + width + '" height="' + height + '" name="' + flashInjection.id + '" allowScriptAccess="' + flashInjection.scriptAccess + '" allowFullScreen="' + flashInjection.allowFullscreen + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
            embedLine += '</object>';
        }
        else
        {
            embedLine += '<p style="text-align: center; margin-top: 2em; margin-bottom: 2em; padding-top: 3em; padding-bottom: 3em; background: #333333">You don\'t appear to have Flash installed.</p>';
        }

        return(embedLine);
    },
   
   gotFlash : function()
    {
        var flash_versions = 12;

        // Code swiped from http://www.dangrossman.info/2007/01/03/detecting-flash-and-java-with-javascript/
        if (navigator.plugins && navigator.plugins.length) {
            // Netscape style plugin detection
            for (x = 0; x <navigator.plugins.length; x++) {
                if (navigator.plugins[x].name.indexOf('Shockwave Flash') != -1) {
                    return(true);
                }
            }
        }
        else if (window.ActiveXObject) {
            // ActiveX style plugin detection
            for (x = 2; x <= flash_versions; x++) {
                try {
                    oFlash = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + x + "');");
                    if (oFlash) {
                        return(true);
                    }
                }
                catch(e) { }
            }
        }
        
        return(false);
    },
   
   SetQuality : function(newQuality)
   {
      flashInjection.flashquality = newQuality;
   },

   SetID : function(new_id)
   {
      flashInjection.id = new_id;
   },

   SetTransparent : function(isTransparent)
   {
      flashInjection.wmode = isTransparent ? "transparent" : flashInjection.DEFAULT_WINDOW_SETTING;
   },

   SetFullScreen : function(fullscreen)
   {
      flashInjection.allowFullscreen = fullscreen ? "true" : "false";
   },

   SetScriptAccess : function(newScriptAccess)
   {
      flashInjection.scriptAccess = newScriptAccess;
   },

   SetParams : function(newParams)
   {
      flashInjection.params = newParams;
   }
};
