﻿window.onerror = window_onerror;

function window_onerror(message, file, lineNumber) {
    if (_reportClientErrors) {
        reportError(message, file, lineNumber);
    }
}

function reportException(err) {
    if (_reportClientErrors) {
        //lineNumber & stack avail only in FF
        reportError(err.description, null, err.lineNumber, e.stack);
    }
}

var _numErrors = 0;
function reportError(message, file, lineNumber, trace) {
    try {
        if (++_numErrors > 3)
            return;
        var url = window.location;
        var queryString = '/Error.ashx?bugMessage=' + escape(message)
      + '&bugFile=' + escape(file)
      + '&bugUrl=' + escape(url)
 	  + '&bugLineNumber=' + lineNumber
      + '&trace=' + escape(trace)
      + '&r=' + Math.random();
        var img = new Image();
        img.src = queryString;
        return true;
    } catch (err) {
        //do nothing
    }
}

// Firebug graceful degredation from http://getfirebug.com/firebug/firebugx.js
if (!window.console || !console.firebug) {
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i)
        window.console[names[i]] = function() { }
}