var sPath = "images/"; //Path to images
var sMoveId = null;
var dx, dy;
var oWindow = null;
var startdy = 0;
var startdx = 0;
var sUserAgent = navigator.userAgent;
var bIsIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1;
var winW = 630, winH = 460;

function GetWin(){
  if (!bIsIE){
    winW = window.innerWidth-16;
    winH = window.innerHeight;
  }else{
    winW = document.body.offsetWidth-20;
    winH = document.body.offsetHeight;
  }
}

function GetMouse(e){
  if(!e) var e = window.event;
  dx = e.clientX;
  dy = e.clientY;
}

window.onmousemove = GetMouse;
window.onmouseout = function(){
  dx = Math.max(0,dx-42);
  dy = Math.max(0,dy-250);
}

document.onmouseup=function(){sMoveId = null; document.onmousemove = GetMouse; window.onscroll = null;};

document.onmousedown = function(e){
  if (!e) var e = window.event;
  dx=e.clientX;
  dy=e.clientY;
};

function Box(tit, inside){
  this.oDiv = null;

  this.inside = inside;

  if(typeof Box._initialized == "undefined"){

    Box.prototype.CreateNew = function(tit, inside){
      if(this.oDiv !== null)
        document.body.removeChild(this.oDiv);
      this.CreateBox(tit, inside);
    }

    Box.prototype.CreateBox = function(tit, inside){
      this.oDiv = document.createElement("div");
      this.oDiv.id = "block";
      this.oDiv.style.position = 'absolute';
      this.oDiv.style.background = '#555555';
      this.oDiv.style.width = '450px';
      this.oDiv.style.border = '1px solid #000000';
      this.oDiv.style.zIndex = 2;
      this.oDiv.style.left = '100px';
      this.oDiv.style.top = '100px';

      this.inside = inside;
      this.iIndex = 0;
      
      var sInner = '<div style="width: 450px; background: url(images/boxik_grad.jpg) 0px 0px repeat-x; height: 32px;">';
      sInner += '<div style="width: 420px; display: inline; float: left; padding-top: 8px; height: 32px; max-height: 24px; cursor: move" onmousedown="oWindow.moveIt()">';
      sInner += tit;
      sInner += '</div>';
      sInner += '<img src="images/boxik_krzyzyk.jpg" alt="[x]" style="display: inline; float: right; margin-right: 6px; cursor: pointer;" onclick="oWindow.close()"></div>';
      
      sInner += '<div id="textdiv" style="padding: 15px">';
      sInner += this.inside;
      sInner += '</div>';

      this.oDiv.innerHTML = sInner;

      this.oDiv.style.visibility = 'hidden';

      document.body.appendChild(this.oDiv);

      GetWin();
      if(!dx) dx = 100;
      if(!dy) dy = 100;
      this.oDiv.style.left = Math.min(dx+document.documentElement.scrollLeft,winW+document.documentElement.scrollLeft-this.oDiv.offsetWidth)+'px';
      this.oDiv.style.top = Math.min(dy+document.documentElement.scrollTop,winH+document.documentElement.scrollTop-this.oDiv.offsetHeight)+'px';
      this.oDiv.style.visibility = 'visible';
    }

    Box.prototype.moveIt = function(){
      sMoveId = 'oWindow';
      document.onmousemove = this.moveAction;
      window.onscroll = this.moveAction;
      startdy = document.documentElement.scrollTop + dy - parseInt(document.getElementById("block").style.top + 0);
      startdx = document.documentElement.scrollLeft + dx - parseInt(document.getElementById("block").style.left + 0);
    }

    Box.prototype.close = function(){
      document.body.removeChild(this.oDiv);
      this.oDiv = null;
    }

    Box.prototype.moveAction = function(e){
      if(!e) var e = window.event;
      document.getElementById("block").style.left = document.documentElement.scrollLeft + e.clientX - startdx + 'px';
      document.getElementById("block").style.top = document.documentElement.scrollTop + e.clientY - startdy + 'px';
      dx=e.clientX;
      dy=e.clientY;
      if(document.selection && document.selection.empty)
        document.selection.empty();
      else if(window.getSelection)
        window.getSelection().removeAllRanges();
    }
  }

  this.CreateBox(tit, inside);
}

function CreateDivWindow(tit, inside){
  document.body.onmousemove = null;
  document.onmousemove = GetMouse;
  document.body.onmouseout = null;
  if(oWindow === null)
    oWindow = new Box(tit, inside);
  else
    oWindow.CreateNew(tit, inside);
}