<!-- 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, version)
{
	document.write(x2_get_flash_content(movie_name, data, version));
}

function x2_generate_flash_content(movie_name, data, version)
{
	document.write(x2_get_flash_content(movie_name, data, version));
}

function x2_flash_content(movie_name, data, version)
{
	document.write(x2_get_flash_content(movie_name, data, version));
}



function x2_get_version_str(version)
{

	var mx = 8;

	var res = new Array();
	var version_str = String(version);
	var dm = ' ';

	if (version_str.indexOf('.') >= 0) dm = '.';
	else if (version_str.indexOf(',') >= 0) dm = ',';
	else if (version_str.indexOf(':') >= 0) dm = ':';


	var arr = version_str.split(dm);

	var tmp_length = arr.length;
	for (var i = 0; i < tmp_length; i++)
	{
		var s = String(arr[i]);
		var a = parseInt(s, 10);
		if (isNaN(a)) a = 0;
		var s = String(a);

		if (s.length > mx) s = s.substr(0, mx);

		var a = mx - s.length;
		var s_pad = '';
		while (a--) s_pad += '0';

		res.push(s_pad.concat(s));

	}

	return res.join(':');

}

function x2_test_flash_version(version)
{
	return x2_check_flash_version(version);
}



function x2_check_flash_version(version)
{
	//version = '9,4,11';
	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(" ");
			//alert(words);

			for (var i = 0; i < words.length; ++i)
			{
				if (isNaN(parseInt(words[i]))) continue;
				var MM_PluginVersion = words[i];
			}

			var _x2_test_flash_result = (x2_get_version_str(MM_PluginVersion) >= x2_get_version_str(version));

			//var _x2_test_flash_result = false;
			//alert(x2_get_version_str(MM_PluginVersion) + "\n" + x2_get_version_str(version) + "\n" + (x2_get_version_str(MM_PluginVersion) >= x2_get_version_str(version)));
		}
	}
	else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE") >= 0 && (navigator.appVersion.indexOf("Win") != -1))
	{
		//alert('IE')
		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, version)
{

	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)
	{
		if (version == undefined)
		{
			version = 6;
		}

		if (typeof(version) === 'number')
		{
			version = version + ',0,0,0';
		}

		var prefix = (document.URL.indexOf('https') === 0) ? 'https' : 'http';
		data1.obj_attrs.codebase = prefix + '://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + version;
		//alert(data1.obj_attrs.codebase);
	}



	// 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(' ') + '>');

	var disable_mozilla_hack1 = 0;

	for (var i in params)
	{
		if (i === 'disable_mozilla_hack1')
		{
			disable_mozilla_hack1 = 1;
			continue;
		}
		result.push("\t" + '<param name="' + i + '" value="' + params[i] + '" />');
	}

	result.push('');

//	Mozilla hack, hide scroll bar
//	if (!disable_mozilla_hack1) result.push('<div style="overflow:hiden">');
	if (!disable_mozilla_hack1) result.push('<div overflow::hiden>');

	result.push("\t<embed " + _x2_flash_content_get_attributes(emb_attrs).join(' ') + '></embed>');

	if (!disable_mozilla_hack1) result.push('</div>');

	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 "name":
			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 "id":
			case "width":
			case "height":
			case "align":
			case "vspace":
			case "hspace":
			case "class":
			case "title":
			case "accesskey":

			case "tabindex":
			case "onmousewheel":

				ret.emb_attrs[key] = value;
				ret.obj_attrs[key] = value;
				break;

			default:
			case "wmode":
				ret.emb_attrs[key] = value;
				ret.params[key] = value;
		}
	}


	if (ret.obj_attrs['id'] && !ret.emb_attrs['name'])
	{
		ret.emb_attrs['name'] = ret.obj_attrs['id'];
	}


	return ret;
}

function x2_get_flash_object(movie_name)
{
	if (window.document[movie_name])
	{
		return window.document[movie_name];
	}
	if (navigator.appName.indexOf("Microsoft Internet")==-1)
	{
		if (document.embeds && document.embeds[movie_name])
		{
			return document.embeds[movie_name];
		}
	}
	else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
	{
		return document.getElementById(movie_name);
	}
}

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 -->
