/**
 * @author mars
 */
var SWF = Class.create();

Object.extend(SWF, {
	default_parameters:{
		classid: "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
		codebase: "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0",
		align: "middle",
		width: 550,
		height: 400,
		menu: "false",
		scale: "noscale",
		salign: "TL",
		type:"application/x-shockwave-flash",
		pluginspage: "http://www.macromedia.com/go/getflashplayer",
		quality: "high",
		allowScriptAccess: "sameDomain",
		allowFullScreen: "false",
		quality: "high",
		bgcolor: "#FFFFFF",
		wmode: "Window",
		style: ''
	},
	ie_parameters: {
		properties:["classid", "codebase", "width", "height", "id", "align", 'style'],
		parameters:[
			"allowScriptAccess",
			"allowFullScreen",
			"movie",
			"menu",
			"quality",
			"scale",
			"salign",
			"bgcolor",
			"FlashVars",
			"wmode"
		]
	},
	other_parameters:{
		properties:[
			"src",
			"menu",
			"quality",
			"scale",
			"salign",
			"bgcolor",
			"width",
			"height",
			"name",
			"align",
			"allowScriptAccess",
			"allowFullScreen",
			"type",
			"pluginspage",
			"FlashVars",
			"id",
			"wmode",
			'style'
		]
	},
	ie_tag:{
		tag: "object",
		param_tag: "parameter"
	},
	other_tag:{
		tag: "embed"
	}
});

Object.extend(SWF.prototype, {
	parameters: null,
	url: null,
	id: null,
	initialize: function(swfURL, id, params){
		this.url 	= swfURL;
		this.id  	= id?id:"";
		if(params == null){
			this.parameters = {};
		}else{
			this.parameters = params;
		}
	},
	getHTML: function(){
		var parameters = Object.clone(SWF.default_parameters);
		Object.extend(parameters, this.parameters);
		
		var ret = "";
		if(isIE && isWin && !isOpera){ 	// ie
//			alert(parameters['style']);
			Object.extend(parameters, {movie: this.url, id:this.id});
			var p = SWF.ie_parameters;
			ret = "<object "
			for(var i=0; i<p.properties.length; i++){
				if(parameters[p.properties[i]]){
					ret += p.properties[i] 
						+ "='" + parameters[p.properties[i]] + "' ";
				}
			}
			ret += ">";
			for(var i=0; i<p.parameters.length; i++){
				if(parameters[p.parameters[i]]){
					ret += "<param name='" + p.parameters[i] 
						+ "' value='"+parameters[p.parameters[i]] + "'/>\n";	
				}
			}
			ret += "</object>";
		}else{ 							// other
			Object.extend(parameters, {src: this.url, name: this.id, id:this.id});
			var p = SWF.other_parameters;
			ret = "<embed ";
			for(var i=0; i<p.properties.length; i++){
//				alert(p.properties[i]);
				if(parameters[p.properties[i]]){
					ret += p.properties[i] 
						+ "='" + parameters[p.properties[i]] + "' ";
				}
			}
			ret += "/>";
		}
		
		return ret;
	},
	write: function(){
//		alert(this.getHTML());
		document.write(this.getHTML());
	},
	display:function(element){
		$(element).innerHTML = this.getHTML();
	},
	replace: function(element){
		$(element).replace(this.getHTML());
	}
});


 
