var inputs;

var ALERT_EMPTY_FIELDS = "Du glömde fylla i alla fält.";

Event.observe( window, 'load', init );

function init()
{
    var length;

    var form = $( "signupForm" );
    form.addClassName( "dynamic" );

    form.observe( "submit", this.onSubmit_form );
    //    form.onsubmit = function() { return false; }

    var labels = $$( "label" );
    inputs = $$( "input.text, textarea" )
    
    length = labels.length;
    var label;
    var input;
    for ( var i = 0; i < length; i++ ) {
	    label = labels[i];
	    input = $( label.readAttribute( "for" ) );

	    if ( label && input ) {

	        input.emptyValue = label.innerHTML;

	        input.observe( "blur", this.onBlur_input );
	        input.observe( "focus", this.onFocus_input );

	        input.isEmpty = function() {
		        var currentValue = this.getValue();

		        return ( currentValue == "" || currentValue == this.emptyValue );
	        }

	        input.updateValue = function() {
                //		console.log( "updateValue " + this );
                //		console.log( this.emptyValue );

		        if ( this.isEmpty() ) {
		            this.value = this.emptyValue;
		            this.addClassName( "empty" );
		        }
	        }

	        input.updateValue();
	    }
    }

}


function onBlur_input( event )
{
    var input = event.element();
    //    console.log( "onBlur_input " + input  );

    input.removeClassName( "error" );

    input.updateValue();
}

function onFocus_input( event )
{
    var input = event.element();
    //    console.log( "onFocus_input " + event );
    //    alert( "focus!" );

    input.removeClassName( "error" );

    var currentValue = input.getValue();
    if ( currentValue == input.emptyValue ) {
	    input.value = "";
	    this.removeClassName( "empty" );
    }
}

function onSubmit_form( event )
{
    //    console.log( "onSubmit_form" );

    var hasEmptyField = false;

    var length = inputs.length;
    var input;
    for ( var i = 0; i < length; i++ ) {
	    input = inputs[i];
	    
	    if ( input.isEmpty() ) {
            //	    console.log( "forgot " + input );
	        hasEmptyField = true;
	        input.addClassName( "error" );
	    }
    }

    $( "radio" ).removeClassName( "error" );

    var radios = $( "signupForm" ).getInputs( "radio", "baptised" );
    //    console.log( radios );

    var hasEmptyRadio = true;

    length = radios.length;
    var radio;
    for ( var i = 0; i < length; i++ ) {
	    radio = radios[i];

	    if ( radio.getValue() != null ) {
	        hasEmptyRadio = false;
	        break;
	    }
    }

    if ( hasEmptyRadio ) {
        //	console.log( "error radio" );
	    $( "radio" ).addClassName( "error" );
	    hasEmptyField = true;
    }

    if ( hasEmptyField ) {
	    alert( ALERT_EMPTY_FIELDS );
	    Event.stop( event );
    }
    else {
	    $( "submit" ).disable();
    }
}