﻿var offsX, offsY; 							//смещение курсора внутри блока
var isIE = document.all ? true : false; 			//IE, не IE
var triger_obj = null;
var target_obj = null;
var tempX = 0;
var tempY = 0;

function setActiveObj(triger, target)
{
    triger_obj = triger;
    target_obj = target;
}

function startCoord(e)							//функция подготовки перемещения
{
    e = (e) ? e : ((window.event) ? window.event : "")

   
    //triger_obj.style.cursor = "move"; 			
    
    if (isIE)
    {
        offsX = e.offsetX; 					//определяем смещение
        offsY = e.offsetY;
        document.onmousemove = mov; 			//слушаем движения мыши
    }
    else
    {
        offsX = 0; //e.layerX; 						//то же самое для
        offsY = 0; //e.layerY; 					//нормальных браузеров
        document.addEventListener("mousemove", mov, true);
    }

    //offsX += (triger_obj.clientWidth / 2);
    //offsY += (triger_obj.clientHeight / 2);
}

function mov(e)									//функция перемещения
{
    e = (e) ? e : ((window.event) ? window.event : "")

    if (isIE)
    {
        var scrollLeft = 0;
        var scrollTop = 0;

        if (document.documentElement)
        {
            scrollLeft = document.documentElement.scrollLeft;
            scrollTop =  document.documentElement.scrollTop;
        }
        else
        {
            scrollLeft = document.body.scrollLeft;
            scrollTop = document.body.scrollTop;
        }

        tempX = event.clientX + scrollLeft;
        tempY = event.clientY + scrollTop;
    } 
    else
    { 
        tempX = e.pageX
        tempY = e.pageY
    }
    
    
    if (tempX < 0) { tempX = 0 }
    if (tempY < 0) { tempY = 0 }

   
     triger_obj.style.left = tempX - offsX + "px";
     triger_obj.style.top = tempY - offsY + "px";

     target_obj.style.left = triger_obj.style.left;
     target_obj.style.top = triger_obj.style.top;


    // Calc wall in border
    if ((tempX - offsX) + triger_obj.clientWidth < PreviewArea.left)
    {
        triger_obj.style.left = PreviewArea.left - triger_obj.clientWidth + "px";
        target_obj.style.left = triger_obj.style.left;
    }

    if ((tempX - offsX) > (PreviewArea.left + PreviewArea.width))
    {
        triger_obj.style.left = (PreviewArea.left + PreviewArea.width) + "px";
        target_obj.style.left = triger_obj.style.left;
    }

    if ((tempY - offsY) + triger_obj.clientHeight < PreviewArea.top)
    {
        triger_obj.style.top = PreviewArea.top - triger_obj.clientHeight + "px";
        target_obj.style.top = triger_obj.style.top;
    }

    if ((tempY - offsY) > (PreviewArea.top + PreviewArea.height))
    {
        triger_obj.style.top = (PreviewArea.top + PreviewArea.height) + "px";
        target_obj.style.top = triger_obj.style.top;
    } 
    
}

function endCoord(e)								//чистим слушателей и курсор
{
    e = (e) ? e : ((window.event) ? window.event : "")

   // triger_obj.style.cursor = ""; 
   

    if (isIE)
    {
        document.onmousemove = null;
    }
    else
    {
        document.removeEventListener("mousemove", mov, true);
    }
}
