function init()
{
	if ( !documentHasForm() )
		return;
	
	fixRoundEdges();
	addClearers();
	fillEmptyDivs();
	//displayHelpLabels();
}

function fixRoundEdges()
{
	var legendSpans	= getLegendSpans();
	if ( legendSpans.length < 1 )
		return;
	
	for ( var i = 0; i < legendSpans.length; i++ )
	{
		var textNode = legendSpans[ i ].firstChild;
		var additionalSpan = document.createElement( "span" );
	
		legendSpans[ i ].removeChild( textNode );
		additionalSpan.appendChild( textNode );
		legendSpans[ i ].appendChild( additionalSpan );
	}
}

function documentHasForm()
{
	var bFlag = false;
	var forms = document.getElementsByTagName( "form" );
	for ( var i = 0; i < forms.length; i++ )
	{
		if ( forms[ i ].className == "group" )
		{
			bFlag = true;
			break;
		}
	}
	var divs = document.getElementsByTagName( "div" );
	for ( i = 0; i < divs.length; i++ )
	{
		if ( divs[ i ].className == "group" )
		{
			bFlag = true;
			var index = getIndexForNode( divs[ i ] );
			if ( index < divs[ i ].parentNode.childNodes.length - 2 )
				addClearer( divs[ i ].parentNode, "clear", divs[ i ].parentNode.childNodes[ index + 1 ] );
		}
	}
	return bFlag;
}

function getIndexForNode( node )
{
	for ( var i = 0; i < node.parentNode.childNodes.length; i++ )
		if ( node.parentNode.childNodes[ i ] == node )
			return i;
	return -1;
}

function getLegendSpans()
{
	var spans = document.getElementsByTagName( "span" );
	var legendSpans = new Array();
	for ( var i = 0; i < spans.length; i++ )
		if ( spans[ i ].className == "legend" )
			legendSpans.push( spans[ i ] );
	return legendSpans;
}

function addClearers()
{
	var clearer;
	var divs = document.getElementsByTagName( "div" );
	for ( var i = 0; i < divs.length; i++ )
		if ( divs[ i ].className == "row" )
			addClearer( divs[ i ] );			
}

function addClearer( obj, className, insertBeforeObj )
{
	if ( className == undefined )
		className = "clearer";
	var clearer = document.createElement( "div" );
	clearer.className = className;
	if ( insertBeforeObj != undefined )
		obj.insertBefore( clearer, insertBeforeObj );
	else
		obj.appendChild( clearer );
}

function displayHelpLabels()
{
	var divs = document.getElementsByTagName( "div" );
	for ( var i = 0; i < divs.length; i++ )
		if ( divs[ i ].className == "help" )
			divs[ i ].style.visibility = "visible";
}

function fillEmptyDivs()
{
	var divs = document.getElementsByTagName( "div" );
	for ( var i = 0; i < divs.length; i++ )
	{
		if ( divs[ i ].className == "field" )
		{
			if ( !divs[ i ].hasChildNodes() )
			{
				var text = document.createTextNode( "\u00a0" );
				divs[ i ].appendChild( text );
			}
			else if ( divs[ i ].childNodes[ 0 ].nodeType != 5 )
				continue;
			else
				if ( trim( divs[ i ].childNodes[ 0 ].nodeValue ) == "" )
					divs[ i ].childNodes[ 0 ].nodeValue = "\u00a0";
		}
	}
}

function lTrim( val )
{
	for ( var i = 0; i < val.length; i++ )
		if ( !isWhitespace( val.charAt( i ) ) )
			break;
	return val.substr( i );
}

function rTrim( val )
{
	for ( var i = val.length - 1; i >= 0; i-- )
		if ( !isWhitespace( val.charAt( i ) ) )
			break;
	return val.substring( 0, i + 1 );
}
	
function trim( val )
{
	val = lTrim( val );
	return rTrim( val );
}
	
function isWhitespace( val )
{
	var whitespace = [ 32, 10, 15, 9, 0, 13 ];
	for ( var i = 0; i < val.length; i++ )
	{
		var c = val.charCodeAt( i );
		for ( var j = 0; j < whitespace.length; j++ )
			if ( whitespace[ j ] == c )
				return true;
		return false;
	}
	return true;
}

function PopupFenster(linkurl, width, height) 
{
    F = window.open(linkurl,"Link", "width="+width+",height="+height);
}

