/*
	This lib contains a cupple of functions that can manipulate the DOM-object.
*/

function gE( sElement ){ return document.getElementById( sElement ) ? document.getElementById( sElement ) : false; }
function gEV( element ){ return fetchElement( element ).value; }
function gEHTML( element ){ return fetchElement( element ).innerHTML; }
function sEHTML( element, text ){ fetchElement( element ).innerHTML = text; }

function fetchElement( element )
{
	if( isString( element ) ) return gE( element );
	return element;
}

function setClass( element, sClass )
{
	if( isIE ) ff.style.setClass( fetchElement( element ), sClass ); //big class ff.js
	else fetchElement( element ).setAttribute( "class", sClass );
}

function setStyle( element, sStyle )
{
	if( isIE ) fetchElement( element ).style.setAttribute( "cssText", sStyle );
	else fetchElement( element ).setAttribute( "style", sStyle );
}

function createNewDiv( sId, sOuterDiv, sClass, sText )
{
	var oElement = document.createElement( "div" );
	oElement.id = oElement.name= sId;
	
	createNewTextElement( oElement, sText );
	if( !isEmpty( sClass ) ) setClass( oElement, sClass );
	
	fetchElement( sOuterDiv ).appendChild( oElement );
}	
function createNewInput( sId, sOuterDiv, sType, sValue, sClass )
{
	var oElement = document.createElement( "input" );
	oElement.id = oElement.name= sId;
	oElement.setAttribute( "type", sType );
	if( !isEmpty( sValue ) ) oElement.value = sValue;
	if( !isEmpty( sClass ) ) setClass( oElement, sClass );
	
	fetchElement( sOuterDiv ).appendChild( oElement );
}
function createNewTextarea( sId, sOuterDiv, sValue, sClass )
{
	var oElement = document.createElement( "textarea" );
	oElement.id = oElement.name= sId;
	if( !isEmpty( sValue ) ) oElement.value = sValue;
	if( !isEmpty( sClass ) ) setClass( oElement, sClass );
	
	fetchElement( sOuterDiv ).appendChild( oElement );
}
function createNewBasicElement( sType, sOuterDiv, sText )
{
	var oElement = document.createElement( sType );
	createNewTextElement( oElement, sText );
	
	fetchElement( sOuterDiv ).appendChild( oElement );
}
function createNewTextElement( element, sText )
{
	if( sText == undefined ) return;
	
	var oTextNode = document.createTextNode( sText );
	fetchElement( element ).appendChild( oTextNode );
}
function removeElement( sId )
{
	var elementToRemove = document.getElementById( sId );
	elementToRemove.parentNode.removeChild( elementToRemove );
}
function replaceMessage( sId, sText )
{
	var oldElement = fetchElement( sId );
	var newElement = createNewTextElement( oldElement.tagName, sText );
	
	oldElement.parentNode.replaceChild( newElement, oldElement );
}

