$(document).ready( function () {

	var email_form_buffer = "";
	var password_form_buffer = "";
	var mobile_form_buffer = "";
	var orig_email = "";
	var timeout = 0;
	var new_mobile = "";

	//fadeout any flashmessages 
	fadeout ( '.flash-message', 10000 );

	function flash_ok ( msg ) {
		$('.content-wrapper:first').before ( '<div class="flash-message success"><strong>OK</strong>'+msg+'</div>' );
		fadeout ( '.flash-message', 10000 );
	}

	function flash_error ( msg ) {
		$('.content-wrapper:first').before ( '<div class="flash-message error"><strong>Fout!</strong>'+msg+'</div>' );
		fadeout ( '.flash-message', 10000 );
	}
	
	function reset_forms () {

		if ( $('#email-container') && email_form_buffer.length ) {
			
			$('#email-container').html ( email_form_buffer );
			$('#edit-email-button').click (edit_email_button_click);
		}
		
		if ( $('#password-container') && password_form_buffer.length )  {
			
			$('#password-container').html ( password_form_buffer );
			$('#edit-password-button').click (edit_password_button_click);
		}
		
		if ( $('#mobile-container') && mobile_form_buffer.length ) {
			
			$('#mobile-container').html ( mobile_form_buffer );
			$('#edit-mobile-button').click (edit_mobile_button_click);
		}
	}

	//Mijn voorkeuren
	
	//minimaal 1 van alles selecteren
	$('#my-settings-form').submit ( function () {

		err = 0;
		errmsg = ""

		if ( !$('#holiday-type-checkbox-container  input:checked' ).length ) {
			errmsg = errmsg + "Selecteer minimaal 1 type <br />";
			err++;
		}

		if ( !$('#country-checkbox-container  input:checked' ).length) {
			errmsg = errmsg +  "Selecteer minimaal 1 land <br />";
			err++;
		}

		if ( !$('#price-range-checkbox-container  input:checked' ).length ) {
			errmsg = errmsg + "Selecteer minimaal 1 prijslimiet <br />";
		}
		
		if ( !$('#duration-checkbox-container  input:checked' ).length ) {
			errmsg = errmsg + "Selecteer minimaal 1 reisduur <br />";
			err++;
		}

		if ( !$('#departure-checkbox-container  input:checked' ).length ) {
			errmsg = errmsg + "Selecteer vertrektijd";
			err++;
		}

		if ( err > 0 ) {
			flash_error ( "<br />" + errmsg );
			return false;	
		}
		else
			return true;
	
	});
	
	$('#select-all-countries-label').click ( function () {
			
		if ( $('#select-all-countries').attr ( "checked" ) == true ) {	
			$('#select-all-countries').removeAttr ( "checked" );
			$('#country-checkbox-container input[type=checkbox]').removeAttr ( "checked" );
		}
		else {
			$('#select-all-countries').attr ( "checked", 'checked' );
			$('#country-checkbox-container input[type=checkbox]').attr ( "checked", "checked" );
		}
		
	});

	$('#select-all-countries' ).click ( function () {

		if ( $('#select-all-countries').attr ( "checked" ) == true )
			$('#country-checkbox-container input[type=checkbox]').attr ( "checked", "checked" );
		
		else
			$('#country-checkbox-container input[type=checkbox]').removeAttr ( "checked" );
		
		

	});

	//FIXME: click handlers could be done in one function with args !!

	//change yer email inline functionality
	function save_email_button_click () {

		//get form value
		if ( orig_email == $('#inline-email-address').val () )
				flash_error ( "Het adres is niet veranderd" )
		
		else {
			
			//store new address
			$.post ( base_url + "user/inline_email_save", { new_address: $('#inline-email-address').val () }, function (data) { 
		
				//show message
				if ( data == "1" ) {
					//restore previous form
					$('#email-container').html ( email_form_buffer );
					//re-enable click
					$('#edit-email-button').click (edit_email_button_click);
					flash_ok ( "U moet uw nieuwe adres bevestigen. Er is een mail verstuurd aan het nieuwe adres." );
				}

				else
					flash_error ( data );
			} );
		}
		
		//prevent bubble
		return false;
	}
	
	function save_email_amin_button_click(id)
	{
		$.post ( base_url + "admin/save_email/" + id, { new_address: $('#email-address').val () }, function (data) {
			if ( data == "1" ) {
					flash_ok ( "Email address was changed" );
				}
		});		
	}
	
	$('#admin_button_email_save').click ( function () {
		id = $('#user_id').val();
		save_email_amin_button_click(id);
	});
	
	
	function save_mobile_admin_button_click (id) {

		new_mobile = $('#inline-mobile').val ();
		
		//get form value
		$.post ( base_url + "admin/save_mobile/" + id, { new_mobile: $('#mobile').val () }, function (data) { 
		
			//show message
			if ( data == "1" ) {
				flash_ok ( "Mobiel nummer is veranderd" );
			}
		});
	
		//prevent bubble
		return false;
	}
	
	$('#admin_button_mobile_save').click ( function () {
		id = $('#user_id').val();
		save_mobile_admin_button_click(id);
	});

	function save_aanhef(gender)
	{
		id = $('#user_id').val();
		$.post ( base_url + "user/save_aanhef", { new_gender: gender }, function (data) {
			if ( data == "1" ) {
					flash_ok ( "Aanhef veranderd" );
				}
		});		
	}

	$('#aanhefmevrouw').click ( function () {
		save_aanhef('mevrouw');
	});

	$('#aanhefheer').click ( function () {
		save_aanhef('heer');
	});
	
	function save_password_admin_button_click (id) {
		
		//get form value
		if ( $('#password').val () == ""  )
				flash_error ( "Uw wachtwoord is te eenvoudig. Gebruik minimaal 8 karakters, cijfers en letters" );
		else {
			
			//store new address
			$.post ( base_url + "admin/save_password/" + id, { new_password: $('#password').val () }, function (data) { 
		
				//show message
				if ( data == "1" ) {
					flash_ok ( "Wachtwoord is gewijzigd." );
				}

			} );
		}
		
	
		//prevent bubble
		return false;
	}
	
	$('#admin_button_password_save').click ( function () {
		id = $('#user_id').val();
		save_password_admin_button_click(id);
	});
	

	function edit_email_button_click () {
		reset_forms ();	
		//store original form
		$.get ( base_url + "user/inline_email_form", null, function ( data ) { 
			
			email_form_buffer = $('#email-container').html ();
			$('#email-container').html ( data );
			
			//save original email address for later use	
			orig_email = $('#inline-email-address').val () 
			
			//handle enters
			$('#inline-email-address').keypress ( function ( key ) {
				
				if (key.keyCode == 13) 
					save_email_button_click ();
			});

			$('#inline-email-save').click ( save_email_button_click );
			$('#inline-email-cancel').click ( function () {
					
					$('#email-container').html ( email_form_buffer );
					$('#edit-email-button').click (edit_email_button_click);
			});

		}, 'html');

		
		//prevent bubble
		return false;
	}

	
	$('#edit-email-button').click (edit_email_button_click);
	
	//change password functionality
	
	function save_password_button_click () {
		
		//get form value
		if ( $('#inline-password').val () == ""  )
				flash_error ( "Uw wachtwoord is te eenvoudig. Gebruik minimaal 8 karakters, cijfers en letters" );
		else {
			
			//store new address
			$.post ( base_url + "user/inline_password_save", { new_password: $('#inline-password').val () }, function (data) { 
		
				//show message
				if ( data == "1" ) {
					//restore previous form
					$('#password-container').html ( password_form_buffer );
					//re-enable click
					$('#edit-password-button').click (edit_password_button_click);
					flash_ok ( "Uw wachtwoord is gewijzigd. Er is een mail naar u verstuurd met het nieuwe wachtwoord." );
				}

				else 
					flash_error ( data );
			} );
		}
		
	
		//prevent bubble
		return false;
	}

	function edit_password_button_click () {
		reset_forms ();
		$.get ( base_url + "user/inline_password_form", null, function ( data ) {
			
			password_form_buffer = $('#password-container').html ();
			$('#password-container').html ( data );

			//handle enters
			$('#inline-password').keypress ( function ( key ) {
				
				if (key.keyCode == 13) 
						save_password_button_click ();
				
			});

			$('#inline-password-save').click ( save_password_button_click );
			$('#inline-password-cancel').click ( function () {
					
					$('#password-container').html ( password_form_buffer );
					$('#edit-password-button').click (edit_password_button_click);


			});

						
		});
	}

	$('#edit-password-button').click ( edit_password_button_click);

	function save_mobile_button_click () {

		new_mobile = $('#inline-mobile').val ();
		
		//get form value
		$.post ( base_url + "user/inline_mobile_save", { new_mobile: $('#inline-mobile').val () }, function (data) { 
		
			//show message
			if ( data == "1" ) {
				//replace form with verification code form
				$.get ( base_url + "user/inline_mobile_verification_code", null, function (data) {
					
					$( '#mobile-container').html ( data );
					$( '#inline-mobile-verification-code-save' ).click ( mobile_verification_code_click );
							
				} );
				
				//re-enable click
				
				flash_ok ( "Er is een SMS verstuurd aan uw mobiele nummer met een verificatiecode. U kunt de code in het onderstaande formulier invullen" );
			} else {
					flash_error ( data );
			}
		});
	
		//prevent bubble
		return false;
	}
	
	function mobile_verification_code_click () {
		
		$.post ( base_url + "user/check_mobile_verification_code", { verification_code: $('#verification_code').val () }, function (data) {
				
			if ( data == "1" ) {		
					
					flash_ok ( "Uw mobiele nummer is gewijzigd" );
						
					$('#mobile-container').html ( mobile_form_buffer );
					$('#edit-mobile-button').parent().show();
					$('#edit-mobile-button').click (edit_mobile_button_click);
					
					$('#mobile-value').text ( new_mobile );
			} else {
				flash_error ( data );
			}
				
		});

	}

	function save_mobile () {

		new_mobile = $('#inline-mobile').val ();
		
		//get form value
		$.post ( base_url + "user/inline_mobile_save", { new_mobile: $('#inline-mobile').val () }, function (data) { 
		
			//show message
			if ( data == "1" ) {
				//replace form with verification code form
				$.get ( base_url + "user/inline_mobile_verification_code", null, function (data) {
					
					$( '#mobile-container').html ( data );
					$( '#inline-mobile-verification-code-save' ).click ( mobile_aanmeld_verificatie_click );
							
				} );
				
				//re-enable click
				
				flash_ok ( "Er is een SMS verstuurd aan uw mobiele nummer met een verificatiecode. U kunt de code in het onderstaande formulier invullen" );
			}
			
			else 
					flash_error ( data );
		});
	
		//prevent bubble
		return false;
	}
	
	function mobile_aanmeld_verificatie_click () {
		
		$.post ( base_url + "user/check_mobile_verification_code", { verification_code: $('#verification_code').val () }, function (data) {
				
			if ( data == "1" ) {		
					
					flash_ok ( "Uw mobiele nummer is geverifieerd" );
						
					$('#mobile-container').html ( "" );
					
					$('#mobileverified').val ( new_mobile );
			} else {
					
				flash_error ( data );
			}
				
		});

	}

	function edit_mobile_button_click () {
		reset_forms ();	
		
		$('#edit-mobile-button').parent().hide();
		$.get ( base_url + "user/inline_mobile_form", null, function ( data ) {
			
			mobile_form_buffer = $('#mobile-container').html ();
			$('#mobile-container').html ( data );

			//handle enters
			$('#inline-mobile').keypress ( function ( key ) {
				
				if (key.keyCode == 13) 
						save_mobile_button_click ();
				
			});

			$('#inline-mobile-save').click ( save_mobile_button_click );
			$('#inline-mobile-cancel').click ( function () {
					
					$('#mobile-container').html ( mobile_form_buffer );
					$('#edit-mobile-button').parent().show();
					$('#edit-mobile-button').click (edit_mobile_button_click);
			});


		});
	}

	$('#edit-mobile-button').click ( edit_mobile_button_click);

	function edit_firstname_button_click () {
		reset_forms ();	
		//store original form
		$.get ( base_url + "user/inline_firstname_form", null, function ( data ) { 
			
			firstname_form_buffer = $('#firstname-container').html ();
			$('#firstname-container').html ( data );
			
			//save original email address for later use	
			orig_firstname = $('#firstname-value').val () 
			
			//handle enters
			$('#inline-firstname').keypress ( function ( key ) {
				
				if (key.keyCode == 13) 
					save_email_button_click ();
			});

			$('#inline-firstname-save').click ( save_firstname_button_click );
			$('#inline-firstname-cancel').click ( function () {
					
					$('#firstname-container').html ( firstname_form_buffer );
					$('#edit-firstname-button').click (edit_firstname_button_click);
			});

		}, 'html');

		
		//prevent bubble
		return false;
	}

	function save_firstname_button_click () {

        var new_firstname = $('#inline-firstname').val();
        //store new address
        $.post ( base_url + "user/inline_firstname_save", { new_firstname : $('#inline-firstname').val () }, function (data) { 
            //show message
            if ( data == "1" ) {
                $('#firstname-container').html ( firstname_form_buffer );
                $('#firstname-value').html(new_firstname);
                $('#edit-firstname-button').click (edit_firstname_button_click);
            } else {
                flash_error ( data );
            }
        } );
		
		//prevent bubble
		return false;
	}
	$('#edit-firstname-button').click ( edit_firstname_button_click);

	function edit_tussen_button_click () {
		reset_forms ();	
		//store original form
		$.get ( base_url + "user/inline_tussen_form", null, function ( data ) { 
			
			tussen_form_buffer = $('#tussen-container').html ();
			$('#tussen-container').html ( data );
			
			//save original email address for later use	
			orig_tussen = $('#tussen-value').val () 
			
			//handle enters
			$('#inline-tussen').keypress ( function ( key ) {
				
				if (key.keyCode == 13) 
					save_email_button_click ();
			});

			$('#inline-tussen-save').click ( save_tussen_button_click );
			$('#inline-tussen-cancel').click ( function () {
					
					$('#tussen-container').html ( tussen_form_buffer );
					$('#edit-tussen-button').click (edit_tussen_button_click);
			});

		}, 'html');

		
		//prevent bubble
		return false;
	}

	function save_tussen_button_click () {

        //store new address
        var new_tussen = $('#inline-tussen').val();
        $.post ( base_url + "user/inline_tussen_save", { new_tussen: $('#inline-tussen').val() }, function (data) { 
            //show message
            if ( data == "1" ) {
                $('#tussen-container').html(tussen_form_buffer);
                $('#tussen-value').html(new_tussen);
                $('#edit-tussen-button').click (edit_tussen_button_click);
            } else {
                flash_error ( data );
            }
        } );
		
		//prevent bubble
		return false;
	}

	$('#edit-tussen-button').click ( edit_tussen_button_click);

	function edit_surname_button_click () {
		reset_forms ();	
		//store original form
		$.get ( base_url + "user/inline_surname_form", null, function ( data ) { 
			
			surname_form_buffer = $('#surname-container').html ();
			$('#surname-container').html ( data );
			
			//save original email address for later use	
			orig_surname = $('#surname-value').val () 
			
			//handle enters
			$('#inline-surname').keypress ( function ( key ) {
				
				if (key.keyCode == 13) 
					save_email_button_click ();
			});

			$('#inline-surname-save').click ( save_surname_button_click );
			$('#inline-surname-cancel').click ( function () {
					
					$('#surname-container').html ( surname_form_buffer );
					$('#edit-surname-button').click (edit_surname_button_click);
			});

		}, 'html');

		
		//prevent bubble
		return false;
	}

	function save_surname_button_click () {

        //store new address
        var new_surname = $('#inline-surname').val();
        $.post ( base_url + "user/inline_surname_save", { new_surname: $('#inline-surname').val() }, function (data) { 
            //show message
            if ( data == "1" ) {
                $('#surname-container').html(surname_form_buffer);
                $('#surname-value').html(new_surname);
                $('#edit-surname-button').click (edit_surname_button_click);
            } else {
                flash_error ( data );
            }
        } );
		
		//prevent bubble
		return false;
	}

	$('#edit-surname-button').click ( edit_surname_button_click);

    $('#inline-mobile').blur( save_mobile );
	
	$('.trip_list_order').change ( function () {
		$(this).parents('form').submit();
	});
	$('.trip_list_pp').change ( function () {
		$(this).parents('form').submit();
	});


	

});

