
	/* Remove element from layout */
	function fn_remove( x_element_id ) {
		if( document.getElementById ) {
			var x = document.getElementById( x_element_id );
			if( x && x.style ) {
				x.style.display = 'none';
			}
		}
	}


/********** Flash **********/

	/* Check for required version of Flash plugin */
	function fn_has_flash( x_required_version ) {
		
		/* Check for mime types array... look for Flash mime type... identify associated plugin... check for required version */
		if( navigator.mimeTypes && navigator.mimeTypes.length && navigator.mimeTypes['application/x-shockwave-flash'] && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin.description ) {
			return ( parseInt( navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin.description.split(' ')[2].split('.')[0] ) >= x_required_version );
		}
		
		/* Check for required version of Flash plugin on Internet Explorer */
		if( typeof fn_internet_explorer_has_flash == 'function' ) {
			return fn_internet_explorer_has_flash( x_required_version );
		}
		
		/* Required version of Flash plugin not found... */
		return false;
		
	}

	/* Embed Flash content */
	function fn_flash( x_required_version, x_upgrade, x_spec, x_alternate_content_id ) {
		
		/* Check for required version of Flash plugin */
		x_has_flash = fn_has_flash( x_required_version );
		
		/* If required version of Flash plugin is found or upgrade is requested... */
		if( x_has_flash || x_upgrade ) {
			
			/* Build a string containing the necessary html for embedding the Flash content...
				
				<div style="width: 330px; height: 220px;">
					<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="movie" width="330" height="220">
						<param name="movie" value="movie.swf">
						<embed type="application/x-shockwave-flash" src="movie.swf" name="movie" width="330" height="220"></embed>
					</object>
				</div>
				
			*/
			
			var x_div_str = '';
			var x_object_str = '';
			var x_param_str = '';
			var x_embed_str = '';
			
			x_div_str += '<div style="';
			x_object_str += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
			x_param_str += '';
			x_embed_str += '<embed type="application/x-shockwave-flash" ';
			
			if( x_upgrade ) {
				x_div_str += '';
				x_object_str += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + x_required_version + ',0,0,0" ';
				x_param_str += '';
				x_embed_str += 'pluginspage="http://www.macromedia.com/go/getflashplayer" ';
			}
			
			var x_spec_array = x_spec.split(',');
			for ( var i=0; i<x_spec_array.length; i++ ) {
				var x_spec_item = x_spec_array[i].split('=');
				switch ( x_spec_item[0] ) {
					case 'src':
						x_div_str += '';
						x_object_str += '';
						x_param_str += '<param name="movie" value="' + x_spec_item[1] + '" />';
						x_embed_str += 'src="' + x_spec_item[1] + '" ';
						break;
					case 'id':
						x_div_str += '';
						x_object_str += 'id="' + x_spec_item[1] + '" name="' + x_spec_item[1] + '" ';
						x_param_str += '';
						x_embed_str += 'id="' + x_spec_item[1] + '" name="' + x_spec_item[1] + '" ';
						break;
					case 'width':
					case 'height':
						x_div_str += x_spec_item[0] + ': ' + x_spec_item[1] + 'px; ';
						x_object_str += x_spec_item[0] + '="' + x_spec_item[1] + '" ';
						x_param_str += '';
						x_embed_str += x_spec_item[0] + '="' + x_spec_item[1] + '" ';
						break;
					default:
						x_div_str += '';
						x_object_str += '';
						x_param_str += '<param name="' + x_spec_item[0] + '" value="' + x_spec_item[1] + '" />';
						x_embed_str += x_spec_item[0] + '="' + x_spec_item[1] + '" ';
						break;
				}
			}
			
			x_div_str += '">';
			x_object_str += '>';
			x_param_str += '';
			x_embed_str += '>';
			
			/* Embed Flash content */
			alert( x_div_str + x_object_str + x_param_str + x_embed_str + '</embed></object></div>' );
			document.write( x_div_str + x_object_str + x_param_str + x_embed_str + '</embed></object></div>' );
			
			/* Hide alternate content */
			if( x_has_flash ) {
				fn_remove( x_alternate_content_id );
			}
			
		}
	}

