function updateContents(cnt)
{
  var newHtml, i;
  
  console.log(cnt);
  
  // Icon
  $('#header').css('background-image', (cnt.icon ? 'url(../' + cnt.icon + ')' : ''));
  
  // Headline
  $('#header h1').html(cnt.headline ? cnt.headline : '&nbsp;');
  
  // Diagnosis
  $('#diagnosis').html(cnt.diagnosis ? cnt.diagnosis : '&nbsp;');
  
  // Solution section
  $('#solution-header').html(cnt.solutionHeader ? cnt.solutionHeader : '&nbsp;');
  if (cnt.solutionText)
  {
    // Easy case: Just a text
    $('#solution').html(cnt.solutionText);
    $('#solution').show();
  }
  else if (cnt.solutionLinks && cnt.solutionLinks.length)
  {
    // Build HTML code for command links
    newHtml = "";
    for (i = 0; i < cnt.solutionLinks.length; i++)
    {
      if (cnt.solutionLinks[i].id && cnt.solutionLinks[i].caption)
      {
        newHtml = newHtml +
          '<button class="commandlink" ' +
            'onclick = "javascript:doClick(\'' + cnt.solutionLinks[i].id + '\')"' +
          '>' +
            cnt.solutionLinks[i].caption +
            (cnt.solutionLinks[i].subtext ? '<footer>' + cnt.solutionLinks[i].subtext + '</footer>' : '') +
          '</button>';
      }
    }
    $('#solution').html(newHtml);
    $('#solution').show();
  }
  else
  {
    $('#solution').hide();
  }
  
  // Effect section with progressive disclosure
  if (cnt.effectHeader && cnt.effectText && (!cnt.level || cnt.level != 'good'))
  {
    $('#effect summary').html(cnt.effectHeader);
    $('#effect > div').html(cnt.effectText);
    $('#effect').show();
  }
  else
  {
    $('#effect').hide();
  }
  
  // Special "no problems" page
  if (cnt.level && cnt.level == 'noproblems')
  {
    if (cnt.noProblemsLinks && cnt.noProblemsLinks.length)
    {
      // Build HTML code for links
      newHtml = "";
      for (i = 0; i < cnt.noProblemsLinks.length; i++)
      {
        if (cnt.noProblemsLinks[i].id && cnt.noProblemsLinks[i].caption)
        {
          if (newHtml.length)
          {
            newHtml = newHtml + '<br>';
          }
          newHtml = newHtml +
            '<a href="' + cnt.noProblemsLinks[i].id + '" ' +
              'onclick     = "javascript:doClick(\''     + cnt.noProblemsLinks[i].id + '\')" ' +
              'onmouseover = "javascript:doMouseOver(\'' + cnt.noProblemsLinks[i].id + '\')" ' +
              'onmouseout  = "javascript:doMouseOut(\''  + cnt.noProblemsLinks[i].id + '\')"' +
            '>' +
              cnt.noProblemsLinks[i].caption +
            '</a>';
        }
      }
      $('#noproblems div').html(newHtml);
    }
  }
  
  // Level
  $('body').attr('class', 'lvl-' + (cnt.level ? cnt.level : 'warning'));
}

