if (typeof(vekcn) != "object"){
	var vekcn = {};
}

vekcn.$ = function(objId){
	if (!objId){
		throw new Error("vekcn.$(String objId)²ÎÊý±ØÐë")
	}

	if ( document.getElementById ){
		return eval('document.getElementById("' + objId + '")')
	}else if ( document.layers ){
		return eval("document.layers['" + objId + "']")
	}else{
		return eval('document.all.' + objId)
	}
}

vekcnFlash = function(C, v, x, V, c, X, i, O, I, l, o){

	var z = this;
	if (!document.createElement || !document.getElementById){
		return
	}

	z.id = v ? v : "";
	z.classid = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
	z.codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" + (c ? c : "7") + ",0,0,0";
	z.width = x;
	z.height = V;
	z.movie = C;
	z.bgcolor = X ? X : null;
	z.quality = O ? O : "high";
	z.src = z.movie;
	z.pluginspage = "http://www.macromedia.com/go/getflashplayer";
	z.type = "application/x-shockwave-flash";
	z.useExpressInstall = i ? i : null;
	z.xir = (I) ? I : window.location;
	z.redirectUrl = l ? l : null;
	z.detectKey = o ? o : null;
	z.escapeIs = false;
	z.objAttrs = {};
	z.params = {};
	z.flashVars = [];
	z.flashVarsStr = "";
	z.embedAttrs = {};
	z.forSetAttribute("id", z.id);
	z.objAttrs["classid"] = z.classid;
	z.forSetAttribute("codebase", z.codebase);
	z.forSetAttribute("width", z.width);
	z.forSetAttribute("height", z.height);
	z.forSetAttribute("movie", z.movie);
	z.forSetAttribute("quality", z.quality);
	z.forSetAttribute("pluginspage", z.pluginspage);
	z.forSetAttribute("type", z.type);
	z.forSetAttribute("bgcolor", z.bgcolor)
}

vekcnFlash.prototype = { 

	getFlashHtml: function()
	{
		var I = this, i = '<object ';
		for (var l in I.objAttrs)
		{
			i += l + '="' + I.objAttrs[l] + '" '
		}

		i += '>';

		for (var l in I.params)
		{
			i += '<param name="' + l + '" value="' + I.params[l] + '" /> '
		}

		if ( I.flashVarsStr != "" )
		{
			i += '<param name="FlashVars" value="' + I.flashVarsStr + '" /> '
		}

		i += '<embed ';

		for (var l in I.embedAttrs)
		{
			i += l + '="' + I.embedAttrs[l] + '" '
		}

		i += ' ></embed></object>';
		return i
	},
			
	forSetAttribute: function(I, i){
		var l = this;
		I = I.toLowerCase();

		switch (I){
			case "classid": break;

			case "pluginspage":
			l.embedAttrs["pluginspage"] = i;
			break;

			case "src":
			l.embedAttrs["src"] = i;
			l.params["movie"] = i;
			break;

			case "movie":
			l.params["movie"] = i;
			l.embedAttrs["src"] = i;
			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":
			l.embedAttrs["type"] = i;
			break;

			case "codebase":
			l.objAttrs["codebase"] = i;
			break;

			case "width":
			l.objAttrs["width"] = i;
			l.embedAttrs["width"] = i;
			break;

			case "height":
			l.objAttrs["height"] = i;
			l.embedAttrs["height"] = i;
			break;

			case "align":
			l.objAttrs["align"] = i;
			l.embedAttrs["align"] = i;
			break;

			case "vspace":
			l.objAttrs["vspace"] = i;
			l.embedAttrs["vspace"] = i;
			break;

			case "hspace":
			l.objAttrs["hspace"] = i;
			l.embedAttrs["hspace"] = i;
			break;

			case "class":
			l.objAttrs["class"] = i;
			l.embedAttrs["class"] = i;
			break;

			case "title":
			l.objAttrs["title"] = i;
			break;

			case "accesskey":
			l.objAttrs["accesskey"] = i;
			break;

			case "name":
			l.objAttrs["name"] = i;

			l.embedAttrs["name"] = i;
			break;

			case "id":
			l.objAttrs["id"] = i;
			l.embedAttrs["name"] = i;
			break;

			case "tabindex":
			l.objAttrs["tabindex"] = i;
			break;

			default: l.params[I] = l.embedAttrs[I] = i
		}
	}, 
		
	
	forGetAttribute: function(i){
		var I = this;
		i = i.toLowerCase();

		if ( I.objAttrs[i] != undefined ){
			return I.objAttrs[i]
		}else if ( I.embedAttrs[i] != undefined ){
			return I.embedAttrs[i]
		}else if ( I.embedAttrs != undefined ){
			return I.embedAttrs[i]
		}else{
			return null
		}
	}, 
		
	setAttribute: function(I, i){
		this.forSetAttribute(I, i)
	}, 
			
	getAttribute: function(i){
		return this.forGetAttribute(i)
	}, 
	
	addVariable: function(I, i){
		var l = this;

		if ( l.escapeIs )
		{
			I = escape(I);
			i = escape(i)
		}

		if ( l.flashVarsStr == "" )
		{
			l.flashVarsStr = I + "=" + i
		}else{
			l.flashVarsStr += "&" + I + "=" + i
		}

		l.embedAttrs["FlashVars"] = l.flashVarsStr
	}, 
			
	getVariable: function(I){
		var o = this, i = o.flashVarsStr;

		if ( o.escapeIs )
		{
			I = escape(I)
		}

		var l = new RegExp(I + "=([^\\&]*)(\\&?)", "i").exec(i);

		if ( o.escapeIs )
		{
			return unescape(RegExp.$1)
		}

		return RegExp.$1
	}, 
			
	addParam: function(I, i){
		this.forSetAttribute(I, i)
	}, 
			
	getParam: function(){
		return this.forGetAttribute(name)
	}, 
	
	write: function(i){
		var I = this;

		if ( typeof i == "string" ){
			vekcn.$(i).innerHTML = I.getFlashHtml()
		}else if ( typeof i == "object" ){
			i.innerHTML = I.getFlashHtml();
		}
	}
}
