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 = 'click to close image'
	}
	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 );
}