/* -- Dimensioning -- */

function topOffset( node )
{
    var ret;
    if ( node.nodeName.toLowerCase() == 'body' )
        ret = 0;
    else
        ret = node.offsetParent ? ( node.offsetTop + topOffset( node.offsetParent ) ) : node.offsetTop;
    return ret;
}
function leftOffset( node )
{
    var ret;
    if ( node.nodeName.toLowerCase() == 'body' )
        ret = 0;
    else
        ret = node.offsetParent ? ( node.offsetLeft + leftOffset( node.offsetParent ) ) : node.offsetLeft;
    return ret;
}

function winHeight()
{
    var h = 0;
    if ( window.innerHeight )
        h = window.innerHeight - 18;
    else if ( document.documentElement && document.documentElement.clientHeight )
        h = document.documentElement.clientHeight;
    else if ( document.body && document.body.clientHeight )
        h = document.body.clientHeight;

    return h;
}
function winWidth()
{
    var w = 0;
    if ( window.innerHeight )
        w = window.innerWidth - 18;
    else if ( document.documentElement && document.documentElement.clientWidth )
        w = document.documentElement.clientWidth;
    else if ( document.body && document.body.clientWidth )
        w = document.body.clientWidth;

    return w;
}

function doResizeColumns( row0, row1 )
{
    if ( row0.childNodes.length != row1.childNodes.length )
    {
        var errstr = '<br/>error' + 'mismatched columns';
        if ( typeof debug != 'undefined' && typeof debug != 'unknown' )
            debug.innerHTML += errstr;
        else
            document.write( errstr );
    }
    else
    {
        for ( i = 0; i < row0.childNodes.length; i++ )
        {
            row0.childNodes[i].style.width = 'auto';
            row1.childNodes[i].style.width = 'auto';
        }
        for ( i = 0; i < row0.childNodes.length; i++ )
        {
            w = Math.max(row0.childNodes[i].offsetWidth, row1.childNodes[i].offsetWidth);
            row0.childNodes[i].style.width = w + 'px';
            row1.childNodes[i].style.width = w + 'px';
        }
    }
}

function doResizeDiv( d, winheight, padding )
{
    var h = Math.max( 0, winheight - ( topOffset( d ) + padding ) );
    d.style.height = h + 'px';
}
function doResizeDivH( d, winheight, padding )
{
    var h = Math.max( 0, winheight - ( topOffset( d ) + padding ) );
    d.style.height = h + 'px';
}
function doResizeDivW( d, winwidth, padding )
{
    var w = Math.max( 0, winwidth - ( leftOffset( d ) + padding ) );
    d.style.width = w + 'px';
}

function doResizeDivSimple( divid, winheight, padding )
{
    divid.style.visibility = 'hidden';
    doResizeDiv( divid, winheight, padding );
    divid.style.visibility = 'visible';
}

function doResizeDivComplex( divid, divheadid, winheight, padding, headrow, firstrow )
{
    divid.style.visibility = 'hidden';
    divheadid.style.visibility = 'hidden';

    doResizeDiv( divid, winheight, padding );

    doResizeColumns( headrow, firstrow );

    divid.style.visibility = 'visible';
    divheadid.style.visibility = 'visible';
}

function bufferSizeDelayed(nameBuffer)
{
	var callstr = "bufferSize('" + nameBuffer + "')"
	setTimeout( callstr, 1000 );
}

function bufferSize(nameBuffer)
{
//	alert( 'bs') ;
	var callstr = "bufferSize('" + nameBuffer + "')"
	var b = document.getElementById? document.getElementById(nameBuffer): document.all? document.all[nameBuffer]: null;
	if ( !b  )
	{
		setTimeout( callstr, 300 );
		return;
	}
	if ( !window.frames[nameBuffer].document.body   )
	{
		setTimeout( callstr, 300 );
		return;
	}
	
	if ( b.style.height != window.frames[nameBuffer].document.body.scrollHeight + 'px' )
	{
		b.style.height = window.frames[nameBuffer].document.body.scrollHeight + 'px';
		b.style.width = '100%';
//		b.style.visibility = 'visible';
		setTimeout( callstr, 300 );
	}
	else
	{
		b.style.visibility = 'visible';
//		footPad('footPadding');
	}
}

function footPad(nameBuffer)
{
//	alert( 'bs') ;
	var callstr = "footPad('" + nameBuffer + "')"
	var b = document.getElementById? document.getElementById(nameBuffer): document.all? document.all[nameBuffer]: null;
	var buff = document.getElementById? document.getElementById('buffer'): document.all? document.all['buffer']: null;
	if ( !b || !buff )
	{
		setTimeout( callstr, 300 );
		return;
	}
	var Hpx = 'px';
	var padTop = topOffset(b);
	alert( document.body.scrollHeight + "," + document.body.clientHeight + "," + document.body.outerHeight  );
	alert( topOffset(b)  );
	if ( b.style.height != Hpx )
	{
	//	b.style.height = Hpx;
		b.style.width = '100%';
		b.style.visibility = 'visible';
//		setTimeout( callstr, 300 );
	}
	else
	{
//		b.style.visibility = 'visible';
	}
}
/* -- UI Mouse/Keyboard -- */


