
  // Das Objekt, das gerade bewegt wird.
  var dragObject = null;
  var topIndex = 1000;

  // Position, an der das Objekt angeklickt wurde.
  // relativ zur oberen, linken Ecke des Fensters
  var x0 = 0;
  var y0 = 0;

  // Mausposition
  // relativ zur oberen, linken Ecke des Fensters
  var x1 = 0;
  var y1 = 0;

  // Position relativ zur oberen, linken Ecke des Design-Board Containers
  var x2 = 0;
  var y2 = 0;
    
  // maximale Ausdehnung des Design-Board Containers
  // Border wird z.B. von der Gecko-Engine nicht berücksichtigt
  // da keine Borderangabe gesetzt, im Moment gleich
  var xmax = document.all ? 800 : 800;
  var ymax = document.all ? 720 : 720;
  
function init() {
    // Initialisierung der Überwachung der Events
    document.onmousemove = drag;
    document.onmouseup = drop;
}

function start(element) {
    // Wird aufgerufen, wenn ein Objekt bewegt werden soll.
    // Parameter element: Das zu bewegende Objekt.
    dragObject = element;
    x0 = x1 - dragObject.offsetLeft;
    y0 = y1 - dragObject.offsetTop;

    if (dragObject.style) dragObject.style["zIndex"] = ++topIndex;
    else dragObject.zIndex = ++topIndex;
}

function drop(ereignis) {
    // Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
    dragObject=null;
    return false;
}

function drag(ereignis) {
    // Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.
    x1 = document.all ? window.event.clientX : ereignis.pageX;
    y1 = document.all ? window.event.clientY : ereignis.pageY;

    x2 = (x1 - x0);
    y2 = (y1 - y0);
    
    if (x2 < 0)   x2 = 0;
    if (x2 > xmax) x2 = xmax;
    if (y2 < 0)   y2 = 0;
    if (y2 > ymax) y2 = ymax;
    
    if(dragObject != null) {
      dragObject.style["left"] = x2 + "px";
      dragObject.style["top"] = y2 + "px";
      return false;
    }
}

function duplicate(element){
    var board = document.getElementById('DesignBoard');
    var fabric = element.cloneNode(true);
    fabric.style["left"] = String(parseInt(fabric.style["left"]) + 15) + 'px';
    fabric.style["top"] = String(parseInt(fabric.style["top"]) + 15) + 'px';
    document.forms[0].nelements.value = eval(document.forms[0].nelements.value +'+'+ 1);
    var new_id = "ARTICLE" + document.forms[0].nelements.value;
    fabric.innerHTML = fabric.innerHTML.replace(fabric.id, new_id);
    fabric.id = new_id;
    board.appendChild(fabric);
    store_positions();
}

function remove(element) {
    var board = document.getElementById('DesignBoard');
    var fabric = document.getElementById(element);
    board.removeChild(fabric);
    store_positions();
}

function checkQuantities() {
  if (navigator.cookieEnabled == false) {
    alert('Um die Funktionen des Warenkorbes nutzen zu können,\nerlauben Sie Ihrem Browser die Speicherung von Cookies!');
    return false;
  }
  for(var i=0;i<document.forms[0].elements.length;i++) {
    if (document.forms[0].elements[i].name=='quantity[]'||document.forms[0].elements[i].name=='quantity') {
      document.forms[0].elements[i].value=document.forms[0].elements[i].value.replace(/ /g, "");
      document.forms[0].elements[i].value=document.forms[0].elements[i].value.replace(/,/, ".");
      if ((document.forms[0].elements[i].value!="")&&(isNaN(document.forms[0].elements[i].value))) {
        if (isNaN(document.forms[0].elements[i].value)) {
          alert('Die eingegebene Bestellmenge ist keine gültige Zahl!');
          document.forms[0].elements[i].focus();
          return false;
        }
      }
      if ((document.forms[0].elements[i].value<0)(document.forms[0].elements[i].value>50)) {
        alert('Bitte eine gültige Bestellmenge von min. "'+document.forms[0].elements[i+2].value+'" bis max. "50.00" eingeben!');
        document.forms[0].elements[i].focus();
        return false;
      }
    }
  }
  return true;
}

function addto_designboard(article) {
  var properties = "dependent=yes,toolbar=no,menubar=no,status=no,location=no," +
  "scrollbars=yes,resizable=yes,width=960,height=640,top=0,left=0";
  var uri = "./designboard.php?action=add&target=designboard&article=" + article;
  Designboard = window.open (uri, "Designboard", properties);
  Designboard.focus();
}

function save_designboard() {
    store_positions();
    document.forms[0].action.value="save";
    document.forms[0].target.value="designboard";
    document.forms[0].submit();
}

function store_positions() {
    var top = 0;
    var left = 0;
    var sku = "";
    var board = document.getElementById('DesignBoard');
    if (board.hasChildNodes()) {
      document.forms[0].elements["positions"].value="";
      var fabric = board.firstChild;
      while (fabric != null) {
        if (fabric.style) {
          top = fabric.style["top"];
          left = fabric.style["left"];
        } else {
          top = fabric.offsetTop;
          left = fabric.offsetLeft;
        }
        if (fabric.hasChildNodes()) {
            if (fabric.childNodes[1].hasChildNodes())
              sku = fabric.childNodes[1].childNodes[1].innerHTML;
            else
              sku = fabric.firstChild.firstChild.nextSibling.firstChild.nodeValue;
            if (document.forms[0].elements["positions"].value!="")
              document.forms[0].elements["positions"].value += ','+sku+','+left+','+top;
            else
              document.forms[0].elements["positions"].value = sku+','+left+','+top;
        }
        fabric = fabric.nextSibling;
      }
    }
}

function show_shopping_cart(uri) {
  opener.focus();
  //opener.location.reload(true);
  opener.location.href=uri;
}

function show_design_board() {
  var properties = "dependent=yes,toolbar=no,menubar=no,status=no,location=no," +
  "scrollbars=yes,resizable=yes,width=960,height=640,top=0,left=0";
  var uri = "./designboard.php";
  Designboard = window.open (uri, "Designboard", properties);
  Designboard.focus();
}
