/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
function install_extra_header_contrib()
{
    Wicket.Head.Contributor.prototype.originalProcessContribution = Wicket.Head.Contributor.prototype.processContribution;
    Wicket.Head.Contributor.prototype.processContribution = extra_header_processing;
    Wicket.Head.Contributor.prototype.processTitle = processTitle;

//    Wicket.Ajax.registerPostCallHandler
}

function extra_header_processing(steps, headerNode)
{
    var xmldoc = this.parse(headerNode);
    var rootNode = xmldoc.documentElement;

    // go through the individual elements and process them according to their type
    for (var i = 0; i < rootNode.childNodes.length; i++)
    {
        var node = rootNode.childNodes[i];
        if (node.tagName != null) {
            var name = node.tagName.toLowerCase();
            if( name == 'title' )
            {
                processTitle( steps, node );
            }
        }
    }
    return this.originalProcessContribution( steps, headerNode );
}

function processTitle(steps, node)
{
    steps.push(function(notify)
    {
        var content = Wicket.DOM.serializeNodeChildren(node);

        var titles = document.getElementsByTagName('title');
        document.title = content;
        for( var i=0; i<titles.length; ++i )
        {
            var c =  titles[i];
            //Wicket.replaceOuterHtml( c, '<title>' + content + '</title>' );
             c.outerHtml = content;
        }

//        var titles = top.document.getElementsByTagName('title');
//        for( var i=0; i<titles.length; ++i )
//        {
//            var c =  titles[i];
//            c.parentNode.removeChild( c );
//        }
//        var head = top.document.getElementsByTagName('head');
//
//        var newTitle=top.document.createElement("title");
//        var newText=top.document.createTextNode( content );
//        newTitle.appendChild(newText);
//        head[0].appendChild( newTitle);

//        var t = top.document.getElementsByTagName('title');
//
//        for( var i=0; i<t.length; ++i )
//        {
//            var c =  t[i];
//            Wicket.replaceOuterHtml( c, '<title>' + content + '</title>' );
//        }
//        for( var i=0; i<t.length; ++i )
//        {
//            var c =  t[i];
//            if( c.hasChildNode )
//            {
//                while ( c.childNodes.length >= 1 )
//                {
//                    c.removeChild( c.firstChild );
//                }
//            }
////            c.outerHtml = content;
////            }
//            //c.innerHTML = content;
//            //c.appendChild( document.createTextNode(content) );
//            c = content;
//        }
//
//        if( t.length == 0 )
//        {
//            var cn = Wicket.Head.createElement( 'title' );
//            //cn.outerHTML = content;
////            cn.innerHTML = content;
////            cn.appendChild( document.createTextNode(content) );
//            cn = content;
//            Wicket.Head.addElement( cn );
//        }

        // continue to next step
        notify();
    });
}





