//
// QUOSA Information Manager
// Copyright © 2000-2008 QUOSA, Inc.
// All Rights Reserved.
//
var xMainFrameInfo = {
	xFrameId  : 'xMainFrame',
	xMinSizeW : 950,
	xMinSizeH : 500
};

var xMainFrameId = 'xMainFrame';
function xMainFrame() {
	var x = this; x.xObjId = xGetElementById(xMainFrameInfo.xFrameId); $(x.xObjId.id, x);	
	x.xMainTools = new xMainTools();
	x.xDockFrame = new xDockFrame();
	x.xDataFrame = new xDataFrame();
	
	x.xSetFrameSize = function (xSizeW, xSizeH) {
		var x = $(xMainFrameInfo.xFrameId);
		var xNewSizeW = (xSizeW >= xMainFrameInfo.xMinSizeW) ? xSizeW : xMainFrameInfo.xMinSizeW;
		var xNewSizeH = (xSizeH >= xMainFrameInfo.xMinSizeH) ? xSizeH : xMainFrameInfo.xMinSizeH;
		xSetObjSize(x.xObjId, xNewSizeW, xNewSizeH); 
		var xClientS = xGetObjClientSize(x.xObjId, true);
		var xClientW = xClientS[0];
		var xClientH = xClientS[1];

		x.xMainTools.xSetFrameSize(xClientW, xClientH);
		xClientH -= x.xMainTools.xGetFrameSize()[1];		
		x.xDockFrame.xSetFrameSize(x.xDockFrame.xGetFrameSize()[0], xClientH);		
		xClientW -= x.xDockFrame.xGetFrameSize()[0];
		x.xSplitters.xSetFrameSize(xClientW, xClientH);
		xClientW -= x.xSplitters.xGetFrameSize()[0];
		x.xDataFrame.xSetFrameSize(xClientW, xClientH);
	};
	
	x.xShowDockFrame = function () {
		var x = $(xMainFrameInfo.xFrameId);
		x.xDockFrame.xShow(); x.xSplitters.xShow();
		$().xReBuildUIControls();
	};
	
	x.xHideDockFrame = function () {
		var x = $(xMainFrameInfo.xFrameId);
		x.xDockFrame.xHide(); x.xSplitters.xHide();
		$().xReBuildUIControls();
	};
	
	x.xOnSplitterShiftSizes = function (xShiftX, xShiftY) {
		if (!xShiftX) return [false, false]; var x = $(xMainFrameInfo.xFrameId); 
		var xObjSizeW = xGetObjSize(x.xObjId)[0]; var xDockSizeP = 
			Math.round(100/xObjSizeW*x.xDockFrame.xGetFrameSize()[0]);
		if ((xShiftX < 0 && xDockSizeP > 10) || (xShiftX > 0 && xDockSizeP < 50)) {
			x.xDockFrame.xShiftFrameSize(+xShiftX, null);
			x.xDataFrame.xShiftFrameSize(-xShiftX, null);			
			return [true, false];
		}
		return [false, false];
	};	
	
	x.xSplitters = new xSplitter('xMainFrameSplitter', 'xMainFrameTrackers', 
		x.xOnSplitterShiftSizes, xSplitterMoveMode_H);
}