
/***  DOCUMENTATION LAYER

	Basic Document Object Functions

	File: lime_basic.js
	Last Update: Jul 2006
	Author: Tom Atwell (klenwell@gmail.com)
	Website: http://phosphorusandlime.blogspot.com/

	FUNCTIONS:
	
		js_trim(str)
		js_echo(str)
		js_echo_block(str, class_name, id_name)
		dom_display_id(id, display="block")
		dom_no_display_id(id)
		dom_set_id_html(id, str_html)
		dom_form_set_value(id, value)


  NOTES:
	
		To link: <script type="text/javascript" src="path/to/lime_basic.js"></script>

______________________________________________________________________________*/



// js_trim
/*____________________________________________________________________________*/
function js_trim(str)
{
	// *** DATA
	
		// Regex
		var regex = /^\s*|\s*$/g;
		
		// Return
		var trimmed = '';
		
			
	// *** MANIPULATE
	
		trimmed = str.replace(regex,"");
	
	
	// *** RETURN
	
		return trimmed;

} // end Fx
/*____________________________________________________________________________*/



// js_echo
/*____________________________________________________________________________*/
function js_echo(str)
{
	// *** DATA
		
		// Return
		// void
		
			
	// *** MANIPULATE
	
		if ( str === undefined )
		{
			alert('js_echo: empty string -> aborting');
			return;
		}
	
		document.write(str);
	
	
	// *** RETURN
	
		return;

} // end Fx
/*____________________________________________________________________________*/


// js_echo_block
/*____________________________________________________________________________*/
function js_echo_block(str, class_name, id_name)
{
	// *** DATA
		
		// Internal
		var id = '';
		var cl = '';
		var block = '';
		
		// Return
		// void
		
			
	// *** MANIPULATE
	
		// Sanity Check
		if ( !str.length )
		{
			js_echo(str);
			return;
		}
		
	
		// Set ID
		if ( id_name !== undefined )
		{
			id = 'id="' + '" ';
		}
		
		// Set Class
		if ( class_name !== undefined )
		{
			cl = 'class="' + '" ';
		}
		
		// Build Block
		attr = id + cl;
		if ( attr.length ) attr = attr.substr(0, attr.length-1); 
		block = '<div ' + attr + '>' + str + '</div>';
		
		//  Write
		document.write(block);
	
	
	// *** RETURN
	
		return;

} // end Fx
/*____________________________________________________________________________*/



// dom_display_id
/*____________________________________________________________________________*/
function dom_display_id(id, display)
{
	// *** DATA
		
		// Internal
		var _dom_block;
		var _is_valid = -1;
		
		// Return
		// void
		
			
	// *** MANIPULATE
		
		// Default Setting: block
		if ( display == null ) display = "block";		
		
		// Validation Array (basic types only)
		DISPLAY_TYPE = new Array("none", "block", "inline", "list-item", "compact", "table");		
		
		// Sanity Check (IE 6 lacks indexOf method!)
		if ( DISPLAY_TYPE.indexOf )
		{
			_is_valid = DISPLAY_TYPE.indexOf(display);
			if ( _is_valid == -1 )
			{
				alert('display [' + display + '] is not a valid type');
				return 0;
			}
		}
	
		_dom_block = document.getElementById(id);
		_dom_block.style.display = display;
	
	
	// *** RETURN
	
		return;
		
} // end Fx
/*____________________________________________________________________________*/




// dom_hide_id
/*____________________________________________________________________________*/
function dom_no_display_id(id)
{
	dom_display_id(id, 'none')
}
/*____________________________________________________________________________*/



// dom_set_id_html
/*____________________________________________________________________________*/
function dom_set_id_html(id, str_html)
{
	// *** DATA
		
		// Internal
		var _dom_block;
		
		// Return
		// void
		
			
	// *** MANIPULATE
	
		_dom_block = document.getElementById(id);
		_dom_block.innerHTML = str_html;	

		
	// *** RETURN
	
		return;		
		
} // end Fx
/*____________________________________________________________________________*/


// dom_form_set_value
/*____________________________________________________________________________*/
function dom_form_set_value(name, value)
{
	// *** DATA
		
		// Document Objects
		var _dom_form_field = document.getElementsByName(name)[0];
		
		// Return
		// void
		
			
	// *** MANIPULATE
	
		// Sanity Check
		if ( _dom_form_field === undefined )
		{
			alert('name [' + name + '] not found');
			return;
		}

		_dom_form_field.value = value;


	// *** RETURN
	
		return;		
		
} // end Fx
/*____________________________________________________________________________*/
