var newbox;
var newbox_id;

function setnewbox(this_box) {

	newbox = document.getElementById(this_box);
	newbox_id = this_box;
}

function getnewbox() {

	return newbox;
}

function getnewbox_id() {

	return newbox_id;
}

function windowLoaded(evt) {
	// prevent IE text selection while dragging!!! Little-known trick!
	document.body.ondrag = function () { return false; };
	document.body.onselectstart = function () { return false; };
}

function windowUnLoaded(evt) {
	// prevent IE text selection while dragging!!! Little-known trick!
	document.body.ondrag = function () { return true; };
	document.body.onselectstart = function () { return true; };
}

function getBoxWidth(node) {
	return parseInt(node.style.width);
}

function getBoxHeight(node) {
	return parseInt(node.style.height);
}

function getX(node) {
	return parseInt(node.style.left);
}

function getY(node) {
	return parseInt(node.style.top);
}

function setX(node,x) {
	node.style.left = x + "px";
}

function setY(node,y) {
	node.style.top = y + "px";
}

///Event

function Evt(evt) {
	this.evt = evt ? evt : window.event;
	this.source = evt.target ? evt.target : evt.srcElement;
	this.x = evt.pageX ? evt.pageX : evt.clientX;
	this.y = evt.pageY ? evt.pageY : evt.clientY;
}

Evt.prototype.toString = function () {
	return "Evt [ x = " + this.x + ", y = " + this.y + " ]";
};

Evt.prototype.consume = function () {

	if (this.evt.stopPropagation) {

		this.evt.stopPropagation();
		this.evt.preventDefault();
	} else if (this.evt.cancelBubble) {

		this.evt.cancelBubble = true;
		this.evt.returnValue  = false;
	}
};

Evt.addEventListener = function (target,type,func,bubbles) {
	if (document.addEventListener) {
		target.addEventListener(type,func,bubbles);
	} else if (document.attachEvent) {
		target.attachEvent("on"+type,func,bubbles);
	} else {
		target["on"+type] = func;
	}
};

Evt.removeEventListener = function (target,type,func,bubbles) {
	if (document.removeEventListener) {
		target.removeEventListener(type,func,bubbles);
	} else if (document.detachEvent) {
		target.detachEvent("on"+type,func,bubbles);
	} else {
		target["on"+type] = null;
	}
};

function dragWindow(evt, newbox) {
	if (document.getElementById("popupBody"))
	{
		document.getElementById("popupBody").style.overflow = 'hidden';
		//document.getElementById("popupBody").style.width = 4px;
	}
	setnewbox(newbox);

	evt = new Evt(evt);

	frame_area = getnewbox();

	var left = getX(frame_area);
	var top = getY(frame_area);

	windowLoaded(evt);

	deltaX = evt.x - left;
	deltaY = evt.y - top;

	setX(frame_area,left);
	setY(frame_area,top);

	evt.consume();

	Evt.addEventListener(document,"mousemove",dragMoveWindow,false);
	Evt.addEventListener(document,"mouseup",dragReleaseWindow,false);
}

function dragMoveWindow(evt) {

	frame_area = getnewbox();
					
	evt = new Evt(evt);

	if(!isNaN(deltaX) && !isNaN(deltaY))
	{
		from_left = evt.x - deltaX;
		from_top = evt.y - deltaY;

		if(from_left < 1) {
			from_left = 1;
		}
		
		if(from_left > 760) {
			from_left = 760;
		}

		if(from_top < 1) {
			from_top = 1;
		}

		if(from_top > 1500) {
			from_top = 1500;
		}

		setX(frame_area,from_left);
		setY(frame_area,from_top);

		evt.consume();
	}
}

function dragReleaseWindow(evt) {
	
	if (document.getElementById("popupBody"))
	{
		document.getElementById("popupBody").style.overflow = 'auto';
	}

	frame_area = getnewbox();

	evt = new Evt(evt);

	var left = getX(frame_area);
	var top = getY(frame_area);

	deltaX = evt.x - getX(frame_area);
	deltaY = evt.y - getY(frame_area);

	setX(frame_area,left);
	setY(frame_area,top);	
	windowUnLoaded(window.event);
	Evt.removeEventListener(document,"mousemove",dragMoveWindow,false);
	Evt.removeEventListener(document,"mouseup",dragReleaseWindow,false);

}

function closeForm() {

	document.getElementById("form_div").style.display = "none";
	document.getElementById("form_div").innetHTML = "";
	document.getElementById("div_loading").style.display = "none";
}