$(function()
{
  sendStr('onload');
  
  /*<<*/
    // This block will only be executed in the browser, not in the software
    var tmr = -800;
    
    ///*
    window.setTimeout(
      function()
      {
        var jsonContents = {
          // Critical level
          level:          "critical",
          icon:           "ico_alpha_uac_W7_48x48.png",
          headline:       "A Die Benutzerkontensteuerung Ihres Systems ist ausgeschaltet",
          diagnosis:      "A Die Sicherheitsfunktion <b>Benutzerkontensteuerung</b> (User Account Control, UAC) ist ausgeschaltet." +
                          "<div class=\"warning\">Bitte beachten: Das ist eine ziemlich bescheidene Idee. Es sei denn, Sie sind ein Gefahrensucher.</div>",
          // One-click solution
          solutionHeader: "Empfohlene Problemlösung",
          solutionLinks:  [
            {
              id:      "fix-problem",
              caption: "Icon Benutzerkontensteuerung einschalten",
              subtext: "Macht die Welt wieder heile und löst alle Probleme, die bisher von Nutzern via Gebet eingesandt wurden (Hunger, Armut, Haarausfall). " +
                       "Bitte beachten Sie, dass hierzu ein Neustart erforderlich ist."
            },
            {
              caption: "Jetzt aus dem Fenster hüpfen"
            }
          ],
          // With effect details
          effectHeader:   "Welche Auswirkungen hat dieses Problem?",
          effectText:     "<ol>" +
                            "<li>Versehentlich gelöschte Dateien können u.U. nicht mehr wiederhergestellt werden, da die Größe des <strong>Papierkorbs</strong> durch den freien Speicherplatz begrenzt ist</li>" +
                            "<li>Ältere <strong>Systemwiederherstellungspunkte</strong> werden früher gelöscht</li>" +
                            "<li>Probleme beim <strong>Speichern</strong> von Downloads</li>" +
                          "</ol>"
        };
        updateContents(jsonContents);
      },
      tmr = tmr + 1000
    );
    //*/
    
    ///*
    window.setTimeout(
      function()
      {
        var jsonContents = {
          // Warning level
          level:          "warning",
          icon:           "ico_alpha_uac_W7_48x48.png",
          headline:       "B Die Benutzerkontensteuerung Ihres Systems ist ausgeschaltet",
          diagnosis:      "B Die Sicherheitsfunktion <b>Benutzerkontensteuerung</b> (User Account Control, UAC) ist ausgeschaltet." +
                          "<div class=\"warning\">Bitte beachten: Das ist eine ziemlich bescheidene Idee. Es sei denn, Sie sind ein Gefahrensucher.</div>",
          // Manual solution
          solutionHeader: "So lösen Sie das Problem",
          solutionText:   "<ul><li>Überprüfen Sie das Laufwerk mit TuneUp Disk Doctor auf Fehler.</li>" +
                          "<li>Finden und löschen Sie große Datenmengen mit TuneUp Disk Space Explorer.</li></ul>",
          // With effect details
          effectHeader:   "Welche Auswirkungen hat dieses Problem?",
          effectText:     "B So lange die Benutzerkontensteuerung ausgeschaltet ist, werden Bösewichte auf Ihrem PC praktisch " +
                          "rund um die Uhr furchtbar schlimme Dinge anstellen, ohne dass Windows Sie davor schützen kann. " +
                          "Im Prinzip könnten Sie auch gleich wild jodelnd aus dem Fenster hüpfen."
        };
        updateContents(jsonContents);
      },
      tmr = tmr + 1000
    );
    //*/
    
    ///*
    window.setTimeout(
      function()
      {
        var jsonContents = {
          level:          "warning",
          icon:           "ico_alpha_uac_W7_48x48.png",
          headline:       "C Die Benutzerkontensteuerung Ihres Systems ist ausgeschaltet",
          diagnosis:      "C Die Sicherheitsfunktion <b>Benutzerkontensteuerung</b> (User Account Control, UAC) ist ausgeschaltet." +
                          "<div class=\"warning\">Bitte beachten: Das ist eine ziemlich bescheidene Idee. Es sei denn, Sie sind ein Gefahrensucher.</div>",
          // Manual solution
          solutionHeader: "So lösen Sie das Problem",
          solutionText:   "<ul><li>Überprüfen Sie das Laufwerk mit TuneUp Disk Doctor auf Fehler.</li>" +
                          "<li>Finden und löschen Sie große Datenmengen mit TuneUp Disk Space Explorer.</li></ul>",
          // No effect details
          effectHeader:   "",
          effectText:     ""
        };
        updateContents(jsonContents);
      },
      tmr = tmr + 1000
    );
    //*/
    
    ///*
    window.setTimeout(
      function()
      {
        var jsonContents = {
          // The problem has been solved manually
          level:          "good",
          icon:           "ico_alpha_uac_W7_48x48.png",
          headline:       "D Die Benutzerkontensteuerung Ihres Systems ist ausgeschaltet",
          diagnosis:      "Sie haben das Problem erfolgreich behoben.",
          // One-click solution
          solutionHeader: "",
          solutionLinks:  [
            {
              id:      "close-problem",
              caption: "Dieses Problem schließen und zum nächsten Problem wechseln"
            }
          ],
          // With effect details
          effectHeader:   "Welche Auswirkungen hat dieses Problem?",
          effectText:     "D So lange die Benutzerkontensteuerung ausgeschaltet ist, werden Bösewichte auf Ihrem PC praktisch " +
                          "rund um die Uhr furchtbar schlimme Dinge anstellen, ohne dass Windows Sie davor schützen kann. " +
                          "Im Prinzip könnten Sie auch gleich wild jodelnd aus dem Fenster hüpfen."
        };
        updateContents(jsonContents);
      },
      tmr = tmr + 1000
    );
    //*/
    
    ///*
    window.setTimeout(
      function()
      {
        var jsonContents = {
          // All problems have been solved
          level:          "noproblems",
          noProblemsLinks: [
            {
              id:      "show-checks",
              caption: "Was wurde geprüft?"
            },
            {
              id:      "unignore-all",
              caption: "Ausgeblendete Probleme wieder einblenden"
            }
          ]
        };
        updateContents(jsonContents);
      },
      tmr = tmr + 1000
    );
    //*/
    
  /*>>*/
  
});

function sendStr(str)
{
  /*<<*/
    console.log(str);
    return;
  /*>>*/
  alert(str);
}

function doClick(elementId)
{
  sendStr('click:' + elementId);
  event.preventDefault();
}

function doMouseOver(elementId)
{
  sendStr('mouseOver:' + elementId);
}

function doMouseOut(elementId)
{
  sendStr('mouseOut:' + elementId);
}

// This function gets called from the legacy HTML code defined in DashboardChecks.inc
function ShowResult(elementId)
{
  doClick(elementId.substr(1));
}