function dc_get_valid_menu_list()
{
	json_get('get_valid_menu_list', dc_get_valid_menu_list_proc);
}

function dc_get_valid_menu_list_proc(menu)
{
	document.getElementById('dc_valid_menu_list').options.length = 0;
	dc_add_option('dc_valid_menu_list', ' -- wybierz z listy -- ', null);
		
	for(i = 0; menu[i]; i++)
	{
		if (menu[i]['valid']) 
		{
			dc_add_option('dc_valid_menu_list', menu[i]['name'], menu[i]['sys_id']);
		}
		else
		{
			dc_add_option('dc_valid_menu_list', menu[i]['name'], menu[i]['sys_id'], "color:red;");
		}
	}
	dc_read_user_data(menu);
	document.getElementById('dc_user_name').innerHTML = URLDecode(document.getElementById('dc_user_user_name').value);
}


function dc_read_menu(menu_id)
{
	json_get('get_menu', dc_get_custom_menu_validate_proc, 'menu_id=' + menu_id)
}



function dc_add_to_custom_menu()
{
	var category = document.getElementById('dc_product_category').value
	if(category == "null")
	{
		alert('Wybierz kategorię produktu.');
		return false;
	}
	var sys_id = document.getElementById('dc_cms_product_list').value;
	if(!sys_id)
	{
		alert('Wybierz produkt z listy.');
		return false;
	}
	var preferred_time = document.getElementById('dc_cms_product_preferred_time').value;
	if(document.getElementById('dc_product_dose').value > 0)
	{
		var quantity = document.getElementById('dc_product_dose').value;
	}
	else
	{
		var quantity = document.getElementById('dc_product_quantity').value;
	}

	if(quantity <= 0)
	{
		alert('Podaj ilość produktu.');
		return false;
	}
	var params = "sys_id="+ sys_id;
	params += "&preferred_time="+ preferred_time;
	params += "&quantity="+ quantity;
	json_get('add_to_custom_menu', dc_get_custom_menu_proc, params)
	
}


function dc_change_custom_menu()
{
	var category = document.getElementById('dc_product_category').value
	var sys_id = document.getElementById('dc_cms_product_list').value;
	var preferred_time = document.getElementById('dc_cms_product_preferred_time').value;
	if(document.getElementById('dc_product_dose').value > 0)
	{
		var quantity = document.getElementById('dc_product_dose').value;
	}
	else
	{
		var quantity = document.getElementById('dc_product_quantity').value;
	}
	var product_nr = document.getElementById("dc_product_nr").value;
	var old_product_time = document.getElementById("dc_old_product_time").value;
	var params = "sys_id="+ sys_id;
	params += "&preferred_time="+ preferred_time;
	params += "&quantity="+ quantity;
	params += "&product_nr="+ product_nr;
	params += "&old_product_time="+ old_product_time;
	document.getElementById('dc_selected_time').value = 'null';
	document.getElementById('dc_selected_product_nr').value = 'null';
	json_get('change_custom_menu', dc_get_custom_menu_proc, params)
	dc_set_add_change_btn(0);
	document.getElementById('dc_time_row_' + old_product_time).style.backgroundColor = "#ffffff";
}


function dc_get_custom_menu(menu_id)
{
	if(menu_id)
	{
		json_get('get_custom_menu', dc_get_custom_menu_proc, 'menu_id=' + menu_id);
	}
	else
	{
		json_get('get_custom_menu', dc_get_custom_menu_proc);
	}
}




