$(document).ready(function()
{
	try{
		$('input.numeric').keyup(function(){
			
			if( typeof $(document)[0].selection != 'undefined' )
			{
				/* Insertion du code de formatage */
				var range = $(document)[0].selection.createRange();
				
				// on récupère la taille d'origine du texte
				var origi_length	= $(this).val().length;
				
				var range 			= $(this)[0].createTextRange();
				range.moveToBookmark($(document)[0].selection.createRange().getBookmark());
				range.moveEnd('character', $(this).val().length);
				
				var start			= $(this).val().length - range.text.length;
				
				var range 			= $(this)[0].createTextRange();
				range.moveToBookmark( $(document)[0].selection.createRange().getBookmark() );
				range.moveStart( 'character', -$(this).val().length );
				
				var end				= range.text.length;
				
				if( end < start )
					end = start;
				
				$(this).val( $(this).val().replace(/[^0-9,]/ig,"") );
					
				// on récupère la taille du texte
				var dif				= origi_length - $(this).val().length;
				
				var range 			= $(this)[0].createTextRange();
				range.moveStart( 'character', start - dif );
				range.moveEnd( 'character', -$(this).val().length + end - dif );
				range.select();
				
				
			}
			else
			if( typeof $(this)[0].selectionStart != 'undefined' )
			{
				// on récupère la position du curseur
				var start			= $(this)[0].selectionStart;
				var end				= $(this)[0].selectionEnd;
				
				// on récupère la taille d'origine du texte
				var origi_length	= $(this).val().length;
				
				// on retire les retours à la ligne
				$(this).val( $(this).val().replace(/[^0-9,]/ig,"") );
				
				// on récupère la taille du texte
				var dif				= origi_length - $(this).val().length;
				
				// si il y a une différence c'est qu'on a retiré un retour a la ligne
				if( dif > 0 )
					dif = 1;
			
				// on repositione le curseur
				$(this)[0].selectionStart	= start - dif;
				$(this)[0].selectionEnd		= end - dif;
			}
			
			
			
		});
	}catch(e){
	}
});
