var HideElementFlag = false;
var MouseDownFlag = false;
var MovedObjName = "";
var MovedObjTop = 0;
var MovedObjLeft = 0;

var hebLeftCorrect = 0;

addLoadEvent(function() {hebLeftCorrect = (eLang == "heb" && document.body)?document.body.scrollLeft:0;});

function s(text) {
	smsg(text);
}

function smsg(text) {
	if(!window || !document || !window.dataDiv || !document.body) return;
  window.dataDiv.style.display="block";
  window.dataDiv.style.visibility = "visible";
  window.dataDiv.innerHTML = "<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 bgcolor=\"#f7eca4\" dir="+eDir+"><tr><TD align=left valign=top nowrap>"+text+"</TD></TR></TABLE>";
	sDiv(window.dataDiv);
}

function h() {
  dataDiv.innerHTML = "";
  hDiv(dataDiv);
}

function hDiv(objDiv) {
  showElement("SELECT");
  if (objDiv) {
    objDiv.style.visibility = "hidden";
    moveTo(objDiv,0,0);
  }
}

function sDiv(objDiv) {
	if(!window || !document || !objDiv || !document.body) return;

  objDiv.style.display="block";
  objDiv.style.visibility = "visible";

	if(window && window.event) {
	  mouseX = window.event.x
	  mouseY = window.event.y
	} else {
	  mouseX = 0;
	  mouseY = 100;
	}

  var xLeft = 0;
  var yTop = 0;

  if(document.body) {
	  xLeft = document.body.scrollLeft-hebLeftCorrect;
	  yTop = document.body.scrollTop;
	}
	
  if(mouseX - objDiv.clientWidth - 5 > 0)
    xLeft = xLeft + mouseX - objDiv.clientWidth - (eLang == "heb"?15:5);
  else if (mouseX + objDiv.clientWidth + 5 < document.body.clientWidth)
    xLeft = xLeft + mouseX + (eLang == "heb"?5:10);

  if (mouseY + objDiv.clientHeight + 5 < document.body.clientHeight)
    yTop = yTop + mouseY + 5;
  else if(mouseY - objDiv.clientHeight - 5 > 0)
    yTop = yTop + mouseY - objDiv.clientHeight - 5;

  hideElement("SELECT", xLeft, yTop, objDiv.clientWidth, objDiv.clientHeight);
  moveTo(objDiv, xLeft, yTop);
}

function moveTo(obj, xL, yL) {
  obj.style.left = xL;
  obj.style.top = yL;
}

function hideElement(elmID, xLeft, yTop, objWidth, objHeight) {
	for (i = 0; i < document.all.tags(elmID).length; i++) {
		obj = document.all.tags(elmID)[i];
		if (!obj || !obj.offsetParent)
			continue;

    if(!obj.myLeft || !obj.myTop) {
			objLeft   = obj.offsetLeft;
			objTop    = obj.offsetTop;
			objParent = obj.offsetParent;
			while (objParent && objParent.tagName.toUpperCase() != "BODY") {
				objLeft  += objParent.offsetLeft;
				objTop   += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}
			obj.myLeft = objLeft;
			obj.myTop = objTop;
		} else {
			objLeft   = obj.myLeft;
			objTop    = obj.myTop;
		}

		if (xLeft > (objLeft + obj.offsetWidth) || objLeft > (xLeft + objWidth))
			;
		else if (yTop > (objTop + obj.offsetHeight) || objTop > (yTop + objHeight))
			;
		else {
			obj.style.visibility = "hidden";
			HideElementFlag = true;
		}
	}
}

function showElement(elmID) {
  if (!HideElementFlag) return;
	for (i = 0; i < document.all.tags(elmID).length; i++) {
		obj = document.all.tags(elmID)[i];
		if (! obj || ! obj.offsetParent)
			continue;
		obj.style.visibility = "";
	}
  HideElementFlag = false;
}

function dragStart(movedDiv, mouseDiv, e) {
	MouseDownFlag=true;
	MovedObjName = movedDiv;
	var MovedObj = gD(MovedObjName);
	MovedObjLeft=e.x-MovedObj.offsetLeft;
	MovedObjTop=e.y-MovedObj.offsetTop;
	MovedObj.style.visibility = "visible"; 
	mouseDiv.onmousemove=dragDiv;
	MovedObj.style.visibility = "visible"; 
  return false;
}

function dragStop(mouseDiv) {
	MouseDownFlag=false;
	if(MovedObjName == ""){return};
	var MovedObj = gD(MovedObjName);
	mouseDiv.onmousemove=null;
	MovedObj.style.visibility = "visible"; 
	MovedObjName = "";
  return false;
}

function dragDiv(e) {
	if(!MouseDownFlag || MovedObjName == ""){return};
	var MovedObj = gD(MovedObjName);
	if(!e){var e=window.event};
	MovedObj.style.left=(e.x-MovedObjLeft)+'px';
	MovedObj.style.visibility = "visible"; 
	MovedObj.style.top=(e.y-MovedObjTop)+'px';
	MovedObj.style.visibility = "visible"; 
	return false;
}
