addWindowOnLoadListener( setup );

var error = null;


/******************************
 *********** SETUP ************
 ******************************/
function setup() {
    setupForm();
    setupDialogs();
}

function setupForm() {
    clear();
    getElementById( "ok-button" ).onclick = function() { 
    	if ( verifyInput() ) getElementById('registration-form').submit(); 
    	return false; 
    };
    getElementById( "clear-button" ).onclick = clear;
    getElementById( "registration-form" ).onsubmit = verifyInput;
}

function setupDialogs() {
    var dialogs = getElementsWithMatchingID( "-dialog" );
    var bottomPanel, button;
    for ( var i=0; i<dialogs.length; i++ ) {
        if ( dialogs[i].getElementsByTagName("div").length > 0 ) continue;
        bar = document.createElement("div"); 	 
        bar.className = "dialog_taskBar";
        bar.innerHTML = '<div class="dialog_taskBar">'+
            '	<div class="dialog-title" id="dialog-title-chart">'+getElementById("dialogs-title").innerHTML+'</div>'+
            '	<div class="dialog-button" id="close-chart-dialog" href="javascript:void(0)" onclick="closeCurrentDialog()"></div>'+
            '</div>';
        dialogs[i].insertBefore(bar,dialogs[i].getElementsByTagName("P")[0]);
    }
}


/******************************
 *********** ACTIONS **********
 ******************************/
function reset() {
    if ( !error ) {
        clear();
    } else if ( error == "no-user-name" ) {
        getElementById( "name" ).focus();
    } else if ( error == "bad-user-name" ) {
        getElementById( "name" ).value = "";
        getElementById( "name" ).focus();
    } else if ( error == "no-password" ) {
        getElementById( "pass1" ).focus();
    } else if ( error == "bad-password" ) {
        getElementById( "pass1" ).value = "";
        getElementById( "pass1" ).focus();
    }
}

function clear() {
    getElementById( "name" ).value = "";
    getElementById( "pass1" ).value = "";
    getElementById( "pass2" ).value = "";
    getElementById( "name" ).focus();
}

function verifyInput() {
    var login = getElementById('login').value;
    var pass1 = getElementById('pass1').value;
    var pass2 = getElementById('pass2').value;
    var eMail = getElementById('eMail').value;
    var name = getElementById('name').value;
    
    error = null;
    if ( login == "" ) {
        error = "no-user-name";
    } else if ( !login.match(/^([0-9]|[a-z]|[A-Z]| |_)+$/) ) {
        error = "bad-user-name";
    } else if ( pass1 == "" ) {
        error = "no-password1";
    } else if ( !pass1.match(/^([0-9]|[a-z]|[A-Z]|_)+$/) ) {
        error = "bad-password1";
    } else if ( pass2 == "" ) {
        error = "no-password2";
    } else if ( pass2 != pass1 ) {
        error = "passwords-dont-match";
    } else if ( eMail == "") {
        error = "no-email";
    } else if( !(eMail.indexOf("@")>=0)) {
        error = "bad-email";
    } else if( name == "") {
    	error = "no-name"
    }
    
    if ( error ) {
        showDialog( error + "-dialog" );
        return false;
    } else {
        return true;
    }
    
}

