/* ***************************************************************
 *
 * Copyright (c) TimeFrame, Inc. 2005, 2007
 * 
 * File: jswl-core.js
 * Created: January 05, 2006 (20060501)
 * Description:
 *
 * JavaScript Widget Library widget definitions.
 * 
 * ***************************************************************
 * CHANGE HISTORY
 * ***************************************************************
 * DATE     USER       RECORD       DESCRIPTION
 * ---------------------------------------------------------------
 * 20060105 dewittsc   ------       Initial version.
 * 
 * *************************************************************** */

/**
 * A simple layout proc that lays out its children sequentially in a div.
 */
 
function jsDivLayout( out, container )
{
	var html;
	
	html = '<div ';
	html += 'id="' + container.wid + '" ';
	html += 'name="' + container.wid + '" ' ;
	
	if ( container.alignment ) { html += 'align="' + jsResolveAlignment( container ) + '" valign="' + jsResolveVerticalAlignment( container ) + '" ' };
	if ( container.styleClass ) { html += 'class="' + container.styleClass + '" '; }
	
	html += 'style="';
	if ( !container.isVisible ) { html += 'display: none;' }
	html += '" ';
	
	html += '>';	
	
	out.write(html);
	
	for ( var i = 0; i < container.children.length; i++ )
	{
		if ( container.children[i].renderTo ) { container.children[i].renderTo( out ); }
	}	
	
	html = '</div>';
	
	out.write(html);
}

/**
 * A simple layout proc that lays out its children sequentially in a span.
 */
 
function jsSpanLayout( out, container )
{
	var html;
	
	html = '<span ';
	html += 'id="' + container.wid + '" ';
	html += 'name="' + container.wid + '" ' ;
	
	if ( container.alignment ) { html += 'align="' + jsResolveAlignment(container) + '" valign="' + jsResolveVerticalAlignment(container) + '" ' };
	if ( container.styleClass ) { html += 'class="' + container.styleClass + '" '; }
	
	html += 'style="';
	if ( !container.isVisible ) { html += 'display: none;' }
	html += '" ';
	
	html += '>';	
	
	out.write(html);
	
	for ( var i = 0; i < container.children.length; i++ )
	{
		if ( container.children[i].renderTo ) { container.children[i].renderTo( out ); }
	}	
	
	html = '</span>';
	
	out.write(html);
}	

/**
 * A simple layout proc that lays out its children vertically in a table.
 */
 
function jsVerticalLayout( out, container )
{
	var html;
	
	html = '<table ';
	html += 'id="' + container.wid + '" ';
	html += 'name="' + container.wid + '" ' ;
	
	if ( container.styleClass ) { html += 'class="' + container.styleClass + '" '; }
	
	html += 'cellspacing="0" cellpadding="0" ';
	html += 'style="';
	if ( !container.isVisible ) { html += 'display: none;' }
	html += '" ';
	
	html += '><tbody>';	
	
	out.write(html);
	
	for ( var i = 0; i < container.children.length; i++ )
	{
		out.write('<tr><td align="' + jsResolveAlignment(container.children[i]) + '" valign="' + jsResolveVerticalAlignment(container.children[i]) + '">');
		if ( container.children[i].renderTo ) { container.children[i].renderTo( out ); }
		out.write('</td></tr>');
	}	
	
	html = '</tbody></table>';
	
	out.write(html);
}

/**
 * A simple layout proc that lays out its children horizontally in a table.
 */
 
function jsHorizontalLayout( out, container )
{
	var html;
	
	html = '<table ';
	html += 'id="' + container.wid + '" ';
	html += 'name="' + container.wid + '" ' ;
	
	if ( container.styleClass ) { html += 'class="' + container.styleClass + '" '; }
	
	html += 'cellspacing="0" cellpadding="0" ';
	html += 'style="';
	if ( !container.isVisible ) { html += 'display: none;' }
	html += '" ';
	
	html += '><tbody>';	
	
	out.write(html);
	
	out.write('<tr>');
	for ( var i = 0; i < container.children.length; i++ )
	{
		out.write('<td align="' + jsResolveAlignment(container.children[i]) + '" valign="' + jsResolveVerticalAlignment(container.children[i]) + '">');
		if ( container.children[i].renderTo ) { container.children[i].renderTo( out ); }
		out.write('</td>');
	}	
	out.write('</tr>');
	
	html = '</tbody></table>';
	
	out.write(html);
}

/**
 * A simple element renderer that renders the element as a string.
 */
 
function jsStringRenderer( out, widget, element, row, col )
{
	out.write( element.toString() );
}