function valid_menu_warning(total)
{
	$(function()
	{
		json_post('get_tolerance', function(response)
		{
			var tolerance = parseFloat(response['tolerance']);
			var alert_text = '';
			if(parseFloat($('#dc_user_max_phe').val()) > 0 &&  (parseFloat(total['phe']) < parseFloat($('#dc_user_max_phe').val()) - tolerance || parseFloat(total['phe']) > parseFloat($('#dc_user_max_phe').val()) + tolerance))
			{
				var diff = parseFloat(total['phe']) - parseFloat($('#dc_user_max_phe').val());
				alert_text += 'fenyloalaninę o ' + diff.toFixed(2) + ' mg.\n';
			}
			
			if(parseFloat($('#dc_user_max_protein').val()) > 0 &&  (parseFloat(total['protein']) < parseFloat($('#dc_user_max_protein').val()) - tolerance || parseFloat(total['protein']) > parseFloat($('#dc_user_max_protein').val()) + tolerance))
			{
				var diff =  parseFloat(total['protein']) - parseFloat($('#dc_user_max_protein').val());
				alert_text += 'białko ogółem o ' + diff.toFixed(2) + ' g.\n';
			}
			
			if(parseFloat($('#dc_user_max_protein_pku').val()) > 0 &&  (parseFloat(total['protein_pku']) < parseFloat($('#dc_user_max_protein_pku').val()) - tolerance || parseFloat(total['protein_pku']) > parseFloat($('#dc_user_max_protein_pku').val()) + tolerance))
			{
				var diff = parseFloat(total['protein_pku']) - parseFloat($('#dc_user_max_protein_pku').val());
				alert_text += 'białko z preparatu o ' + diff.toFixed(2) + ' g.\n';
			}
			if(alert_text)
			{
				alert('Wybrany jadłospis przekracza Twoje dzienne zapotrzebowanie na:\n\n' + alert_text);
			}
		},
        'kcal=' + $('#dc_kcal').val() +
        '&protein=' + $('#dc_protein').val() +
        '&phe=' +$('#additional_param_' + $('#disease').val()).val()
        );
	});
}
function dc_get_custom_menu_validate_proc(menu)
{
	valid_menu_warning(menu['total']);
	dc_get_custom_menu_proc(menu);
}
function dc_get_custom_menu_proc(menu)
{
	dc_cms_clear_menu_table('');

	for(i = 0; i < 5; i++)
	{
		if(menu[i] != undefined)
		{
			for(j = 0; menu[i][j]; j++)
			{
				document.getElementById('dc_cms_product_table_time_' + i).innerHTML += '<a class="dc_product_field" id="dc_product_' + i + '_' + j +'" href="javascript:dc_edit_menu_product('+ i + ', ' + j +');">' + menu[i][j]['name'] + '</a>';
				document.getElementById('dc_cms_product_table_quantity_' + i).innerHTML += '<span class="dc_product_field" id="dc_product_quantity_' + i + '_' + j +'">' + menu[i][j]['quantity'] + ' ' + menu[i][j]['unit'] + '</span>';
				document.getElementById('dc_cms_product_table_kcal_' + i).innerHTML += '<span class="dc_product_field" id="dc_product_kcal_' + i + '_' + j +'">' + menu[i][j]['kcal'] + '</span>';
				document.getElementById('dc_cms_product_table_phe_' + i).innerHTML += '<span class="dc_product_field" id="dc_product_phe_' + i + '_' + j +'">'  + menu[i][j]['phe'] + '</span>';
				
				document.getElementById('dc_cms_product_table_protein_' + i).innerHTML += '<span class="dc_product_field" id="dc_product_protein_' + i + '_' + j +'">' + menu[i][j]['protein'] + '</span>';
                //document.getElementById('dc_cms_product_table_protein_pku_' + i).innerHTML += '<span class="dc_product_field" id="dc_product_protein_pku_' + i + '_' + j +'">' + menu[i][j]['protein_pku'] + '</span>';

				//document.getElementById('dc_cms_product_table_delete_' + i).innerHTML += '<a href="javascript:dc_menu_delete_product(' + i + ',' + j + ');">Usuń</a>' + '<br/>';
				document.getElementById('dc_cms_product_table_delete_' + i).innerHTML += '<a class="dc_delete_icon dc_product_field" style="text-decoration:none;" title="Usuń produkt z listy!" href="javascript:dc_menu_delete_product(' + i + ',' + j + ');" id="dc_product_delete_' + i + '_' + j +'">&nbsp;</a>';
				//document.getElementById('dc_cms_product_table_delete_' + i).innerHTML += '<a href="javascript:dc_menu_delete_product(' + i + ',' + j + ');"><img style="margin-left:5px;margin-top:1px; margin-bottom:3px;display:block;" src="/img/delete_icon3.gif" title="Usuń produkt z listy!"/></a>';
			}
		}
	}
	document.getElementById('dc_cms_product_table_kcal_total').innerHTML = '<div style="float:left;"><strong>' + menu['total']['kcal'] + '</strong></div>';
	
	document.getElementById('dc_cms_product_table_phe_total').innerHTML = '<div style="float:left;"><strong>' + menu['total']['phe'] + '</strong></div>';
	
	document.getElementById('dc_cms_product_table_protein_total').innerHTML = '<div style="float:left;"><strong>' + menu['total']['protein'] + '</strong></div>';
	
	//document.getElementById('dc_cms_product_table_protein_pku_total').innerHTML = '<div style="float:left;"><strong>' + menu['total']['protein_pku'] + '</strong></div>';
	
	

	dc_validate_custom_menu(menu);
}


