/**
 * [c]Copyright: newmagic datensysteme gmbH[/c]
 * [a]Autor: Matthias Eipeldauer[/a]
 * [cre]Datum: 25.09.2008[/cre]
 * [desc]
 * Diese Kernel-Datei beinhaltet Funktionen für die Interaktionsbehandlung bei Benutzerevents
 * [/desc]
 **/

var docSelection = null;

var sDragDropElements   = ["div", "span"];
var sDragDropClass      = "target";
var sDragDropClassHover = "target_hover";


function GetElementAt(x, y)
{
  lastone = null;
  for(sDragTargetElement in sDragDropElements)
  {
    elems = document.getElementsByTagName(sDragDropElements[sDragTargetElement]);
    for(i = 0; i < elems.length; i++)
    {
      elem = elems[i];
      sx = elem.offsetLeft;
      ex = sx + elem.offsetWidth;
      sy = elem.offsetTop;
      ey = sy + elem.offsetHeight;
      if ((sx <= x && x <= ex) && (sy <= y && y <= ey) && (elem.className == sDragDropClass || elem.className == sDragDropClassHover || elem.className.indexOf(sDragDropClass) > -1 || elem.className.indexOf(sDragDropClassHover) > -1))
      {
        lastone = elem;
      }
    }
  }
  return lastone;
}


function DisableSelection()
{
  docSelection = RemoveSelection(document.body);
}

function RemoveSelection(target)
{
  retValue = null;
  if (typeof target.onselectstart!="undefined")
  {
    retValue = target.onselectstart;
    target.onselectstart=function(){return false;}
  }
  else if (typeof target.style.MozUserSelect!="undefined")
  {
    retValue = target.style.MozUserSelect;
    target.style.MozUserSelect="none";
  }
  else
  {
    retValue = target.onmousedown;
    target.onmousedown=function(){return false;}
  }
  target.style.cursor = "default";
  return retValue;
}

function RestoreSelection()
{
  target = document.body;
  if (typeof target.onselectstart!="undefined")
  {
    target.onselectstart=docSelection;
  }
  else if (typeof target.style.MozUserSelect!="undefined")
  {
    target.style.MozUserSelect="text";
  }
  else
  {
    target.onmousedown=docSelection;
  }
}
function EnableSelection(target)
{
  target.style.MozUserSelect="text";
}

mm8Callback("coreInteractionHelpers.js");
