;(function()
{
	var $$;
		$$ = jQuery.fn.flash = function(htmlOptions, pluginOptions, replace, update)
		{
			var block = replace || $$.replace;
			pluginOptions = $$.copy($$.pluginOptions, pluginOptions);
			if(!$$.hasFlash(pluginOptions.version))
			{
				if(pluginOptions.expressInstall && $$.hasFlash(6,0,65))
				{
					var expressInstallOptions = {
						flashvars: {  	
							MMredirectURL: location,
							MMplayerType: 'PlugIn',
							MMdoctitle: jQuery('title').text() 
						}					
					};
				}
				else if (pluginOptions.update)
				{
					block = update || $$.update;
				}
				else
				{
					return this;
				}
			}
			htmlOptions = $$.copy($$.htmlOptions, expressInstallOptions, htmlOptions);
			return this.each(function()
			{
				block.call(this, $$.copy(htmlOptions));
			});
		};
		$$.copy = function()
		{
			var options = {}, flashvars = {};
			for(var i = 0; i < arguments.length; i++)
			{
				var arg = arguments[i];
				if(arg == undefined) { continue; }
				jQuery.extend(options, arg);
				if(arg.flashvars == undefined) { continue; }
				jQuery.extend(flashvars, arg.flashvars);
			}
			options.flashvars = flashvars;
			return options;
		};
		$$.hasFlash = function()
		{
			if(/hasFlash\=true/.test(location)) { return true; }
			if(/hasFlash\=false/.test(location)) { return false; }
			var pv = $$.hasFlash.playerVersion().match(/\d+/g);
			var rv = String([arguments[0], arguments[1], arguments[2]]).match(/\d+/g) || String($$.pluginOptions.version).match(/\d+/g);
			for(var i = 0; i < 3; i++)
			{
				pv[i] = parseInt(pv[i] || 0);
				rv[i] = parseInt(rv[i] || 0);
				if(pv[i] < rv[i]) return false;
				if(pv[i] > rv[i]) return true;
			}
			return true;
		};
		$$.hasFlash.playerVersion = function()
		{
			try
			{
				try
				{
					var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
					try
					{
						axo.AllowScriptAccess = 'always';
					} 
					catch(e)
					{
						return '6,0,0';
					}	
				}
				catch(e) {}
				return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
			}
			catch(e)
			{
				try
				{
					if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)
					{
						return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
					}
				}
				catch(e) {}		
			}
			return '0,0,0';
		};
		$$.htmlOptions = {
			height: 240,
			flashvars: {},
			pluginspage: 'http://www.adobe.com/go/getflashplayer',
			src: '#',
			type: 'application/x-shockwave-flash',
			width: 320		
		};
		$$.pluginOptions = {
			expressInstall: false,
			update: true,
			version: '6.0.65'
		};
		$$.replace = function(htmlOptions)
		{
			//this.innerHTML = '<div class="alt">'+this.innerHTML+'</div>';
			this.innerHTML = '';/* Colocado novo */
			jQuery(this)
				//.addClass('flash-replaced')
				.prepend($$.transform(htmlOptions));
		};
		$$.update = function(htmlOptions)
		{
			var url = String(location).split('?');
			url.splice(1,0,'?hasFlash=true&');
			url = url.join('');
			var msg = '<p>Este conteudo requer flash Player. <a href="http://www.adobe.com/go/getflashplayer">Atualizar o Flash Player</a>. Ja instalou o Flash Player? <a href="'+url+'">atualizar.</a></p>';
			//this.innerHTML = '<span class="alt">'+this.innerHTML+'</span>';
			jQuery(this)
				//.addClass('flash-update')
				.prepend(msg);
		};
		function toAttributeString()
		{
			var s = '';
			for(var key in this)
			{
				if(typeof this[key] != 'function')
				{
					s += key+'="'+this[key]+'" ';
				}
			}
			return s;		
		};
		function toFlashvarsString()
		{
			var s = '';
			for(var key in this)
			{
				if(typeof this[key] != 'function')
				{
					s += key+'='+encodeURIComponent(this[key])+'&';
				}
			}
			return s.replace(/&$/, '');		
		};
		$$.transform = function(htmlOptions)
		{
			htmlOptions.toString = toAttributeString;
			if(htmlOptions.flashvars) 
			{
				htmlOptions.flashvars.toString = toFlashvarsString;
			}
			return '<embed ' + String(htmlOptions) + ' />';		
		};
		if (window.attachEvent)
		{
			window.attachEvent("onbeforeunload", function()
			{
				__flash_unloadHandler = function() {};
				__flash_savedUnloadHandler = function() {};
			});
		}
})();