/* 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. */

//This is only to set the innerHTML of an element if you're serving the document as real xhtml
function doInnerHTML(elementId, stringHTML) {
    try {
        var elem = document.getElementById(elementId);
        var children = elem.childNodes;

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

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

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