/*
 * 14.09.2003 ralf kramer <rk@belisar.de>
 * A collection of functions for validating html form contents
 *
 */


/**
 * Throws an alert if any of the mandatory field is empty
 *
 * The param mandatory_fields contains the id's of all mandatory fields.
 *
 * @author  Ralf Kramer
 * @param   string  mandatory_fields:  a list of mandatory form fields seperated by a whitespace
 * @return  boolean
 */
function hasEmptyFields( mandatory_fields, check_passwords, message )
{
    if( check_passwords )
        if( hasInvalidPasswords() )
            return true;

    field_array = mandatory_fields.split( " ");
    empty_fields = "";
    for( i = 0; i < field_array.length; i++ )
    {
        var field = document.getElementById( field_array[i] );
        if( field.value == "" )
        {
            field.style.border = '1px solid #ff0000';
            field.style.background = '#ffc6c6';
            empty_fields = empty_fields + field_array[i];
            //field.className = 'input_error';
        }
        else
        {
			field.style.border = '1px solid #339933';
            field.style.background = '#aee3ae';

            //field.className = 'input_valid';
        }
    }

    if( empty_fields.length > 2 )
    {
        alert( message );
        return true;
    }

    return false;
}

function hasInvalidPasswords()
{
    var password            = document.getElementById( 'password' );
    var confirm_password    = document.getElementById( 'confirm_password' );

    if( password.value != confirm_password.value  )
    {
        password.style.border           = '1px dotted red';
        confirm_password.style.border   = '1px dotted red';

        alert( 'Die Passwörter stimmen nicht überein' );
        return true;
    }

    return false;

}

function isNumber( element )
{
    element = document.getElementById( element );

    if( element.value.match( '^[0-9]*$' ) == null )
    {
        this.isShown = true
        alert( 'Bitte geben Sie hier nur Zahlen ein.\n Andere Zeichen oder Buchstaben können nicht verarbeitet werden' );

        element.style.border = '1px solid #ff0000';
        element.style.background = '#ffc6c6';
        element.value           = '';
        element.focus();
    }
    else
    {
        if( this.isShown )
            element.style.border = '1px dotted green';
    }
}

function redirect( url )
{
    window.location.href = url;
}

function confirmDelete( url, question )
{
    if( confirm( question ) )
        window.location.href = url;
}

function setSelectedOption( select_id , option_value )
{
    options = document.getElementById( select_id ).options;
        for( j = 0 ; j < options.length ; j ++ )
        {
            options[j].selected = false;
            if( options[j].value == option_value )
                options[j].selected = true;
        }
}

function toggleCheckboxStatus(element)
{
    //alert( $(element).checked );
    if($(element).checked == false)
        $(element).checked = true;
    else
        $(element).checked = false;
}

function IsEmailValid(checkThisEmail) {


    var myEMailIsValid = true;
    //var myAtSymbolAt = checkThisEmail.indexOf('@');
    var myAtSymbolAtIndex = 0;
    var myAtSymbolAt = 0;
    var myLastDotAt = checkThisEmail.lastIndexOf('.');
    var mySpaceAt = checkThisEmail.indexOf(' ');
    var myLength = checkThisEmail.length;
    var AtSymQnt = 0;

    for( var i = 0 ; i < checkThisEmail.length ; i++ )
    {
        if( checkThisEmail.charAt(i) == '@' )
        {
            myAtSymbolAt = myAtSymbolAt + 1;
            myAtSymbolAtIndex = i;
        }
    }

    if (myAtSymbolAtIndex == 0 )
     {myEMailIsValid = false}

    if (myAtSymbolAt != 1 )
     {myEMailIsValid = false}

    if (myLastDotAt < myAtSymbolAt)
     {myEMailIsValid = false}

    if (myLength - myLastDotAt <= 2)
     {myEMailIsValid = false}

    if (mySpaceAt != -1)
     {myEMailIsValid = false}

    return (myLength?myEMailIsValid:false)
}