// Globals
var    mouse_x=0;
var    mouse_y=0;
var    grab_dialog=0;
var    moff_x=0;
var    moff_y=0;
var IE=document.all?true:false;

function find_x(obj)
{
    var x=obj.offsetLeft;
    while (obj=obj.offsetParent) {
        x+=obj.offsetLeft;
    }
    return x;
}

function find_y(obj)
{
    var y=obj.offsetTop;
    while (obj=obj.offsetParent) {
        y+=obj.offsetTop;
    }
    return y;
}


function mouse_move(e)
{
    var x_pos,y_pos;
	
    if (IE){
        x_pos=event.clientX+document.body.scrollLeft;
	    y_pos=event.clientY+document.body.scrollTop;
    } else {
	    x_pos=e.pageX;
	    y_pos=e.pageY;
    }

    if (grab_dialog){
        div=document.getElementById("ajx_dialog");
        div.style.left=x_pos+moff_x;
        div.style.top=y_pos+moff_y;
    }
    mouse_x=x_pos;
    mouse_y=y_pos;
}

document.onmousemove=mouse_move;

function grabme()
{
    grab_dialog=1;
    document.onmouseup=letgo;
    div = document.getElementById("ajx_dialog");
    moff_x=find_x(div)-mouse_x;
    moff_y=find_y(div)-mouse_y;
}

function letgo(e)
{
    grab_dialog=0;
    document.onmouseup=null;
}


var respit=false;

function reset_respit()
{
    respit=false;
}

function open_dialog(uri, request) 
{
    // Göm dialoglagret
    div = document.getElementById("ajx_dialog");
    div.style.visibility="hidden";
    // Skapa ett scriptelement som laddar ner det nya innehållet
    var jsel=document.createElement('SCRIPT');
    jsel.type='text/javascript';
    jsel.src='/ajax.php?uri='+uri+'&request='+request;
    document.body.appendChild(jsel);
    // Flytta lagret till musens närhe
    div=document.getElementById('ajx_dialog');
    div.style.left=10+mouse_x;//50+mouse_x+"px");
    div.style.top=10+mouse_y;
    // Visa lagret
    div.style.visibility="visible";
    // Skaffa respit
    respit=true;
    setTimeout("reset_respit()","500");
}


function close_dialog()
{
    document.getElementById("ajx_dialog").style.visibility="hidden";
    letgo(null);
}

function get_style(obj, style_prop)
{
    var res;
    if (obj.currentStyle){
        res=obj.currentStyle[style_prop];
    } else if (window.getComputedStyle){
        res=document.defaultView.getComputedStyle(obj,null).getPropertyValue(style_prop)
    }
    return res;
}


function check_dialog(e)
{
    if (respit) return; // Blev dialogen öppnad i det här klicket?

    div=document.getElementById("ajx_dialog")

    // Kolla om dialogen är öppen - annars return
    if (get_style(div,"visibility")=="hidden") return;

    // Kolla om musen är över dialogen, annars stäng dialogen
    var dx=Number(find_x(div));
    var dy=Number(find_y(div));
    if (mouse_x < dx || mouse_y < dy || mouse_x > dx+div.offsetWidth || mouse_y > dy+div.offsetHeight){
        close_dialog();
        return;
    }


    // Musen är över dialogen - ta tag i den om den inte redan åker med
    if (grab_dialog==1){
        grab_dialog=0;
    } else {
        grab_dialog=1;
        document.onmouseup=letgo;
        div = document.getElementById("ajx_dialog");
        moff_x=find_x(div)-mouse_x;
        moff_y=find_y(div)-mouse_y;
    }
}

document.onmousedown=check_dialog;




