var lastResultSpeed;
function speedStatus()
{
  if (System.Gadget.document.parentWindow.speedIsLoading)
  {
    return 'loading';
  }
  else
  {
    if (wAnalyzeResult)
    {
      lastResultSpeed = parseInt(wAnalyzeResult.LoadSpeedOptimizerState());
      switch (lastResultSpeed)
      {
        case 0:
          if (wAnalyzeResult.speedOptimizerQuestionnaire == 0)
          {
            return 'warning';
          }
          else if (wAnalyzeResult.SpeedOptimizerVisibleCount)
          {
            return 'warning';
          }
          else
          {
            return 'good';
          }
          break;
        case 30:
          return 'critical';
          break;
        default:
          return 'critical';
          break;
      }
    }
    else
    {
      return 'critical';
    }
  }
}

function speedTextStatus(status)
{
  switch (status)
  {
    case 'loading':
      return translate('<localized>Status wird ermittelt ...</localized>');
    case 'good':
     var returnText = translate('<localized>Die Leistung Ihres Computers ist umfassend optimiert.</localized>');
      //no break, return in warning
    case 'warning':
      if (wAnalyzeResult.speedOptimizerQuestionnaire == 0)
      {
        return translate('<localized>Füllen Sie das Profil zur Nutzung Ihres PCs aus, um Optimierunsgempfehlungen zu erhalten.</localized>');
      }
      else if (wAnalyzeResult.SpeedOptimizerVisibleCount)
      {
        var returnText;
        if (wAnalyzeResult.SpeedOptimizerVisibleCount == 1)
        {
          returnText = translate('<localized>Es liegt 1 Empfehlung für Sie vor.</localized>')
        }
        else
        {
          returnText = sprintf(
            translate(
              '<localized>Es liegen %d Empfehlungen für Sie vor.</localized>'
            ),
            wAnalyzeResult.SpeedOptimizerVisibleCount
          );
        }
      }
/*      if (wAnalyzeResult.SpeedOptimizerIgnoreCount)
      {
        returnText += '<br />' +
                      sprintf(
                        translate(
                          '<localized>Ausgeblendete Empfehlungen: %s</localized>'
                        ),
                        wAnalyzeResult.SpeedOptimizerIgnoreCount
                      );
      }*/
      if (returnText)
      {
        return returnText;
      }
      // no break, fallback to critical
    default:
      return translate('<localized>Der benötigte Dienst ist nicht aktiv.</localized>') +
        (lastResultSpeed ? ' (Error: ' + lastResultSpeed + ')' : '');
      break;
  }
}

function speedLinkStatus(status)
{
  switch (status)
  {
    case 'loading':
      return '';
      break;
    case 'warning':
      if (wAnalyzeResult.speedOptimizerQuestionnaire == 0)
      {
        return '<a onclick="execApp(\'PerformanceOptimizer.exe\',\'/backgroundscan\');" tabindex="100">' +
                 translate('<localized>» Profil erstellen</localized>') +
               '</a>';
      }
    default:
      return '<a onclick="execApp(\'PerformanceOptimizer.exe\');" tabindex="100">' +
               translate('<localized>» Details anzeigen</localized>') +
             '</a>';
      break;
  }
}
