﻿function onSilverlightError(sender, args) {
    var errorType = args.ErrorType;
    var iErrorCode = args.ErrorCode;

    if (errorType == "ImageError" || errorType == "MediaError") {
        _gaq.push(['_trackEvent', 'Error', errorType]);
        return;
    }

    var errorLocation = document.getElementById("errorLocation");

    if (iErrorCode == 8001) {
        errorLocation.innerHTML = "En nyere version af Silverlight er påkrævet, for at bruge HistoriskAtlas.dk.<BR>Klik <A href='http://www.microsoft.com/silverlight/handlers/getsilverlight.ashx?v=4.0'>her</A> for at opgradere. Genstart derefter din browser.";
        _gaq.push(['_trackEvent', 'Warning', "Newer version available"]);
        return;
    }
    if (iErrorCode == 8002) {
        errorLocation.innerHTML = "Du skal genstarte din browser, før du kan bruge HistoriskAtlas.dk.";
        _gaq.push(['_trackEvent', 'Warning', "Reboot required"]);
        return;
    }

    var errMsg = "Silverlight Error    \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";
    }

    _gaq.push(['_trackEvent', 'Error', errMsg]);
    errorLocation.innerHTML = "<B>Der opstod en fejl.</B><BR><BR>" + errMsg;
    throw new Error(errMsg);
}
