// SEE BELOW FOR COMMENTED VERSION

var clock = function(hourhand, minutehand) {

	if (hourhand > 12 || minutehand > 59) { return "out of range" }

	var hoursToMinutes = (hourhand * 5) + (minutehand / 12);
	var minutes        = minutehand;

	if (hoursToMinutes > 60) { hoursToMinutes -= 60 }

	var angle;

	if (hoursToMinutes > minutes) {
		angle = (hoursToMinutes - minutes) * 6;
	} else {
		angle = (minutes - hoursToMinutes) * 6;
	}

	return [angle, 360 - angle]

}


// COMMENTED
var clock = function(hourhand, minutehand) {

	// If input is out of range, quit the function
	if (hourhand > 12 || minutehand > 59) { return "out of range" }

	// Convert hours to minutes so that we have a direct comparison between input values.
	// Values:
	// - hourhand * 5: an hour times five equals the same position in minutes.
	//   Example: Hour 6 is at the 30 minute position. 6 * 5 = 30.
	// - minutehand / 12: there are five 'ticks' of minutes between hour positions. Across
	//   sixty ticks, that leaves a quotient of 12. This will be added to the
	//   hoursToMinutes to account for 'drift' of the hour hand.
	//   Example: at 6:30, 30 minutes is at the halfway point between 6 and 7.
	//   Since there are five 'ticks' between 6 and 7, the halfway point is 2.5.
	//   30 / 12 = 2.5. This gets added to the hour hand position.
	var hoursToMinutes = (hourhand * 5) + (minutehand / 12);
	
	// Just rename minutehand to minutes for naming consistency with hoursToMinutes.
	var minutes        = minutehand;

	// if the addition of 'drift' pushes the hoursToMinutes above 60, take away 60 
	// (the clock's position is after midnight/noon, so back to the beginning).
	if (hoursToMinutes > 60) { hoursToMinutes -= 60 }

	var angle;

	// Ascertain which is bigger, hoursToMinutes or minutes, and deduct the smaller
	// from the larger. Then, convert minutes into degrees with * 6. One minute is 6 degrees.
	// There are 60 minutes in a 360 degree minute hand revolution. Divide the total
	// degrees (360), by the number of minutes in a revolution (60) to see the quotient
	// in degrees. 360 / 60 = 6 degrees for each minute.
	if (hoursToMinutes > minutes) {
		angle = (hoursToMinutes - minutes) * 6;
	} else {
		angle = (minutes - hoursToMinutes) * 6;
	}

	// Return the difference between hoursToMinutes and minutes, and
	// also return the other angle by deducting it from the 360 degrees total.
	return [angle, 360 - angle]

}