(function() {  
	$.fn.numericOptions = function(settings){
		settings = jQuery.extend({
			remove:true
			,from:1
			,to:31
			,selectedIndex:0
			,valuePadding:0
			,namePadding:0
		},settings);
		//error check
		if(!(settings.from+'').match(/^\d+$/)||!(settings.to+'').match(/^\d+$/)||!(settings.selectedIndex+'').match(/^\d+$/)||!(settings.valuePadding+'').match(/^\d+$/)||!(settings.namePadding+'').match(/^\d+$/)) return;
		if(settings.from > settings.to) return;
		if(settings.to - settings.from < settings.selectedIndex) return;
		//add options
		if(settings.remove) this.children().remove();
		var padfunc = function(v,p){
			if((''+v).length < p){
				for(var i = 0,l = p - (v+'').length;i < l ;i++){
					v = '0' + v;
				}
			}
			return v;			
		}
		for(var i=settings.from,j=0;i<=settings.to;i++,j++){
			this.each(function(){
				this.options[j] = new Option(padfunc(i,settings.namePadding),padfunc(i,settings.valuePadding));
				});
		}
		this.each(function(){
				if(jQuery.browser.opera){
					this.options[settings.selectedIndex].defaultSelected = true;
				}else{
					this.selectedIndex = settings.selectedIndex;
				}
			});
		return this;
	};
})(jQuery);


