DateToSelect = function(){
	var the_element;
	
	function createDateSelectBox(date,max_year){
		var year = parseInt(date.substr(0,4),10);
		var month = parseInt(date.substr(5,2),10);
		var date = parseInt(date.substr(8,2),10);
		
		mo=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
		
		var dateHTML='<select id="selectMonth">';
		for( i = 1; i <= 12; i++ ){
			dateHTML += '<option value="'+((i<10)?'0'+i:i)+'"';
			if( month == i){
				dateHTML += 'selected="selected"';
			}
            
			dateHTML+='>'+mo[i-1]+'</option>';
		}
        
		dateHTML += '</select>';
		dateHTML += '<select id="selectDay">'
		
		for( i = 1; i <= 31; i++){
			dateHTML += '<option value="'+((i<10)?'0'+i:i)+'"';
			if( date == i ){
				dateHTML += 'selected="selected"';
			}
			dateHTML += '>'+i+'</option>';
		}
		iyear = new Date();
		if(max_year == -1){
			    max_year=iyear.getFullYear()-18;    
		}else{
			//noop
		}
		
		dateHTML += '</select>';dateHTML+='<select id="selectYear">';for(i=max_year;i>=1938;i--){dateHTML+='<option value="'+i+'"';if(year==i){dateHTML+='selected="selected"';}
		dateHTML += '>'+i+'</option>';}
		dateHTML += '</select>';
		return dateHTML;
	};
		
	function checkLinkedDays(){
		var daysInMonth = 32-new Date($("#selectYear").val(),$("#selectMonth").val()-1,32).getDate();
		
		$("#selectDay option").attr("disabled","");
		$("#selectDay option:gt("+(daysInMonth-1)+")").attr("disabled","disabled");
		
		if ( $("#selectDay").val() > daysInMonth ){
			$("#selectDay").val(daysInMonth);
		}
		
		populateInput();
	};

	function populateInput(){
		$(the_element).val($("#selectYear").val()+"-"+$("#selectMonth").val()+"-"+$("#selectDay").val());
	};
	
	return { 
		init:function(element,minYear,maxYear){
			if ( $('#selectMonth').length > 0 || $('#selectDay').length > 0 || $('#selectDay').length > 0 ){
				return;
			}
			
			the_element = element;
			var the_date=$(element).val();
			
			if(!the_date&&!minYear){
				the_date='1940-01-01';
			}else if(!the_date&&minYear){
				the_date=minYear+'-01-01';
			}
			
			var date_test = createDateSelectBox(the_date,maxYear);
			
			$(element).hide().before(date_test);
			
			if(!maxYear){
				max_year=(new Date().getFullYear())-18;
			}
			
			$(element).datepicker({
				minDate:new Date(new Date().getFullYear()-70,1-1,1),
				maxDate:new Date(new Date().getFullYear(),12-1,31)});
				
			$("#selectMonth, #selectYear").change(checkLinkedDays);$('#selectDay').change(populateInput);
		}
	};
};

