Type.registerNamespace('TerpSys.Logging');TerpSys.Logging.BaseTraceListener = function(lineSeparator) {
this._lineSeparator = '\n';if (lineSeparator)
{
this._lineSeparator = lineSeparator;}
}
TerpSys.Logging.BaseTraceListener.prototype =
{
get_lineSeparator: function() {
if (arguments.length !== 0) {
throw Error.parameterCount();}
return this._lineSeparator;},
dispose: function() {
},
publishException: function(errorCode, exception, environmentInfo) {
throw Error.notImplemented();},
formatException: function(errorCode, exception) {
var lineSeparator = this.get_lineSeparator();var errorInfo = new Sys.StringBuilder();errorInfo.append('Error Code: ' + errorCode.toString() + lineSeparator);if (typeof exception.get_exceptionType != 'undefined') {
errorInfo.append('Message: ' + exception.get_message() + lineSeparator +
'Type: ' + exception.get_exceptionType() + lineSeparator +
'StackTrace: ' + exception.get_stackTrace()
);}
else {
errorInfo.append('Message: ' + exception.message + lineSeparator +
'Type: ' + exception.name + lineSeparator +
'Description: ' + exception.description
);if (typeof exception.httpStatusCode != 'undefined') {
errorInfo.append(lineSeparator + 'HttpStatusCode: ' + exception.httpStatusCode);}
if (typeof exception.lineNumber != 'undefined') {
errorInfo.append(lineSeparator + 'LineNumber: ' + exception.lineNumber);}
if (typeof exception.url != 'undefined') {
errorInfo.append(lineSeparator + 'Url: ' + exception.url);}
}
return errorInfo.toString();},
formatExceptionMessage: function(exception) {
var exceptionMessage = "";if (typeof exception.get_exceptionType != 'undefined') {
exceptionMessage = exception.get_message();}
else {
exceptionMessage = exception.message;}
var cleanedMessage = exceptionMessage.replace("Sys.WebForms.PageRequestManagerServerErrorException:", "");var message = "";var detailIndex = cleanedMessage.indexOf("Details:");if (detailIndex != -1) {
message = cleanedMessage.substring(1, detailIndex - 3);}
if (typeof exception.httpStatusCode != 'undefined') {
if (exception.httpStatusCode == 12030) {
message = "The connection with the server has been terminated. Please close the browser window and reconnect to the site";}
}
return message;}
}
TerpSys.Logging.BaseTraceListener.registerClass('TerpSys.Logging.BaseTraceListener', null, Sys.IDisposable);TerpSys.Logging.SysDebugTraceListener = function(lineSeparator) {
TerpSys.Logging.SysDebugTraceListener.initializeBase(this, [lineSeparator]);}
TerpSys.Logging.SysDebugTraceListener.prototype =
{
dispose : function()
{
TerpSys.Logging.SysDebugTraceListener.callBaseMethod(this, 'dispose');},
publishException : function(errorCode, exception, environmentInfo)
{
var errorInfo = TerpSys.Logging.SysDebugTraceListener.callBaseMethod(this, 'formatException', [errorCode, exception]);Sys.Debug.traceDump(errorInfo);}
}
TerpSys.Logging.SysDebugTraceListener.registerClass('TerpSys.Logging.SysDebugTraceListener', TerpSys.Logging.BaseTraceListener);TerpSys.Logging.AlertTraceListener = function(lineSeparator)
{
TerpSys.Logging.AlertTraceListener.initializeBase(this, [lineSeparator]);}
TerpSys.Logging.AlertTraceListener.prototype =
{
dispose : function()
{
TerpSys.Logging.AlertTraceListener.callBaseMethod(this, 'dispose');},
publishException : function(errorCode, exception, environmentInfo)
{
var errorInfo = TerpSys.Logging.AlertTraceListener.callBaseMethod(this, 'formatException', [errorCode, exception]);alert(errorInfo);}
}
TerpSys.Logging.AlertTraceListener.registerClass('TerpSys.Logging.AlertTraceListener', TerpSys.Logging.BaseTraceListener);TerpSys.Logging.DivTraceListener = function(lineSeparator, targetElement) {
if (typeof targetElement == 'string')
{
this._element = $get(targetElement);}
else
{
this._element = targetElement;}
TerpSys.Logging.DivTraceListener.initializeBase(this, [lineSeparator]);}
TerpSys.Logging.DivTraceListener.prototype =
{
dispose : function()
{
this._element = null;TerpSys.Logging.DivTraceListener.callBaseMethod(this, 'dispose');},
publishException : function(errorCode, exception, environmentInfo)
{
var errorInfo = TerpSys.Logging.DivTraceListener.callBaseMethod(this, 'formatException', [errorCode, exception]);var lineSeparator = TerpSys.Logging.DivTraceListener.callBaseMethod(this, 'get_lineSeparator')
if (this._element.innerHTML.length > 0)
{
this._element.innerHTML = lineSeparator + lineSeparator + this._element.innerHTML;}
this._element.innerHTML = errorInfo + this._element.innerHTML;}
}
TerpSys.Logging.DivTraceListener.registerClass('TerpSys.Logging.DivTraceListener', TerpSys.Logging.BaseTraceListener);TerpSys.Logging.WebServiceTraceListener = function(lineSeparator)
{
TerpSys.Logging.WebServiceTraceListener.initializeBase(this, [lineSeparator]);}
TerpSys.Logging.WebServiceTraceListener.prototype =
{
dispose : function()
{
TerpSys.Logging.WebServiceTraceListener.callBaseMethod(this, 'dispose');},
publishException: function(errorCode, exception, environmentInfo)
{
var errorInfo = TerpSys.Logging.WebServiceTraceListener.callBaseMethod(this, 'formatException', [errorCode, exception]);Autism360.ExceptionService.LogException(errorCode, errorInfo, environmentInfo.url, environmentInfo.referrer, environmentInfo.scripts);}
}
TerpSys.Logging.WebServiceTraceListener.registerClass('TerpSys.Logging.WebServiceTraceListener', TerpSys.Logging.BaseTraceListener);TerpSys.Logging.ExceptionManager = function() {
this._listeners = new Array();TerpSys.Logging.ExceptionManager.initializeBase(this);}
TerpSys.Logging.ExceptionManager.prototype =
{
initialize : function()
{
TerpSys.Logging.ExceptionManager.callBaseMethod(this, 'initialize');},
dispose : function()
{
if (this._listeners.length > 0)
{
for(var i = 0;i < this._listeners.length;i++)
{
this._listeners[i].dispose();}
}
delete this._listeners;TerpSys.Logging.ExceptionManager.callBaseMethod(this, 'dispose');},
addListener : function(listener) {
var e = Function._validateParams(arguments, [{name: 'listener', type: TerpSys.Logging.BaseTraceListener}]);if (e) throw e;Array.add(this._listeners, listener);},
removeListener : function(listener) {
var e = Function._validateParams(arguments, [{name: 'listener', type: TerpSys.Logging.BaseTraceListener}]);if (e) throw e;listener.dispose();Array.remove(this._listeners, listener);},
publishException : function(errorCode, exception) {
var e1 = Function._validateParams(arguments, [{name: 'errorCode', type: Number}, {name: 'exception', type: Error}]);var e2 = Function._validateParams(arguments, [{name: 'errorCode', type: Number}, {name: 'exception', type: Sys.Net.WebServiceError}]);if ((e1) && (e2))
{
throw e1;}
if (this._listeners.length > 0)
{
var environmentInfo = this._getEnvironmentInfo();for(var i = 0;i < this._listeners.length;i++)
{
this._listeners[i].publishException(errorCode, exception, environmentInfo);}
}
},
_getEnvironmentInfo : function() {
var scriptTags = document.getElementsByTagName('script');var scripts = new Array();if (scriptTags)
{
for(var i = 0;i < scriptTags.length;i++)
{
var scriptTag = scriptTags[i];if (typeof scriptTag.src != 'undefined')
{
if (scriptTag.src.length > 0)
{
Array.add(scripts, scriptTag.src + ' : ' + scriptTag.readyState);}
}
}
}
var url = window.location.href;var referrer = '';if (document.referrer)
{
if (document.referrer.length > 0)
{
referrer = document.referrer;}
}
return { url: url, referrer: referrer, scripts: scripts };}
}
TerpSys.Logging.ExceptionManager.registerClass('TerpSys.Logging.ExceptionManager', Sys.Component);TerpSys.Logging.ExceptionManager._staticInstance = $create(TerpSys.Logging.ExceptionManager, {'id':'exceptionManager'});TerpSys.Logging.ExceptionManager.getInstance = function()
{
return TerpSys.Logging.ExceptionManager._staticInstance;}
if (typeof(Sys) != 'undefined')
{
Sys.Application.notifyScriptLoaded();}
