function FalsePopup_Close(elem_id)
{
	var tmp_fp_obj = new FalsePopup(elem_id);
	tmp_fp_obj.close(0);
}

function FalsePopup(elem_id)
{
	this.id       = elem_id;
	this.dragging = 0;
	this.div_anclaje  = document.getElementById("false_popup_div_" + this.id);
	this.xOffs 		= 0;
	this.yOffs 		= 0;

	/*
	if(!this.div_anclaje)
	{
		alert(this.id);
		alert(this.div_anclaje);
	}
	*/


	this.open		= function ()
	{
		if(this.div_anclaje.style.display="none")
		{
			this.div_anclaje.style.display="inline";
		}
	}

	this.close	= function (delay)
	{
		this.div_anclaje.style.display = 'none';
	}
}

FalsePopup.is_ie = ( /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) );




FalsePopup.drag_it = function (ev)
	{
		var fp = FalsePopup.dragging_object;

		if(!fp)
		{
			return false;
		}

		if (!fp.dragging)
		{
			return false;
		}

		var posX;
		var posY;
		if (FalsePopup.is_ie)
		{
			posY = window.event.clientY + document.body.scrollTop;
			posX = window.event.clientX + document.body.scrollLeft;
		}
		else
		{
			posX = ev.pageX;
			posY = ev.pageY;
		}

		var mi_div = fp.div_anclaje;

		var	newx = posX - fp.xOffs; //fp.pleft+posX-fp.xOffs;
		var	newy = posY - fp.yOffs; //fp.ptop+posY-fp.yOffs;

		var rightedge=document.body? (document.body.clientWidth/2)+document.body.scrollLeft - newx: (window.innerWidth/2)+window.pageXOffset-newx;
		var bottomedge=document.body? (document.body.clientHeight/2)+document.body.scrollTop - newy: (window.innerHeight/2)+window.pageYOffset-newy;

		var contentwidth=(!mi_div.style.width)? mi_div.clientWidth : mi_div.style.width;
		var contentheight=(!mi_div.style.height)? mi_div.clientHeight : mi_div.style.height;

		contentwidth  = contentwidth.toString().replace(/[^0-9]/g,'');
		contentheight = contentheight.toString().replace(/[^0-9]/g,'');
		var x_offset = rightedge - contentwidth - 5;
		var y_offset = bottomedge - contentheight - 8;
		var x_offset = (x_offset < 0)?x_offset:0;
		var y_offset = (y_offset < 0)?y_offset:0;

		newx+=x_offset;
		newy+=y_offset;


		var st = fp.div_anclaje.style;

		st.left=newx + "px";
		st.top=newy + "px";
			/*
		st.left = (posX - fp.xOffs) + "px";
		st.top = 	(posY - fp.yOffs) + "px";


		*/


		//window.status = 'drag_it ('+x_offset+','+y_offset+') ('+newx+','+newy+') ' + fp.xOffs + ' ' + fp.yOffs;

		return FalsePopup.stopEvent(ev);
	}

	FalsePopup.drag_end	= function (ev)
	{
		var fp = FalsePopup.dragging_object;

		if(!fp)
		{
			return false;
		}

		//window.status = 'drag_end';

		if (!fp.dragging) {
			return false;
		}

		fp.dragging = false;

		with(FalsePopup)
		{
			removeEvent(document, "mousemove",drag_it);
			removeEvent(document, "mouseup",drag_end);
		}
	}

	FalsePopup.prototype.drag_start = function ()
	{
		var fp = this;

		FalsePopup.dragging_object = this;

		if (fp.dragging) {
			return;
		}

		fp.dragging = true;
		var posX;
		var posY;
		if (FalsePopup.is_ie)
		{
			posY = window.event.clientY + document.body.scrollTop;
			posX = window.event.clientX + document.body.scrollLeft;
		}
		else
		{
			posY = ev.clientY + window.scrollY;
			posX = ev.clientX + window.scrollX;
		}


		var st = fp.div_anclaje.style;

		fp.pleft = parseInt(st.left);
		fp.ptop  = parseInt(st.top);

		fp.xOffs = posX - parseInt(st.left);
		fp.yOffs = posY - parseInt(st.top);

		with(FalsePopup)
		{
			addEvent(document, "mousemove",drag_it);
			addEvent(document, "mouseup",drag_end);
		}

		//window.status = 'drag_start ' + fp.xOffs + ' ' + fp.yOffs;
	}

	FalsePopup.getElement = function(ev)
	{
		if (FalsePopup.is_ie)
		{
			return event.srcElement;
		}
		else
		{
			return ev.currentTarget;
		}
	};


	FalsePopup.addEvent = function(el, evname, func)
	{
		if (el.addEventListener)
		{ // Gecko / W3C
			el.addEventListener(evname, func, true);
		}
		else if (el.attachEvent)
		{ // IE
			el.attachEvent("on" + evname, func);
		}
		else
		{
			el["on" + evname] = func;
		}
	}

	FalsePopup.removeEvent = function(el, evname, func)
	{
		if (el.detachEvent)
		{ // IE
			el.detachEvent("on" + evname, func);
		}
		else if (el.removeEventListener)
		{ // Gecko / W3C
			el.removeEventListener(evname, func, true);
		}
		else
		{
			el["on" + evname] = null;
		}
	}

	FalsePopup.stopEvent = function(ev)
	{
		ev || (ev = window.event);
		if (FalsePopup.is_ie) {
			ev.cancelBubble = true;
			ev.returnValue = false;
		} else {
			ev.preventDefault();
			ev.stopPropagation();
		}
		return false;
	};
