/*/////////////////////////////////////
//				     //
//  This is the engien for the chat  //
//  ChatEngine.addMessage();	     //
//  ChatEngine.drawAll();	     //
//  ChatEngine.deleteMess(objNr);    //
//  ChatEngine.readKey(event);	     //
//				     //
/////////////////////////////////////*/

var Move = {
  moveID : null,
  moveObj : null,
  firstPass : false,
  posOnLayerX : null,
  posOnLayerY : null,
  layerStartTop : null,
  layerStartHeight : null,
  layerStartLeft : null,
  layerStartWidth : null,
  inLayer: null,
  doThis: "",
  
  withMouse:function(event)
  {
    if(Move.moveID != null)
    {
      if(window.event != undefined)  // ie
      {
        event = window.event;
        try
        {
          document.selection.empty();
        }catch(e){}
      }
      
      // Is this the first pass since the user pressed down the mouse
      if (Move.firstPass == true)
      {
        var disableThis = document.getElementById("content");
        disableThis.onselectstart = function() { return false;};
        disableThis.unselectable = "on";
        disableThis.style.MozUserSelect = "none";
        Move.moveObj.setHeight(Move.moveObj.height);
        Move.moveObj.setWidth(Move.moveObj.width);
        if(Move.doThis == "move" || Move.doThis == "resizeNE" || Move.doThis == "resizeNW" || Move.doThis == "resizeN" || Move.doThis == "resizeN" || Move.doThis == "resizeW")
        {
          // We calculate where the mouse is on the layer
          Move.posOnLayerX = event.clientX - Move.moveObj.left;
          Move.layerStartTop = Move.moveObj.top;
          Move.layerStartHeight = Move.moveObj.height;
        }
        if(Move.doThis == "move" || Move.doThis == "resizeNW" || Move.doThis == "resizeSW" || Move.doThis == "resizeW")
        {
          // We calculate where the mouse is on the layer
          Move.posOnLayerY = event.clientY - Move.moveObj.top;
          Move.layerStartLeft = Move.moveObj.left;
          Move.layerStartWidth = Move.moveObj.width;
        }
        
        if(Move.doThis == "resizeSE" || Move.doThis == "resizeNE" || Move.doThis == "resizeE" || Move.doThis == "resizeN")
        {
          // We calculate where the mouse is on the layer
          Move.posOnLayerX = event.clientX - Move.moveObj.width;
        }
        if(Move.doThis == "resizeSE" || Move.doThis == "resizeSW" || Move.doThis == "resizeS")
        {
          // We calculate where the mouse is on the layer
          Move.posOnLayerY = event.clientY - Move.moveObj.height;
        }
        Move.firstPass = false;
      }
       
      // Now where is the mouse
      var tempX = event.clientX;
      var tempY = event.clientY;
      
      // Lets check so the mouse is inside the screen
      if(tempY < 0) { tempY = 2; }
      if(tempX < 0) { tempX = 2; }
 //     if(tempY > Move.inLayer.offsetHeight) { tempY = Move.inLayer.offsetHeight - 2;}
 //     if(tempX > Move.inLayer.offsetWidth) { tempX = Move.inLayer.offsetWidth - 2;}
      
      var heightOkay = true;
      var widthOkay = true;
      if(Move.doThis == "resizeNW" || Move.doThis == "resizeNE" || Move.doThis == "resizeN")
      { 
        // Now we resize the layer
        heightOkay = Move.moveObj.setHeight(Move.layerStartHeight+(Move.posOnLayerY+Move.layerStartTop-tempY));
        document.getElementById(Move.moveID).style.height = Move.moveObj.height+"px";
      }
      if(Move.doThis == "resizeNW" || Move.doThis == "resizeSW" || Move.doThis == "resizeW")
      { 
        // Now we resize the layer
        widthOkay = Move.moveObj.setWidth(Move.layerStartWidth+(Move.posOnLayerX+Move.layerStartLeft-tempX));
        document.getElementById(Move.moveID).style.width = Move.moveObj.width+"px";
      }
      
      if(Move.doThis == "resizeSE" || Move.doThis == "resizeNE" || Move.doThis == "resizeE")
      { 
        // Now we resize the layer
        Move.moveObj.setWidth(tempX - Move.posOnLayerX);
        document.getElementById(Move.moveID).style.width = Move.moveObj.width+"px";
      }
      if(Move.doThis == "resizeSE" || Move.doThis == "resizeSW" || Move.doThis == "resizeS")
      { 
        // Now we resize the layer
        Move.moveObj.setHeight(tempY -Move.posOnLayerY);
        document.getElementById(Move.moveID).style.height = Move.moveObj.height+"px";
      }
      if((Move.doThis == "move" || Move.doThis == "resizeSW" || Move.doThis == "resizeNW" || Move.doThis == "resizeW") && widthOkay)
      {
        // Now we move the layer
        document.getElementById(Move.moveID).style.left = tempX - Move.posOnLayerX+"px";
        Move.moveObj.left = tempX - Move.posOnLayerX;
      }
      if((Move.doThis == "move" || Move.doThis == "resizeNE" || Move.doThis == "resizeNW" || Move.doThis == "resizeN") && heightOkay)
      {
        // Now we move the layer
        document.getElementById(Move.moveID).style.top = tempY - Move.posOnLayerY+"px";
        Move.moveObj.top = tempY - Move.posOnLayerY;
      }
    }
  },
  
  stopMove:function()
  {
    if(Move.moveObj != null)
    {
      if(Move.moveObj.size == "normal")
      {
        var main = document.getElementById("main");
        if(Move.moveObj.top + Move.moveObj.height > main.style.height.replace(/px/i, "") - 0)
        {
          main.style.height = Move.moveObj.top + 100 + Move.moveObj.height+"px";
        }
        if(Move.moveObj.left + Move.moveObj.width > main.style.width.replace(/px/i, "") - 0)
        {
          main.style.width = Move.moveObj.left + 100 + Move.moveObj.width+"px";
        }
      }
    }
    var disableThis = document.getElementById("main");
    disableThis.onselectstart = "";
    disableThis.unselectable = "off";
    disableThis.style.MozUserSelect = "";
    
    Move.moveID = null;
    Move.moveObj = null;
    Move.firstPass = false;
    Move.posOnLayerX = null;
    Move.posOnLayerY = null;
  }

}
