var alertOnceCookieName = "alertSvg";

  function getCookieVal( offset ) {
    var endstr = document.cookie.indexOf( ";", offset );
    if ( endstr == -1 )
      endstr = document.cookie.length;
    return unescape( document.cookie.substring( offset, endstr ) );
  }
  function GetCookie( name ) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while ( i < clen ) {
      var j = i + alen;
      if ( document.cookie.substring( i, j ) == arg )
        return getCookieVal( j );
      i = document.cookie.indexOf( " ", i ) + 1;
      if ( i == 0 ) break;
    }
    return null;
  }

  function AlertOnce( alertOnceMessage )
  {
    var alertSvg = 0;
    if ( GetCookie( alertOnceCookieName ) == "1" )
    {
      alertSvg = 1;
    }
    else
    {
      alert( alertOnceMessage );
      document.cookie = alertOnceCookieName + "=1";
    }
  }

  function IsSvgEnabled()
  {
    try { //Test for native SVG (DOM) support
      var svgElement = document.createElementNS( 'http://www.w3.org/2000/svg', 'svg' );
      if ( typeof svgElement.width != 'undefined' )
        return true;
    } catch (e) {}
    try { //Test for Adobe SVG Viewer plug-in
      var axo = new ActiveXObject( "Adobe.SVGCtl" );
      return true;
    } catch (e) {}
    //No enabled SVG support found.
    return false;
  }
  
  function EmitSvg( svgAttribs, imgAttribs, alertOnceMessage )
  {
    if ( IsSvgEnabled() )
    {
      document.writeln( '<embed ' + svgAttribs + '>' );
    }
    else
    {
      document.writeln( '<img ' + imgAttribs + '>' );
      if ( alertOnceMessage != null && alertOnceMessage != '' )
        AlertOnce( alertOnceMessage );
    }
  }

