function IsContainParam( strInnerHtml)
{
  var bContain;
  if ( strInnerHtml)
  if (( strInnerHtml.indexOf( '<param') >= 0)
    ||( strInnerHtml.indexOf( '<PARAM') >= 0)
      )
  {
    bContain = true;
  }
  return bContain;
}
function FixObjectActivateAlert( obj)
{
  if ( !IsContainParam( obj.innerHTML))
  {
    var strParamHtml = '';
    //var arParam = obj.getElementsByTagName('param'); // Doesn't working in IE 6 and 7 - returns all <param> instead of children
    var arParam = obj.childNodes;
    var i = 0;
    for ( i = 0; i < arParam.length; i++)
    {
      if ( arParam[ i].tagName.toLowerCase() == 'param')
        strParamHtml += arParam[ i].outerHTML;
    }
    var strResult = obj.outerHTML.replace( '>', '>'+strParamHtml);
    //alert( 'obj.outerHTML = '+obj.outerHTML+"\n"
    //      +' strResult = '+strResult
    //      );
    obj.outerHTML = strResult;
  }
  else
  {
    obj.outerHTML = obj.outerHTML;
  }
}

function FixAllObjectActivateAlert( strTagName)
{
  var arObj = document.getElementsByTagName( strTagName);
  var i = 0;
  for ( i = 0; i < arObj.length; i++)
  {
    FixObjectActivateAlert( arObj[ i]);
  }
}

function CObjectStyle( object)
{
  this.m_object = object;
  this.m_bEmptyStyle = false;
  if ( object.style)
  {
    //this.m_strDisplay = this.m_object.style.display;
    this.m_strVisibility = this.m_object.style.visibility;
  }
  else
    this.m_bEmptyStyle = true;

}

CObjectStyle.prototype.RestoreDisplay = function()
{
  if ( this.m_bEmptyStyle)
    this.m_object.style = '';
  else
  {
    //this.m_object.style.display = this.m_strDisplay;
    this.m_object.style.visibility = this.m_strVisibility;
  }
}

var s_arObjectStyle = new Array();

function HideAllObject( strTagName)
{
  var arObj = document.getElementsByTagName( strTagName);
  var i = 0;
  for ( i = 0; i < arObj.length; i++)
  {
    HideOneObject( arObj[ i]);
  }
}

function HideOneObject( obj)
{
  s_arObjectStyle[ s_arObjectStyle.length] = new CObjectStyle( obj);
  //obj.style.display = 'none';
  obj.style.visibility = 'hidden';
}

function RestoreAllObjectStyles()
{
  var i = 0;
  for ( i = 0; i < s_arObjectStyle.length; i++)
  {
    s_arObjectStyle[ i].RestoreDisplay();
  }
  s_arObjectStyle = new Array();
}


function FixFlashActivateAlert()
{
  if ((( IsIE()) && ( !IsOldIE()))
    ||(( IsOpera()) && ( !IsOldOpera()))
     )
  {
    FixAllObjectActivateAlert( 'object');
    FixAllObjectActivateAlert( 'embed');
    FixAllObjectOperaHidding();
  }
}

function FixAllObjectOperaHidding()
{
  if ( IsOpera())
  {
    HideAllObject( 'object');
    setTimeout( RestoreAllObjectStyles, 500);
  }
}

function FixOneObjectOperaHidding( obj)
{
  if ( IsOpera())
  {
    HideOneObject( obj)
    setTimeout( RestoreAllObjectStyles, 500);
  }
}
