var Site =
{
    IsIE: function() {
        return (window.navigator.userAgent.indexOf("MSIE") > 0);
    },
    IsIE7: function() {
        return (window.navigator.userAgent.indexOf("MSIE 7.0") > 0);
    },
    IsIE6: function() {
        var regexIE6 = /MSIE ([0-6])/;
        return (regexIE6.test(window.navigator.userAgent));
    },
    GetFFVersion: function() {
        if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
            return new Number(RegExp.$1);
        }
        return -1;
    },
    AttachEvent: function(obj, eventName, delegate) {
        if (typeof (obj.addEventListener) != 'undefined') {
            obj.addEventListener(Site.GetEventName(eventName), delegate, false);
        }
        else {
            obj.attachEvent(eventName, delegate);
        }
    },
    DetachEvent: function(obj, eventName, delegate) {
        if (obj.removeEventListener) {
            obj.removeEventListener(eventName, delegate, true);
        }
        else if (obj.detachEvent) {
            obj.detachEvent(eventName, delegate);
        }
    },
    GetEventName: function(name) {
        return (name.indexOf('on') == 0) ? name.substring(2, name.length) : name;
    },
    SelectInitInput: function(name) {
        Site.AttachEvent(window, 'onload', new Function('Site.SelectInput("' + name + '")'));
    },
    SelectInput: function(name) {
        var input = document.getElementById(name);
        input.select(); input.focus();
    },
    SrcElement: function(evt) {
        return (window.event) ? event.srcElement : evt.target;
    },
    IsClickedEnter: function(evt) {
        var keycode = (window.event) ? window.event.keyCode : evt.which;
        return (keycode == 13);
    },
    ClickedEnter: function(evt, enterElemId) {
        if (Site.IsClickedEnter(evt)) {
            document.getElementById(enterElemId).click();
            return false;
        }
        return true;
    },
    WriteHTML: function(str) {
        for (i = 0; i < str.length; i++) {
            document.write(String.fromCharCode(4 ^ str.charCodeAt(i)));
        }
    },
    HandleErrorGlobal: function(strErrorMsg, strUrl, iLineNumber) {
        window.status = strErrorMsg + ': Line:' + iLineNumber;
        return true;
    },
    ToggleInputs: function(elemId) {
        var inputs = document.getElementById(elemId).getElementsByTagName("INPUT");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].disabled = !inputs[i].disabled;
        }
        var texts = document.getElementById(elemId).getElementsByTagName("TEXTAREA");
        for (var i = 0; i < texts.length; i++) {
            texts[i].disabled = !texts[i].disabled;
        }
    },
    SetLabelsFor: function() {
        if (!Site.IsIE()) return;
        var a = document.getElementsByTagName("label");
        for (var i = 0; i < a.length; i++) {
            var labelImages = a[i].getElementsByTagName("IMG");
            if (labelImages.length > 0) {
                for (var j = 0; j < labelImages.length; j++) {
                    labelImages[j].forid = a[i].htmlFor;
                    labelImages[j].onclick = function() {
                        var forid = this.forid;
                        if (forid != null && forid != "") {
                            var e = document.getElementById(forid);

                            if (e.onclick == null) {
                                switch (e.type) {
                                    case "radio": e.checked |= 1; break;
                                    case "checkbox": e.checked = !e.checked; break;
                                    case "text": case "password": case "textarea": e.focus(); break;
                                }
                            }
                            else {
                                e.click();
                            }
                        }
                    };
                }
            }
        }
    },
    GetElementText: function(element) {
        return Site.IsIE() ? element.innerText : element.textContent;
    },
    SetElementText: function(element, text) {
        if (Site.IsIE()) { element.innerText = text; }
        else { element.textContent = text; }
    },
    GetAjaxErrorMessage: function(args) {
        var msg = "";
        if (args.get_error() != undefined) {
            args.set_errorHandled(true);

            if (args.get_error().name == "Sys.WebForms.PageRequestManagerTimeoutException") {
                msg = 'The activity has timed out. Please refresh the page.';
            }
            else {
                msg = (args.get_error().message.indexOf('Sys.WebForms.') == 0) ? 'Sorry, an error has occurred. Please refresh the page.' : args.get_error().message;
            }

        }
        return msg;
    }
};

window.onerror = Site.HandleErrorGlobal;

