//
// QUOSA Information Manager
// Copyright © 2000-2008 QUOSA, Inc.
// All Rights Reserved.
//
var xDataFrameUiMode_xDataFrame01 = 0;
var xDataFrameUiMode_xDataFrame02 = 1;
var xDataFrameUiMode_xDataFrame12 = 2;

var xDataFrameInfo = {
    xFrameId : 'xDataFrame'
};

function xDataFrame() {
    var x = this; x.xObjId = xGetElementById(xDataFrameInfo.xFrameId); $(x.xObjId.id, x);
    x.xDataFrame01 = new xDataFrameContainer('xDataFrame01'); x.xDataFrame01SavedH = 0;
    x.xDataFrame02 = new xDataFrameContainer('xDataFrame02'); x.xDataFrame02SavedH = 0;
    
    x.xDataFrame01.xAppendFrame('xDataView', new xDataView());
    x.xDataFrame02.xAppendFrame('xProvView', new xProvView());
    
    x.xUiMode = xDataFrameUiMode_xDataFrame12;
    x.xSetUiMode = function (xUiMode) {
        var x = $(xDataFrameInfo.xFrameId);
        if (xUiMode == xDataFrameUiMode_xDataFrame01) {         
            x.xShowDataFrame(x.xDataFrame01.xObjId.id);
            var xSavedHpcs = Math.round(
                100/xGetObjSize(x.xObjId)[1]*x.xDataFrame01.xGetFrameSize()[1]);
            if (xSavedHpcs != 0 && xSavedHpcs != 100)
                x.xDataFrame01SavedH = xSavedHpcs;
            x.xHideDataFrame(x.xDataFrame02.xObjId.id);
            x.xSplitters.xHide(); 
        } else
        if (xUiMode == xDataFrameUiMode_xDataFrame02) {
            x.xHideDataFrame(x.xDataFrame01.xObjId.id);
            x.xShowDataFrame(x.xDataFrame02.xObjId.id);         
            x.xSplitters.xHide();
        } else
        if (xUiMode == xDataFrameUiMode_xDataFrame12) {
            x.xShowDataFrame(x.xDataFrame01.xObjId.id);
            x.xShowDataFrame(x.xDataFrame02.xObjId.id);
            x.xDataFrame01.xSetFrameSize(null,
                Math.round(xGetObjSize(x.xObjId)[1]/100*x.xDataFrame01SavedH));
            x.xSplitters.xShow();
        }
        x.xUiMode = xUiMode;
        $().xReBuildUIControls();
    };
    
    x.xSwitchUiMode = function () {
        var x = $(xDataFrameInfo.xFrameId);
        var xUiMode = x.xUiMode;
        switch (xUiMode) {
            case xDataFrameUiMode_xDataFrame01: xUiMode = xDataFrameUiMode_xDataFrame12; break;
            case xDataFrameUiMode_xDataFrame02: xUiMode = xDataFrameUiMode_xDataFrame01; break;
            case xDataFrameUiMode_xDataFrame12: xUiMode = xDataFrameUiMode_xDataFrame02; break;
            default:
                xUiMode = xDataFrameUiMode_xCombine;
                break;
        }
        x.xSetUiMode(xUiMode);
    };
    
    x.xShiftFrameSize = function (xShiftX, xShiftY) {
        var x = $(xDataFrameInfo.xFrameId); xShiftObjSize(x.xObjId, xShiftX, xShiftY);      
        x.xDataFrame01.xShiftFrameSize(xShiftX, xShiftY);
        x.xDataFrame02.xShiftFrameSize(xShiftX, xShiftY);
        x.xSplitters.xShiftFrameSize(xShiftX, xShiftY);
        return [true, true];
    };  
    
    x.xSetFrameSize = function (xSizeW, xSizeH) {
        var x = $(xDataFrameInfo.xFrameId); 
        var xNewSize = xSubObjMrs(x.xObjId, xSizeW, xSizeH);
        xSetObjSize(x.xObjId, xNewSize[0], xNewSize[1]);
        
        var xClientS = xGetObjClientSize(x.xObjId);
        var xClientW = xClientS[0], xClientH = xClientS[1];

        if (x.xUiMode == xDataFrameUiMode_xDataFrame01) {
            x.xDataFrame01.xSetFrameSize(xClientW, xClientH);
        } else 
        if (x.xUiMode == xDataFrameUiMode_xDataFrame02) {
            x.xDataFrame02.xSetFrameSize(xClientW, xClientH);
        } else
        if (x.xUiMode == xDataFrameUiMode_xDataFrame12) {           
            var xFrame01H = x.xDataFrame01.xGetFrameSize()[1];
            x.xDataFrame01.xSetFrameSize(xClientW, xFrame01H);
            x.xDataFrame02.xSetFrameSize(xClientW, 
                xClientH - xFrame01H - x.xSplitters.xGetFrameSize()[1]);            
        };
        x.xSplitters.xSetFrameSize(xClientW, xClientH);
    };  
    
    x.xGetFrameSize = function () {
        var x = $(xDataFrameInfo.xFrameId);
        return xGetObjSize(x.xObjId);
    };
    
    x.xShowDataFrame = function (xFrameId) {
        var x = $(xDataFrameInfo.xFrameId);
        if (xFrameId == x.xDataFrame01.xObjId.id) {
            x.xDataFrame01.xShow();
            $(xDataViewInfo.xFrameId).xShowAddDocTool();
            $(xDataViewInfo.xFrameId).xShowEndnoteTool();
            $(xDataViewInfo.xFrameId).xShowDeleteTool();
            //$(xDataViewInfo.xFrameId).xShowExportToXMLTool();
            $(xToolBarInfo.xFrameId).xSave2Folder.show();
        } else
        if (xFrameId == x.xDataFrame02.xObjId.id) {
            x.xDataFrame02.xShow();
        }
    };
    
    x.xHideDataFrame = function (xFrameId) {
        var x = $(xDataFrameInfo.xFrameId);
        if (xFrameId == x.xDataFrame01.xObjId.id) {
            x.xDataFrame01.xHide();
            $(xDataViewInfo.xFrameId).xHideAddDocTool();
            $(xDataViewInfo.xFrameId).xHideEndnoteTool();
            $(xDataViewInfo.xFrameId).xHideDeleteTool();
            //$(xDataViewInfo.xFrameId).xHideExportToXMLTool();
            $(xToolBarInfo.xFrameId).xSave2Folder.hide();
        } else
        if (xFrameId == x.xDataFrame02.xObjId.id) {
            x.xDataFrame02.xHide();
        }
    };
    
    x.xOnSplitterShiftSizes = function(xShiftX, xShiftY) {
        if (!xShiftY) return [false, false]; var x = $(xDataFrameInfo.xFrameId);
        var xObjSizeH = xGetObjSize(x.xObjId)[1]; var xDataSize01P = 
            Math.round(100/xObjSizeH*x.xDataFrame01.xGetFrameSize()[1]);
        if ((xShiftY < 0 && xDataSize01P > 20) || (xShiftY > 0 && xDataSize01P < 70)) {
            x.xDataFrame01.xShiftFrameSize(null, +xShiftY);
            x.xDataFrame02.xShiftFrameSize(null, -xShiftY);
            return [false, true];
        }
        return [false, false];
    };
    
    x.xSplitters = new xSplitter('xDataFrameSplitter', 'xDataFrameTrackers', 
        x.xOnSplitterShiftSizes, xSplitterMoveMode_V);      
};

function xDataFrameContainer(xContainerId) {
    var x = this; x.xObjId = xGetElementById(xContainerId);
    x.xFrames = new xFramesCollection();
    
    x.xAppendFrame = function (frmName, frmObj) {
        var x = this; x.xFrames.xAppendFrame(frmName, frmObj);
    };  
    
    x.xShiftFrameSize = function (xShiftX, xShiftY) {
        var x = this;  xShiftObjSize(x.xObjId, xShiftX, xShiftY);
        x.xFrames.xShiftFrameSize(xShiftX, xShiftY);
    };
    
    x.xSetFrameSize = function (xSizeW, xSizeH) {
        var x = this; var xNewSize = xSubObjMrs(x.xObjId, xSizeW, xSizeH);
        xSetObjSize(x.xObjId, xNewSize[0], xNewSize[1]);
        var xClientSize = xGetObjClientSize(x.xObjId);
        x.xFrames.xSetFrameSize(xClientSize[0], xClientSize[1]);
    };  
    
    x.xGetFrameSize = function () {
        var x = this; return xGetObjSize(x.xObjId);
    };

    x.xShow = function () {
        var x = this; xShow(x.xObjId);
    };

    x.xHide = function () {
        var x = this; xHide(x.xObjId);
    };
};
