﻿    function onSilverlightError(sender, args) { 
        //debugger
        //plugin attribute: OnPluginError="onSilverlightError"
        var isSilverlightDebugMode = true;
         
        // The error message to display.
        var errorMsg = "Silverlight Error: \n\n";
        
        // Error information common to all errors.
        errorMsg += "Error Type:    " + args._error.errorType + "\n";
        errorMsg += "Error Message: " + args._error.errorMessage + "\n";
        errorMsg += "Error Code:    " + args._error.errorCode + "\n";
        
        // Determine the type of error and add specific error information.
        switch(args._error.errorType)
        {
            case "RuntimeError":
                // Display properties specific to RuntimeErrorEventArgs.
                if (args.lineNumber != 0)
                {
                    errorMsg += "Line: " + args._error.lineNumber + "\n";
                    errorMsg += "Position: " +  args._error.charPosition + "\n";
                }
                errorMsg += "MethodName: " + args._error.methodName + "\n";
                break;
            case "ParserError":
                // Display properties specific to ParserErrorEventArgs.
                errorMsg += "Xaml File:      " + args._error.xamlFile      + "\n";
                errorMsg += "Xml Element:    " + args._error.xmlElement    + "\n";
                errorMsg += "Xml Attribute:  " + args._error.xmlAttribute  + "\n";
                errorMsg += "Line:           " + args._error.lineNumber    + "\n";
                errorMsg += "Position:       " + args._error.charPosition  + "\n";
                break;
            case "MediaError":
                // TODO: 
                break;
            default:
                break;
        }
        // Display the error message.
        if (isSilverlightDebugMode) 
            alert(errorMsg);
        else 
            throw new Error(errorMsg);
    } 