var dialog_nav_app_ie = 0;
var dialog_elem_dx = 0;
var dialog_elem_dy = 0;

var dialog_elem_start_x = 0;
var dialog_elem_start_y = 0;

var dialog_drag_elem = null;
var dialog_drag_state = 0;

function dialog_mouse_move(evnt)
{
	//window.status = "mouse_move even triggered" + event.clientX + "," + event.clientY;

	if(dialog_drag_state == 0)
		{
		return true;
		}
	else if(dialog_drag_state == 1)
		{
		dialog_prepare_dragging();
		}

	if(dialog_nav_app_ie == 0)
		{
		evnt.stopPropagation();
		}
	else
		{
    evnt = window.event;                                 // IE event model
    dialog_drag_elem.cancelBubble = true;                            //Prevent bubbling
		}
	get_xy(evnt);

	//if(elem_x > dialog_elem_dx)
		dialog_drag_elem.style.left = (elem_x - dialog_elem_dx) + 'px';

	//if(elem_y > dialog_elem_dy)
		dialog_drag_elem.style.top  = (elem_y - dialog_elem_dy) + 'px';
	//window.status=elem_x + "," + elem_y;
	return false;
}

function dialog_mouse_down(evnt)
{
get_xy(evnt);
dialog_elem_start_x = findPosX(dialog_drag_elem);
dialog_elem_start_y = findPosY(dialog_drag_elem);
dialog_elem_dx = elem_x - dialog_elem_start_x;
dialog_elem_dy = elem_y - dialog_elem_start_y;
if(dialog_elem_dy < 30)
	{
	return true;
	}
else
	{
	return false;
	}
}

function dialog_mouse_up(evnt)
{
	if(dialog_drag_elem == null)
		return;
	//window.status = "mouse_up even triggered";
	if(dialog_drag_state != 0)
		{
		if(dialog_nav_app_ie == 0)
			{
			document.removeEventListener("mouseup", mouse_up, true);
			if(dialog_drag_state != 3)
				document.removeEventListener("mousemove", mouse_move, true);
			evnt.stopPropagation();

			}
		else
			{
			evnt = window.event;                                 // IE event model
	    document.detachEvent("onmouseup", mouse_up);     //Unregister
	    if(dialog_drag_state != 3)
	    	document.detachEvent("onmousemove", mouse_move); //Unregister
	    evnt.cancelBubble = true;                            //Prevent bubbling

			}
		}

	
	var left = parseInt(dialog_drag_elem.style.left);
	var top  = parseInt(dialog_drag_elem.style.top);
	if(left < 0)
		{
		dialog_drag_elem.style.left = '0px';
		}
	
	if(top < 0)
		{
		dialog_drag_elem.style.top = '0px';
		}	

	dialog_drag_elem = null;
	dialog_drag_state = 0;
}

function dialog_prepare_dragging()
{
if(dialog_drag_elem == null)
	return;
dialog_drag_state = 2;
dialog_drag_elem.style.position="absolute";
}

function dialog_start_dragging(dialog_id, evnt)
{
	if(dialog_drag_elem == null)
		{
		if(navigator.appName == "Microsoft Internet Explorer")
			{
			dialog_nav_app_ie = 1;
			}
		else
			{
			dialog_nav_app_ie = 0;
			}
		dialog_drag_elem = dialog_id;
		if(dialog_mouse_down(evnt))
			{
			dialog_drag_state = 1;
			if(dialog_nav_app_ie == 1)
				{

			  document.attachEvent("onmousemove", dialog_mouse_move);   //Register handler
			  document.attachEvent("onmouseup", dialog_mouse_up);       //Register handler

			  evnt.cancelBubble = true;                             //Prevent bubbling
			  evnt.returnValue = false;                             //Prevent action
				}
			else
				{
				document.addEventListener("mousemove", dialog_mouse_move, true); //Register handlr
			  document.addEventListener("mouseup", dialog_mouse_up, true);     //Register handlr
			  //evnt.stopPropagation();                        //Stop propagation so no
			  evnt.preventDefault();                         //one else handles it
				}

			}
		else
			{
			dialog_drag_elem = null;
			dialog_drag_state = 0;
			}
		}
}

