// Alammenüüde avamine

// Globaalne muutuja menüü kadumise taimeri jaoks.
t = null;
// Globaalne muutuja lahtioleva menüü ID jaoks.
id = null;
// Globaalne muutuja lahtioleva alammenüü ID jaoks.
child_id = null;

/**
 * Menüü muutub nähtavaks. Kui enne oli mingi menüü lahti, pannakse see kinni.
 */
function showMenu(menu_id,tag) {
	// Kuna alammenüüd väljakutsuv peamenüü punkt on teine objekt
	// ja see objekt onMouseOut üritab alammenüü kinni panna,
	// Siis tuleb vastav taimer tühistada, kui tegu on vastavate objektidega.
	// Sarnane olukord on kui alammenüü onMouseOut sündmusega.
	if (t != null) window.clearTimeout(t);

	if (id == menu_id) return; // Juba lahti
	if (id != null) hide(id);

	id = menu_id;

	var leftpos = 0;
	var toppos = 0;
	var x = tag;
	do
	{
		leftpos	+= x.offsetLeft;
		toppos += x.offsetTop;
		x = x.offsetParent;
	}
	while(x.tagName!="BODY" && x.tagName!="HTML");

	window.document.getElementById("master"+menu_id).className = 'open';
	window.document.getElementById("drop"+menu_id).style.top = toppos + tag.offsetHeight + 'px';
	window.document.getElementById("drop"+menu_id).style.left = leftpos + 'px';
	window.document.getElementById("drop"+menu_id).style.display = "block";
}

function showChild(submenu_id,tag) {
	// Kuna alammenüüd väljakutsuv peamenüü punkt on teine objekt
	// ja see objekt onMouseOut üritab alammenüü kinni panna,
	// Siis tuleb vastav taimer tühistada, kui tegu on vastavate objektidega.
	// Sarnane olukord on kui alammenüü onMouseOut sündmusega.
	if (t != null) window.clearTimeout(t);

	if (child_id == submenu_id) return; // Juba lahti

	if (child_id != null) hideChild(child_id);

	var leftpos = 0;
	var toppos = 0;
	var x = tag;
	do
	{
		leftpos	+= x.offsetLeft;
		toppos += x.offsetTop;
		x = x.offsetParent;
	}
	while(x.tagName!="BODY" && x.tagName!="HTML");

	window.document.getElementById("drop"+submenu_id).style.top = toppos + 'px';
	window.document.getElementById("drop"+submenu_id).style.left = leftpos + (tag.offsetWidth - 5) + 'px';

	window.document.getElementById("drop"+submenu_id).style.display = "block";

	child_id = submenu_id;
}

/**
 * Menüü pannakse kinni.
 */
function hide(menu_id) {
	if (t != null) window.clearTimeout(t);
	if (child_id != null) window.document.getElementById("drop"+child_id).style.display = "none";
	window.document.getElementById("drop"+menu_id).style.display = "none";
	window.document.getElementById("master"+menu_id).className = '';
	id = null;
	child_id = null;
}

/**
 * Alammenüü pannakse kinni.
 */
function hideChild(submenu_id) {
	if (t != null) window.clearTimeout(t);
	window.document.getElementById("drop"+submenu_id).style.display = "none";
	child_id = null;
}

/**
 * Pannakse käima taimer, mis lõpus kutsub välja hide().
 */
function timedHide(menu_id) {
	if (t != null) window.clearTimeout(t);
	t = window.setTimeout("hide("+menu_id+");",500);
}

/**
 * Kui alammenüü pealt (id) sõidetakse vastava menüüpunktile (menu_id), siis pole vaja alammenüüd peita.
 */
function check(menu_id) {
	if (id != null) show(menu_id);
}


PositionX = 10;
PositionY = 10;
defaultWidth  = 100;
defaultHeight = 100;

