$(document).bind("reveal.facebox",init_form_registration);

function init_form_registration()
{	
	
	$("#reg_discl").bind("click", function(e){
	    
	    a = $(this);
	    discl = $("#form_discl");
	    discl_content = $("#form_discl_content");
	    
	    if(discl_content.html() == '') {
    	    loc = a.attr("href") + " div.content";
	        discl_content.load(loc);
	    }
	    
	    discl.fadeIn(500).show();
	    
	    e.preventDefault();
	    
	});
	
	$("#form_discl_close").click(function(){
	    $("#form_discl").fadeOut(500);
	});
	
	$("#button_register").click(function ()
	{
		
		$("#form_discl:visible").fadeOut(500);
		
		var valid = true;
		if (!check_sex()) 				valid = false;
		if (!check_firstname())			valid = false;
		if (!check_lastname())			valid = false;
		if (!check_birthdate(true))		valid = false;
		//if (!checkAge())				valid = false;
		if (!check_street())			valid = false;
		if (!check_housenumber())		valid = false;
		if (!check_zip())				valid = false;
		if (!check_email())				valid = false;
		if (!check_password())			valid = false;
		if (!check_passwordv())			valid = false;
		if (!check_generalconditions())	valid = false;
	   	
	    if (valid)
	    {
	      	var form_data = $("form[id='form_register']").serialize(); 	
	  
	  		//doregistration
	  		$.post("/modules/registration/doregistration.php", form_data, handle_response,"json");
	  	
		}
		
    });
   
   
	$(":input").blur(function () {
		switch ($(this).attr("name")){
			case 'sex':
				check_sex();
				break;
			case 'firstname':
				check_firstname();
				break;
			case 'lastname':
				check_lastname();
				break;
			case 'birthdate_d':
			case 'birthdate_m':
			case 'birthdate_y':
				check_birthdate(false);
				//checkAge();
				break;
			case 'street':
				check_street();
				break;
			case 'housenumber':
				check_housenumber();
				break;
			case 'zipnr':
			case 'zipltr':
				check_zip(true);
				break;
			case 'email':
				check_email();
				break;
			case 'password':
				check_password();
				break;
			case 'passwordv':
				check_passwordv();
				break;
			case 'generalconditions':
				check_generalconditions();
				break;
		}
	});
	
	$(":input").keyup(function () {
		switch ($(this).attr("name")){
			case 'zipnr':
				check_zip_length();
				break;
		}
	});
	
};


function handle_response(data)
{
	//success
	if (data.status === 1)
	{
		$("#register_form").hide(); //.remove();
		$("#register_head").text("Bedankt");
		$("#register_text").text(data.msg);
		$("#register_text").css("color","");
	}
	else if (data.status < 0) //error
	{
		$back_link = $('<a></a>').attr('href', '#').click(function() {
			$('#register_form').show();
			$(this).remove();
			$('#li_email .true').css('display','none');
			$('#li_email .false').css('display', 'inline');
			return false;
		}).html(' <br> Klik hier om terug te gaan. ');
		
		$("#register_form").hide();  //.remove();
		$("#register_head").text("Fout");
		$("#register_text").text(data.msg).append($back_link);
		$("#register_text").css("color","red");
	}
	else
	{
		$("#register_form").hide(); //.remove();
		$("#register_head").text("Fout");
		$("#register_text").text("Er is een fout ontstaan tijdens het registreren.");
		$("#register_text").css("color","red");		
	}
}




/* check form elements */

function check_sex()
{
	var li	= $("#li_sex");
	
	if ( ! $("input[name='sex']:checked").val() ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
	}
	else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;		
	}
}
	
function check_firstname()
{
	var li	= $("#li_firstname");
	var input = li.children('span').children('input');
		
    if(input.val().length<2 ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
    }
    else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;    	
    }
}

function check_lastname()
{
	var li	= $("#li_lastname");
	var input = li.children('span').children('input');
		
    if(input.val().length<2 ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
    }
    else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;    	
    }
}

function check_street()
{
	var li	= $("#li_street");
	var input = li.children('span').children('input');
		
    if(input.val().length<2 ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
    }
    else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;    	
    }
}

