function onSourceDownloadProgressChanged(sender, eventArgs) {

    var myHost = document.getElementById("Gui");
    var myText = myHost.content.findName("progressText");
    var myDetailText = myHost.content.findName("detailText");
    var myProgressBar = myHost.content.findName("splashProgressBar");
    var myProgressBarGlow = myHost.content.findName("splashProgressBarGlow");

    myText.Text = Math.round(eventArgs.progress * 100) + "%";

    if (eventArgs.progress > .25) {
        myDetailText.Text = "loading images...";
    }
    if (eventArgs.progress > .5) {
        myDetailText.Text = "loading styles...";
    }
    if (eventArgs.progress > .75) {
        myDetailText.Text = "loading interface...";
    }
    if (eventArgs.progress > .99) {
        myDetailText.Text = "loading complete!";
    }
    myProgressBarGlow.Width = Math.round(eventArgs.progress * 295);
    myProgressBar.Width = Math.round(eventArgs.progress * 295);
}


function onSilverlightError(sender, args) {
    var appSource = "";
    if (sender != null && sender != 0) {
        appSource = sender.getHost().Source;
    }

    var errorType = args.ErrorType;
    var iErrorCode = args.ErrorCode;

    if (errorType == "ImageError" || errorType == "MediaError") {
        return;
    }

    var errMsg = "Unhandled Error in Silverlight 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);
}

