var dateTimePickers = {
		init : function() {
			this.initDatePickers();
			this.initTimePickers();
		},
		disabledDays : [[]],
		initDatePickers : function() {
			if(!$('.datePicker').hasClass('extended')){
				$('.datePicker').datepicker({ 
					'constrainInput': false,
					onClose: function(dateText, inst) { }
				});
			}else{
				$('.datePicker').datepicker({ 
					'constrainInput': false,
					'minDate': new Date(),
					onClose: function(dateText, inst) { 
						var currentDay = $('.initDateModified').val();
						var currentMonth = "01" + currentDay.substring(2,currentDay.length);
						$('.cbCurrentDate').val(currentMonth);
						$('.cbCurrentDate').trigger('change');
					},
					onChangeMonthYear: function(year, month, inst) { 
						$('.cbCurrentDate').val("01/"+month+"/"+year);
						$('.cbCurrentDate').trigger('change');
					},
					beforeShowDay: $.proxy(function(date){
							for (i = 0; i < this.disabledDays.length; i++) {
						      if (date.getMonth() == this.disabledDays[i][0] && date.getDate() == this.disabledDays[i][1]) {
						    	  return [true, 'enabled'];
						      }
						    }
							return [false, 'disabled'];
						}, this)
				});
			}
			$('.datePicker .ui-datepicker').css('display','none');
			$('.datePicker').removeClass('datePicker');
		},
		initTimePickers : function() {
			$('.timePicker').each(function() {
				var selectH = '<select name="selectHour" class="selectHour">';
				var initDayHour = 8;
				for(var i=0; i<24; i++) {
					var h = i+initDayHour;
					if(h>=24) { h = h-24; }
					if(h<10)  { h = '0'+h; }
					selectH += '<option value="'+h+'">'+h+'</option>';
				}
				selectH += '</select>';
				
				var selectM = '<select name="selectMinute" class="selectMinute">';
				for(var i=0; i<60; i=i+5) {
					var m = i;
					if (m<10) { m = '0'+i; }
					selectM += '<option value="'+m+'">'+m+'</option>';
				}
				selectM += '</select>';
				
				var fakeTimePicker = '<span class="fakeTimePicker">'+selectH+' : '+selectM+'</span>';
				$(this).after(fakeTimePicker);
				
				if($(this).val() == '') { $(this).val('00:00:00'); }
				else { $('.fakeTimePicker').val($(this).val()); }
			
				$('.selectHour').change(function(){
					var time = $(this).parent().prev().val();
					var newTime = $(this).val() + time.substring(2,8);
					$(this).parent().prev().val(newTime);
				});
				
				$('.selectMinute').change(function(){
					var time = $(this).parent().prev().val();
					var newTime = time.substring(0,3) + $(this).val() + time.substring(5,8);
					$(this).parent().prev().val(newTime);
				});
				
				$(this).change(function(){
					var time = $(this).val();
					var h = time.substring(0,2);
					var m = parseInt(time.substring(3,5),10);
					m = m-(m%5);
					if(m<10) {  
						if(m==5) { m = '05'; }
						else { m = '00'; }
					}
					$(this).next().find('.selectHour').val(h);
					$(this).next().find('.selectMinute').val(m);
					
					$(this).next().find('.selectMinute').trigger('change');
				});
				
				$(this).trigger('change');
				$(this).css('display','none');
				
				$(this).removeClass('timePicker');
			});
		}
};

$(function() {
	dateTimePickers.init();
});
