// positions 

function getPageSize(){
  
  var xScroll, yScroll;
  
  if (window.innerHeight && window.scrollMaxY) {  
    xScroll = document.body.scrollWidth;
    yScroll = window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
  }
  
  var windowWidth, windowHeight;
  if (self.innerHeight) { // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  } 
  
  // for small pages with total height less then height of the viewport
  if(yScroll < windowHeight){
    pageHeight = windowHeight;
  } else { 
    pageHeight = yScroll;
  }

  // for small pages with total width less then width of the viewport
  if(xScroll < windowWidth){  
    pageWidth = windowWidth;
  } else {
    pageWidth = xScroll;
  }


  arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
  return arrayPageSize;
}

function getPageScroll(){

  var yScroll;

  if (self.pageYOffset) {
    yScroll = self.pageYOffset;
  } else if (document.documentElement && document.documentElement.scrollTop){  // Explorer 6 Strict
    yScroll = document.documentElement.scrollTop;
  } else if (document.body) {// all other Explorers
    yScroll = document.body.scrollTop;
  }

  arrayPageScroll = new Array('',yScroll) 
  return arrayPageScroll;
}

function findPosX(obj) {
  var curleft = 0;
  if(obj.offsetParent) while(1) {
     curleft += obj.offsetLeft;
     if(!obj.offsetParent) break;
     obj = obj.offsetParent;
  } else if(obj.x) curleft += obj.x;
  return curleft;
}

function findPosY(obj) {
  var curtop = 0;
  if(obj.offsetParent) while(1) {
    curtop += obj.offsetTop;
    if (!obj.offsetParent) break;
    obj = obj.offsetParent;
  } else if(obj.y) curtop += obj.y;
  return curtop;
}

function mouseX(evt) {
	if (window.event) return window.event.x + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); 
	else if (evt.pageX) return evt.pageX;
	else return null;
}
function mouseY(evt) {
	if (window.event) return window.event.y + (document.documentElement.scrollTop ? document.documentElement.scrollTop :document.body.scrollTop); 
	else if (evt.pageY) return evt.pageY; 
	else return null;
}

// overlay

function showOverlayDiv(div) {
  var objOverlay = document.getElementById('overlay');
  var objContent = document.getElementById(div);
  var arrayPageSize = getPageSize();
  var arrayPageScroll = getPageScroll();
  closeOverlayContents();
  if (objContent.getAttribute('closer') != '1') {
    objContent.setAttribute('closer','1');
    html = objContent.innerHTML;
    objContent.innerHTML = '<a href="#" onclick="closeOverlay()"><img src="/images/design/overlayclose.png" style="float: right;"/></a>'+html;
  }
  openOverlayContents();
  objOverlay.style.visibility = 'hidden';
  objOverlay.style.display = 'block';
  objContent.style.display = 'block';
  objContent.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objContent.offsetHeight) / 2) + 'px');
  objContent.style.left = (((arrayPageSize[0] - 20 - objContent.offsetWidth) / 2) + 'px');
  objOverlay.style.height = (arrayPageSize[1] + 'px');
  objContent.style.visibility = 'visible';
  objOverlay.style.visibility = 'visible';
}

function showOverlay(html) {
  var objOverlay = document.getElementById('overlay');
  var objContent = document.getElementById('overlayContent');
  var arrayPageSize = getPageSize();
  var arrayPageScroll = getPageScroll();
  objContent.innerHTML = '<a href="#" onclick="closeOverlay()"><img src="/images/design/overlayclose.png" style="float: right;"/></a>'+html;
//  objOverlay.style.visibility = 'hidden';
  objOverlay.style.display = 'block';
  objContent.style.display = 'block';
  objContent.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objContent.offsetHeight) / 2) + 'px');
  objContent.style.left = (((arrayPageSize[0] - 20 - objContent.offsetWidth) / 2) + 'px');
  objOverlay.style.height = (arrayPageSize[1] + 'px');
  objContent.style.visibility = 'visible';
  objOverlay.style.visibility = 'visible';
  closeOverlayContents('overlayContent');
}

