//DOM Script que aplica crea textos suavizados a traves de un flash tomando el contenido del HTML.
//Utiliza SWFOBJECT para insertar el flash y permite configurar color de fondo, alto y ancho,
//swf (para poder crear titulos con diferentes fuentes) y wmode transparente. Se aplica de esta forma:
//<div class="flashtitle [anchoxalto] [colorfondo] [transparent] [archivofuentealternativa.swf]" id="[id_del_div]"><span id="flashtitle_content">[contenido_del_div]</span></div>
//
//NOTA: Los puntos mas importantes es que el primer div contenga la classe css 'flashtitle' y el segundo div el id 'flashtitle_content'.
//Ademas se debe publicar el flash por defecto como flashtitle.swf
dnse_styleFlashTitle = function(){
	//swfobject 1.5
	// var installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
	// var isFlashEnabled = installedVer.versionIsValid({major: 6, minor: 0});

	//swfobject 2.1
	var isFlashEnabled = swfobject.hasFlashPlayerVersion("6.0.0")

	if(isFlashEnabled){
		//var m = document.getElementsByTagName('div'); //DOM
		//var m = $$('.flashtitle');	//Mootools
		var m = $('.flashtitle');	//jQuery

		for(a=0;a<m.length;a++){
			if(m[a].className.indexOf("flashtitle")!=-1){
				elm = m[a];
				if(elm.firstChild.id == "flashtitle_content"){
					//Crea el nuevo contenido y hace backup del div en un span
					//El nuevo contenido tiene una estructura como esta:
					//
					//<span id="[id_del_div]_flashtitle_backup" style="display: none;">
					//	[contenido_copia_de_flashtitle_content]
					//</span>					
					//<div id="[id_del_div]" class="flashtitle">
					//	<span id="[id_del_div]_flashtitle_content">[contenido]</span>
					//</div>
					contElm = elm.firstChild.innerHTML;
					elm.firstChild.setAttribute('id',elm.id+"_"+a+"_flashtitle_content");
					contBackup = document.createElement("span");
					contBackup.setAttribute('id',elm.id+"_"+a+'_flashtitle_backup');
					contBackup.innerHTML = contElm;
					elm.parentNode.insertBefore(contBackup,elm);
					document.getElementById(elm.id+"_"+a+'_flashtitle_backup').style.display = "none";

					//Extrae parametros que controlan la inclusion del flash en la pagina
					matClass = elm.className.split(" ");

					var swfRoot = "/assets/swf/";
					var swfArchivo = swfRoot + 'dnse_styleFlashTitle.swf'; //Defecto
					var swfBGColor = '#FFFFFF'; //Defecto
					var swfAncho = '100%'; //Defecto
					var swfAlto = '100%'; //Defecto
					var swfWMode = null;

					for(var k=0; k<matClass.length;k++){
						if(matClass[k].indexOf('#')!=-1){
							swfBGColor = matClass[k];
						} else if(matClass[k].indexOf('x')!=-1){
							swfAncho = matClass[k].split('x')[0];
							swfAlto = matClass[k].split('x')[1];
						} else if(matClass[k].indexOf('.swf')!=-1){
							swfArchivo = swfRoot + matClass[k];
						} else {
							if(matClass[k]!='flashtitle'){
								swfWMode = matClass[k];
							};
						};
					};

					//Extrae y formatea contenido HTML y CSSScript para enviarselos a flash
					var cont = 0;
					var fvHTML = "";
					var fvCSS = "";

					tmpContentArray = contElm.split('style="');

					//CSSScript
					for(var i=1;i<tmpContentArray.length;i++){
						var S = (i==1)?"":"~";
						fvCSS += S + "block" + cont + "|" + tmpContentArray[i].substring(0,tmpContentArray[i].indexOf('"'))+";";
						cont++;
					};
					
					//Reemplaza propiedades CSS
					fvCSS = fvCSS.replace(/text-align/gi,'textAlign');
					fvCSS = fvCSS.replace(/font-size/gi,'fontSize');
					fvCSS = fvCSS.replace(/text-decoration/gi,'textDecoration');
					fvCSS = fvCSS.replace(/margin-left/gi,'marginLeft');
					fvCSS = fvCSS.replace(/margin-right/gi,'marginRight');
					fvCSS = fvCSS.replace(/font-weight/gi,'fontWeight');
					fvCSS = fvCSS.replace(/font-style/gi,'fontStyle');
					fvCSS = fvCSS.replace(/letter-spacing/gi,'letterSpacing');
					fvCSS = fvCSS.replace(/text-indent/gi,'textIndent');
					fvCSS = fvCSS.replace(/font-family/gi,'fontFamily');
					fvCSS = fvCSS.replace(/color/gi,'color');
					fvCSS = fvCSS.replace(/kerning/gi,'kerning');
					fvCSS = fvCSS.replace(/ /gi,'');
					
					//HTML
					cont = 0;
					for(var i=0;i<tmpContentArray.length;i++){
						if(tmpContentArray[i].indexOf('"')!=-1 && fvCSS != ''){
							tmpContentArray[i] = tmpContentArray[i].substring(tmpContentArray[i].indexOf('"'),tmpContentArray[i].length);
							fvHTML += 'class="block' + cont + tmpContentArray[i];
							cont++;
						} else {
							fvHTML += tmpContentArray[i];
						};
					};

					//Reemplaza elemntos HTML
					fvHTML = fvHTML.replace(/<a/gi,'<a');
					fvHTML = fvHTML.replace(/<\/a>/gi,'</a>');
					fvHTML = fvHTML.replace(/<b>/gi,'<b>');
					fvHTML = fvHTML.replace(/<\/b>/gi,'</b>');
					fvHTML = fvHTML.replace(/<strong>/gi,'<b>');
					fvHTML = fvHTML.replace(/<\/strong>/gi,'</b>');
					fvHTML = fvHTML.replace(/<br>/gi,'<br>');
					fvHTML = fvHTML.replace(/<br \/>/gi,'<br>');
					fvHTML = fvHTML.replace(/<img/gi,'<img');
					fvHTML = fvHTML.replace(/<i>/gi,'<i>');
					fvHTML = fvHTML.replace(/<\/i>/gi,'</i>');
					fvHTML = fvHTML.replace(/<em>/gi,'<i>');
					fvHTML = fvHTML.replace(/<\/em>/gi,'</i>');
					fvHTML = fvHTML.replace(/<li>/gi,'<li>');
					fvHTML = fvHTML.replace(/<\/li>/gi,'</li>');
					fvHTML = fvHTML.replace(/<p>/gi,'<p>');
					fvHTML = fvHTML.replace(/<\/p>/gi,'</p>');
					fvHTML = fvHTML.replace(/<span/gi,'<span');
					fvHTML = fvHTML.replace(/<\/span>/gi,'</span>');
					fvHTML = fvHTML.replace(/<u>/gi,'<u>');
					fvHTML = fvHTML.replace(/<\/u>/gi,'</u>');
					fvHTML = fvHTML.replace(/&amp;/gi,'%26');
					fvHTML = fvHTML.replace(/%26percent;/gi,'%25');
					fvHTML = fvHTML.replace(/"/gi,'%22');
					fvHTML = fvHTML.replace(/</gi,'{');
					fvHTML = fvHTML.replace(/>/gi,'}');
					
					//Escribe el elemento Flash - swfobject v1.5
					// var so = new SWFObject(swfArchivo, "flashtitle"+a, swfAncho, swfAlto, "6", swfBGColor);
					// so.addParam("scale", "noscale");
					// so.addParam("menu", "false");
					// if(swfWMode!=null){so.addParam("wmode", swfWMode);};
					// so.addVariable("fHTML", fvHTML);
					// so.addVariable("fCSS", fvCSS);
					// so.write(elm.id);
					
					//Escribe el elemento Flash - swfobject v2.1
					var flashvars = {};
					flashvars.fCSS = fvCSS;
					flashvars.fHTML = fvHTML;
					var params = {};
					params.menu = "false";
					params.scale = "noscale";
					if(swfWMode!=null){params.wmode = swfWMode;};
					params.bgcolor = swfBGColor;
					var attributes = {};
					attributes.id = "flashtitle"+a;
					attributes.name = "flashtitle"+a;
					swfobject.embedSWF(swfArchivo, elm.id+"_"+a+"_flashtitle_content", swfAncho, swfAlto, "6.0.0", false, flashvars, params, attributes);
				};
			};
		};
	};
};

//window.addEvent('domready', function(){dnse_styleFlashTitle();});

