var scheduling_helpers = function(){
	$("#start_time").change(function(){
		var timeString = $(this).val();
		var timeNow = new Date("1/1/2007 " + Date.standardizeTime(timeString));
		var newTime = addHour(timeString);
		$(this).val(getFormattedTime(timeNow, timeString));
		$("#end_time").val(newTime);
	});
	$("#end_time").change(function(){
		var timeString = $(this).val();
		var timeNow = new Date("1/1/2007 " + Date.standardizeTime(timeString));
		$(this).val(getFormattedTime(timeNow, timeString));
	});
	$('#first_workout_time').change(function(){
		var timeString = $(this).val();
		var timeNow = new Date("1/1/2007 " + Date.standardizeTime(timeString));
		$(this).val(getFormattedTime(timeNow, timeString));
	});
	$('#followup_time').change(function(){
		var timeString = $(this).val();
		var timeNow = new Date("1/1/2007 " + Date.standardizeTime(timeString));
		$(this).val(getFormattedTime(timeNow, timeString));
	});		
}
$(document).ready(scheduling_helpers);


Date.standardizeTime = function(timeString){
	var re = new RegExp(/^0*(\d{1,2}):(\d{1,2})?\s?([aApP]\.?[mM]?\.?)?/);
	var parsedTime = null;
	if(re.test(timeString)){
		var parsedTime = re.exec(timeString);	
	}
	var re = new RegExp(/^0*(\d{1})(\d{2})(?!\d)\s?([aApP]\.?[mM]?\.?)?/);
	if(re.test(timeString) && !parsedTime){
		var parsedTime = re.exec(timeString);	
	}
	var re = new RegExp(/^0*(\d{1,2})()\s?([aApP]\.?[mM]?\.?)?/);
	if(re.test(timeString) && !parsedTime){
		var parsedTime = re.exec(timeString);
	}
	var re = new RegExp(/^0*(\d{1,2})(\d{1,2})?\s?([aApP]\.?[mM]?\.?)?/);
	if(re.test(timeString) && !parsedTime){
		var parsedTime = re.exec(timeString);	
	}
	if(!parsedTime){
		var parsedTime = [0,8,0,"AM"]
	}
	
	var hour = 12;
	var minutes = "00";
	var meridian = " AM";

	if(parsedTime[1]){
		hour = parsedTime[1]
		if((hour*1)>12){
			hour = hour * 1 -12;
			meridian = " PM";
		}else if((hour*1)==12){
			meridian = " PM";
		}
	}
	if(parsedTime[2]){
		minutes = parsedTime[2].toString();
		if(minutes.length < 2){
			minutes = "0" + minutes;
		}
	}
	if(parsedTime[3]){
		re = new RegExp(/[aA]/)
		isMorning = re.test(parsedTime[3]);
		if(isMorning){
			meridian = " AM";
		}else{
			meridian = " PM";
		}
	}
	return hour + ":"+ minutes+meridian;
}

addHour = function(timeString){
	var time = new Date( "1/1/2007 "+ Date.standardizeTime(timeString));
	time.setHours(time.getHours()+1);
	return getFormattedTime(time, timeString);
}
getFormattedTime = function(time, timeString){
	if(timeString.search(/([aApP]\.?[mM]?\.?)/)>-1){
		if(time.getHours()>12){
			newTime =  (time.getHours()-12).toString() + ":" + getFormattedMinutes(time) + " PM";
		}else if(time.getHours()==12){
			newTime =  time.getHours().toString() + ":" + getFormattedMinutes(time) + " PM";				
		}else{
			newTime =  time.getHours().toString() + ":" + getFormattedMinutes(time) + " AM";
		}
	}else{
		newTime = time.getHours().toString() + ":" + getFormattedMinutes(time);
	}
	return newTime;
}

getFormattedMinutes = function(time){
	var min = time.getMinutes();
	if(min < 10){
		min = "0"+min;
	}else{
		min = min.toString();
	}
	return min;
}