    function toggle_upload () {
        if ( document.getElementById( "uploadfield" ).disabled == false ) {
            document.getElementById( "uploadfield" ).disabled = true;
            document.getElementById( "uploadfield" ).value = "";
            document.getElementById( "alnfile_warning" ).style.display = "none";
            document.forms[0].alnprovided.value = "0";
        } else if ( document.getElementById( "uploadfield" ).disabled == true ) {
            document.getElementById( "uploadfield" ).disabled = false;
            document.forms[0].alnprovided.value = "1";
        }
    }

    function validate_required( field, message ) {
        with ( field ) {
            if ( value == null || value == "" ) {
                message.style.display = "inline";
                field.style.border = "3px solid #FF3300";
                return false;
            } else {
                message.style.display = "none";
                field.style.border = "";
                return true;
            }
        }
    }

    function check_between_0_and_1( field, message ) {
        with ( field ) {
            check_value = parseFloat( value );
            if ( isNaN ( check_value ) || value <= 0 || value >= 1 ) {
                message.style.display = "inline";
                field.style.border = "3px solid #FF3300";
                return false;
            } else {
                message.style.display = "none";
                field.style.border = "";
                return true;
            }
        }
    }

    function check_positive( field, message ) {
        with ( field ) {
            check_value = parseFloat( value );
            if ( isNaN ( check_value ) || value <= 0 ) {
                message.style.display = "inline";
                field.style.border = "3px solid #FF3300";
                return false;
            } else {
                message.style.display = "none";
                field.style.border = "";
                return true;
            }
        }
    }
    
    function restore()
    {
        document.getElementById( "proteinin_warning" ).style.display = "none";
        document.getElementById( "alnfile_warning" ).style.display = "none";
        document.getElementById( "c1_warning" ).style.display = "none";
        document.getElementById( "c2_warning" ).style.display = "none";

        document.getElementById( "c1" ).value = "0.80";
        document.getElementById( "c2" ).value = "2.00";
        document.getElementById( "proteinin" ).value = "";
        document.getElementById( "uploadfield" ).value = "";

        document.getElementById( "uploadfield" ).disabled = true;
        document.getElementById( "uploadfield" ).value = "";
        document.getElementById( "alnfile_warning" ).style.display = "none";
        document.getElementById( "faln" ).checked = true;
        document.getElementById( "scoring_choice" ).selectedIndex = 0;

        var a = document.getElementsByTagName('input');
        for ( var i=0 ; i < a.length ; i++ ) {
            if ( a[ i ].type == 'text' )
            a[i].style.border = "";
        }
        
        document.forms[0].alnprovided.value = "0";
        
    }

    function validate_form( ) {

        var return_value = true;
        var sprotid = document.getElementById( "proteinin" );
        var proteinin_warning = document.getElementById( "proteinin_warning" );
        var c1 = document.getElementById( "c1" );
        var c1_warning = document.getElementById( "c1_warning" );
        var c2 = document.getElementById( "c2" );
        var c2_warning = document.getElementById( "c2_warning" );
        var alnfile = document.getElementById( "uploadfield" );
        var alnfile_warning = document.getElementById( "alnfile_warning" );
        
        if ( validate_required( sprotid, proteinin_warning ) == false )
        {
            return_value = false;
        } 

        if ( document.getElementById( "uploadfield" ).disabled == false && validate_required( alnfile, alnfile_warning ) == false )
        {
            return_value = false;
        }

        if ( check_between_0_and_1( c1, c1_warning ) == false )
        {
            return_value = false;
        }

        if ( check_positive( c2, c2_warning ) == false )
        {
            return_value = false;
        }
 
        return return_value;
        
    }
