<!-- begin

// Based on:
//   http://www.adobe.com/devnet/activecontent/articles/devletter.html
//   http://www.adobe.com/devnet/activecontent/articles/before_after.html



function x2_generate_flash(movie_name, data)
{
	document.write(x2_get_flash_content(movie_name, data));
}

function x2_generate_flash_content(movie_name, data)
{
	document.write(x2_get_flash_content(movie_name, data));
}

function x2_flash_content(movie_name, data)
{
	document.write(x2_get_flash_content(movie_name, data));
}


function x2_test_flash_version(version)
{
	return x2_check_flash_version(version);
}

function x2_check_flash_version(version)
{
	var _x2_test_flash_result = 0;
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	
	if (plugin)
	{
		if (navigator.plugins["Shockwave Flash"])
		{
			var words = navigator.plugins["Shockwave Flash"].description.split(" ");
			
			for (var i = 0; i < words.length; ++i)
			{
				if (isNaN(parseInt(words[i]))) continue;
				var MM_PluginVersion = words[i]; 
			}
			var _x2_test_flash_result = MM_PluginVersion >= version;
		}
	}
	else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE") >= 0 && (navigator.appVersion.indexOf("Win") != -1))
	{
		document.write('<SCR' + 'IPT LANGUAGE=\'VBScript\'\> \n');

		document.write('FUNCTION x2_test_flash_vb_fnc()  \n');
		document.write('  on error resume next \n');
		document.write('  x2_test_flash_vb_fnc = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.' + version + '"))) \n');
		document.write('END FUNCTION \n');
		
		document.write('<\/SCR' + 'IPT\> \n');
		
		var _x2_test_flash_result = x2_test_flash_vb_fnc();
	}

	return _x2_test_flash_result;
}


function x2_get_flash_content(movie_name, data)
{

	if (!data) data = new Object();

	var keys = _x2_flash_content_get_keys(data);



	if (!keys.quality) data.quality = 'high';

	if (keys.width == undefined) data.width = '100%';
	if (keys.height == undefined) data.height = '100%';




	var data1 = _x2_flash_content_resolve_data(data);



	// Common data
	data1.params.movie = movie_name;
	data1.emb_attrs.src = movie_name;



	// Object Attributes
	var keys = _x2_flash_content_get_keys(data1.obj_attrs);

	data1.obj_attrs.classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";

	if (!keys.codebase)
	{
		data1.obj_attrs.codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'
	}


	// Embed Attributes
	var keys = _x2_flash_content_get_keys(data1.emb_attrs);

	if (!keys.pluginspage)
	{
		data1.emb_attrs.pluginspage = 'http://www.macromedia.com/go/getflashplayer';
	}

	data1.emb_attrs.type = "application/x-shockwave-flash";


	// Parameters

	//window.alert(_x2_analyze_variable(data1.params));

	var str = _x2_flash_content_generate_object(data1.obj_attrs, data1.params, data1.emb_attrs);
	//window.alert(str);
	return str;
}


function _x2_flash_content_generate_object(obj_attrs, params, emb_attrs)
{
	var result = new Array();

	result.push('<object ' + _x2_flash_content_get_attributes(obj_attrs).join(' ') + '>');

	for (var i in params)
	{
		result.push("\t" + '<param name="' + i + '" value="' + params[i] + '" />');
	}

	result.push('');
	result.push("\t<embed " + _x2_flash_content_get_attributes(emb_attrs).join(' ') + '></embed>');

	result.push('</object>');

	return result.join("\r\n");
}

function _x2_flash_content_get_attributes(data)
{
	var result = new Array();
	for (var i in data) result.push(i + '="' + data[i] + '"');

	return result;
}

function _x2_flash_content_get_keys(data)
{
	var result = new Object();
	for (var i in data) result[String(i).toLowerCase()] = 1;

	return result;
}



function _x2_flash_content_resolve_data(data)
{
	var ret = new Object();

	ret.obj_attrs = new Object();
	ret.emb_attrs = new Object();
	ret.params = new Object();




	for (var key in data)
	{
		var value = data[key];

		switch (key.toLowerCase())
		{
			case "classid":
				break;


			case "pluginspage":
				ret.emb_attrs[key] = value;

				break;

			case "src":
			case "movie":
				break;


			case "onafterupdate":
			case "onbeforeupdate":
			case "onblur":
			case "oncellchange":
			case "onclick":
			case "ondblClick":
			case "ondrag":
			case "ondragend":
			case "ondragenter":
			case "ondragleave":
			case "ondragover":
			case "ondrop":
			case "onfinish":
			case "onfocus":
			case "onhelp":
			case "onmousedown":
			case "onmouseup":
			case "onmouseover":
			case "onmousemove":
			case "onmouseout":
			case "onkeypress":
			case "onkeydown":
			case "onkeyup":
			case "onload":
			case "onlosecapture":
			case "onpropertychange":
			case "onreadystatechange":
			case "onrowsdelete":
			case "onrowenter":
			case "onrowexit":
			case "onrowsinserted":
			case "onstart":
			case "onscroll":
			case "onbeforeeditfocus":
			case "onactivate":
			case "onbeforedeactivate":
			case "ondeactivate":
			case "type":
			case "codebase":

				ret.obj_attrs[key] = value;
				break;



			case "width":
			case "height":
			case "align":
			case "vspace":
			case "hspace":
			case "class":
			case "title":
			case "accesskey":
			case "name":
			case "id":
			case "tabindex":
			case "onmousewheel":

				ret.emb_attrs[key] = value;
				ret.obj_attrs[key] = value;
				break;

			default:
				ret.emb_attrs[key] = value;
				ret.params[key] = value;
		}
	}



	return ret;
}

function _x2_analyze_variable(obj)
{
	if (!obj) return '';

	var arr = Array();

	for (var i in obj)
	{
		arr.push(i + ' = ' + obj[i]);
	}

	return arr.join("\n");
}




// end -->