function closeOverlay() {
  closeOverlayContents();
  var objOverlay = document.getElementById('overlay');
  objOverlay.style.display = 'none';
  objOverlay.style.visibility = 'hidden';
}

function openOverlayContents() {
  var objOverlay = document.getElementById('overlay');
  ds = objOverlay.getElementsByTagName('div');
  for (i=0;i<ds.length;i++) {
    ds[i].style.visibility = 'visible';
  }
}
function closeOverlayContents(skip) {
  var objOverlay = document.getElementById('overlay');
  ds = objOverlay.getElementsByTagName('div');
  for (i=0;i<ds.length;i++) {
    if (ds[i].getAttribute('id') == skip) continue;
    ds[i].style.visibility = 'hidden';
  //  ds[i].style.position = 'absolute';
//    ds[i].style.top = '0';
  //  ds[i].style.left = '0';
    //ds[i].style.zIndex = '90';
  }
} 
function addLoadEvent(func,param) { 
  var oldonload = window.onload;
  if (typeof window.onload != 'function'){
      window.onload = func;
  } else {
    window.onload = function(){
    oldonload();
    func(param);
    }
  }
}
addLoadEvent(initOverlay); // run initLightbox onLoad

function initswap(first) {
   f=document.getElementById(first);
   s=document.getElementById(first+"-swapper");
   f.style.display = 'box';
   s.style.display = 'none';
   s.style.top = f.style.top;
   s.style.left = f.style.left;
}

function initOverlay() {
  var objBody = document.getElementsByTagName("body").item(0);
  // create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)
  var objContent = document.createElement("div");
  objContent.setAttribute('id','overlayContent');
  objContent.style.top = '0';
  objContent.style.left = '0';
  objContent.style.zIndex = '90';
  objContent.style.display = 'none';
  objContent.style.position = 'absolute';

  var objOverlay = document.createElement("div");
  objOverlay.setAttribute('id','overlay');
//  objOverlay.onclick = function () {closeOverlay(); return false;}
  objOverlay.style.display = 'none';
  objOverlay.style.position = 'absolute';
  objOverlay.style.top = '0';
  objOverlay.style.left = '0';
  objOverlay.style.zIndex = '90';
  objOverlay.style.width = '100%';
  var divs = document.getElementsByTagName("div");

  for (var i=0;i<divs.length;i++) {
    if (divs[i].getAttribute('class') == 'overlay_hidden') {
      divs[i].style.top = '0';
      divs[i].style.left = '0';
      divs[i].style.zIndex = '90';
      divs[i].style.display = 'none';
      divs[i].style.position = 'absolute';
      objOverlay.insertBefore(divs[i],objOverlay.firstChild);
    }
  }

  objOverlay.insertBefore(objContent, objOverlay.firstChild);
  objBody.insertBefore(objOverlay, objBody.firstChild);
}


function suggestBox(c){
	maxvis=10;
	c.setAttribute("autocomplete", "off");
	c.popup=document.body.appendChild(document.createElement('div'));
	c.className='suggPopup';
	popup=c.popup;
	popup.style.position='absolute';
	popup.activeItem=10;
	popup.pinput=c;
	popup.maxvis=10
	popup.activeitem=popup.maxvis;
	popup.style.top=c.offsetTop+c.offsetHeight+2+"px";
//  alert(popup.style.top);
	popup.style.left=c.offsetLeft+2+"px";
  popup.style.zIndex=100;
	popup.teteje=popup.appendChild(document.createElement('div'));
	popup.items=new Array();
	for(i=0;i<popup.maxvis;i++) {
		ci=popup.items[i]=popup.appendChild(document.createElement('div'));
		ci.className='suggItem';
		ci.style.position='static';
		ci.iid=i;
		ci.setAttribute('onmouseover','activateItem(this.parentNode,this.iid)');
		ci.setAttribute('onclick','suggItemClick(this)');
	}
// FIXME
//	popup.alja.style.position='static';
//	popup.alja.style.visibility='collapse';
//	popup.alja.innerHTML="fdsafdsa";
	popup.items[popup.maxvis]=popup.appendChild(document.createElement('div'));
	popup.items[popup.maxvis].innerHTML='nemkene';
	suggHide(popup);
	c.setAttribute('onkeydown','suggKeyP(this,event)');
	c.setAttribute('onblur','suggHide(this.popup)');
}

