function compute_price(definitions, seasons, checkin_after_checkout_message) {
	disable_submit_button();
	var field_persons = document.getElementById("field_persons");
	if (!field_persons) {
		alert("Pole po\u010dtu osob nenalezeno ve struktu\u0159e str\xe1nek.");
		return;
	}
	var field_from = document.getElementById("field_from");
	if (!field_from) {
		alert("Pole datumu od nenalezeno ve struktu\u0159e str\xe1nek.");
		return;
	}
	var field_to = document.getElementById("field_to");
	if (!field_to) {
		alert("Pole datumu do nenalezeno ve struktu\u0159e str\xe1nek.");
		return;
	}
	var item_price = document.getElementById("price");
	if (!item_price) {
		alert("Pole ceny nenalezeno ve struktu\u0159e str\xe1nek.");
		return;
	}
	if (!field_persons.value || !field_from.value || !field_to.value) {
		item_price.innerHTML = "-";
		return;
	}
	var from = Date.parseDate(field_from.value, "%d.%m.%Y");
	var to = Date.parseDate(field_to.value, "%d.%m.%Y");
	var num = parseInt(field_persons.value);
	if (!from || !to) {
		item_price.innerHTML = "-";
		return;
	}
	if (from < to) {
        // datumy ok
		var j = 0;
		var price = 0;
		for (i = 0; i < definitions.length; i++) {
			if (parseInt(definitions[i][0]) <= num) {
				j = i;
			}
		}
		var datum = from;
		while (datum < to) {
			var day_price = get_season_price(seasons, definitions[j], datum);
			if (!day_price) {
				alert(datum.print("%d.%m.%Y"));
				item_price.innerHTML = "-";
				return;
			}
			price += parseInt(day_price);
			datum.setDate(datum.getDate() + 1);
		}
		enable_submit_button();
		item_price.innerHTML = price + ',-';
	} else {
		alert(checkin_after_checkout_message);
		item_price.innerHTML = "-";
	}
}
function get_season_price(seasons, prices, datum) {
	var rok = datum.getYear();
	if (rok < 1900) {
		rok += 1900;
	}
	if (check_interval(rok, seasons[0][0], seasons[0][1], datum) || check_interval(rok, seasons[0][2], seasons[0][3], datum) || check_interval(rok, seasons[0][4], seasons[0][5], datum)) {
		return prices[1];
	}
	if (check_interval(rok, seasons[1][0], seasons[1][1], datum) || check_interval(rok, seasons[1][2], seasons[1][3], datum) || check_interval(rok, seasons[1][4], seasons[1][5], datum)) {
		return prices[2];
	}
	if (check_interval(rok, seasons[2][0], seasons[2][1], datum) || check_interval(rok, seasons[2][2], seasons[2][3], datum) || check_interval(rok, seasons[2][4], seasons[2][5], datum)) {
		return prices[3];
	}
	return 0;
}
function check_interval(rok, from, to, datum) {
	if (!from || !to) {
		return false;
	}
	var datum_od = Date.parseDate(from + "." + rok, "%d.%m.%Y");
	var datum_do = Date.parseDate(to + "." + rok, "%d.%m.%Y");
	//alert(datum.print("%d.%m.%Y") + "/" + datum_od.print("%d.%m.%Y") + "-" + datum_do.print("%d.%m.%Y"));
	//alert((datum_od <= datum) && (datum <= datum_do));
	return (datum_od <= datum) && (datum <= datum_do);
}
function disable_submit_button() {
	var submit_button = document.getElementById("submit_button");
	if (submit_button) {
		submit_button.disabled = true;
	}
}
function enable_submit_button() {
	var submit_button = document.getElementById("submit_button");
	if (submit_button) {
		submit_button.disabled = false;
	}
}

