function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}
document.onkeypress = stopRKey;

function dpgCombindedHandler(handler1, handler2)
{
    this.handler1 = handler1;
    this.handler2 = handler2;
    var me = this;
    this.invoke = function()
    {
        me.handler1();
        me.handler2();
    }
}

function dpgAddEventHandler(element, event, handler)
{
    try
    {
        element.addEventListener(event, handler, false)
        return
    }
    catch (failed) {}
    var onEvent = "on" + event
    try
    {
        element.attachEvent(onEvent, handler)
        return
    }
    catch (failed) {}
    if (typeof(element[onEvent]) == "function")
        element[onEvent] = new scCombindedHandler(element[onEvent], handler)
    else
        element[onEvent] = handler
}

function dpgMoreClick(linkNode, toggleNode)
{
    if (toggleNode.nodeName == 'span')
    {
        toggleNode.style.display = 'inline';
    }
    else
    {
        toggleNode.style.display = 'block';
    }
    this.linkNode = linkNode;
    this.toggleNode = toggleNode;
    var me = this;
    this.invoke = function(event)
    {
        if (me.toggleNode.style.display == 'none')
        {
            if (me.toggleNode.nodeName == 'span')
            {
                me.toggleNode.style.display = 'inline';
            }
            else
            {
                me.toggleNode.style.display = 'block';
            }
            me.linkNode.src = me.linkNode.src.replace('more', 'less');
        }
        else
        {
            me.toggleNode.style.display = 'none';
            me.linkNode.src = me.linkNode.src.replace('less', 'more');
        }
    }
}

function dpgInitRecursive(nodes)
{
    var i;
    for(i=0; i<nodes.length; i++)
    {
        node = nodes[i];
        if (node.id && node.id.match(/^toggle_/))
        {
            var handler = new dpgMoreClick(node, document.getElementById(node.id.slice(7)));
            dpgAddEventHandler(node, "click", handler.invoke);
            if (!(node.id.match(/^toggle_open_/)))
            {
                handler.invoke();
            }
        }
        if (node.hasChildNodes)
            dpgInitRecursive(node.childNodes);
    }
}

function dpgInit()
{
    dpgInitRecursive(document.childNodes);
}

dpgAddEventHandler(window, "load", dpgInit);

