function generateFlashObject(url, id, width, height, oContainer, bReturn, Style, OtherAttributes, bUseCodeBase, quality, wmode, avatarParams, bPlay) {
	//is this old or new?
	if(arguments.length <= 3){
		//width is really params;
		params = arguments[2];	
	}else{
		return generateFlashObject(url,id,
			{width:width, height:height, oContainer:oContainer, bReturn:bReturn,
			 Style:Style, OtherAttributes:OtherAttributes, bUseCodeBase:bUseCodeBase,
			 quality:quality, wmode:wmode, avatarParams:avatarParams, bPlay:bPlay
			}
		);
	}

	//Function really starts here
	var defaults = {
		width:null, height:null, oContainer:null, bReturn:false,
		Style:null, OtherAttributes:null, bUseCodeBase:false,
		quality:"high", wmode:"Transparent", avatarParams:null, bPlay:false,
    	salign:"tl"
	}
	//update params with default values
	for(key in defaults){
		if(params[key] == null){
			params[key] = defaults[key];
		}
	}
	
	var VERSION_NUM=0;

	//URL required
	if (! url){ return false; }
	if (! id){ id="oAvatarControl"; }
	if(url.indexOf('?')==-1){
		url+='?';
	}
	url+='&V='+VERSION_NUM;
	
	var html = '<object id="'+id+'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"';

	if ( params.bUseCodeBase ){
		html+=' codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"';
	} else {
		html+=' codebase="#version=8,0,0,0"';
	}

	html += ' align="middle"';
	html += ' onerror="if ( typeof(generateFlashObjectError) == \'function\' ) generateFlashObjectError();return false;"';

	if (params.width){
		 html+=' width="'+params.width+'"';
	}
	if (params.height){
		html+=' height="'+params.height+'"';
	}
	if (params.Style) {
		html+=params.Style;
	}
	if (params.OtherAttributes){
		html+=params.OtherAttributes;
	}

	html+='>';

	html+='<param name="movie" value="'+url+'">';
	html+='<param name="WMode" value="'+params.wmode+'">';
	html+='<param name="allowScriptAccess" value="always">';
	html+='<param name="quality" value="'+params.quality+'">';
	html+='<param name="menu" value="0">';
	html+='<param name="play" value="'+params.bPlay+'">';
	if(params.salign){
		html+='<param name="salign" value="'+params.salign+'">';
	}
	if (params.avatarParams){
		html+='<param name="FlashVars" value="'+params.avatarParams+'">';
	}
	
	var NAV_IE=(navigator.appName.toLowerCase().indexOf("microsoft internet explorer")>-1);
	
	if (! NAV_IE) {
		html+='<embed src="'+url+'" play="'+params.bPlay+'" menu="'+params.bPlay+'" quality="'+params.quality+'" wmode="'+params.wmode+'"';
		if (params.width){ html+=' width="'+params.width+'"'; }
		if (params.height){ html+=' height="'+params.height+'"'; }
		if (params.avatarParams){ html+=' FlashVars="'+params.avatarParams+'"'; }
		html+=' name="'+id+'" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" '+
		'pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	}
	
	html+='</object>';
	
	if (params.oContainer) {
		params.oContainer.innerHTML = html;
	} else if (params.bReturn) {
		return html;
	} else {
		document.write(html);	
	}
}
function generateExternalObject( html ) { document.write( html ); }