$(function() {
	var SEPARATEUR = "/";
	var KEY_LEFT = "37";
	var KEY_UP = "38";
	var KEY_RIGHT = "39";
	var KEY_DOWN = "40";
	var KEY_DELETE = "46";
	var KEY_BACKSPACE = "8";
	var KEY_TAB = "9";
	
	// on affecte un masque de saisie sur tous les champs date
	$("input[type='text'].date").each(function() {
		$(this).keydown(function(event) {
			if (event.keyCode != KEY_LEFT && event.keyCode != KEY_RIGHT && event.keyCode != KEY_UP && event.keyCode != KEY_DOWN
		    	&& event.keyCode != KEY_DELETE && event.keyCode != KEY_BACKSPACE) {
	            if ($(this).val().length == 2 || $(this).val().length == 5) {
	                $(this).val($(this).val() + SEPARATEUR);
	            }
	        }
		});
		$(this).keypress(function(event) {
			var nbCaracteres = $(this).val().length;
			var c = String.fromCharCode(event.which);
	        // annule le caractere si non conforme
	        if ((event.keyCode != KEY_TAB
                    && event.keyCode != KEY_BACKSPACE
                    && event.keyCode != KEY_DELETE
                    && event.keyCode != KEY_LEFT
                    && event.keyCode != KEY_RIGHT
                    && !(
                           isDigit(c)
                           && nbCaracteres < 10
                           && nbCaracteres != 2
                           && nbCaracteres != 5
                    )
                    && !(
                           event.which == '/'
                           && (nbCaracteres == 2 || nbCaracteres == 5))
	                )
	                || event.which == '.'
	             )
	        {
	            return false;
	        }
		});
		$(this).keyup(function(event) {
			if (event.keyCode != KEY_LEFT && event.keyCode != KEY_RIGHT && event.keyCode != KEY_UP && event.keyCode != KEY_DOWN
				&& event.keyCode != KEY_DELETE && event.keyCode != KEY_BACKSPACE) {
	            if ($(this).val().length > 3 && $(this).val().length < 6) {
	                var textSplite = $(this).val().split(SEPARATEUR);
	                if (textSplite.length < 2) {
	                    $(this).val($(this).val().substring(0, 2) + SEPARATEUR + $(this).val().substring(2));
	                }
	            }
	            if ($(this).val().length == 2 || $(this).val().length == 5) {
	                $(this).val($(this).val() + SEPARATEUR);
	            }
	        }
		});
		$(this).focus(function() {
			if ($(this).val() == "jj/mm/aaaa") {
				$(this).val("");
			}
		});
		$(this).blur(function() {
			if ($(this).val() == "") {
				$(this).val("jj/mm/aaaa");
			}
		});
	});
});

function isDigit(c) {
	return ((c >= "0") && (c <= "9"))
}