var IMAGE_CLOSE_NEVER = 1;
var IMAGE_CLOSE_ON_CLICK = 2;
var IMAGE_CLOSE_ON_MOUSE_OUT = 3;

function showImage ( url, elemName, closeMode, text, urlHigh, elemNameHigh, closeModeHigh ) {
        /* default values for missing parameters */
        if ( showImage.arguments.length < 1 ) return true;
        if ( showImage.arguments.length < 2 ) elemName = '';
        if ( showImage.arguments.length < 3 ) closeMode = IMAGE_CLOSE_NEVER;
        if ( showImage.arguments.length < 4 ) text = '';
        if ( showImage.arguments.length < 5 ) urlHigh = '';
        if ( showImage.arguments.length < 6 ) elemNameHigh = '';
        if ( showImage.arguments.length < 7 ) closeModeHigh = IMAGE_CLOSE_ON_CLICK;
        
        /* load url in window if no element specified */
        if ( elemName == '' ) {
                window.open ( url, '_blank', 'location=no,menubar=no,status=no,toolbar=no, width=640, height=480' );
                return false;
        }
        
        /* get node */
        var elem = document.getElementById ( elemName );
        if ( elem == null ) return true;
        
        /* hide previous image */
        hideImage ( elemName );
        
        /* create img */
        var img = document.createElement ( 'img' );
        img.src = url;

        /* create text */
        if ( text != '' ) {
                var span = document.createElement ( 'span' );
                var br = document.createElement ( 'br' );
                span.appendChild ( br );
                var txt = document.createTextNode( text );
                span.appendChild ( txt );
        }

        var eventName = '';
        var infoText = ''
        if ( closeMode == IMAGE_CLOSE_ON_CLICK ) {
                eventName = 'onclick';
                infoText = 'bitte klicken, um das Bild zu schliessen'
        }
        if ( closeMode == IMAGE_CLOSE_ON_MOUSE_OUT ) {
                eventName = 'onmouseout';
                infoText = 'leave image to close it';
        }
        if ( eventName != '') {
                
                //var event = document.createAttribute ( eventName );
                //event.nodeValue = 'hideImage(\'' + elemName + '\')';
                //img.setAttributeNode(event);
                
                img['onclick'] = new Function ( 'hideImage(\'' + elemName + '\')' );
                
                if ( infoText != '' ) {
                        var info = document.createAttribute('title');
                        info.nodeValue = infoText;
                        img.setAttributeNode(info);
                }
        }
        
        /* recursiv event for high-res image */
        if ( urlHigh != '' ) {
                var event = document.createAttribute('onclick');
                event.nodeValue = 'return showImage(\'' + urlHigh + '\',\'' + elemNameHigh + '\',\'' + closeModeHigh + '\')';
                var info = document.createAttribute('title');
                info.nodeValue = 'click to view high-res';
                
                var alink = document.createElement ( 'a' );
                alink.href = urlHigh;
                alink.target = '_blank';
                alink.setAttributeNode(event);
                alink.setAttributeNode(info);
                alink.appendChild ( img );
                
                /* append nodes to dom-tree */
                elem.appendChild ( alink );
                if ( text != '' ) elem.appendChild ( span );
        } else {
                /* append node to dom-tree */
                elem.appendChild ( img );
                if ( text != '' ) elem.appendChild ( span );
        }
        elem.style.display = "block";
        
        return false;
}

function hideImage ( elemName ) {
        var elem = document.getElementById ( elemName );
        if ( elem == null ) return true;
        elem.style.display = "none";
        while ( elem.childNodes.length > 0 )
                elem.removeChild ( elem.firstChild );
}
