/* A modified version of the http://adahas.com/2005/05/innerhtml-in-applicationxhtmlxml/ script.
   Also thanks to http://vivin.net/journal/7/1/2005/ for the importNode part. */

function doInnerHTML(elementId, stringHTML) {
    try {
        document.getElementById(elementId).innerHTML = stringHTML;
        return true;
    }
    catch (e) {
        try {
            var elem = document.getElementById(elementId);
            var children = elem.childNodes;

            for (var i = 0; i < children.length; i++) {
                elem.removeChild(children[i]);
            }

            var nodes = new DOMParser().parseFromString("<div xmlns=\"http://www.w3.org/1999/xhtml\">" + stringHTML + "</div>", 'application/xml').documentElement;
            var range = document.createRange();
            range.selectNodeContents(document.getElementById(elementId));
            range.deleteContents();

            for (var i = 0; i < nodes.childNodes.length; i++) {
                document.getElementById(elementId).appendChild(document.importNode(nodes.childNodes[i], true));
            }
            return true;
        }
        catch (ee) {
            return false;
        }
    }
}
