function _AddEvent(strEvent, object, funcref) {
    nMOSSfx.AddEvent(strEvent, object, funcref);
}


// ================ Manter a posição do Scroll depois de um AJAX PostBack =======================

var nmossFx_xPos, nmossFx_yPos, nmossFx_prm;
var nmossFx_ScrollExecuted = false;
function nmossFx_defineAjaxRequestEvents() {
    if(!nmossFx_ScrollExecuted) {
        nmossFx_ScrollExecuted = true;
        nmossFx_prm = Sys.WebForms.PageRequestManager.getInstance();
        nmossFx_prm.add_beginRequest(nmossFx_BeginRequestHandler);
        nmossFx_prm.add_endRequest(nmossFx_EndRequestHandler);
    }
}
function nmossFx_BeginRequestHandler(sender, args) {
    nmossFx_xPos = document.body.scrollLeft;
    nmossFx_yPos = document.body.scrollTop;
}
function nmossFx_EndRequestHandler(sender, args) {
    document.body.scrollLeft = nmossFx_xPos;
    document.body.scrollTop = nmossFx_yPos;
}

// ==============================================================================================


function _nMossOBJECT() {


    this.AddEvent = function(strEvent, object, funcref) {
        if(window.addEventListener){ // Mozilla, Netscape, Firefox
	        object.addEventListener(strEvent, funcref , false);
	        object.addEventListener(strEvent, funcref, false);
        } else { // IE
	        object.attachEvent('on' + strEvent, funcref);
	        object.attachEvent('on' + strEvent,  funcref, false);
	        //window.attachEvent('document.onmousewheel',  null, false);
        }
    }

    // Com suporte a FireFox
    this.ForceClick = function(strObjID, strPostBackObjectAction) {
        if(window.addEventListener){ // Mozilla, Netscape, Firefox
            eval(strPostBackObjectAction);
        } else { //IE
            var o = document.getElementById(strObjID);
            o.click(); //funciona naturalmente com o ASP.NET Ajax.
        }
    }
    
    // suporte para FIreFox do document.all.ID
    this.getElementsById = function(strID, strTagName) {
        if(window.addEventListener){ 
            var arrElemnsRet = new Array();
            var arrTags = document.getElementsByTagName(strTagName);
            var i = 0;
            for(i = 0; i < arrTags.length; i++) {
                if(arrTags[i].id == strID) arrElemnsRet[arrElemnsRet.length] = arrTags[i];
            }
            if(arrElemnsRet.length > 1) {
                return(arrElemnsRet);
            } else {
                return(arrElemnsRet[0]);
            }
        } else {
            return(document.all[strID])
        }
    }
}


var nMOSSfx = new _nMossOBJECT();
nMOSSfx.AddEvent("load", window, nmossFx_defineAjaxRequestEvents);