function check_birthdate(show_error)
{
	var li	= $("#li_birthdate");
	var inputs = li.children(':input');
	var valid = true;
	
	
	jQuery.each(inputs, function() {
      if(this.value == '0')
      	valid = false;
    });
	
    if ( valid)
    {
	    //li.children('.true').css('display','inline-block');
	    li.children('.true').css('display','inline');
	    li.children('.false').css('display','none');
	    if(!checkAge()) {
	      valid = false;
	    }
    }
    else
    {
	    li.children('.true').css('display','none');
	    if (show_error)
	    	li.children('.false').css('display','inline');
	    	//li.children('.false').css('display','inline-block');
    }
    
    return valid;
}

function checkAge() {
	var valid = true;
	var min_age = 12;
  
	var year = parseInt($("#birthdate_y").val());
	var month = parseInt($("#birthdate_m").val()) - 1;
	var day = parseInt($("#birthdate_d").val());
  
	var theirDate = new Date((year + min_age), month, day);
	var today = new Date;
  
	if ((today.getTime() - theirDate.getTime()) < 0) {
		$("#li_birthdate").children('.true').css('display','none');
		$("#li_birthdate").children('.false').html('<img src="/images/form/false.png" alt="" /> Helaas, je bent te jong om te mogen deelnemen aan ClickWin.');
		$("#li_birthdate").children('.false').css('display','inline');
		var valid = false;
	} else {
		$("#li_birthdate").children('.true').css('display','inline');
	    $("#li_birthdate").children('.false').css('display','none');
	    var valid = true;
	}
	return valid;
	
}

function check_housenumber()
{
	var li	= $("#li_housenumber");
	var input = li.children('span').children('input');
		
    if(! input.val() ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
    }
    else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;
    }
}


function check_zip(get_place)
{
	var li	= $("#li_zip");
	var input_zipnr = li.children('span:first').children('input');
	var input_zipltr = li.children('span:last').children('input');
	var returnvalue = false;
	
	if ( ! /\d\d\d\d/ .test(input_zipnr.val()) ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        returnvalue = false;
    }
    else if ( ! /[a-zA-z][a-zA-z]/ .test(input_zipltr.val()) ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        returnvalue = false;
    }
    else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        returnvalue = true;
    }
    
    if (returnvalue && get_place)
    {
		jQuery.get
		(
			'/modules/registration/getplace.php',
			{postcode:input_zipnr.val()},
			function(result)
			{
	            if(result)
	            {
	            	li.children('.true').css('color','#5E5E5E');
	            	li.children('.true').html(result+' <img src="/images/form/true.png"/>');
	            }
	        }
	    )
    }
    return returnvalue;
}

function check_zip_length() {
	var li	= $("#li_zip");
	var input_zipnr = li.children('span:first').children('input');
	
	if(input_zipnr.val().length == 4) {
		li.children('span:last').children('input').focus();
	}
	
}

function check_email()
{
	var li	= $("#li_email");
	var input = li.children('span').children('input');
	
    if(!input.val().match(/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z\+\-_])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/))
    {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
    }
    else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;
    }
}

function check_password()
{
	var li	= $("#li_password");
	var input = li.children('span').children('input');
		
    if(input.val().length<4 ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
    }
    else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;    	
    }
}

function check_passwordv()
{
	var li	= $("#li_passwordv");
	var input_password = li.children('span').children('input');
	var input_passwordv = $("#li_password > span > input");
	
	if (!check_password())
	{
    	li.children('.true').css('display','none');
    	li.children('.false').css('display','none');
		return false;	
	}	
    if(input_password.val() !== input_passwordv.val() ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
    }
    else {
    	li.children('.true').css('display','inline');
    	//li.children('.true').css('display','inline-block');
    	li.children('.false').css('display','none');
        return true;
    }
}

function check_generalconditions()
{
	var li	= $("#li_generalconditions");
	var input = li.children('input');
	
	if (! input.is(":checked") ) {
    	li.children('.true').css('display','none');
    	//li.children('.false').css('display','inline-block');
    	li.children('.false').css('display','inline');
        return false;
	}
	else {
    	//li.children('.true').css('display','inline-block');
    	li.children('.true').css('display','inline');
    	li.children('.false').css('display','none');
        return true;
	}
}
