function getInternetExplorerVersion()
{
	var rv = -1; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer')
	{
		var ua = navigator.userAgent;
		var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null)
		rv = parseFloat( RegExp.$1 );
	}
	return rv;
}

/* require commmon.js! */
var xMousePos=0;
var yMousePos=0;
var popup_active=false;
var popup_active_resize=false;
var all_popups=new Array();

if(document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmouseup=popup_drag_stop;
document.onmousemove=popup_drag;

document.onselectstart=popup_drag_select;
document.onmousedown=popup_drag_select;

function popup_drag_stop()
{
	if(popup_active)
	{
		set_style(popup_active.id, 'opacity', '1');
		set_style(popup_active.id, 'filter', 'alpha(opacity=100)');
		set_style(popup_active.id, 'cursor', 'auto');
		popup_active=false;
	}
	if(popup_active_resize)
	{
		set_style(popup_active_resize.id, 'opacity', '1');
		set_style(popup_active_resize.id, 'filter', 'alpha(opacity=100)');
		set_style(popup_active_resize.id, 'cursor', 'auto');
		popup_active_resize=false;
	}
}

function popup_drag_select(e)
{
	if(popup_active) return false;
	if(popup_active_resize) return false;
}

function popup_drag(e)
{
	if(document.layers)
	{
		xMousePos=e.pageX;
		yMousePos=e.pageY;
	}
	else if(document.all && getInternetExplorerVersion()>=7)
	{
		xMousePos=window.event.x+document.documentElement.scrollLeft;
		yMousePos=window.event.y+document.documentElement.scrollTop;
	}
	else if(document.all)
	{
		xMousePos=window.event.x+document.body.scrollLeft;
		yMousePos=window.event.y+document.body.scrollTop;
	}
	else if(document.getElementById)
	{
		xMousePos=e.pageX;
		yMousePos=e.pageY;
	}
	if(popup_active)
	{
		if(xMousePos!=popup_active.x_drag || yMousePos!=popup_active.y_drag)
		{
			popup_active.x+=xMousePos-popup_active.x_drag;
			popup_active.y+=yMousePos-popup_active.y_drag;
			set_position(popup_active.x, popup_active.y, popup_active.id);
			popup_active.x_drag=xMousePos;
			popup_active.y_drag=yMousePos;
		}
	}
}

popup_class.prototype.popup_show=popup_show;
popup_class.prototype.popup_close=popup_close;
popup_class.prototype.popup_drag_start=popup_drag_start;
popup_class.prototype.popup_drag_resize_start=popup_drag_resize_start;

function popup_class()
{
	this.popup_drag_x=0;
	this.popup_drag_y=0;
}
	function popup_show(x, y, id)
	{
		this.x=x;
		this.y=y;
		this.id=id;
		var i=all_popups.length;
		for(c=0; c<i; c++) set_style(all_popups[c], 'zIndex', '1');
		if(!in_array(all_popups, this.id)) all_popups[i]=this.id;
		set_style(this.id, 'zIndex', '2');
		set_style(this.id, 'position', 'absolute');
		set_position(x, y, this.id);
		set_display(true, this.id);
	}

	function popup_close()
	{
		popup_active=false;
		popup_active_resize=false;
		set_display(false, this.id);
	}

	function popup_drag_start()
	{
		var i=all_popups.length;
		for(c=0; c<i; c++) set_style(all_popups[c], 'zIndex', '1');
		if(!in_array(all_popups, this.id)) all_popups[i]=this.id;
		set_style(this.id, 'zIndex', '2');

		set_style(this.id, 'opacity', '0.50');
		set_style(this.id, 'filter', 'alpha(opacity=50)');
		set_style(this.id, 'cursor', 'move');
		this.x_drag=xMousePos;
		this.y_drag=yMousePos;
		popup_active=this;
	}

	function popup_drag_resize_start()
	{
		var i=all_popups.length;
		for(c=0; c<i; c++) set_style(all_popups[c], 'zIndex', '1');
		if(!in_array(all_popups, this.id)) all_popups[i]=this.id;
		set_style(this.id, 'zIndex', '2');

		set_style(this.id, 'opacity', '0.50');
		set_style(this.id, 'filter', 'alpha(opacity=50)');
		set_style(this.id, 'cursor', 'move');
		this.x_drag=xMousePos;
		this.y_drag=yMousePos;
		popup_active_resize=this;
	}