function dc_edit_menu_product(time, product_nr)
{
	params = "time=" + time;
	params += "&product_nr=" + product_nr;
	json_get('get_menu_single_product', dc_edit_menu_product_proc, params);
}

function dc_edit_menu_product_proc(response)
{
	product = response['single_product'];
	product_list = response['product_list'];
	dc_diplay_product_list(product_list, product['category']);
	
	
	if(document.getElementById('dc_selected_time').value == product['time'] && document.getElementById('dc_selected_product_nr').value == product['product_nr'])
	{
		dc_unset_color_all();
		dc_set_add_change_btn(0)
	}
	else
	{
	
		document.getElementById("dc_product_nr").value = product['product_nr'];
		document.getElementById("dc_cms_product_preferred_time").options[product['time']].selected = true;
		document.getElementById("dc_old_product_time").value = product['time'];	// przechowanie w polu hidden
		
		category_index = get_index(document.getElementById("dc_product_category"), product['category']);
		document.getElementById("dc_product_category").options[category_index].selected = true;
		
		if (product['dose'] > 0) 
		{
			dc_display_dose_select(product['dose'], product['quantity']);
		}
		else 
		{
			dc_display_dose_select(product['dose']);
			document.getElementById("dc_product_quantity").value = product['quantity'];
		}
		
		
		menu = document.getElementById('dc_cms_product_list');
		
		
		
		dc_set_add_change_btn(1)
		
		
		dc_unset_color_all();
		
		dc_set_row_color(product['time'], product['product_nr'], '#dddddd');
		
	
		document.getElementById('dc_selected_time').value = product['time'];
		document.getElementById('dc_selected_product_nr').value = product['product_nr'];
		// zaznaczamy wybrany wiersz
		
		index = get_index(menu, product['sys_id']);
		
		dc_cms_select_category(product['category']);	// pokazuje odpowiedni select, z produktami tej kategorii
	
		// sztuczka dla IE - czekamy az lista produktow sie zaladuje i dopiero wtedy zaznaczamy produkt
		select_product_index = 'document.getElementById("dc_cms_product_list").options[index].selected = true';
		var t = setTimeout(select_product_index, 500);
	}
}

function dc_set_add_change_btn(v)
{
	if(v == 0)
	{
		document.getElementById('dc_add_product_btn').style.display = 'inline';
		document.getElementById('dc_change_product_btn').style.display = 'none';
	}
	else
	{
		document.getElementById('dc_add_product_btn').style.display = 'none';
		document.getElementById('dc_change_product_btn').style.display = 'inline';
	}
}

function dc_set_row_color(time, product_nr, color)
{
	document.getElementById('dc_product_' + time + '_' + product_nr).style.backgroundColor = color;
	document.getElementById('dc_product_quantity_' + time + '_' + product_nr).style.backgroundColor = color;
	document.getElementById('dc_product_kcal_' + time + '_' + product_nr).style.backgroundColor = color;
	document.getElementById('dc_product_protein_' + time + '_' + product_nr).style.backgroundColor = color;

    //document.getElementById('dc_product_protein_pku_' + time + '_' + product_nr).style.backgroundColor = color;
    document.getElementById('dc_product_phe_' + time + '_' + product_nr).style.backgroundColor = color;
	
	document.getElementById('dc_product_delete_' + time + '_' + product_nr).style.backgroundColor = color;
}

function dc_unset_color_all()
{
	for(i = 0; i < 5; i++)
	{
		for(j = 0; document.getElementById('dc_product_' + i + '_' + j); j++)
		{
			dc_set_row_color(i, j, '#ffffff');
		}
	}
}





// ==================== WALIDACJA POPRAWNOSCI JADLOSPISU =================================



function dc_validate_custom_menu(menu)
{
    $(function()
	{
		json_post('get_tolerance', function(response)
		{
            dc_validate_menu_param(menu, 'protein', response['tolerance']['protein']);
            dc_validate_menu_param(menu, 'phe', response['tolerance']['phe']);
            dc_validate_menu_param(menu, 'kcal', response['tolerance']['kcal']);
        },
        'kcal=' + $('#dc_kcal').val() +
        '&protein=' + $('#dc_protein').val() +
        '&phe=' +$('#additional_param_' + $('#disease').val()).val()
        );
    });
}

