/* 
   javascript set of functions for manipulating with popup menus. 
   Created by Martin Mandak (http://www.mindsystem.cz),
   licenced by LGPL licence
*/
//*

var detect = navigator.userAgent.toLowerCase();
if ( detect.indexOf ( 'msie' ) + 1 ) {
	if ( event != null ) document.captureEvents(event.MOUSEMOVE);
} else {
}
document.onmousemove = getMouseXY;

var mousex = 0 ;
var mousey = 50;
var prevmousex = mousex ;
var prevmousey = mousey ;
var waitout = false ;
var waitlevel = 0 ;	
var closetimeout = 500 ;

var mosmax = 10 ;
var mos = new Array(mosmax);
var i ;
for ( i = 0 ; i < mosmax ; i ++ ) { mos[i] = '' ; }

//////////////////////////////////////////////////////////////////// functions for service min/max //////////////
function expandserv (divid,force) {
	var newstyle = 0 ;
	var cookievalue = "1" ;
//	var cookienovalue = "" ;
	var cookiename = divid ;
	var divel = document.getElementById ( divid ) ;

	if ( force != 0 ) newstyle = force ;
	else newstyle = ( divel.style.display == 'none' ) ? 'block' : 'none' ;

	divel.style.display = newstyle ;

	var date = new Date();
	if ( newstyle == 'none' ) {
		date.setTime(date.getTime());
	} else {
		date.setTime(date.getTime()+(1*24*60*60*1000));
	}
	var expires = "; expires=0"+date.toGMTString();
	document.cookie = cookiename+"="+cookievalue+expires+"; path=/ ;";
}
function checkserv (divid) {
	var nameEQ = divid + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) {
			expandserv ( divid , 0 ) ;
			return 0;
		}
	}
	return null;
}

//////////////////////////////////////////////////////////////////// common helper functions /////////////////////
function expanddiv (divid,force) {
	var divel = document.getElementById ( divid ) ;
	if ( force != 0 ) divel.style.display = force ;
	else divel.style.display = ( divel.style.display == 'none' ) ? 'block' : 'none' ;
}
function setbgdiv (divid,color) {
	var divel = document.getElementById ( divid ) ;
	divel.value = '' ; 
	try { divel.style.background = color ; }
	catch ( e ) { divel.style.background = '#dddddd' ; divel.value = 'err' ; }
}
function getPos(obj,level) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
//*
	    if ( detect.indexOf ( 'msie' ) + 1 && level == 0 ) {
//alert('IE count');
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}//*/
	    }
	}
//	alert (level+': '+curleft+' + '+curtop);
	return [curleft,curtop];
}
function setpos (divid,x,y) {
	var divel = document.getElementById ( divid ) ;
	divel.style.position = 'absolute' ;
//	alert (x+' tam '+y);
	divel.style.left = x+'px' ;
	divel.style.top  = y+'px' ;
}
function setclass (divid,classname) {
	var divel = document.getElementById ( divid ) ;
	divel.className = classname ;
}
function getMouseXY (e) {
	if (!e) var e = window.event;
	prevmousex = mousex ;
	prevmousey = mousey ;
	if (e.pageX || e.pageY)
	{
		mousex = e.pageX;
		mousey = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		if ( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
			mousex = e.clientX + document.body.scrollLeft;
			mousey = e.clientY + document.body.scrollTop;
		} else if ( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
			mousex = e.clientX + document.documentElement.scrollLeft ;
			mousey = e.clientY + document.documentElement.scrollTop ;
		}
	}
}	

// master functions (slave level 0)
function menuover (divid){menuslaveover(divid,0);}
function menuout (){menuslaveout(0);}
function menumasterclick (masid,divid,offX,offY){menuslaveclick (masid,divid,offX,offY,0) ;}
// basic slave functions
function menuslaveover (divid,level) {waitout = false ;menuoverafter(divid,level);return}
function menuslaveout(level){waitout=true;waitlevel=level;window.setTimeout("menuoutafter();",closetimeout);return;}
function menuslaveclick (masid,divid,offX,offY,level) {
	var am = document.getElementById ( masid ) ;
//  if(offY==0)offY=offY-170;
  pos=getPos(am,level);
  x=(offX);y=(pos[1]+offY);
  setpos(divid,x,y);
  menuslaveover(divid,level);
}
// timed functions
function menuoverafter(divid,level) {
		if(mos[level]!=divid){
      for(i=mosmax-1;i>=level;i--){if(mos[i]!=''){expanddiv(mos[i],'none');}mos[i]='';}
			mos[level]=divid;expanddiv(divid,'block');
		}
		waitout=false;waitlevel=0;
}
function menuoutafter () {
	if(waitout!=false){
    for(i=mosmax-1;i>=waitlevel;i--){if(mos[i]!=''){expanddiv(mos[i],'none');}mos[i]='';}
		waitout=false;waitlevel=0;
	}
}
