function showChildren(dt){
    var parent = dt.parentNode;
    for(var i=0; i<parent.childNodes.length; i++){
        var el = parent.childNodes[i];
        if(el.tagName == 'DD'){
            if(el.style.display == 'none'){
                el.style.display = 'block';
            }
            else{
                el.style.display = 'none';
            }
        }
    }
}


/**
 * Sets the class of an element (build for this example)
 */
function setElement(strElement, blnValidated) {
	// Update the label
	var objElem = document.getElementById('l' + strElement);
	if (objElem) {
		if (blnValidated == 1) {
			strClass = objElem.getAttribute('classOrig');
		} else {
			strClass = 'error';
		}
		objElem.setAttribute('class', '' + strClass);
	}

	return false;
}

/**
 * Shows or hides an element
 */
function toggleElement(strElement, blnVisible) {
	var objStyle = document.getElementById(strElement).style;
	if (objStyle) {
		objStyle.display = (blnVisible == 1) ? 'block' : 'none';
	}
}

/**
 * Login function
 */
function doSubmit(formName) {
	// Create object with values of the form
    var objTemp = form2js(formName); //new Object();
	var objCallback = { formSubmit: function() {} };
	// Send the object to the remote class
    var objiForm = new iForm(objCallback);
    objiForm.formSubmit(objTemp);
}
function callAction(formName, fAction)
{
    var objTemp = form2js(formName); //new Object();
    objTemp.fAction=fAction;
//    alert(objTemp.fAction + "\n" + objTemp.fModule + "\n" + objTemp.fSelected);
	var objCallback = { formSubmit: function() {} };
	// Send the object to the remote class
    var objiForm = new iForm(objCallback);
    objiForm.formSubmit(objTemp);
}

function form2js(form, include_unset, unset_value)
{
    /// defaults
    include_unset = include_unset? include_unset : false;
    unset_value = unset_value? unset_value : null;

    var form_data = {};
    var f = (form.constructor == Object)? form : document.forms[form];
    var els = f.elements;
    for (var i = 0; i < els.length; i++) {
        var el = els[i];
        var key = el.name;
        var value = undefined;

        //alert(el.tagName + "\n" + el.type + "\n" + el.value);
        //continue;
        if (el.tagName=='FIELDSET'){
            continue;
        }
        var type = el.type.toLowerCase();
        if (type == "select-multiple") {
            value = [];

            for (var i = 0; i < el.options.length; i++) {
                if (el.options[i].selected) {
                    value.push(el.options[i].value);
                }
            }
            if (! value.length) {
                value = undefined;
            }

        }
        else if (type == "radio" || type == "checkbox") {
            if (el.checked) {
                value = el.value;
            }
        }
        else if (type == "hidden" || type == "text" || type == "password" || type == "textarea" || type ==  "select-one" || type ==  "submit") {
            value = el.value;
        }
        else {
            // unknown/unsuported type (ie: reset)
            continue;
        }

        /// set
        if (value || include_unset) {
            form_data[key] = (typeof(value) != "undefined")? value : unset_value;
        }
    }
    return form_data;
}
