//
// QUOSA Information Manager
// Copyright © 2000-2008 QUOSA, Inc.
// All Rights Reserved.
//
var xToolBarInfo = {
    xFrameId : 'xToolBar'
};

var BNB_GOFORW_ID = 1;
var BNB_GOBACK_ID = 2;

var MaxNumberOfResults = 50;

function xToolBar() {
    var x = this; x.xObjId = xGetElementById(xToolBarInfo.xFrameId); $(x.xObjId.id, x);
    x.xGoBack = xCreateButton('xToolBarGoBack', 'x_back' );
    x.xGoForw = xCreateButton('xToolBarGoForw', 'x_forw' );
    x.xRefresh = xCreateButton('xToolBarRefresh', 'x_refresh');
    x.xSearch = xCreateButton('xToolBarSearch', 'x_search');
    x.xSave2Folder = xCreateButton('xToolBarSave2Folder', 'x_save_to_folder');
    x.xRetrieve = xCreateButton('xToolBarRetrieve', 'x_retrieve');
    x.xRetrieve.xEnableControl(false);

    x.xSelectArticles = xCreateButton('xToolBarSelectArticles', 'x_tdrop');
    x.xSelectUrls = xCreateButton('xToolBarSelectUrls', 'x_tdrop');
    x.xToolBarSearchLimit = document.getElementById('xToolBarSearchLimit');
    x.xToolBarSearchLimit.disabled = true;

    x.xHideArticlesMenu = function () {
        xSetVisMode('xSelArt01', false); xSetVisMode('xSelArt02', false);
    };
    
    x.xShowArticlesMenu = function () {
        xSetVisMode('xSelArt01', true ); xSetVisMode('xSelArt02', true );
    };  

    x.xShiftFrameSize = function (xShiftX, xShiftY) {
        var x = $(xToolBarInfo.xFrameId); 
        xShiftObjSize(x.xObjId, xShiftX, null); 
    };  
    
    x.xSetFrameSize = function (xSizeW, xSizeH) {
        var x = $(xToolBarInfo.xFrameId); 
        xSetObjSize(x.xObjId, xSizeW, null);
    };  
    
    x.xGetFrameSize = function () {
        var x = $(xToolBarInfo.xFrameId);
        return xGetObjSize(x.xObjId);
    };
    
    x.xSetNumberOfResults = function (xNumberOfResults) {
        if ((xObjId = xGetElementById('xToolBarSearchLimit')))
            xObjId.value = xNumberOfResults;
    };
    
    x.xGetNumberOfResults = function () {
        if ((xObjId = xGetElementById('xToolBarSearchLimit'))) {
            var xNumberOfResults = parseInt(xObjId.value);
            if (xNumberOfResults > 0) {
                var xProvider = xGetElementById('xProvider');
                if (!xProvider.xIsSuperUser()) {
                    if (xNumberOfResults > xProvider.xGetMaxNumberOfResults())
                        xNumberOfResults = xProvider.xGetMaxNumberOfResults();
                }
                return xNumberOfResults;
            }
        }
        return false;
    };
    
    x.xSetDesiredResults = function (xDesiredResults) {
        if ((xObjId = xGetElementById('xToolBarArticlesBlockName'))) {
            switch (xDesiredResults) {
            case 0: xSetInnerHtml(xObjId, 'Abstracts'); break;
            case 1: xSetInnerHtml(xObjId, 'HTML articles'); break;
            case 2: xSetInnerHtml(xObjId, 'PDF articles'); break;
            default:
                xSetInnerHtml(xObjId, 'PDF articles'); 
                break;
            }
        }
    };
    
    x.xOnSwitchArticles = function (nDesiredArticles) {
        var x = $(xToolBarInfo.xFrameId);
        x.xSetDesiredResults(nDesiredArticles);
    };
    
    x.xOnBrowserButtonsState = function (nButton, bEnabled) {
        var x = $(xToolBarInfo.xFrameId);
        switch (nButton) {
        case BNB_GOFORW_ID: 
            x.xGoForw.xEnableControl(bEnabled);
            break;
        case BNB_GOBACK_ID:
            x.xGoBack.xEnableControl(bEnabled);
            break;
        }
    };
    
    x.xGoForw.xOnClick = function () {
        xGetElementById('xProvider').xGoForward();
    };
    
    x.xGoBack.xOnClick = function () {
        xGetElementById('xProvider').xGoBack();
    };
    
    x.xRefresh.xOnClick = function () {
        xGetElementById('xProvider').xRefresh();
    };

    x.xSearch.xOnClick = function () {
        xGetElementById('xProvider').xGoSearchScreen();
    };

    
    x.xSave2Folder.xOnClick = function () {
    
         var xProvider = xGetElementById('xProvider');
         xProvider.xSaveDocumentToFolder('');
         //var aaa = window.showModalDialog("save2folder.html", window, "dialogWidth:400px;dialogHeight:500px");
    };

    x.xSave2Folder.show = function () {
        x.xSave2Folder.xEnableControl(true);
    };
    x.xSave2Folder.hide = function () {
        x.xSave2Folder.xEnableControl(false);
    };


    x.xToolBarSearchLimit.xOnKeyPressed = function (ev)
    {
        var keyCode = (ev || window.event).keyCode;
        if ( keyCode == KEY_CODE_ENTER )
        {
            var x = $(xToolBarInfo.xFrameId);
            x.xRetrieve.xOnClick();
        }
        else if (keyCode < 48 || keyCode > 57)
        {
            return false;
        }
        return true;
    };

    AP.addEvent(x.xToolBarSearchLimit, "keypress", x.xToolBarSearchLimit.xOnKeyPressed);

    x.xRetrieve.xOnClick = function () {
        var x = $(xToolBarInfo.xFrameId);
        var xNumberOfResults = x.xGetNumberOfResults();
        if (xNumberOfResults > 0) {
            x.xSetNumberOfResults(xNumberOfResults);
            xGetElementById('xProvider').xRetrieve(
                xNumberOfResults, xProvider.xGetDesiredResults());
        } else {
            alert('Please enter valid number of desired results.');
        }
    };
    
    x.xSelectArticles.xOnClick = function () {
        if ((xObjId = xGetElementById('xToolBarArticlesBlock'))) {
            var xObjPos = xGetObjPos(xObjId);
            var nPosX = xObjPos[0] + 2, nPosY = xObjPos[1] + 2;
            nPosY += xGetObjHeight(xObjId);

            var mDiv = xGetElementById('xDivBodyId');
            if (mDiv.scrollLeft > 0)
            {
                nPosX -= mDiv.scrollLeft;
            }

            xGetElementById('xProvider').xShowArticlesMenu(nPosX, nPosY);
        }
    };
    
    var xProvider = xGetElementById('xProvider');
    x.xSetNumberOfResults(xProvider.xGetNumberOfResults());
    x.xSetDesiredResults(xProvider.xGetDesiredResults());
    
    x.xOnNewURL = function (sUrl) {
        xGetElementById('xToolBarUrl').value = sUrl;
    };
    
    x.xSelectUrls.xOnClick = function () {
        if ((xObjId = xGetElementById('xToolBarUrlBlock'))) {
            var xObjPos = xGetObjPos(xObjId);
            var nPosX = xObjPos[0] + 2, nPosY = xObjPos[1] + 2;
            nPosY += xGetObjHeight(xObjId);

            var mDiv = xGetElementById('xDivBodyId');
            if (mDiv.scrollLeft > 0)
            {
                nPosX -= mDiv.scrollLeft;
            }
            else
            {
                //nPosX += xGetObjWidth (xObjId);
            }

            xGetElementById('xProvider').xShowUrlsMenu(nPosX, nPosY);           
        }
    };
    
    var xToolBarUrl = xGetElementById('xToolBarUrl');
    xToolBarUrl.onkeypress = function () {
        if (window.event.keyCode == 13 /* Enter */) {
            var sUrl = xGetElementById('xToolBarUrl').value;
            xGetElementById('xProvider').xSetUrl(sUrl);
        }
    };

    x.xOnControlsEnabled = function ()
    {
        x.xRetrieve.xEnableControl(true);
        x.xToolBarSearchLimit.disabled = false;
    };
    x.xOnControlsDisabled = function ()
    {
        x.xRetrieve.xEnableControl(false);
        x.xToolBarSearchLimit.disabled = true;
    };

    x.xSave2Folder.hide();
};
