var MoosIFR = new Class({
	initialize: function(elements, options) {
		this.setOptions({
			flashsrc: "",
			textcolor: "#000000",
			linkcolor: null,
			hovercolor: null,
			bgcolor: "#FFFFFF",
			paddingtop: 0,
			paddingright: 0,
			paddingbottom: 0,
			paddingleft: 0,
			flashvars: "textalign=left",
			wmode: "transparent"
		}, options);
				
		if(this.hasFlash() && $$(elements).length > 0) {
		
			$$("html").addClass("sIFR-hasFlash");
			
			if(this.options.wmode == "transparent"){
				this.options.bgcolor = "transparent";
			}
			
			$$(elements).each(function(el){
				if(el.hasClass("sIFR-replaced") || el.hasClass("sIFR-alternate")) {
					return;
				}
				var offsets = el.getSize();
				var sWidth = offsets.size.x - this.options.paddingleft - this.options.paddingright;
				var sHeight = offsets.size.y - this.options.paddingtop - this.options.paddingbottom;
			
				var alternate = new Element("span",{"class":"sIFR-alternate"}).setHTML(el.innerHTML);
				var links = "";
				$each(el.getElements("a"), function(link, index){ 
					links += "&sifr_url_" + index + "=" + link.getProperty("href");
					link.setProperty("href","asfunction:_root.launchURL," + index);
				});
				
				this.flashvars = "txt=" + el.innerHTML.replace(/\+/g, "%2B").replace(/&/g, "%26").replace(/\"/g, "%22");
				this.flashvars += "&w=" + sWidth + "&h=" + sHeight;
				this.flashvars += links + "&" + this.options.flashvars;
				
				$each(this.options, function(v, k){
					if(v && k != "flashvars" && k != "flashsrc"){
						this.flashvars += "&" + k + "=" + v;
					}
				}.bind(this));
				
				el.empty();
				el.addClass("sIFR-replaced").setHTML(
					'<embed class="sIFR-flash" type="application/x-shockwave-flash" src="../muestra_files/' + this.options.flashsrc + '" quality="best" wmode="' + this.options.wmode + '" bgcolor="' +  this.options.bgcolor + '" flashvars="' + this.flashvars + '" width="' + sWidth + '" height="' + sHeight + '" sifr="true"></embed>'
				);
				el.innerHTML += ""; 
				
				alternate.injectInside(el);
			}, this);
		}
	
	},
	
	hasFlash: function(){
		if(window.hasFlash != null) {
			return window.hasFlash >= 6;
		};
		
		var pVersion = 0;
		
		if(navigator.plugins && navigator.mimeTypes.length) {
			var x = navigator.plugins["Shockwave Flash"];
			if(x && x.description) {
				pVersion = x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")[0];				
			}
		} else {
			try {
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
			} catch(e) {
				try {
					var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
					pVersion = 6;
					axo.AllowScriptAccess = "always";
				} catch(e) {
					if (pVersion == 6) {
						window.hasFlash = pVersion;
						return true;
					}
				}
				try {
					axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				} catch(e) {}
			}
			if (axo != null) {
				pVersion = axo.GetVariable("$version").split(" ")[1].split(",")[0];
			}
		}
		window.hasFlash = pVersion;
		return pVersion >= 6;
	}
});

MoosIFR.implement(new Options);
