       // elements can have text child nodes of their own
            cleanWhitespace(childNode);
        }
    }
}

function copyDDL(sourceDDL, targetDDL) { // passed in as strings
    var ddl1 = document.getElementById(prefix + sourceDDL);
    var ddl2 = document.getElementById(prefix + targetDDL);
    for (var i=0; i < ddl1.options.length; i++) {
        addOption(ddl2,ddl1.options[i].text,ddl1.options[i].value);
    }
}
function addOption(object,text,value)
{

    var defaultSelected = false;
    var se