function dc_validate_menu_param(menu, name, tolerance)
{
    //alert(tolerance);
	/*if(name == 'protein')
	{	
		var protein_total = (parseFloat(menu['total']['protein']) + parseFloat(menu['total']['protein_pku'])).toFixed(2);
		var validation_warning_text = 'Przekroczyłeś swoje maksymalne dzienne zapotrzebowanie! Białko ogółem: ' + protein_total + ' g.';
		var validation_warning = "<div><img class='warning_image' src='/" + cDC_PATH + "img/exclamation_icon.jpg' title='" + validation_warning_text + "'/></div>";

		if(protein_total > parseFloat(document.getElementById('dc_user_max_' + name).value) && parseFloat(document.getElementById('dc_user_max_' + name).value) > 0) 
		{
			document.getElementById('dc_cms_product_table_' + name + '_total').style.color = "#FF0000";
			document.getElementById('dc_cms_product_table_' + name + '_total').style.cursor = "help";
			document.getElementById('dc_cms_product_table_' + name + '_total').title = validation_warning_text;
			document.getElementById('dc_cms_product_table_' + name + '_total').innerHTML += validation_warning;
		}
		else 
		{
			document.getElementById('dc_cms_product_table_' + name + '_total').style.color = "#000000";
			document.getElementById('dc_cms_product_table_' + name + '_total').style.cursor = "auto";
			document.getElementById('dc_cms_product_table_' + name + '_total').title = '';
		}
	}
	else 
	{*/


        var menu_total = parseFloat(menu['total'][name]);
        var user_val = parseFloat($('#dc_user_max_' + name).val());
		if(menu_total > user_val + tolerance && user_val > 0)
		{
            var validation_warning_text = 'Przekroczyłeś swoje dzienne zapotrzebowanie!';
            var validation_warning = "<div><img class='warning_image' src='/" + cDC_PATH + "img/exclamation_icon.jpg' title='" + validation_warning_text + "'/></div>";
			$('#dc_cms_product_table_' + name + '_total').css('color', "#FF0000");
			$('#dc_cms_product_table_' + name + '_total').css('cursor', "help");
			$('#dc_cms_product_table_' + name + '_total').attr('title', validation_warning_text);
			$('#dc_cms_product_table_' + name + '_total').html($('#dc_cms_product_table_' + name + '_total').html() + validation_warning);
		}
        else if(menu_total < user_val - tolerance && user_val > 0)
        {
            var validation_warning_text = 'Nie spełniasz swojego dziennego zapotrzebowania!';
            var validation_warning = "<div><img class='warning_image' src='/" + cDC_PATH + "img/exclamation_icon.jpg' title='" + validation_warning_text + "'/></div>";
            $('#dc_cms_product_table_' + name + '_total').css('color', "#0000FF");
			$('#dc_cms_product_table_' + name + '_total').css('cursor', "help");
			$('#dc_cms_product_table_' + name + '_total').attr('title', validation_warning_text);
			$('#dc_cms_product_table_' + name + '_total').html($('#dc_cms_product_table_' + name + '_total').html() + validation_warning);
        }
		else 
		{
			$('#dc_cms_product_table_' + name + '_total').css('color', "#000000");
			$('#dc_cms_product_table_' + name + '_total').css('cursor', "auto");
			$('#dc_cms_product_table_' + name + '_total').attr('title','');
		}
	//}
}




function dc_menu_delete_product(i, j)
{
	//menu_id = document.getElementById('dc_cms_menu_list').value;
	params = 'time=' + i;
	params += '&product_nr=' + j;
	//params += "&menu_id="+ menu_id;
	json_get('menu_delete_product', dc_get_custom_menu_proc, params, true);
}


function dc_get_product_params(product_id)
{
	var params = 'product_id=' + product_id;
	json_get('get_product_params', dc_get_product_params_proc, params);
}

function dc_get_product_params_proc(product_params)
{
	document.getElementById('dc_product_unit').innerHTML = product_params['unit'];
	document.getElementById('dc_product_quantity').value = product_params['quantity'];
	dc_display_dose_select(product_params['dose']);
}

function dc_display_dose_select(dose, quantity)
{

	if(dose > 0)
	{
		$(function()
		{
			$('#dc_product_quantity').hide();
			$('#dc_product_dose').empty();
			for(i = 1; i < 10; i++)
			{
				if(i * dose == quantity)
				{
					$('#dc_product_dose').append('<option selected="selected" value="' + (i * dose) + '">' + (i * dose)+ '</option>')
				}
				else
				{
					$('#dc_product_dose').append('<option value="' + (i * dose) + '">' + (i * dose)+ '</option>')
				}
			}
			$('#dc_product_dose').show();
		});
	}
	else
	{
		$(function()
		{
			$('#dc_product_dose').hide();
			$('#dc_product_dose').empty();
			$('#dc_product_quantity').show();
		});
	}
}



