var weekMeals = {};
var weekActs = {};
var activeDayMeal = null;

function addToMealDiary(time, date, values)
{
	data = {
		time: time,
		date: date,
		E: values.eq(0).val(),
		P: values.eq(1).val(),
		K: values.eq(2).val(),
		F: values.eq(3).val()
	};
	
	// save data
	$.ajax({
		type: 'POST',
		url: 'mealDiary.php',
		data: {data: data, action: 'save'},
		success: function(data){			
			if (data.type == 'error')
			{
				//alert(data.msg);
			}
			else if (data.type == 'data')
			{				
				loadDiaryWeekView(data);
				reloadActWekView();
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			alert(textStatus + ": " + errorThrown);
		},		
		dataType: 'json'
	});		
}

function changeMealDiary()
{
	// get values from input fields
	var root = $('#mealDiaryData ul.data>li');
	/*
	<ul class="label" id="mealDiaryDate"><li><p>2011-04-29</p></li></ul>
	*/	
	var date = $('#mealDiaryDate p').text();
	
	var dataList = [];	
	
	root.each(function(key) {
		var id = $(this).attr('id').substr(5);
		var dataRoot = $(this).find('ul.dataSub li input');		
		dataList.push({
			id : id,
			time: dataRoot.eq(0).val(),
			E: dataRoot.eq(1).val(),
			P: dataRoot.eq(2).val(),
			K: dataRoot.eq(3).val(),
			F: dataRoot.eq(4).val()						
		});				
	});
	
	var data = {
		date: date,
		dataList: dataList
	};
	
	// save data
	$.ajax({
		type: 'POST',
		url: 'mealDiary.php',
		data: {data: data, action: 'update'},
		success: function(data){			
			if (data.type == 'error')
			{
				alert(data.msg);
			}
			else if (data.type == 'data')
			{				
				loadDiaryWeekView(data);
				reloadActWekView();
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			alert(textStatus + ": " + errorThrown);
		},		
		dataType: 'json'
	});		
}

function addToActDiary(curDate)
{
	// get values from input fields
	var root = $('#newAct.dataMain .dataSub input');
	var date = $('#datePicker');
	if (date.length == 0)
	{
		date = curDate;
	}
	else
	{
		date = date.val();
	}
	
	
	data = {
		time: root.eq(0).val(),
		date: date,
		activity: $('#actName').val(),
		length: root.eq(1).val()
	};
	// save data
	$.ajax({
		type: 'POST',
		url: 'actDiary.php',
		data: {data: data, action: 'save'},
		success: function(data){			
			if (data.type == 'error')
			{
				//alert(data.msg);
			}
			else if (data.type == 'data')
			{				
				loadActWeekView(data);
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			alert(textStatus + ": " + errorThrown);
		},		
		dataType: 'json'
	});		
}

function readMealDiary(week)
{	
	$.ajax({
		type: 'POST',
		url: 'mealDiary.php',
		data: {action: 'load', week: week},
		success: function(data){			
			if (data.type == 'error')
			{
				alert(data.msg);
			}
			else if (data.type == 'data')
			{	
				
				loadDiaryWeekView(data);
				readActDiary(week);
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			alert(textStatus + ": " + errorThrown);
		},	
		dataType: 'json'
	});	
}

function readActDiary(week)
{
	$.ajax({
		type: 'POST',
		url: 'actDiary.php',
		data: {action: 'load', week: week},
		success: function(data){
			if (data.type == 'error')
			{
				alert(data.msg);
			}
			else if (data.type == 'data')
			{					
				loadActWeekView(data);
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			alert(textStatus + ": " + errorThrown);
		},	
		dataType: 'json'
	});	
}

function loadDiaryWeekView(data)
{
	var nameRoot = $('#weekView .body .col1 ul.label.data');
	var dataRoot = $('#weekView .col2 .data');
	
	nameRoot.empty();
	dataRoot.empty();
	
	var nameHTML = '';
	var dataHTML = '';	
	
	// loop through each meal
	$.each(data.data, function(key, value) {		
		weekMeals[key] = value;			
	
		// meal label			
		var nameLi = $('<li><p>' + value.datum + '</p></li>');		
		nameLi.click(function() {
			activeDayMeal = $(this).index() + 1;
			loadDiaryDayView(activeDayMeal);
			$('#datePicker').val(value.datum);
		});			
		
		
		if ('meals' in value)
		{				
			// meal data
			var mealSum = {E: 0, P: 0, K: 0, F: 0};
			$.each(value.meals, function(key, value) {
				mealSum.E += parseFloat(value.E);
				mealSum.P += parseFloat(value.P);
				mealSum.K += parseFloat(value.K);
				mealSum.F += parseFloat(value.F);
			});
			
			$.each(mealSum, function(key, value) {
				//alert(value);
				mealSum[key] = value.toFixed(1);
			});
			
			weekMeals[key].sum = mealSum;
			dataLi = 	'<li>\
							<ul class="dataSub">\
								<li>\
									<input type="text" value="' + mealSum.E +'" />\
								</li>\
								<li>\
									<input type="text" value="' + mealSum.P +'" />\
								</li>\
								<li>\
									<input type="text" value="' + mealSum.K +'" />\
								</li>\
								<li>\
									<input type="text" value="' + mealSum.F +'" />\
								</li>\
								<li class="noImg"></li>\
							</ul>\
						</li>';			
		}
		else
		{
			dataLi = 	'<li>\
							<ul class="dataSub">\
								<li>\
									<input type="text" value="" />\
								</li>\
								<li>\
									<input type="text" value="" />\
								</li>\
								<li>\
									<input type="text" value="" />\
								</li>\
								<li>\
									<input type="text" value="" />\
								</li>\
								<li class="noImg"></li>\
							</ul>\
						</li>';			
		}
		
		nameRoot.append(nameLi);
		dataHTML += dataLi;
	}); 
		
	//nameRoot.html(nameHTML);
	dataRoot.html(dataHTML);
	
	fixIEnthChild();

	if (data.msg)
	{
		$('p#msg').html(data.msg);
	}
	
	if (activeDayMeal != null)
	{		
		loadDiaryDayView(activeDayMeal);
	} 
	else
	{		
		loadDiaryDayView(1);
	}
}

function loadDiaryDayView(index) 
{
	var day = weekMeals[index];
	
	$('#mealDiaryDate').html('<li><p>' + day.datum + '</p></li>');
	
	if ('meals' in day)
	{
		//$('#mealDiaryDate').html('<li><p>' + day.datum + '</p></li>');
			
		var diaryData = '';
		var numMeals = 0;
		
		$.each(day.meals, function(key, value) {
			diaryData += '<li id="dial_' + value.id + '">\
							<ul class="dataSub">\
								<li class="editable">\
									<input type="text" value="' + value.tid + '" />\
								</li>\
								<li class="editable">\
									<input type="text" value="' + value.E + '" />\
								</li>\
								<li class="editable">\
									<input type="text" value="' + value.P + '" />\
								</li>\
								<li class="editable">\
									<input type="text" value="' + value.K + '" />\
								</li>\
								<li class="editable">\
									<input type="text" value="' + value.F + '" />\
								</li>\
							</ul>\
						</li>';
			numMeals++;
		});
		
		
		$('#mealDiarySum').html('<li>\
				<ul class="dataSub">\
					<li>\
						<input type="text" value="' + numMeals + '" />\
					</li>\
					<li>\
						<input type="text" value="' + day.sum.E + '" />\
					</li>\
					<li>\
						<input type="text" value="' + day.sum.P + '" />\
					</li>\
					<li>\
						<input type="text" value="' + day.sum.K + '" />\
					</li>\
					<li>\
						<input type="text" value="' + day.sum.F + '" />\
					</li>\
				</ul>\
			</li>');
			
		$('#mealDiaryData ul.header').show();
		$('#mealDiaryData ul.data').html(diaryData);
	}
	else
	{
		//$('#mealDiaryDate').html('<li><p>&nbsp;</p></li>');
		
		$('#mealDiarySum').html('<li>\
				<ul class="dataSub">\
					<li>\
						<input type="text" value="" />\
					</li>\
					<li>\
						<input type="text" value="" />\
					</li>\
					<li>\
						<input type="text" value="" />\
					</li>\
					<li>\
						<input type="text" value="" />\
					</li>\
					<li>\
						<input type="text" value="" />\
					</li>\
				</ul>\
			</li>');
			
		$('#mealDiaryData ul.header').hide();			
		$('#mealDiaryData ul.data').html('');

		// $('#mealDiaryData').html('<li>\
							// <ul class="dataSub">\
								// <li class="editable">\
									// <input type="text" value="" />\
								// </li>\
								// <li class="editable">\
									// <input type="text" value="" />\
								// </li>\
								// <li class="editable">\
									// <input type="text" value="" />\
								// </li>\
								// <li class="editable">\
									// <input type="text" value="" />\
								// </li>\
								// <li class="editable">\
									// <input type="text" value="" />\
								// </li>\
							// </ul>\
						// </li>');
	}
}

function loadActWeekView(data)
{
	var dataRoot = $('#weekView .col2 .data>li');
	
	// loop through each meal
	$.each(data.data, function(key, value) {
		weekActs[key] = value;			

		if ('aktiviteter' in value)
		{		
			//alert(value.datum + ": " + value.aktiviteter[0].id);
			dataRoot.eq(key-1).find('ul.dataSub li').eq(4).addClass('img');	
		}
	}); 		
}

function reloadActWekView()
{
	loadActWeekView({data: weekActs});
}