function suggFromReq(i,r,e) {
  var keyID = (window.event) ? event.keyCode : e.keyCode;

  sugg=new Array();
  c = i.popup;
  items = req.responseXML.getElementsByTagName("option");
  for (var i = 0; i < items.length; i++) {
    sugg[i] = items[i].firstChild.nodeValue;
  }
	var x = -1;
	if(sugg.length==0) return;
	if(sugg.length==1&sugg[0]==c.pinput.value) return;
	switch(keyID){
		case 38:        var x=c.activeItem-1;                       			//fel
				if(x<0) x=c.maxvis-1;
				e.preventDefault();
				e.stopPropagation();
				break;

		case 40:       	var x=c.activeItem+1;                     			//le
				if(x>=c.maxvis) x=0;
				e.preventDefault();
				e.stopPropagation();
				break;

		case 9:										//tab	
		case 13:	e.preventDefault();e.stopPropagation();
				if(c.activeItem!=c.maxvis){ 					//enter
					c.pinput.value=c.items[c.activeItem].innerHTML;
					e.preventDefault();
					e.stopPropagation();
				}
	  case 27: suggHide(c);
			       return;
	}
	c.activeItem=c.maxvis;
	for(i=0;i<Math.min(c.maxvis,sugg.length);i++) {
		c.items[i].innerHTML=sugg[i];
		c.items[i].className='suggItem';
		c.items[i].style.visibility='visible';
	}
	if(sugg.length>c.maxvis) c.alja.style.visibility='visible';
	else c.alja.style.visibility='collapse';
	if(x!=-1) activateItem(c,x);
	c.style.visibility='visible';
	return false;
}

function getSuggestions(input,s,e){
   req = getReqObj();
   if (req) {
    req.onreadystatechange = function () {
      if (req.readyState == 4) {
        return suggFromReq(input,req,e);
      }
    }
    req.open("GET","/getsugg.php?name="+input.name+"&s="+s);
    req.send("");
   }
/*   var list=new Array("alma","anna","bela","cela","dejo");
   var patt=new RegExp("^"+s,"i");
   var sugg=new Array();
   var n=0;
   for(i in list) {
	if(patt.test(list[i])==true) {sugg[n]=list[i];n++;}
   }
   return sugg;*/
}

function suggKeyP(i,e){
  var keyID = (window.event) ? event.keyCode : e.keyCode;
	ch='';
	if(keyID>=48&keyID<=90) ch=String.fromCharCode(keyID);
  suggHide(i.popup);
	getSuggestions(i,i.popup.pinput.value+ch,e);
}


function suggItemClick(c){
	c.parentNode.pinput.value=c.innerHTML;
	c.parentNode.activeItem=c.parentNode.maxvis;
	suggHide(c.parentNode);
}

function suggHide(c){
	c.style.visibility='collapse';              			//esc
  for(i=0;i<=c.maxvis;i++) c.items[i].style.visibility='collapse';
}

function activateItem(c,iid){
	c.items[c.activeItem].className='suggItem';
	c.items[iid].className='suggItemH';
	c.activeItem=iid;
}


function savePos(c,save){
	save.width=c.offsetWidth+"px";
	save.height=c.offsetHeight+"px";
	save.top=c.offsetTop+"px";
	save.left=c.offsetLeft+"px";
}

function restorePos(c,save){
	cs=c.style;
	cs.width=save.width;
	cs.height=save.height;
	cs.top=save.top;
	cs.left=save.left;
}

function restoreImg(c){
	clearTimeout(zoom);
	restorePos(c,c.save);
	c.setAttribute('onmouseover', 'zoomImg(this)');
	c.setAttribute('onmouseout', '');
}

