
// Delays the actual resizeClient call for N milliseconds (see code) if the browser
// is IE and hc_app_frame is displaying a treemap.  Otherwise, the resize operation
// takes effect immediately.
//
// IE invokes the onResize method repeatedly while a user is dragging the size of a browser
// window.  There is no point in resizing the treemap display until the user completes
// the resize operation.

var MOZILLACONTROLSBARDIVDIMWADJ = 0;
var MOZILLACONTROLSDIVDIMWADJ = 0;
var MOZILLAFILTERSBARDIVDIMWADJ = 0;
var MOZILLAFILTERSDIVDIMWADJ = 0;
var MOZILLAHEADER = 0;
var MOZILLAFILTERSDIVDIMWIDTH = 0;
var MOZILLASTATUSBARDIVDIMWADJ = 0;
var MOZILLASTATUSDIVDIMWADJ = 0;
var MOZILLAFIELDOFFSET = 0;
var MOZILLASIDEBARDIVDIMWADJ = 0;
var MOZILLAFOOTERDIVDIMWADJ = 0;

var isIE = navigator.appName.indexOf("Microsoft") != -1; // YES THIS IS A HORRIBLE BROWSER DETECT!

var resizeTimeoutID = null;

function IEfix() {
	document.controlsApplet.setVisible(true);//fix for IE not showing control applet
}

function resizeClient() {
    //alert('RESIZING CLIENT');
    if (isIE) {
		IEfix();

        // Cancel the previous resize operation and reschedule it for 500 ms out.
        if (resizeTimeoutID != null) {
            window.clearTimeout(resizeTimeoutID);
            resizeTimeoutID = null;
        }
        resizeTimeoutID = window.setTimeout('__resizeClient();', 500);

    } else {
		MOZILLAHEADER = -17;
        MOZILLACONTROLSBARDIVDIMWADJ = -25;
		MOZILLACONTROLSDIVDIMWADJ = -19;
	    MOZILLASTATUSBARDIVDIMWADJ = -22;
	    MOZILLASTATUSDIVDIMWADJ = 3;
        MOZILLAFILTERSBARDIVDIMWADJ = -35;
		MOZILLAFIELDOFFSET = -22;
		MOZILLAFILTERSDIVDIMWADJ = 1;
		MOZILLAFILTERSDIVDIMWIDTH = 0;
        MOZILLASIDEBARDIVDIMWADJ = 100;
        MOZILLAFOOTERDIVDIMWADJ = 105;
        __resizeClient();
    }
}

// Resizes the iframe based on the current client width and height.  If the frame contains
// a treemap display.  The treemap display is resized based on the current width and height.
function __resizeClient() {
    var viewPortDim = getViewportDimensions();
    //alert(viewPortDim.toString());
    if (viewPortDim.w > 2560) viewPortDim.w = 2560;
	//if (viewPortDim.w < 1000) viewPortDim.w = 1000;
	if (viewPortDim.w < 750) viewPortDim.w = 750;
    if (viewPortDim.h > 1600) viewPortDim.h = 1600;
	//if (viewPortDim.h < 640) viewPortDim.h = 640;
	if (viewPortDim.h < 420) viewPortDim.h = 420;
	resizeDivs(viewPortDim.w,viewPortDim.h);
}

