    function imaps_findPosX(obj)
    {
    	var curleft = 0;
    	if (obj.offsetParent)
    	{
    		while (obj.offsetParent)
    		{
    			curleft += obj.offsetLeft
    			obj = obj.offsetParent;
    		}
    	}
    	else if (obj.x)
    		curleft += obj.x;
    	return curleft;
    }
    function imaps_findPosY(obj)
    {
    	var curtop = 0;
    	if (obj.offsetParent)
    	{
    		while (obj.offsetParent)
    		{
    			curtop += obj.offsetTop
    			obj = obj.offsetParent;
    		}
    	}
    	else if (obj.y)
    		curtop += obj.y;
    	return curtop;
    }
    function imaps_search_get_xy(dat)
    {
      var fx, fy, xoff, yoff;
      var follow = document.getElementById("imapsSearchFollowThis");
      dat[0] = 0; dat[1] = 0;
      if (follow) {
          xoff = follow.getAttribute("xoff"); if (!xoff) xoff = 0;
          yoff = follow.getAttribute("yoff"); if (!yoff) yoff = 0;
          fx = imaps_findPosX(follow);
          fy = imaps_findPosY(follow);
          dat[0] = fx + Number(xoff);
          dat[1] = fy + Number(yoff);
          return true;
      }
      return false;
    }
    function imaps_search_resize_handler(e)
    {
        var box = document.getElementById("imapsSearchBox");
        var dat = new Array(2);
        if (box) {
            if (imaps_search_get_xy(dat)) {
              box.style.left = dat[0] + 'px';
              box.style.top  = dat[1] + 'px';
            }
        }
    }
    function imaps_initSearch(width, height, bg, x, y) {
    	var id = 0;
	var port = imaps_getPort();
        var dat = new Array(2);
	if (imaps_global_core_port == 0) {
	    alert('error: first use imaps_initMap() before imaps_initSearch();');
	    return;
	}
    	if (typeof(imaps_global_user_id) !== "undefined") id = imaps_global_user_id;
        if (imaps_search_get_xy(dat)) { x = dat[0]; y = dat[1]; }
    	document.write(
    	    '<div id="imapsSearchBox" style="border: 1px solid #000000; padding: 0px 0px 0px 5px; position: absolute; top: '+y+'px; left: '+x+'px; display: none; background-color: #'+bg+'; z-index: 2">' +
    	    '<div align="right" style=\"padding-right: 5px;\"><a href="javascript: imaps_closeSearch();">uždaryti</a></div>'+
    	    '<iframe name="imap_search" src="http://data.imaps.lt/search/?id='+id+'&bg='+bg+'&port='+imaps_global_core_port+'"' +
    	    'width="'+width+'" height="'+height+'" align="top" frameborder="0"' +
    	    'marginwidth="0" marginheight="0" scrolling="no"></iframe></div>');
        if (window.addEventListener) {
            window.addEventListener('resize', imaps_search_resize_handler, false);
            window.addEventListener('load', imaps_search_resize_handler, false);
        } else if (window.attachEvent) {
                    window.attachEvent('onresize', imaps_search_resize_handler);
                    window.attachEvent('onload', imaps_search_resize_handler);
               } else window.onresize = imaps_search_resize_handler;
    }

    function imaps_openSearch() {
	var d = document.getElementById("imapsSearchBox");
	if (d) d.style.display = "block";
    }
    function imaps_closeSearch() {
	var d = document.getElementById("imapsSearchBox");
	if (d) d.style.display = "none";
    }
    function imaps_toggleSearch() {
	var d = document.getElementById("imapsSearchBox");
	if (d) {
	    if (d.style.display == "none") imaps_openSearch();
				      else imaps_closeSearch();
	}
    }
