var silver_load_attemts = 0;

function ShowSilverLoader() {
  SilverlightHelper.style.display = "block";
}

function InstallSilverlight() {
  window.location = "http://go.microsoft.com/fwlink/?LinkID=124807";
  installSilverLight.style.display = "none";
  cancelSilverLight.value = "Close";
  waitingMessage.innerHTML = "<p><b>Please Wait:</b> Microsoft Silverlight is installing</p>";
  waitingMessage.style.display = "block";
  waitingAnimator.style.display = "block";

  window.setTimeout("checkSilverlightInstalled()", 500);
}

function CancelSilverlight() {
  cancelSilverLight.value = "No Thanks";
  waitingAnimator.innerHTML = "";
  waitingAnimator.style.display = "none";
  SilverlightHelper.style.display = "none";
  installSilverLight.style.display = "block";
  waitingMessage.style.display = "none";
}

function silverlightInstallCompleted() {
  if (Silverlight.isBrowserRestartRequired) {

  }
  else {
    CancelSilverlight();
  }
}

function checkSilverlightInstalled() {

  if (!Silverlight.isInstalled(null)) {
    waitingAnimator.innerHTML = ((silver_load_attemts % 2) == 0) ? "-" : "|";

    silver_load_attemts++

    window.setTimeout("checkSilverlightInstalled()", 500);
  }
  else {
    silverlightInstallCompleted();
  }
}

function onSilverlightError(sender, args) {

  var appSource = "";
  if (sender != null && sender != 0) {
      appSource = sender.getHost().Source;
  } 
  var errorType = args.ErrorType;
  var iErrorCode = args.ErrorCode;
  
  var errMsg = "Unhandled Error in Silverlight 2 Application " +  appSource + "\n" ;

  errMsg += "Code: "+ iErrorCode + "    \n";
  errMsg += "Category: " + errorType + "       \n";
  errMsg += "Message: " + args.ErrorMessage + "     \n";

  if (errorType == "ParserError")
  {
      errMsg += "File: " + args.xamlFile + "     \n";
      errMsg += "Line: " + args.lineNumber + "     \n";
      errMsg += "Position: " + args.charPosition + "     \n";
  }
  else if (errorType == "RuntimeError")
  {           
      if (args.lineNumber != 0)
      {
          errMsg += "Line: " + args.lineNumber + "     \n";
          errMsg += "Position: " +  args.charPosition + "     \n";
      }
      errMsg += "MethodName: " + args.methodName + "     \n";
  }

  throw new Error(errMsg);
}
