
function dhtml_convertDisplayType( displayType )
{
    if( document.all && displayType &&
	(displayType == 'table-row-group' ||
	 displayType == 'table-cell' ||
	 displayType == 'table-row') ) {
	displayType = 'block';
    }
    
    return displayType;
} // dhtml_convertDisplayType

function dhtml_changeDisplay( elementName, displayType )
{
    var element = dhtml_getElement( elementName );
    dhtml_changeDisplayForElement( element, displayType );
} // dhtml_changeDisplay

function dhtml_changeDisplayForElement( element, displayType )
{
    if( element && element.style && element.style.display != null ) {
	
	element.style.display = dhtml_convertDisplayType( displayType );
    }
    else {
	_no_dhtml();
    }
} // dhtml_changeDisplay

function dhtml_changeInnerText( elementName, txt, paramElement )
{
    var element = dhtml_getElement( elementName );
    if( !element && paramElement )
	element = paramElement;
    if( element != null && element.innerHTML != null ) {
	// TODO: Check that callers don't actually need innerHTML, then change to innerText
	element.innerHTML = txt;
    }
    else if( element != null && element.firstChild ) {
	element.firstChild.nodeValue = txt;
    }
    else if( element != null ) {
	_no_dhtml();
    } 
} // dhtml_changeInnerText

function dhtml_changeInnerHTML( elementName, html, paramElement )
{
    var element = dhtml_getElement( elementName );
    if( !element && paramElement )
	element = paramElement;
    if( element != null && element.innerHTML != null ) {
	element.innerHTML = html;
    }
    else if( element != null && element.firstChild ) {
	element.firstChild.nodeValue = html;
    }
    else if( element != null ) {
	_no_dhtml();
    } 
} // dhtml_changeInnerHTML

function dhtml_appendInnerHTML( elementName, html, paramElement )
{
    var element = dhtml_getElement( elementName );
    if( !element && paramElement )
	element = paramElement;
    if( element != null && element.innerHTML != null ) {
	element.innerHTML += html;
    }
    else if( element != null && element.firstChild ) {
	element.firstChild.nodeValue += html;
    }
    else if( element != null ) {
	_no_dhtml();
    } 
} // dhtml_changeInnerText

function dhtml_setFormValue( elementName, value, formName )
{
    if( formName == null )
	formName = 'frm_main' 
    
    var el = document.forms[formName].elements[elementName];

    if( el != null ) {
	el.value = value;
	return 1;
    }

    return 0;
} // dhtml_setFormValue

function dhtml_getFormValue( elementName, formName )
{
    if( formName == null )
	formName = 'frm_main' 
    
    var el = document.forms[formName].elements[elementName];
    var value = null;
    if( el != null ) {
	value = el.value;
    }

    return value;
} // dhtml_getFormValue

function dhtml_getFormElement( elementName, formName )
{
    if( formName == null )
	formName = 'frm_main' 
    
    var el = document.forms[formName].elements[elementName];
	
    return el;
} // dhtml_getFormElement

function dhtml_submitForm( formName )
{
    if( formName == null )
	formName = 'frm_main';
	    
    var frm = document.forms[formName];
    if( frm != null ) {
	frm.submit();
	return 1;
    }
    
    return 0;
} // dhtml_submitForm

function dhtml_getForm( formName )
{
    if( formName == null )
	formName = 'frm_main';
	    
    var frm = document.forms[formName];

    return frm;
} // dhtml_getForm

function dhtml_ignoreEnter( evt )
{
    var e = (document.all) ? window.event : evt;
    
    // Only do this for IE
    if( document.all && e != null && e.keyCode == 13 )
    {
	e.keyCode = 0;
	return false;
    }
    
    return true;
} // dhtml_ignoreEnter

function dhtml_setWndLocation( wnd, url )
{
    wnd.location.href = url;		
} // dhtml_setWndLocation

function dhtml_setLocation( url )
{
    dhtml_setWndLocation( window, url );
} //

function dhtml_getElement( elementName )
{
    var element = null;
    if( document.all ) {
	element = document.all[elementName];
    }
    else if( document.getElementById ) {
	element = document.getElementById( elementName );
    }
    
    return element;
} // dhtml_getElement

function dhtml_xmlHttpPost(strURL, strSubmit, strResultFunc) 
{
    var xmlHttpReq = false;

    // Mozilla/Safari
    if (window.XMLHttpRequest) {
	xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
	xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    //alert( 'Posting to: ' + strURL );
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
	if (xmlHttpReq.readyState == 4) {
	    
	    if (xmlHttpReq.status == 200) {
		if( strResultFunc.indexOf( '(' ) == -1 ) {
		    eval(strResultFunc + '(xmlHttpReq);');
		}
		else {
		    eval(strResultFunc + ', xmlHttpReq);');
		}
	    }
	}
    }

    xmlHttpReq.send(strSubmit);
} // dhtml_xmlhttpPost

function dhtml_addEvent( elm, eventName, func, capt )
{
    if( elm.attachEvent ) {
	elm.attachEvent( "on"+eventName, func );
    }
    else if( elm.addEventListener ) {
	elm.addEventListener( eventName, func, capt );
	return true;
    }
    else {
	return true;
    }
}

function _no_dhtml()
{
    //alert( "Your browser does not support DHTML!" ); 
}