function enlargeImg(c){
	if(c.zHeight<=c.offsetHeight) return;
	cs=c.style;
	cs.height=c.offsetHeight+c.stepH+"px";
	cs.width=c.offsetWidth+c.stepW+"px";
	zoom=setTimeout("enlargeImg(document.getElementById('"+c.id+"'))",1);
}

//// zoomimg

function zoomImg(c){
	c.style.position='absolute';
	c.setAttribute('onmouseover', '');
	c.setAttribute('onmouseout', 'restoreImg(this)');
	enlargeImg(c);
}

function zoomingImg(c,css){
	c.zHeight=(c.offsetHeight<window.innerHeight)?c.offsetHeight:window.innerHeight;
	wh=c.offsetWidth/c.offsetHeight;
	c.className=css;
	c.save=new Object();
	savePos(c,c.save);
	c.stepH=Math.ceil((c.zHeight-c.offsetHeight)/100);
	c.stepW=Math.ceil(c.stepH*wh);
	c.setAttribute('onmouseover', 'zoomImg(this)');
}

/// tooltip

function TTip(tippstring,c){
	tipp=document.getElementById("ToolTip");
	if(tipp==null){
		tipp=document.body.appendChild(document.createElement('div'));
	        tipp.className='TTip';
		tipp.id="ToolTip";
	}
        tipp.style.position='absolute';
	tipp.innerHTML=tippstring;
	TTip_onload(c.id,tipp.id,true);
}

function TTip_onload(gombid,tippid,pos){
    de=document.getElementById(gombid);
    if(de==null) return;
    tipp=document.getElementById(tippid);
    if(tipp==null) return;
    tipp=document.getElementById(tippid);
//    tipp.style.display='none';
    tipp.style.visibility='hidden';
    if(pos) {
    	tipp.style.position='absolute';
    	de.onmouseover=function (event){TTip_pos(event,tippid);}
	de.onmousemove=function (event){TTip_pos(event,tippid);}
    } else de.onmouseover=function (event){TTip_on(event,tippid);}
    de.onmouseout=function (event){TTip_off(event,tippid);}
}

function TTip_off(evt,tippid){document.getElementById(tippid).style.visibility="hidden";}
function TTip_on(evt,tippid){document.getElementById(tippid).style.visibility="visible";}

function TTip_pos(evt,tippid){
    de=document.getElementById(tippid);
    TTip_on(evt,tippid);
    offsetx=10;
    offsety=10;
    mx=mouseX(evt);
    my=mouseY(evt);
    var righte=window.event? iebody().clientWidth-window.event.x-offsetx : window.innerWidth-evt.clientX-20-offsetx;
    var bottome=window.event? iebody().clientHeight-window.event.y-offsety : window.innerHeight-evt.clientY-20-offsety;
    if (righte<de.offsetWidth) 	de.style.left=mx-de.offsetWidth-offsetx+"px";
    else de.style.left=mx+offsetx+"px";
    if(bottome<de.offsetHeight) de.style.top=mx-de.offsetWidth-offsety+"px";
    else de.style.top=my+offsety+"px";
}


function iebody(){return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;}

function swapdiv(divname) {
  div = document.getElementById(divname);
  if (div.style.display == 'none') {
    div.style.display = 'block';
  } else {
    div.style.display = 'none';
  }

}

function togglediv (divname,redraw) {
  div = document.getElementById(divname);
  if (!div) return;
  if (div.style.visibility == 'visible'&&!redraw) {
    div.style.visibility = 'hidden';
  } else {
    div.style.visibility = 'visible';
  }
}

function showdiv(id,style) {
  div = document.getElementById(id);
  div.style.visibility = 'visible';
} 

function hidediv(id,style) {
    div = document.getElementById(id);
    if (style == 'ifnomouse') {
      // kurzoradatok 
      // ha kurzor bennvan... 
      //return;
    }
    div.style.visibility = 'hidden';
}