function popImageExtra(imageURL,imageTitle,AutoClose,oTimeClose,extraHTML){
	var imgWin = window.open('','_blank','scrollbars=yes,resizable=1,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
	if( !imgWin ) { return true; } //popup blockers should not cause errors
	imgWin.document.write('<html><head><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
		'function getRefToDivMod( divID, oDoc ) {\n'+
			'if( !oDoc ) { oDoc = document; }\n'+
			'if( document.layers ) {\n'+
			'if( oDoc.layers[divID] ) { return oDoc.layers[divID]; } else {\n'+
			'for( var x = 0, y; !y && x < oDoc.layers.length; x++ ) {\n'+
			'y = getRefToDivNest(divID,oDoc.layers[x].document); }\n'+
			'return y; } }\n'+
			'if( document.getElementById ) { return oDoc.getElementById(divID); }\n'+
			'if( document.all ) { return oDoc.all[divID]; }\n'+
			'return document[divID];\n'+
		'}\n'+
		'function resizeWinTo() {\n'+
			'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }'+
			'if( !document.images[0].height || window.doneAlready ) { return; }\n'+ //in case images are disabled
			'var oH = getRefToDivMod( \'myID\' ); if( !oH ) { return false; }\n'+
			'var oW = oH.clip ? oH.clip.width : oH.offsetWidth;\n'+
			'var oH = oH.clip ? oH.clip.height : oH.offsetHeight; if( !oH ) { return false; }\n'+
			'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
			'window.doneAlready = true;\n'+ //for Safari and Opera

			'var mH = screen.availHeight-200, mW = screen.availWidth-200;\n'+
			'if( oH > mH || oW > mW ) {\n'+

			'document.images[0].fullH = oH;\n'+
			'document.images[0].fullW = oW;\n'+

			'var hDif = oH - document.images[0].height;\n'+
			'var wDif = oW - document.images[0].width;\n'+
			'mH = mH - hDif; mW = mW - wDif;\n'+
			'mH = mH \/ document.images[0].height;\n'+
			'mW = mW \/ document.images[0].width;\n'+
			'var zoomFactor = ( mH < mW ) ? mH : mW;\n'+
			'oH = Math.floor( document.images[0].height * zoomFactor );\n'+
			'oW = Math.floor( document.images[0].width * zoomFactor );\n'+

			'document.images[0].style.cursor = \'crosshair\';\n'+
			'document.images[0].title = \'Click to resize image\';\n'+
			'document.images[0].oldHeight = document.images[0].height;\n'+
			'document.images[0].oldWidth = document.images[0].width;\n'+
			'document.images[0].newHeight = oH;\n'+
			'document.images[0].newWidth = oW;\n'+
			'document.images[0].onclick = function () { '+
			'if( this.oldHeight == this.height ) { '+
			'this.height = this.newHeight; this.width = this.newWidth; '+
			'setTimeout(\'window.resizeTo(\'+this.oW+\',\'+this.oH+\'); '+
			'if( !window.opera ) { '+
			'window.moveTo(\'+Math.round((this.scW-this.oW)/2)+\','+
			'\'+Math.round((this.scH-this.oH)/2)+\'); }\',1);\n'+
			'} else { this.height = this.oldHeight; this.width = this.oldWidth; '+
			'window.moveTo(0,0); window.resizeTo(this.scW,this.scH); '+
			'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
			'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
			'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
			'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
			'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
			'if( this.fullH < myH ) { var rs = this.fullH - myH; window.resizeBy(0,rs); '+
			'if( !window.opera ) { window.moveBy(0,Math.round(rs/-2)); } }'+
			'if( this.fullW < myW ) { var rs = this.fullW - myW; window.resizeBy(rs,0); '+
			'if( !window.opera ) { window.moveBy(Math.round(rs/-2),0); } }'+
			'} };\n'+

			'document.images[0].height = oH;\n'+
			'document.images[0].width = oW;\n'+
			'oH += hDif; oW += wDif;\n'+
			'}\n'+

			'if(document.getElementsByTagName) {\n'+
				'for( var l = document.getElementsByTagName(\'a\'), x = 0; l[x]; x++ ) {\n'+
					'if(l[x].className==\'makeright\'&&!l[x].style.position){\n'+
						'l[x].style.position=\'relative\';\n'+
						'l[x].style.left=(document.images[0].width-(l[x].offsetWidth+l[x].offsetLeft))+\'px\';\n'+
			'}}}\n'+
			'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
			'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
			'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
			'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
			'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
			'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
			'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 200 ) - myH ) );\n'+
			'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
			'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+

			'document.images[0].oH = oH;\n'+
			'document.images[0].oW = oW;\n'+
			'document.images[0].scH = scH;\n'+
			'document.images[0].scW = scW;\n'+

			'if( !window.opera ) { x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2)); }\n'+
			(oTimeClose?('window.setTimeout(\'window.close()\','+oTimeClose+');\n'):'')+
		'}\n'+
		'<\/script>'+
		'<\/head><body onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
		(document.layers?('<layer left="0" top="0" id="myID">'):('<div style="position:absolute;left:0px;top:0px;display:table;" id="myID">'))+
		'<img src='+imageURL+' alt="Loading image ..." title="" onload="resizeWinTo();">'+
		(extraHTML?extraHTML:'')+(document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
	imgWin.document.close();
	if( imgWin.focus ) { imgWin.focus(); }
	return false;
}