function calcCatChange( sel) {
	if (sel.value == 0) {
		$('#mealId').html( '<option value="0">wybierz grupę</option>');
		return( true);
	}
	$.get( '/ajax/Calc/getMeals/'+sel.value, calcCatChangeClb);
}
function calcCatChangeClb( msg) {
	$('#mealId').empty().html( msg).val(0);
}
function calcAddMeal() {
	var caloriesCol = 1;
	var nameCol = 0;
	var id = $('#mealId').val();
	if (id == 0) {
		return( false);
	}
	$('#calcSum').before( '<tr class="meal'+id+'"><td>'+$('#mealId option:selected').text()+'</td><td class="'+$('#calories').attr( 'class')+'">'+$('#calories').val()+'</td><td><input type="text" name="weight[]" value="'+$('#weight').val()+'" size="4" onkeyup="calcUpdateSum()" /> g.<input type="hidden" name="meal[]" value="'+$('#mealId').val()+'" /></td><td><a href="#" onclick="calcDelMeal( this.parentNode.parentNode); return( false);"><img src="/img2/btnDel.png" alt="Usuń" /></a></tr>');
	prepareMealGrid();
	calcUpdateSum();
}
function calcDelMeal( tr) {
	$(tr).remove();
	prepareMealGrid();
	calcUpdateSum();
}
function prepareMealGrid() {
	var tr = $('#calcGrid tr');
	if (tr.length > 3) {
		$('#calcGrid').show();
	} else {
		$('#calcGrid').hide();
		return( false);
	}
	tr.removeClass( 'odd');
	$('#calcGrid tr:odd').addClass( 'odd');
}
function calcUpdateSum() {
	var caloriesCol = 1;
	var weightCol= 2;
	var sum = 0;
	var weightSum = 0;
	var grid = document.getElementById( 'calcGrid').tBodies[0];
	for (var i=1; i<grid.rows.length-2; i++) {
		grid.rows[i].cells[caloriesCol].innerHTML = calcPrepareNum( calcParseNum( grid.rows[i].cells[caloriesCol].className) * calcParseNum( grid.rows[i].cells[weightCol].firstChild.value) / 100, 2)
		sum += calcParseNum( grid.rows[i].cells[caloriesCol].innerHTML); // * calcParseNum( grid.rows[i].cells[weightCol].firstChild.value) / 100;
		weightSum += calcParseNum( grid.rows[i].cells[weightCol].firstChild.value);
	}
	grid.rows[grid.rows.length-2].cells[caloriesCol].innerHTML = calcPrepareNum( sum, 2);
	$('.caloriesSum').text( calcPrepareNum( sum, 2));
	grid.rows[grid.rows.length-2].cells[weightCol].innerHTML = calcPrepareNum( weightSum, 2)+' g.';
	if (sum > 0) {
		$('.calcPrint').removeClass( 'hidden');
	} else {
		$('.calcPrint').addClass( 'hidden');
	}
}
function calcParseNum( num) {
	return( parseFloat( num.replace( ',', '.')));
}
function calcPrepareNum( num, precision) {
	return( num.toFixed( precision).replace( '.', ','));
}
function calcMealChange( sel) {
	if ($(sel).val() == 0) {
		calcClearFields();
	} else {
		$.get( '/ajax/Calc/getMealDetails/'+$(sel).val(), calcMealChangeClb);
	}
}
function calcClearFields() {
	var fields = ['calories', 'bialko', 'tluszcz', 'weglowodany', 'tl_nasycone', 'tl_nienasycone'];
	for (var i=0; i<fields.length; i++) {
		$('#'+fields[i]).val( '');
	}
	$('#calcAddBtb').addClass( 'hidden');
}
function calcMealChangeClb( msg) {
	if (!msg) {
		return( false);
	}
	var fields = ['calories', 'bialko', 'tluszcz', 'weglowodany', 'tl_nasycone', 'tl_nienasycone'];
	for (var i=0; i<fields.length; i++) {
		var val = $(fields[i], msg).text();
		$('#'+fields[i]).val( val.replace( '.', ',')).attr( 'class', val);
	}
	$('#calcAddBtb').removeClass( 'hidden');
	calcUpdateValues();
}
function calcUpdateValues() {
	if ($('#mealId').val() == 0) {
		return( true);
	}
	var fields = ['calories', 'bialko', 'tluszcz', 'weglowodany', 'tl_nasycone', 'tl_nienasycone'];
	var weight = calcParseNum( $('#weight').val());
	for (var i=0; i<fields.length; i++) {
		var val = Number( $('#'+fields[i]).attr( 'class'));
		$('#'+fields[i]).val( (val * weight / 100).toFixed( 2).replace( '.', ','));
	}
}
function bmiCount() {
	var height = new Number( $('#bmiHeight').val().replace( ',', '.'));
	height /= 100;
	var weight = new Number( $('#bmiWeight').val().replace( ',', '.'));
	if (height == 0 || weight == 0) {
		return( false);
	}
	var bmi = weight / Math.pow( height, 2);
	$('#yourBmi').text( bmi.toFixed( 2).replace( '.', ','));
}
function calcPrint() {
	var win = window.open( '/CalcPrint', 'print', 'toolbar=no, menubar=no, location=no, personalbar=no, scrollbars=yes, directories=no, status=no, resizable=yes, left=1, top=1, width=750, height=500');
	win.focus();
}

