// brilliant functions
store = '';
function register(){
	//show registration form
	if(!store) store = $('standard_content').innerHTML;
	$('standard_content').innerHTML = $('register_form').innerHTML;
	Element.hide('onpage_link');
	if($('form_register')){
		//initialize register form
		var fields = $$("#form_register input");
		//set fields required validation
		fields.each(
			function(f){
				if(!$('msg_'+f.id)) return;
				check_required(f);
				if(f.id !='email') {
					if(f.id == 'agree') Event.observe(f, 'click', function(evt){check_required(Event.element(evt)); });
					else Event.observe(f, 'change', function(evt){check_required(Event.element(evt)); });
					Event.observe(f, 'blur', function(evt){ check_required(Event.element(evt));});
				}
				else {
					Event.observe('email', 'keyup', check_email); //set email validation
					Event.observe('email', 'blur', check_email); //set email validation
				}
			}
		);

	}
}

function check_required(fld){
	var f = $(fld);
	if(f.id == 'agree'){
		$('msg_'+f.id).className = f.checked? 'msg' : 'err';
		$('msg_'+f.id).innerHTML = f.checked? '&nbsp;' : "Verplicht veld";
		return f.checked;
	}
	else{
		$('msg_'+f.id).className = f.value? 'msg' : 'err';
		$('msg_'+f.id).innerHTML = f.value? '&nbsp;' : "Verplicht veld";
		return f.value? true : false;
	}
}


answer1 = answer2 = answer3 = function(){
	if(!store) store = $('standard_content').innerHTML;
	$('standard_content').innerHTML = $('answer_form').innerHTML;
	Element.hide('onpage_link');
	if($('form_answer')){
		//initialize answer form
		var fields = $$("#form_answer input");
		//set fields required validation
		//set fields required validation
		fields.each(
			function(f){
				if(!$('msg_'+f.id)) return;
				check_required(f);
				if(f.id !='email') {
					Event.observe(f, 'change', function(evt){check_required(Event.element(evt)); });
					Event.observe(f, 'blur', function(evt){ check_required(Event.element(evt));});
				}
				else {
					Event.observe('email', 'keyup', check_email_answer); //set email validation
					Event.observe('email', 'blur', check_email_answer); //set email validation
				}
			}
		);

	}
}

function check_email(evnt) {
	//check e-mail syntax
	var v = $('email').value;
	if(!validate_email(v)) {
		$('msg_email').className = 'err';
		$('msg_email').innerHTML = "Geen geldig e-mailadres";
		return;
	}
	else{
		$('msg_email').className = 'msg';
		$('msg_email').innerHTML ='Bezig met controleren...'
	}
	//ajax check existing email
	var aj = new Ajax.Updater(
		'msg_email',
		'/game.php',
		{
			method:'post',
			parameters: 'action=check_email&email='+v,
			onComplete: function(r){if($('msg_email').innerHTML != 'ok') $('msg_email').className='err';}
		}
	);
}

function check_email_answer(evnt) {
	//check e-mail syntax
	var v = $('email').value;
	if(!validate_email(v)) {
		$('msg_email').className = 'err';
		$('msg_email').innerHTML = "Geen geldig e-mailadres";
		return;
	}
	else{
		$('msg_email').className = 'msg';
		$('msg_email').innerHTML ='ok'
	}
}

function validate_email(v){
    var atom = '[-a-z0-9!#var %&\'*+\/=?^_`{|}~]';    // allowed characters for part before "at" character
    var domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)'; // allowed characters for part after "at" character
        var regex = '^' +atom + '+'+        // One or more atom characters.
        '(\.' + atom + '+)*'+               // Followed by zero or more dot separated sets of one or more atom characters.
        '@'+                                 // Followed by an "at" character.
        '(' + domain + '{1,63}\.)+'+       // Followed by one or max 63 domain characters (dot separated).
        domain + '{2,63}'+                  // Must be followed by one set consisting a period of two
        '$';
        var re = new RegExp(regex, 'i');
        //alert(regex );
        if(!re.test(v)){
            return false;
        }
        return true;
}

function go_register(frm){
	//validate form
	var invalid = $$("#form_register .err");
	if(invalid.length > 0) {alert("Controleer alle invoervelden!");return;}

	//ajax request
	var pars = Form.serialize(frm);
	var aj = new Ajax.Updater(
		'standard_content',
		'/game.php',
		{
			method:'post',
			parameters: pars,
			onComplete: function(r){$('standard_content').innerHTML += "<a href='#' onClick='restore();return false;'>Afsluiten</a>"}
		}
	);
}

function go_answer(frm){
	var invalid = $$("#form_answer .err");
	if(invalid.length > 0) {alert("Please check your input!");return;}

	//ajax request
	var pars = Form.serialize(frm);
	var aj = new Ajax.Updater(
		'standard_content',
		'/game.php',
		{
			method:'post',
			parameters: pars,
			onComplete: function(r){$('standard_content').innerHTML += "<a href='#' onClick='restore();return false;'>Afsluiten</a>"}
		}
	);
}

function restore(){
	if(store) $('standard_content').innerHTML = store;
	Element.show('onpage_link');
	store ='';

}