// resizes and repositions applet divs
function resizeDivs(w,h) {
    //alert(w+', '+h);

    //var headerDivDim = getElementDimensions('header');
    //var headerDivPos = getElementPosition('header');
    //var sidebarDivPos = getElementPosition('sidebar');
    //var sidebarDivDim = getElementDimensions('sidebar');
    var controlsBarDivPos = getElementPosition('controlsBarDiv');
    var controlsBarDivDim = getElementDimensions('controlsBarDiv');
    var controlsDivPos = getElementPosition('controlsDiv');
    var controlsDivDim = getElementDimensions('controlsDiv');
    var fieldDivPos = getElementPosition('fieldDiv');
    var fieldDivDim = getElementDimensions('fieldDiv');
    var fieldAppletDim = getElementDimensions('fieldApplet');
    var filtersBarDivPos = getElementPosition('filtersBarDiv');
    var filtersBarDivDim = getElementDimensions('filtersBarDiv');
    var filtersDivPos = getElementPosition('filtersDiv');
    var filtersDivDim = getElementDimensions('filtersDiv');
    //var mouseOverBarDivPos = getElementPosition('mouseOverBarDiv');
    //var mouseOverBarDivDim = getElementDimensions('mouseOverBarDiv');
    //var mouseOverDivPos = getElementPosition('mouseOverDiv');
    //var mouseOverDivDim = getElementDimensions('mouseOverDiv');
    var statusBarDivPos = getElementPosition('statusBarDiv');
    var statusBarDivDim = getElementDimensions('statusBarDiv');
    var statusDivPos = getElementPosition('statusDiv');
    var statusDivDim = getElementDimensions('statusDiv');
	//var javaDivPos = getElementPosition('java');
	//var javaDivDim = getElementDimensions('java');
	//var explainDivPos = getElementPosition('explain');
	//var explainDivDim = getElementDimensions('explain');
	//var footerDivPos = getElementPosition('footer');
   // var footerDivDim = getElementDimensions('footer');

  //
    // NOTE: Some hardcoded values below should be consistent with the CSS file's settings
    //

    // resize and reposition header div
    //headerDivDim.w = w + MOZILLAHEADER;
    //headerDivDim.h = 62; // CSS value
    //headerDivPos.x = 0; // CSS value
    //headerDivPos.y = 0; // CSS value
   // setElementDimensions('header',headerDivDim);
    //setElementPosition('header',headerDivPos);

    // resize and reposition sidebar div
   // sidebarDivDim.w = 117; // CSS value
    //sidebarDivDim.h = h + statusDivDim.h + javaDivDim.h + explainDivDim.h + footerDivDim.h + MOZILLASIDEBARDIVDIMWADJ;
    //sidebarDivPos.x = 0; // CSS value
    //sidebarDivPos.y = headerDivDim.h + 5;
    //setElementDimensions('sidebar',sidebarDivDim);
    //setElementPosition('sidebar',sidebarDivPos);

    // resize and reposition controls bar div
    controlsBarDivDim.w = w - 1 + MOZILLACONTROLSBARDIVDIMWADJ;
    controlsBarDivDim.h = 16; // CSS value
    controlsBarDivPos.x = 0; // CSS value
    controlsBarDivPos.y = 0; // CSS value
    setElementDimensions('controlsBarDiv',controlsBarDivDim);
    setElementPosition('controlsBarDiv',controlsBarDivPos);

    // resize and reposition controls bar div
    controlsDivDim.w = w - 1 + MOZILLACONTROLSDIVDIMWADJ;
    controlsDivDim.h = 55; // CSS value
    controlsDivPos.x = 0; // CSS value
    controlsDivPos.y = 17; // CSS value
    setElementDimensions('controlsDiv',controlsDivDim);
    setElementPosition('controlsDiv',controlsDivPos);

    // reposition mouseOver bar div
    //mouseOverBarDivDim.w = 202 + MOZILLAFILTERSBARDIVDIMWADJ; // CSS value
    //mouseOverBarDivDim.h = 16; // CSS value
    //mouseOverBarDivPos.x = w - 202; // CSS value
    //mouseOverBarDivPos.y = 178; // CSS value
    //setElementDimensions('mouseOverBarDiv',mouseOverBarDivDim);
    //setElementPosition('mouseOverBarDiv',mouseOverBarDivPos);

    // reposition mouseOver div
    //mouseOverDivDim.w = 202; // CSS value
    //mouseOverDivDim.h = 238; // CSS value
    //mouseOverDivPos.x = w - mouseOverDivDim.w;
    //mouseOverDivPos.y = 194; // CSS value
    //setElementDimensions('mouseOverDiv',mouseOverDivDim);
    //setElementPosition('mouseOverDiv',mouseOverDivPos);

    // resize and reposition field div
    fieldDivDim.w = w - 222 - 1 + MOZILLAFIELDOFFSET;
    fieldDivDim.h = h - controlsBarDivDim.h - controlsDivDim.h - statusBarDivDim.h - statusDivDim.h - 35 + 19;
	//alert(filtersDivDim.w);
    fieldDivPos.x = 0; // CSS value
    fieldDivPos.y = 79; // CSS value
    setElementDimensions('fieldDiv',fieldDivDim);
    setElementPosition('fieldDiv',fieldDivPos);

    // resize field applet
    fieldAppletDim.w = fieldDivDim.w;
    fieldAppletDim.h = fieldDivDim.h;
    setElementDimensions('fieldApplet',fieldAppletDim);

    // reposition mouseOver bar div
    filtersBarDivDim.w = 217; // CSS value
    filtersBarDivDim.h = 16; // CSS value
    filtersBarDivPos.x = fieldDivPos.x + fieldDivDim.w + 5;
    filtersBarDivPos.y = fieldDivPos.y;
    setElementDimensions('filtersBarDiv',filtersBarDivDim);
    setElementPosition('filtersBarDiv',filtersBarDivPos);

    // reposition status bar div
    statusBarDivPos.x = controlsBarDivPos.x; // status bar div was accumulating deltas in x
    statusBarDivPos.y = fieldDivPos.y + fieldDivDim.h + 3;
    statusBarDivDim.w = w - 1  + MOZILLASTATUSBARDIVDIMWADJ;
    setElementPosition('statusBarDiv',statusBarDivPos);
    setElementDimensions('statusBarDiv',statusBarDivDim);

    // reposition status div
    statusDivPos.x = controlsDivPos.x; // status div was accumulating deltas in x
    statusDivPos.y = statusBarDivPos.y + statusBarDivDim.h;
    statusDivDim.w = statusBarDivDim.w + MOZILLASTATUSDIVDIMWADJ;
	statusDivDim.h = 32;
    setElementPosition('statusDiv',statusDivPos);
    setElementDimensions('statusDiv',statusDivDim);

    var filtersBarDivPos = getElementPosition('filtersBarDiv');
    var filtersBarDivDim = getElementDimensions('filtersBarDiv');
	//filtersDivDim.w = filtersBarDivDim.w;
	//filtersDivPos.x = filtersBarDivPos.x - 5;
	// reposition filters div
    
	
	filtersDivDim.w = filtersBarDivDim.w + MOZILLAFILTERSDIVDIMWIDTH; // CSS value
    //filtersDivDim.h = 125; // CSS Value
	//alert(filtersDivPos.x+215);
	//alert(w);
	//filtersDivPos.x = controlsDivPos.x + controlsBarDivDim.h - filtersDivDim.w;
	//alert(filtersDivPos.x);
	//if(filtersDivPos.x + 210 < w){
	//	filtersDivPos.x =  filtersBarDivPos.x + MOZILLAFILTERSDIVDIMWADJ + 18;
	//}else{
		filtersDivPos.x =  filtersBarDivPos.x - 2 + MOZILLAFILTERSDIVDIMWADJ;
	//}
    filtersDivPos.y =  filtersBarDivPos.y + 14;
    filtersDivDim.h = fieldDivDim.h - 17;
	
    setElementDimensions('filtersDiv',filtersDivDim);
    setElementPosition('filtersDiv',filtersDivPos);
    //alert(filtersDivPos.toString() + filtersBarDivDim.toString());

	

}