$(function() 
{
	
	if(logged_in)
	{
		$('#dc_btn_add_to_my_diet').click(
		function() 
		{
			var diet_id = $('#dc_select_user_diet_selector').val();
			if(diet_id == 'null')												// tworzymy nowa diete
			{
				diet_name = prompt("Podaj nazwe dla nowej diety", "nowa dieta");
				if(diet_name)
				{
					json_post('create_user_diet', 
								function(status)
								{
									if(status['msg'] == true)
									{
										json_post('save_menu_to_diet', 
												function(status)
												{					
													get_user_diet_list();

													alert('Zapisano.');
													$("#dc_select_user_diet_selector > option").each(function() 
															{
															   if($(this).val() == status['diet_id']) 
															   {
															       $(this).attr('selected','selected')
															   } 
															   dc_go_to_diet(status['diet_id']);
															});   
												}, 
												'diet_id='+status['new_diet_id']);
									}
									else
									{
										alert('Posiadasz już dietę o takiej nazwie. Podaj inną.');
									}
								}, 
								'diet_name=' + diet_name);
				}
				else if(diet_name == "")
				{
					alert('Nazwa nie może być pusta.');
				}
			}
			else
			{
				json_post('save_menu_to_diet', 
						function(status)
						{					
							alert("Zapisano");
							dc_go_to_diet(diet_id);
						}, 
						'diet_id='+diet_id);
			}
		});
	}
});


function dc_go_to_diet(diet_id)
{
	dc_show_box('dc_box_my_diet');
	dc_get_user_menus(diet_id);
}


function get_user_diet_list()
{
	$(function() 
	{
		json_post('get_user_diet_list', function(diet)
		{
			$('#dc_select_user_diet_selector').remove();
			
			$('<select id="dc_select_user_diet_selector">').appendTo('#dc_select_user_diet_box');
			$('<option value="null"> -- dodaj do nowej -- </option>').appendTo('#dc_select_user_diet_selector');
			if(diet)
			{
				for(i = 0; i < diet.length; i++)
				{
					$('<option value="' + diet[i]['sys_id'] + '">'+ diet[i]['name'] +'</option>').appendTo('#dc_select_user_diet_selector');
				}
			}
		});
	});
}




function dc_get_sample_menu(menu_id)
{
    $('#sample_menu_box').empty();
    
    var table_content = "";
    table_content += '<table class="dc_table dc_multi_table">';
    table_content += '<tr>';
    table_content += '<th class="dc_table_header_time">pora dnia</th>';
    table_content += '<th class="dc_table_header_name">nazwa produktu</th>';
    table_content += '<th class="dc_table_header_quantity">ilość</th>';
    table_content += '<th class="dc_table_header_kcal">energia<br/>[kcal]</th>';
    table_content += '<th class="dc_table_header_phe">fenyloalanina<br/>[mg]</th>';
    table_content += '<th class="dc_table_header_protein">białko<br/>[g]</th>';
	table_content += '</tr>';


	$(function()
	{
		json_get('get_sample_menu', function(menu)
		{
			for(i = 0; i < 5; i++)
            {
                if(menu[i] != undefined)
                {
                    for(j = 0; menu[i][j]; j++)
                    {
                        table_content += "<tr>";
                        if(j == 0)
                        {
                            table_content += "<td rowspan='" + menu[i].length + "'>"+dc_preferred_time[i]+"</td>";
                        }
                        if(menu[i][j]['category'] == 4)
                        {
                            menu[i][j]['name'] = "Preparat PKU";
                        }
                        table_content += "<td>" + menu[i][j]['name'] + "</td>";
                        table_content += "<td>" + menu[i][j]['quantity'] + "</td>";
                        table_content += "<td>" + menu[i][j]['kcal'] + "</td>";
                        table_content += "<td>" + menu[i][j]['phe'] + "</td>";
                        table_content += "<td>" + menu[i][j]['protein'] + "</td>";
                        table_content += "</tr>";
                    }
                }
            }
            table_content += "<tr>";
            table_content += "<td></td>";
            table_content += "<td></td>";
            table_content += "<td></td>";
            table_content += "<td><strong>" + menu['total']['kcal']+ "</strong></td>";
            table_content += "<td><strong>" + menu['total']['phe']+ "</strong></td>";
            table_content += "<td><strong>" + menu['total']['protein']+ "</strong></td>";
            table_content += "</tr>";
       
            $('#sample_menu_box').append(table_content);
		},
        'menu_id=' + menu_id);
	});
}


function dc_select_category(category_id)
{
	if(category_id != "null")
	{
		params = "category=" + category_id;
		json_get('get_limited_product_list', dc_cms_select_category_proc, params);
	}
}

