(function($) {
  var FOP = jQuery.fn.flashObject = function(options, params, variables) {
    FOP.object = this;

    FOP.options = $.extend({
      width: 320,
      height: 240,
      swf: 'test.swf',
      id: 'flash-animation',
      align: 'middle'
    }, options);

    FOP.params = $.extend({
      allowScriptAccess: 'allways'
    }, params);

    FOP.variables = variables;


    if (jQuery.browser.msie) {
      var html = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="'+FOP.options.width+'" height="'+FOP.options.height+'" id="'+FOP.options.id+'" name="'+FOP.options.id+'" align="'+FOP.options.align+'">';
      html += '<param name="movie" value="'+FOP.options.swf+'" />';
      for (var key in FOP.params) html += '<param name="'+key+'" value="'+FOP.params[key]+'" />';
      if (FOP.variables != false) html += '<param name="flashVars" value="'+FOP.getFlashVars()+'" />';
      html += '</object>';
    }
    else {
      var html = '<embed pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" src="'+FOP.options.swf+'" width="'+FOP.options.width+'" height="'+FOP.options.height+'" id="'+FOP.options.id+'" align="'+FOP.options.align+'"';
      for (var key in FOP.params) html += ' '+key+'="'+FOP.params[key]+'"';
      if (FOP.variables != false) html += ' flashvars="'+FOP.getFlashVars()+'"';
      html += "></embed>";
    }
    if (FOP.flashVer() >= 8) {
      for (var i=0; i<this.length; i++) this.get(i).innerHTML = html;
    }
  };


  FOP.getFlashVars = function() {
    var variables = new Array();
    for (var key in FOP.variables) variables.push(key + "=" + FOP.variables[key]);
    return (variables.length > 0) ? variables.join("&") : false;
  }


  FOP.flashVer = function() {
    var n = navigator;
    var d = document;

    if(n.appVersion.indexOf("MSIE")>=0 && n.appVersion.indexOf("Win")>=0) {
      d.writeln("<s"+"cript language=\"VBScript\">\non error resume next\nver=0");
      for (i=3; i <= 10; i++)
        d.writeln("if(IsNull(CreateObject(\"ShockwaveFlash.ShockwaveFlash."+i+"\"))) then dummy=0 else ver="+i+" end if");
      d.writeln("</s"+"cript>");
    }
    else eval("var ver=0");

    if(n.plugins && n.plugins["Shockwave Flash"]) {
      t=n.plugins["Shockwave Flash"].description;
      ver=parseInt(t.substr(t.indexOf(".")-2,2),10);
    }
    return ver;
  }

})(jQuery);
