// $Id: scripts.js,v 1.8.16.1 2008-06-03 12:57:38 lyolik Exp $

function doSearchTemplates()
{
    if (trim(document.forms['search-templates'].query.value) == "")
        return;
    document.forms['search-templates'].submit();
}

function action(action_id, form_id)
{
    var f = document.forms[form_id];
    if (!f)
    {
        alert("Form not found:" + form_id);
        return;
    }
    if (f.action)
        f.action.value = action_id;
    f.submit();
}

function subgroup()
{
    document.forms['subgroup-chooser'].submit();
}

function set_boolean(id)
{
    var cb = document.getElementById('__essm_' + id);
    if (!cb)
    {
        alert('not found:' + id);
        return;
    }
    var input = document.getElementById(id);
    if (!input)
    {
        alert('not found input:' + id);
        return;
    }
    if (cb.checked)
        input.value = 'true';
    else
        input.value = 'false';
}

function feedback()
{
    if (trim(document.forms['feedback'].feedback.value) == "")
        return;
    document.forms['feedback'].action.value = 'feedback';
    document.forms['feedback'].submit();
}

function trim(s) 
{
    while (s.substring(0,1) == ' ')
        s = s.substring(1, s.length);
    while (s.substring(s.length-1, s.length) == ' ')
        s = s.substring(0, s.length-1);
    return s;
}

function get(id)
{
    return document.getElementById(id);
}

function set_search_params()
{
    var o = get('search_query');
    if (o)
        document.forms['TemplateSearch'].query.value = o.value;
    action('apply', 'TemplateSearch');
}

function positionFooter()
{
    var nav  = get("leftnav");
    var main = get("main");

    var h1 = getHeight(nav) + getTop(nav);
    var h2 = getHeight(main) + getTop(main);
    var h = h1 > h2 ? h1 : h2;

    var footer = get("footer");
    if (footer)
    {
        footer.style.top = h + 10;
        footer.style.position = "absolute";
        footer.style.left = 0;
        footer.style.display = "";
    }
    
}

function getHeight(o)
{
    if (!o)
        return 0;
    var ns4 = document.layers;
    var op5 = (navigator.userAgent.indexOf("Opera 5") != -1) || (navigator.userAgent.indexOf("Opera/5") != -1);
    if (ns4)
    {
        return o.clip.height;
    }
    else
    {
        if (op5)
        {
            return o.style.pixelHeight;
        }
        else
        {
            return o.offsetHeight;
        }
    }
}

function getTop(o)
{
    if (!o)
        return 0;
    var ns4 = document.layers;
    if (ns4)
    {
        return o.pageY;
    }
    else
    {
        var yPos = o.offsetTop;
        var tempEl = o.offsetParent;
        while (tempEl != null)
        {
            yPos += tempEl.offsetTop;
            tempEl = tempEl.offsetParent;
        }
        return yPos;
    }
}

