/**
 * general window functions
 *
 * @author <a href="mailto:vsctech@fiz-chemie.de">Eike Jordan</a>
 * @version  $Revision:3542 $
 *
 * $HeadURL: http://trac.gruen.fiz-chemie.de/svn/vs/vscms/trunk/src/vsengine/static/javascript/popup.js $
 *
 * Copyright 2004-2006 FIZ CHEMIE Berlin
 */

/**
 *  Changes:
 *
 */

/**
 * ToDo:
 *
 */

/**
 * function mtoggle
 * Toggle funtion for HTML list tabs. Used for Glossary and Biography
 * navigation.
 *
 * Expected HTML structure:
 *
 *   <div id="{_tabsname}" name="{_tabsname}" class="{_tabsname}">
 *     <ul>
 *       <li><a id="layer1-switch" name="layer1-switch" href="#layer1" onclick="javascript:mtoggle('layer1')" title="Layer 1">Layer 1</a></li>
 *       <li><a id="layer2-switch" name="layer2-switch" href="#layer2" onclick="javascript:mtoggle('layer2')" title="Layer 2">Layer 2</a></li>
 *           ...
 *     </ul>
 *   </div>
 *
 *   <div class="{_rootname}" id="{_rootname}">
 *     <div id="ref" name="ref" class="ref">
 *       <xsl:apply-templates select="glos:vlulist"/>
 *     </div>
 *   </div>
 */
function mtoggle(id) {
    if (!document.getElementById) { return; }
        //  var _rootname = 'gloss';
        //  var _tabsname = 'footer';
    var _root     = document.getElementById(_rootname);

    var _tabs     = document.getElementById(_tabsname);
        //alert(_tabs.nodeType);return;
    _tabs = (_tabs.childNodes[0].nodeType == '1') ? _tabs.childNodes[0] : _tabs.childNodes[1];


        //  alert(_tabs.nodeType);return;
        //  alert(_tabs.nodeName);
        //  alert(id);

    var _active_color   = '#FFEECC';
    var _inactive_color = '#FFFFEE';

    var element = document.getElementById(id);
    var tab     = document.getElementById(id + "-switch");

    for (i = 0; i < _root.childNodes.length; i++) {
        currentNode = _root.childNodes[i];
        if (currentNode.nodeType == '1') {
            currentNode.style.display = 'none';
        }
    }

    for (i = 0; i < _tabs.childNodes.length; i++) {
        currentNode = _tabs.childNodes[i];
        if (currentNode.nodeType == '1') {
            for (j = 0; j < currentNode.childNodes.length; j++) {
                currentChild = currentNode.childNodes[j];
                if (currentChild.nodeType == '1' && currentChild.nodeName.toLowerCase() != 'div') {
                    currentChild.style.backgroundColor = _inactive_color;
                    currentChild.style.borderLeft = "2px solid #FFFFAA";
                    currentChild.style.borderBottom = "2px solid #FFCC00";
                    currentChild.style.borderTop = "2px solid #FFFFAA";
                    currentChild.style.borderRight = "2px solid #FFFFAA";
                }
            }
        }
    }

    element.style.display     = "block";
    tab.style.backgroundColor = _active_color;
    tab.style.borderBottom = "2px solid " + _active_color;
    tab.style.borderLeft = "2px solid #FFCC00";
    tab.style.borderTop = "2px solid #FFCC9F";
    tab.style.borderRight = "2px solid #FFCC00";
}
/**
 * Helper function for media objects.
 * Tries to retrieve a certain deposited objectID
 *
 * Expected document structure:
 *
 * <caption>
 *   <span class="figure" onclick="showOID(this)">Abb.1</span>
 *   <span class="oid">/vsc/de/vs/16/doc/reference/images/gif250x250.gif</span>
 * </caption>
 */

function showOID(obj) {
    if (obj.nextSibling.nodeName.toLowerCase() == 'span') {
        oid = obj.nextSibling;
    } else if (obj.nextSibling.nextSibling.nodeName.toLowerCase() == 'span') {
        oid = obj.nextSibling.nextSibling;
    } else {
        alert('error in showOID\nNo object-ID found');
        return;
    }
    if (document.all) {
        oid = prompt("Copy object-id?",oid.firstChild.nodeValue);
    } else {
        oid = prompt("Copy object-id?\nSelect the text below and type Ctrl-C",oid.firstChild.nodeValue);
    }
    if (typeof(oid) != "string" ) {
        return;
    }
    if (window.clipboardData && window.clipboardData.setData) {
        window.clipboardData.setData("Text",oid);
    } else {
//        alert("clipboard copy only available in M$Exploder");
        return;
    }
}

/**
 * general window opener
 * for proper target references all related windows should get a name
 */

function openWindow(url,target,features) {
//  var isOpen = (typeof(isOpen) != 'undefined') ? isOpen : null;
//   alert('isOpen: ' + typeof(isOpen) + 'url: ' + url);
//   if ( isOpen != url ) {
//     alert(typeof(newwin));
//     newwin.close();
//     alert('newwin.close');
//   }
    var parameter = features;
//    alert(parameter);
    if (typeof(parameter) == 'undefined' || parameter.lenght == '0') {
        parameter = 'resizable=yes,width=800,height=550';
    }
    if (!target) {
        target = "_blank";
    }
    var newwin = window.open(url,target,parameter);
    isOpen = url;
    newwin.focus();
}

/**
 * search window opener
 * for proper target references all related windows should get a name
 */
function openSearch(location) {
  //alert('vsi-search got destination:'+location);
    msg='vsi-search got destination:'+location;
    searchwin = window.open(location,'vsi_search','width=650,height=350,menubar=yes,personalbar=yes,scrollbars=yes,status=yes,resizable=yes');
    searchwin.focus();
}

/**
 * display the objectID out of the per group list, if available
 */
function _show_id(event) {
    if (!event) {
        event = window.event;
        event.cancelBubble = true;
        if (event.stopPropagation) event.stopPropagation();
    }
    if (event.target) {
        obj = event.target;
    }
    else if (event.srcElement) {
        obj = event.srcElement;
    }

    for ( i=0; i < obj.childNodes.length; i++) {
        currentNode = obj.childNodes[i];
        currentName = currentNode.nodeName.toLowerCase();
        if (currentNode.nodeType == '1' && currentName == 'span') {
            my_display = currentNode.style.display;
            if (my_display == 'inline') {
                my_display = 'none';
            } else {
                my_display = 'inline';
            }
        }
    }
}
