var SET = "<ul type='circle'>";
var ERROR_MESSAGE_DIV = "error_message";
var ENGLISH_UNIT = "english";
var UNITS_LABEL_DIV = "units_label";
/**
 * Calculate calories need to consume a day to lose weight, and how match weeks
 * it will take.
 * 
 * @param form
 *            action form
 * @return
 */
function calcWeightLoss(form) {

	if (!validateInput(form)) {
		return;
	}

	var unitLabel = document.getElementById(UNITS_LABEL_DIV).innerHTML;
	var weight = form.weight;
	var weightLoss = form.weightLoss;

	var consumeCalories = form.caloriesBurn.value - 500;
	var lose = parseFloat(weight.value) - parseFloat(weightLoss.value);

	var weeks = null
	if (unitLabel == ENGLISH_UNIT) {
		weeks = lose / 0.45359237;
	} else {
		weeks = lose;
	}
	var weight_loss_result = document.getElementById('weight_loss_result');
	weight_loss_result.innerHTML = "<font style='color: #6CA8FB;font-size: 16px;'>You need to consume <strong>"
			+ consumeCalories
			+ "</strong> calories a day to lose <strong>"
			+ lose.toFixed(2)
			+ " "
			+ weight_dimension
			+ "</strong> in <strong>"
			+ weeks.toFixed(0)
			+ "</strong> weeks</font>";
}

/**
 * Clears error bar after changes.
 */
function clearErrorBar() {
	document.getElementById(ERROR_MESSAGE_DIV).innerHTML = BLANK;
}

/**
 * Validate input. Proof all parameters: <code>weight</code>,
 * <code>Weight loss goal</code>, and <code>calories</code>.
 * 
 * @param form
 *            action form
 */
function validateInput(form) {

	var errorMessage;

	var weight = form.weight;
	var weightLoss = form.weightLoss;
	var caloriesBurn = form.caloriesBurn;

	// Proof weight parameter.
	if (isBlank(weight.value)) {
		errorMessage = SET + "<li>Please enter Weight</li></ul>";
		form.weight.focus();
		document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
		return false;
	} else if (!isNum(weight.value)) {
		errorMessage = SET + "<li>Please enter a valid Weight</li></ul>";
		form.weight.focus();
		document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
		return false;
	} else {
		if (parseFloat(weight.value) < 0) {
			errorMessage = SET + "<li>Enter positive Weight</li></ul>";
			form.weight.focus();
			document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
			return false;
		}
	}

	// Proof weight loss goal parameter.
	if (isBlank(weightLoss.value)) {
		errorMessage = SET + "<li>Please enter Weight loss goal</li></ul>";
		form.weight.focus();
		document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
		return false;
	} else if (!isNum(weightLoss.value)) {
		errorMessage = SET
				+ "<li>Please enter a valid Weight loss goal</li></ul>";
		form.weight.focus();
		document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
		return false;
	} else {
		if (parseFloat(weightLoss.value) < 0) {
			errorMessage = SET
					+ "<li>Enter positive Weight loss goal</li></ul>";
			form.weight.focus();
			document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
			return false;
		}
	}

	if (weightLoss.value > weight.value) {
		errorMessage = SET
				+ "<li>Weight loss goal must be less than Current weight </li></ul>";
		form.weight.focus();
		document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
		return false;
	}

	// Proof weight Calories goal parameter.
	if (isBlank(caloriesBurn.value)) {
		errorMessage = SET + "<li>Please enter Calories</li></ul>";
		form.weight.focus();
		document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
		return false;
	} else if (!isNum(caloriesBurn.value)) {
		errorMessage = SET + "<li>Please enter a valid Calories</li></ul>";
		form.weight.focus();
		document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
		return false;
	} else {
		if (parseFloat(caloriesBurn.value) < 0) {
			errorMessage = SET + "<li>Enter positive Calories</li></ul>";
			form.weight.focus();
			document.getElementById(ERROR_MESSAGE_DIV).innerHTML = errorMessage;
			return false;
		}
	}

	return true;
}
