var w,z,x,y;
var id_panel;
var panel_active;
var dragapproved=false;

// show/hide panel content
function toggle_show(pid)
{
    var panel_name = pid.replace(/cnt/, 'panel');
    if (document.getElementById(pid).style.display != 'none')
    {
        document.getElementById(panel_name+'_h3').className = 'collapsed';
        document.getElementById(pid).style.display='none';
        if (panels[panel_name])
        {
            panels[panel_name][2] = 1;
            document.getElementById('panels').value = serialize(panels);
        }
    } else {
        document.getElementById(panel_name+'_h3').className = 'expanded';
        document.getElementById(pid).style.display='block';
        if (panels[panel_name])
        {
            panels[panel_name][2] = 0;
            document.getElementById('panels').value = serialize(panels);
        }
    }
}

function icons_show(pid)
{
    var buttons_left = document.getElementsByName('button_left');
    var buttons_right = document.getElementsByName('button_right');
    var icons = document.getElementsByName(pid);

    for (var i=0; i<icons.length; i++)
    {
        if (icons[i].style.display != 'none')
        {
            icons[i].style.display='none';
            buttons_left[i].style.display='inline';
            buttons_right[i].style.display='none';
        }
        else
        {
            icons[i].style.display='inline';
            buttons_left[i].style.display='none';
            buttons_right[i].style.display='inline';
        }

    }
}

// move panel and count positions
function move(e){
    if (dragapproved && panel_active)
    {
        z.style.left = ns6 ? (temp1+e.clientX-x)+'px' : temp1+event.clientX-x;
        z.style.top = ns6 ? (temp2+e.clientY-y)+'px' : temp2+event.clientY-y;
        if (z.style.filter != "Alpha(opacity=50)") z.style.filter = "Alpha(opacity=50)";
        return false;
    }
}

// drag panel and prepare to move
function drags(e)
{
    if (!ie&&!ns6) return;
    var firedobj = ns6 ? e.target : window.event.srcElement;
    var is_clicked_panel_text = false;

    if (ns6 || window.opera) //ns6 & opera hack
    {
        while (firedobj.tagName!=topelement&&firedobj.className!="panels"&&firedobj.tagName!='INPUT')
        {
            firedobj= ns6 ? firedobj.parentNode : firedobj.parentElement;
        }
    }
    else
    {
         firedobj = firedobj.parentElement;
    }

    if (firedobj)
    {
        w = firedobj.firstChild; // there can not be enter between firedobj and firstchild to run properly
        if (!w) return;
        if (w && w.tagName=="H3" && firedobj.parentElement.id) // if clicked on text in the panel
        {
            is_clicked_panel_text = firedobj.parentElement.id.substring(0,6) == 'panel_';
            w.onselectstart = new Function('return false;');
        }

        if (firedobj.className=="panels" ||  w.className=="panelhead" || is_clicked_panel_text)
        {
            id_panel = firedobj.id;
            if (is_clicked_panel_text)
            {
                w = firedobj;
                id_panel = w.parentElement.id;
            }
            if (ns6 || window.opera)
            {
                w.addEventListener('mousedown', new Function("panel_active=true;"), true);
                w.addEventListener('mouseover', new Function("panel_active=true;"), true);
                w.addEventListener('mouseup', new Function("panel_active=false;"), true);
                w.addEventListener('drop', new Function("panel_active=false;"), true);
            } else {
                w.attachEvent('onmousedown',new Function("panel_active=true;"));  // pridanie akcie pre panelhead
                w.attachEvent('onfocus',new Function("panel_active=true;"));  // pridanie akcie pre panelhead
                w.attachEvent('onmouseup',new Function("panel_active=false;"));
                w.attachEvent('ondrop',new Function("panel_active=false;"));
            }

            dragapproved=true;
            z = is_clicked_panel_text ? w.parentElement : firedobj;
            temp1=parseInt(z.style.left+0);
            temp2=parseInt(z.style.top+0);
            x=ns6 ? e.clientX : event.clientX;
            y=ns6 ? e.clientY : event.clientY;
            document.onmousemove=move;
            return false;
        }
    }
}

// drop
function dragsubmit(e)
{
    if (dragapproved)
    {
        z.style.filter = "Alpha(opacity=100)";
        var wx = document.body.clientWidth;
        var posx=parseInt(z.style.left+0);
        var absx = (posx<0) ? -posx : posx;

        if (absx > wx/2)
        {
            z.style.left = (posx < 0) ? 213-wx : wx-213;
            new_panels = new Array();
            for (i in panels) if (id_panel != i) new_panels[i] = panels[i];
            var temp = panels[id_panel];
            temp[1] = (temp[1] ? 0 : 1);
            new_panels[id_panel] = new Array();
            new_panels[id_panel] = temp;
            document.getElementById('panels').value = serialize(new_panels);
            setCookie("panels[" + document.getElementById("id").value + "]", document.getElementById('panels').value);
            //call_submit(e,'');
        } else {
            z.style.left = 0;
            z.style.top = 0;
        }
    }
    dragapproved = false;
}

document.onmousedown=drags;
document.onmouseup=dragsubmit;
document.ondblclick=dragsubmit;
document.onkeydown=dragsubmit;

// if all panels are left, center panel extend to the right and vice versa
/*function repair_panels_layout()
{
    var j=k=0;
    for (i in panels)
    {
        if (panels[i][2]!=1)
        {
            k++;
            j += panels[i][1];
        }
    }
    if (k == 0)
    {
        document.getElementById('help').style.width = '0px';
        document.getElementById('content_right').style.padding = '0px';
        document.getElementById('controls').style.width = '0px';
        document.getElementById('content_left').style.padding = '0px';
    }
    else if (j == 0)
    {
        document.getElementById('help').style.width = '0px';
        document.getElementById('content_right').style.padding = '0px';
    } else if (j == k) {
        document.getElementById('controls').style.width = '0px';
        document.getElementById('content_left').style.padding = '0px';
    }
}
*/
