var jActivating = 
{

// Checks for Internet Explorer
isMSIE : (document.all && !window.opera) ? true : false,


/**
* Activates embedded content reinserting it
* @return void
*/
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 = jActivating.getSourceCode(node);
if(sourceCode)
{
node.outerHTML = sourceCode;
}
}
}
jActivating.isMSIE = null;
},


/**
* Retrieves the object and its content in HTML.
* @param object - The analyzed node
* @return string - The HTML received, NULL for malformed syntax (end tag)
*/
getSourceCode : function(node)
{
var sourceCode = node.outerHTML;
switch(node.nodeName.toLowerCase())
{
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>')
{
// Filters malformed syntax for avoid unexpected results in Internet Explorer
return null;
}
if(jActivating.isMSIE)
{
var innerCode = jActivating.getInnerCode(node);
sourceCode = openTag + innerCode + closeTag;
}
return sourceCode;
break;
}
},


/**
* Retrieves the HTML between start and end tags of the object.
* @param object - The analyzed node
* @return string - The HTML received
*
* NOTE: the innerHTML property isn't used because Internet Explorer
* sometimes returns a empty result.
*/
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;
}

}


// Execute script only for Internet Explorer and Opera (9+)
if(document.attachEvent)
{
if(window.opera)
{
document.attachEvent("DOMContentLoaded", jActivating.reinsertContent);
}
else
{
jActivating.reinsertContent();
}
}
