﻿window.onerror = errorHandler;

function errorHandler(message, url, line) {
    try {
        var xmlHttpRequest;
        if (document.all) {
            xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        else {
            xmlHttpRequest = new XMLHttpRequest();
        }

        var msg = '';

        if (typeof (ex) == "string") {
            msg += message;
        }
        else //exception object
        {
            msg += message.name + '\r\n' + message.number + "\r\n" + message.lineNumber + "\r\n" + message.message + "\r\n";
            if (message.stack) {
                msg += message.stack;
            }
        }

        var str = "<Error><Url>" + url + "</Url><Line>" + line + "</Line><Message>" + message + "</Message></Error>";

        str = escape(url) + '|' + line + '|' + escape(message);
        xmlHttpRequest.open("post", "에러처리URL", true);
        xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlHttpRequest.send(str);
    }
    catch (e) {

    }

    try {
        //        alert('오류가 발생하여 투데이 화면으로 이동합니다. 다시 작업을 시도해주세요.');
        //        topObject.document.main.gNavigater(1);
    }
    catch (e)
    { }

    //    location.href   = '/Error.aspx?RF=' + url;
}

var topObject = GetTopObjectForErrorReport(parent);


function GetTopObjectForErrorReport(obj) {
    if (obj.document == obj.parent.document) {
        return obj;
    }
    else {
        return GetTopObjectForErrorReport(obj.parent);
    }
}

