﻿function AllReplX(w, f, t) {
  var s = w;
  s = s.replace(f, t);
  var iBegin = s.indexOf(f);
  while (iBegin != -1)
  {
    s = s.replace(f, t);
    iBegin = s.indexOf(f);
  }
  return s;
}

function AllRepl(w, f, t) {
  var s = w;
  s = AllReplX(s, f, t);
  s = AllReplX(s, f.toLowerCase(), t);
  s = AllReplX(s, f.toUpperCase(), t);
  return s;
}

function BrowserName()
{ 
   var browserName = "msie"; 
   var ua = navigator.userAgent.toLowerCase(); 

   if (ua.indexOf("opera") != -1)
   { 
      browserName = "opera"; 
   }
   if ( ua.indexOf( "safari" ) != -1 )
   {
      browserName = "safari"; 
   }
   if ( ua.indexOf( "mozilla" ) != -1 )
   {
      browserName = "mozilla"; 
   } 
   if ( ua.indexOf( "firefox" ) != -1 )
   { 
      browserName = "firefox"; 
   }
   if (ua.indexOf("msie") != -1)
   { 
      browserName = "msie"; 
   }

   return browserName; 
} 

function ApplyScrollBrowser()
{ 
   var browserName = BrowserName();
   var applyScroll = (browserName == "firefox" || browserName == "opera" || browserName == "mozilla");
   return applyScroll;
}

function Position(oSetPos, oGetPos, parleft, partop)
{
   var applyScroll = ApplyScrollBrowser();

   var obj = oGetPos;
   var curleft = parleft;
   var curtop = partop;
   if (applyScroll)
   {
      curleft = curleft - document.documentElement.scrollLeft;
      curtop = curtop - document.documentElement.scrollTop;
   }
   
   if (obj.offsetParent)
   {
      curleft = obj.offsetLeft + parleft;
      curtop = obj.offsetTop + partop;
      if (applyScroll)
      {
         curleft = curleft - document.documentElement.scrollLeft - obj.scrollLeft;
         curtop = curtop - document.documentElement.scrollTop - obj.scrollTop;
      }
      while (obj != null)
      {
         curleft += obj.offsetLeft;
         curtop += obj.offsetTop;
         if (applyScroll)
         {
            curleft = curleft - obj.scrollLeft;
            curtop = curtop - obj.scrollTop;
         }
         obj = obj.offsetParent
      }
   }
   
   // posunuti pod prvek
   curtop += oGetPos.offsetHeight;

   if (applyScroll)
   {
      curtop -= 1;
   }      
   oSetPos.style.left = curleft + "px";
   oSetPos.style.top = curtop + "px";
}

function PositionForLink(oSetPos, oGetPos, parleft, partop)
{
   var mpos = findPosition(oGetPos);
   var mx = mpos[0] + parleft;
   var my = mpos[1] + partop;

   oSetPos.style.left = mx + "px";
   oSetPos.style.top = my + "px";
}


function findPosition(oLink)
	{
   var applyScroll = ApplyScrollBrowser();
var obj = oLink;

	if (oLink.offsetParent)
		{
		for (var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent)
			{
			posX += oLink.offsetLeft;
			posY += oLink.offsetTop;
			}

   if (applyScroll)
   {
      posX = posX - document.documentElement.scrollLeft;
      posY = posY - document.documentElement.scrollTop;
   
   if (obj.offsetParent)
   {
      posX = posX - document.documentElement.scrollLeft - obj.scrollLeft;
      posY = posY - document.documentElement.scrollTop - obj.scrollTop;
      while (obj != null)
      {
         posX = posX - obj.scrollLeft;
         posY = posY - obj.scrollTop;
         obj = obj.offsetParent
      }
   }

      posY -= 1;
   }
		return [posX, posY];
		}
	else
		{
		return [oLink.x, oLink.y];
		}
	}
