function getMaximum(a, b)
{
    if(a > b)
    {
        return a;
    }
    return b;
}

function calculateHeight(id)
{
    var ref = document.getElementById(id);
    return ref.offsetHeight;
}

function setBackgroundHeight(id, height, min)
{
    var bg = document.getElementById(id);
    if(bg == undefined)
    {
        return;
    }
    if(height < min)
    {
        height = min;
    }
    bg.style.height = height + 'px';
}

function setElementTop(id, top, min)
{
    var elm = document.getElementById(id);
    if(top < min)
    {
        top = min;
    }
    var i = top;
    elm.style.top = i + 'px';
}

function getTop(id)
{
    var elm = document.getElementById(id);
    var y = 0;
    while(elm != null)
    {
        y += elm.offsetTop;
        elm = elm.offsetParent;
    }
    return y;
}

function getBottom(id)
{
    var elm = document.getElementById(id);
    var y = elm.offsetHeight;
    while(elm != null)
    {
        y += elm.offsetTop;
        elm = elm.offsetParent;
    }
    return y;
}

function validate_required_field(field, error_message)
{
    with(field)
    {
        if(value == null || value == "")
        {
            alert(error_message);
            return false;
        }
    }
    return true;
}

function validate_email(email, error_message)
{
    with(email)
    {
        apos=value.indexOf("@");
        dotpos=value.lastIndexOf(".");
        if (apos<1||dotpos-apos<2)
        {
            alert(error_message);
            return false;
        }
    }
    return true;
}

function validate_article_fields(article)
{
    with(article)
    {
        if(article_state.length == 3 && article_state[2].checked)
        {
            return confirm("Er du sikker p\u00E5 at ville slette kladden?");
        }
        if(!validate_required_field(article_caption, "Overskrift skal v\u00E6re udfyldt"))
        {
            return false;
        }
        if(article_state[1].checked)
        {
            if(!confirm("Det har desv\u00E6rre vist sig, at nogen ikke har holdt en god tone. Derfor skal indholdet af artikler f\u00F8rst godkendes af bestyrelsen.\n\nEr du sikker p\u00E5 at ville sende kladden til godkendelse?"))
            {
                return false;
            }
        }
    }
    return true;
}

function validate_link_fields(linkentry)
{
    with(linkentry)
    {
        if(link_state.length == 3 && link_state[2].checked)
        {
            return confirm("Er du sikker p\u00E5 at ville slette kladden?");
        }
        if(!validate_required_field(link_source, "Linkets kilde skal v\u00E6re udfyldt"))
        {
            return false;
        }
        if(!validate_required_field(link_label, "Linkets overskrift skal v\u00E6re udfyldt"))
        {
            return false;
        }
        if(!validate_required_field(link_url, "Linkets adresse skal v\u00E6re udfyldt"))
        {
            return false;
        }
        if(link_state[1].checked)
        {
            if(!confirm("Er du sikker p\u00E5 at ville publicere kladden?"))
            {
                return false;
            }
        }
    }
    return true;
}

function validate_new_user_fields(user)
{
    with(user)
    {
        if(!validate_required_field(handle, "Login navn skal udfyldes"))
        {
            return false;
        }
        if(!validate_required_field(password, "Kodeord skal udfyldes"))
        {
            return false;
        }
        if(!validate_required_field(password_repeat, "Gentagelse af kodeord skal udfyldes"))
        {
            return false;
        }
        if(password.value != password_repeat.value)
        {
            alert("De to kodeord er forskellige");
            return false;
        }
        if(!validate_required_field(full_name, "Der skal angives fuldt navn"))
        {
            return false;
        }
        if(!validate_email(email, "Email adressen er ikke udfyldt korrekt"))
        {
            return false;
        }
    }
    return true;
}

function validate_comment_fields(comment)
{
    with(comment)
    {
        if(!validate_required_field(full_name, "Navn skal udfyldes"))
        {
            return false;
        }
        if(!validate_email(email, "Emailadressen er enten ikke udfyldt eller ikke udfyldt korrekt"))
        {
            return false;
        }
        if(!validate_required_field(comment, "Kommentar mangler"))
        {
            return false;
        }
    }
    return true;
}

function validate_greeting_fields(greetings)
{
    with(greetings)
    {
        if(!validate_required_field(full_name, "Navn skal udfyldes"))
        {
            return false;
        }
        /*
        if(!validate_required_field(greeting, "Hilsen mangler"))
        {
            return false;
        }   */
    }
    return true;
}

function confirm_newsletter(newsletter)
{
    with(newsletter)
    {
        if(mailto[1].checked)
        {
            return confirm("Er du sikker p\u00E5 at ville sende nyhedsbrev til alle brugere?");
        }
    }
    return true;
}
