function getXMLHTTPRequest() {
    var http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } 
    else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
            }
        }
    }

    if (!http_request) {
        alert('Cannot create an XMLHTTP instance');
        return null;
    } else {
        return http_request;
    }
}

function handleButton(ev) {
    var targ;
    if (!ev) var ev = window.event;
    if (ev.target) targ = ev.target;
    else if (ev.srcElement) targ = ev.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
    targ = targ.parentNode;
	
    if (ev.type == "mouseover") {
        this.src="images/" + targ.id + "_over.gif";
    } else if (ev.type == "mousedown") {
        this.src="images/" + targ.id + "_down.gif";
	} else if (ev.type == "mouseup") {
        this.src="images/" + targ.id + "_over.gif";
    } else {
        this.src="images/" + targ.id + ".gif";
    }
}

function handleToolBarButton(ev) {
    var targ;
    ev = ev || window.event;
    if (ev.target) { targ = ev.target; }
    else if (ev.srcElement) { targ = ev.srcElement; }
    if (targ.nodeType === 3) { // defeat Safari bug
    targ = targ.parentNode; }

    var disableButton = false;

    //handle next/prev btns
    if ((curPage === 0) && ((targ.id === "btnPrev") || (targ.id === "btnSkipFirst"))) {
        disableButton = true;
    } else if ((curPage === endPage) && ((targ.id === "btnNext") || (targ.id === "btnSkipLast"))) {
        disableButton = true;
    } 
    
    //zoom in/out
    if ( (curZoomLevel === arrZoomInc.length-1) && (targ.id === "btnZoomIn") ) {
        disableButton = true;
    }
    
    if ( (curZoomLevel === 0) && (targ.id === "btnZoomOut") ) {
        disableButton = true;
    }    
    
    if ((isFitToWindowSelected) && (targ.id === "btnFitToWindow") ) {
        disableButton = true;
    }
    
    if (!disableButton){
        if (ev.type === "mouseover") {
            this.src="images/" + targ.id + "_over.gif";
        } else if (ev.type === "mousedown") {
            this.src="images/" + targ.id + "_down.gif";
	    } else if (ev.type === "mouseup") {
            this.src="images/" + targ.id + "_over.gif";
        } else {
            this.src="images/" + targ.id + ".gif";
        }
    }
}

//assumes that Book Object has been created before calling
function isViewablePage(pageSequence)
{
    for (var i=0; i < oBook.pages.length; i++)
    {
        if (pageSequence == oBook.pages[i].pNum) {
            return true;
        }
    }
    
    return false;
}