//
// QUOSA Information Manager
// Copyright © 2000-2008 QUOSA, Inc.
// All Rights Reserved.
//
var xMainToolsInfo = {
    xFrameId  : 'xMainTools'
};

function xMainTools() {
    var x = this; x.xObjId = xGetElementById(xMainToolsInfo.xFrameId); $(x.xObjId.id, x);
    x.xToolsMenu1 = xCreateButton('xMainToolsMenu01', 'x_qimx' );   

    x.xAddDocTool = xCreateButton('xAddDocTool', 'x_adddoc');
    x.xDeleteTool = xCreateButton('xDeleteTool', 'x_delete');
    x.xEndnoteTool = xCreateButton('xEndnoteTool', 'x_endnote');

    x.xChannelsMenu = xCreateButton('xMainToolsSelectChannel', 'x_mdrop');
    x.xChannelsMenu.xEnableControl(false);

    x.xStopSearch = xCreateButton('xMainToolsStopSearch', 'x_cancel');

    // xTools ToolBar Button
    x.xTools = xCreateButton('xMainToolsTools', 'x_tools2' );
    x.xTools.xOnClick = function () {
        var xObjId = xGetElementById('xMainToolsTools');
        if (xIsObject(xObjId) && xObjId != null) {
            var xObjPos = xGetObjPos(xObjId);
            var nPosX = xObjPos[0] + 2, nPosY = xObjPos[1] + 3;
            nPosY += xGetObjHeight(xObjId);
            nPosX -= xGetElementById('xDivBodyId').scrollLeft;
            nPosY -= xGetElementById('xDivBodyId').scrollTop;
            xProvider$().xShowToolsMenu(nPosX, nPosY);
        }       
    }
    
    
    x.xToolsMenu = xCreateButton('xMainToolsToolsMenu', 'x_mdrop' );
    x.xToolsMenu.xOnClick = function () {
        var xObjId = xGetElementById('xMainToolsToolsMenu');
        if (xIsObject(xObjId) && xObjId != null) {
            var xObjPos = xGetObjPos(xObjId);
            var nPosX = xObjPos[0] + 2 + xGetObjWidth(xObjId), nPosY = xObjPos[1] + 3;
            nPosY += xGetObjHeight(xObjId);
            nPosX -= xGetElementById('xDivBodyId').scrollLeft;
            nPosY -= xGetElementById('xDivBodyId').scrollTop;
            xProvider$().xShowToolsMenu(nPosX, nPosY);
        }       
    };
    
    // xSettings ToolBar Button
    x.xSettings = xCreateButton('xMainToolsSettings', 'x_settings3');
    x.xSettings.xEnableControl(false);
    x.xSettings.xOnClick = function () {
        xGetElementById('xProvider').xShowGeneralSettings();
    };
    
    x.xSettingsMenu = xCreateButton('xMainToolsSettingsMenu', 'x_mdrop');
    x.xSettingsMenu.xEnableControl(false);
    x.xSettingsMenu.xOnClick = function () {
        var xObjId = xGetElementById('xMainToolsSettingsMenu');
        var xObjPos = xGetObjPos(xObjId);
        var nPosX = xObjPos[0] + 2 + xGetObjWidth(xObjId), nPosY = xObjPos[1] + 3;
        nPosY += xGetObjHeight(xObjId);
        nPosX -= xGetElementById('xDivBodyId').scrollLeft;
        nPosY -= xGetElementById('xDivBodyId').scrollTop;
        xGetElementById('xProvider').xShowSettingsMenu(nPosX, nPosY);
    };

    // xUiMode ToolBar Button
    x.xSetUiModes = xCreateButton('xMainToolsSetUiModes', 'x_uimode2' );
    x.xSetUiModes.xOnClick = function () {
        $(xDataFrameInfo.xFrameId).xSwitchUiMode();
    };  
    
    x.xUiModeMenu = xCreateButton('xMainToolsUiModeMenu', 'x_mdrop');
    x.xUiModeMenu.xOnClick = function () {
        var xObjId = xGetElementById('xMainToolsUiModeMenu');
        var xObjPos = xGetObjPos(xObjId);
        var nPosX = xObjPos[0] + 2 + xGetObjWidth(xObjId), nPosY = xObjPos[1] + 3;
        nPosY += xGetObjHeight(xObjId);
        nPosX -= xGetElementById('xDivBodyId').scrollLeft;
        nPosY -= xGetElementById('xDivBodyId').scrollTop;
        xGetElementById('xProvider').xShowUiModeMenu(nPosX, nPosY);
    };

    // xShowHelp ToolBar Button
    x.xShowHelp = xCreateButton('xMainToolsShowHelp', 'x_help3');
    x.xShowHelp.xOnClick = function () {
        xProvider$().xShowHelp();
    };

    x.xShowHelpMenu = xCreateButton('xMainToolsShowHelpMenu', 'x_mdrop');
    x.xShowHelpMenu.xOnClick = function () {
        var xObjId = xGetElementById('xMainToolsShowHelpMenu');
        var xObjPos = xGetObjPos(xObjId);
        var nPosX = xObjPos[0] + 2 + xGetObjWidth(xObjId), nPosY = xObjPos[1] + 3;
        nPosY += xGetObjHeight(xObjId);
        nPosX -= xGetElementById('xDivBodyId').scrollLeft;
        nPosY -= xGetElementById('xDivBodyId').scrollTop;
        xGetElementById('xProvider').xShowHelpMenu(nPosX, nPosY);
    };

    
    x.xSetFrameSize = function (xSizeW, xSizeH) {
        var x = $(xMainToolsInfo.xFrameId); 
        xSetObjSize(x.xObjId, xSizeW, null);
    };
    
    x.xGetFrameSize = function () {
        var x = $(xMainToolsInfo.xFrameId);
        return xGetObjSize(x.xObjId);
    };
    
    x.xChannelsMenu.xOnClick = function () {
        var xObjId  = xGetElementById('xChannelMenuBlock');
        if (/Disabled/.test(xObjId.className))
        {
            return;
        }

        var xObjPos = xGetObjPos(xObjId);
        var nPosX = xObjPos[0] + 2, nPosY = xObjPos[1] + 3;
        nPosY += xGetObjHeight(xObjId);

        var mDiv = xGetElementById('xDivBodyId');
        if (mDiv.scrollLeft > 0)
        {
            nPosX -= mDiv.scrollLeft;
        }

        xGetElementById('xProvider').xShowChannelsMenu(nPosX, nPosY);
    };
    
    x.xOnSwitchChannel = function (sChannel) {
        xSetInnerHtml('xChannelMenuNames', sChannel);
    };
    
    x.xOnGoHome = function () {

        var Obj = xGetElementById('xChannelMenuNames');
        if (!Obj || /Disabled/.test(Obj.className))
        {
            return;
        }
        var xProvider = xGetElementById('xProvider');
        if (xProvider) {
            var sChannel = xProvider.xGetCurrentChannel();
            xProvider.xSetCurrentChannel(sChannel);
        }
    };
    
    x.xToolsMenu1.xOnClick = function () {
        //xApplication.xOnUiModeCommand(UIMODE_COMMAND_SWITCHORGANIZER, 0);
        //xProvider$().xNavigate('http://www.quosa.com');
        xProvider$().xShowAbout();
    };
    
    /*
    x.xToolsMenu2 = xCreateButton('xMainToolsMenu02', 'x_mdrop');
    x.xToolsMenu2.xOnClick = function () {
        var xObjId = xGetElementById('xMainToolsMenu01');
        if (xIsObject(xObjId) && xObjId != null) {
            var xObjPos = xGetObjPos(xObjId);
            var nPosX = xObjPos[0] + 2, nPosY = xObjPos[1] + 3;
            nPosY += xGetObjHeight(xObjId);

            var mDiv = xGetElementById('xDivBodyId');
            if (mDiv.scrollLeft > 0)
            {
                nPosX -= mDiv.scrollLeft;
            }
            else
            {
                nPosX += xGetObjWidth (xObjId);
            }


            xProvider$().xShowQuosaMenu(nPosX, nPosY);
        }
    }
    */
    
    x.xStopSearch.xOnClick = function () {
        var x = $(xMainToolsInfo.xFrameId);
        x.xSetIntermediateProgress();
        xGetElementById('xProvider').xStopSearch();
    };
    
    x.xStopProgress = function () {
        xSetVisMode('xProgressBarSection02', false);
        xSetVisMode('xProgressBarSection03', false);
        xGetElementById('xProgressBar').style.width = '100%';
        xGetElementById('xProgressBarImg').src = 'images/x_progress_disabled.gif';
        x.xStopSearch.xEnableControl(false);
    };
    
    x.xShowProgress = function () {
        xSetVisMode('xProgressBarSection02', true);
        xSetVisMode('xProgressBarSection03', true);     
        x.xStopSearch.xEnableControl(true);
        xGetElementById('xProgressBarImg').src = 'images/x_progress.gif';
    };
    
    x.xSetIntermediateProgress = function () {
        var x = $(xMainToolsInfo.xFrameId); 
        xGetElementById('xProgressBar').style.width = '100%';
        x.xShowProgress();
    };
    
    x.xSetProgress = function (xPercents) {
        var x = $(xMainToolsInfo.xFrameId); 
        xGetElementById('xProgressBar').style.width = xPercents + '%';
        x.xShowProgress();
    };
    
    x.xUpdateProgress = function () {
        var x = $(xMainToolsInfo.xFrameId); 
        var p = xGetElementById('xProvider').xGetPercentComplete();
        x.xSetProgress(p);
    };
    
    x.xStopProgress();  

    x.xOnPathLinkClick = function () {
        xProvider$().xShowDataFolder();
    };

    x.xSetResultSet = function (sResultSetId) {
        if (sResultSetId == false || sResultSetId.length == 0) {
            if ((xObjId = xGetElementById('xResultSetName'))) {
                xSetVisMode(xObjId, false); xSetInnerHtml(xObjId, '&nbsp;');
            }           
            return ;
        }
        var xTreeObj = Env$().xGetOrganizerTree();
        if (!(xIsObject(xTreeObj) || xTreeObj != null)) return ;
        var xNodeObj = xTreeObj.xFindNodeByResultSetId(sResultSetId);
        if (!(xIsObject(xNodeObj) || xNodeObj != null)) return ;
        var xRsStObj = xNodeObj.xGetResultsSet();
        if (!(xIsObject(xRsStObj) || xRsStObj != null)) return ;
        
        var sNodePreFix = 'Search';
        var nNumResults = xRsStObj.xGetNumberOfResults();
        var sNodeFuName = xNodeObj.xGetNodePath();
        var sNodeShName = xNodeObj.xGetNodeName();

        var sNodeShNameShort = sNodeShName;
        if (sNodeShName.length >= 17)
        {
            sNodeShNameShort = sNodeShName.substr(0, 14) + '...';
        }
        
        if (sNodeFuName.indexOf('/') == 0) sNodeFuName = sNodeFuName.substr(1);
        sNodeFuName = sNodeFuName.replace(/\//g, '\\');
        if (xNodeObj.xGetNodeType() == NODE_TYPE_SEARCH)
        {
            var sChannel = xNodeObj.xGetChannelName();
            if (sChannel != null)
            {
                sNodeFuName += ' (' + sChannel + ')';
                sNodeShNameShort += ' (' + sChannel + ')';
            }
        }
        
        switch (xNodeObj.xGetNodeType()) {
        case NODE_TYPE_SEARCH:
            sNodePreFix = 'Search';
            break;
        case NODE_TYPE_FOLDER:
            sNodePreFix = 'Folder';
            break;                          
        }
        
        if ((xObjId = xGetElementById('xResultSetName'))) {
            xObjId.innerHTML = sNodePreFix + ': "<a title="' + sNodeFuName + '" alt="' + sNodeFuName + '" id="xResultSetNameLink" class="xResultSetNameLink" href="javascript:">' + sNodeShNameShort + '</a>", ' + nNumResults + ' result(s)';
            xGetElementById('xResultSetNameLink').attachEvent('onclick', $(xMainToolsInfo.xFrameId).xOnPathLinkClick);
            xSetVisMode(xObjId, true);
        }
    };  
    
    x.xOnControlsEnabled = function ()
    {
        var obj = xGetElementById('xChannelMenuBlock');
        if (obj)
        {
            obj.className = obj.className.replace(/Disabled/, "");
        }
        obj = xGetElementById('xChannelMenuNames');
        if (obj)
        {
            obj.className = obj.className.replace(/Disabled/, "");
        }

        x.xChannelsMenu.xEnableControl(true);
        x.xSettings.xEnableControl(true);
        x.xSettingsMenu.xEnableControl(true);
    };

    x.xOnControlsDisabled = function ()
    {
        var obj = xGetElementById('xChannelMenuBlock');
        if (obj)
        {
            obj.className = obj.className + "Disabled";
        }
        obj = xGetElementById('xChannelMenuNames');
        if (obj)
        {
            obj.className = obj.className + "Disabled";
        }

        x.xChannelsMenu.xEnableControl(false);
        x.xSettings.xEnableControl(false);
        x.xSettingsMenu.xEnableControl(false);
    };

    x.xSetResultSet(false);
}
