/////
//
//	ORDER TOUR
//
////

var order = {};
order.requester = null;
order.login_requester = null;
order.termin_script = BASE_URL+'scripts/get_termins.php';
order.price_script = BASE_URL+'scripts/get_price.php';
order.login_script = BASE_URL+'scripts/check_login.php';
order.required_fields = ['name', 'surname', 'email', 'phone', 'street', 'city', 'psc'];
order.init = function ()
{
	var tmp_form = document.getElementById('order_form');
	if (!tmp_form)
	{
		return;
	}

	var tmp_input = document.getElementById('registered');
	if (tmp_input)
	{
		event_handler.add(tmp_input, 'click', order.switchLogin);
	}

	var tmp_input = document.getElementById('unregistered');
	if (tmp_input)
	{
		event_handler.add(tmp_input, 'click', order.switchLogin);
	}

	var tmp_select = document.getElementById('guest_count');
	if (tmp_select)
	{
		event_handler.add(tmp_select, 'change', order.recountPrice);
	}

	var tmp_container = document.getElementById('category_container');
	if (tmp_container)
	{
		var inputs = tmp_container.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			event_handler.add(inputs[i], 'click', order.updateFree);
		}
	}

	var tmp_input = document.getElementById('login');
	if (tmp_input)
	{
		event_handler.add(tmp_input, 'keyup', order.checkLogin);
		event_handler.add(tmp_input, 'blur', order.checkLogin);
	}

	var tmp_input = document.getElementById('pass');
	if (tmp_input)
	{
		event_handler.add(tmp_input, 'keyup', order.checkLogin);
		event_handler.add(tmp_input, 'blur', order.checkLogin);
	}
	
	var tmp_input = document.getElementById('code');
	if (tmp_input)
	{
		event_handler.add(tmp_input, 'keyup', order.recountPrice);
		event_handler.add(tmp_input, 'blur', order.recountPrice);
	}

	order.loadTermin();
};
order.loadTermin = function ()
{
	//var tmp_trip = document.getElementById('trip_id');
	var tmp_date = document.getElementById('on_date');
	if (!tmp_date)
	{
		return;
	}

	var tmp_container = document.getElementById('category_container');
	if (tmp_container)
	{
		var inputs = tmp_container.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			if (inputs[i].checked == true)
			{
				var category_id = inputs[i].value;
				break;
			}
		}
	}

	var us_date = '';
	if (tmp_date.value.length > 0)
	{
		var tmp_us_date = tmp_date.value.split('.');
		us_date = tmp_us_date.reverse();
		us_date = us_date.join('-');
	}

	param = [];
	var p = 0;

	/*param[p] = ['trip_id', tmp_trip.value];
	p++;*/

	param[p] = ['on_date', us_date];
	p++;

	param[p] = ['category_id', category_id];
	p++;

	order.requester = new xmlhttp_handler();
	order.requester.loadURL('POST', order.termin_script, param, false);

	order.updateTermin();
};
order.switchLogin = function ()
{
	var tmp_container_reg = document.getElementById('tbl_registered');
	var tmp_container_unreg = document.getElementById('tbl_unregistered');
	var tmp_payment_options = document.getElementById('payment_options');

	var tmp_input = document.getElementById('registered');
	if (tmp_input.checked == true)
	{
		class_handler.remove(tmp_container_reg, 'none');
		class_handler.add(tmp_container_reg, 'block');
		if (!class_handler.has(tmp_payment_options, 'none'))
		{
			class_handler.add(tmp_payment_options, 'none');
		}

		if (!class_handler.has(tmp_container_unreg, 'none'))
		{
			class_handler.add(tmp_container_unreg, 'none');
		}

		var inputs = tmp_container_reg.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			if (!class_handler.has(inputs[i], 'required'))
			{
				class_handler.add(inputs[i], 'required');
			}
		}

		var inputs = tmp_container_unreg.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			class_handler.remove(inputs[i], 'required');
		}
	}
	else
	{
		class_handler.remove(tmp_container_unreg, 'none');
		class_handler.add(tmp_container_unreg, 'block');
		class_handler.remove(tmp_payment_options, 'none');

		if (!class_handler.has(tmp_container_reg, 'none'))
		{
			class_handler.add(tmp_container_reg, 'none');
		}

		var inputs = tmp_container_reg.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			class_handler.remove(inputs[i], 'required');
		}

		var inputs = tmp_container_unreg.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			if (order.required_fields.indexOf(inputs[i].id) != -1)
			{
				if (!class_handler.has(inputs[i], 'required'))
				{
					class_handler.add(inputs[i], 'required')
				}
			}
		}
	}
};
order.updateTermin = function ()
{
	var response = order.requester.getXML();
	var tmp_container = document.getElementById('termin_container');
	tmp_container.innerHTML = '';

	var termins = response.getElementsByTagName('termin');
	for (var i = 0; i < termins.length; i++)
	{
		var input = document.createElement('input');
		input.type = 'radio';
		input.id = 'termin_'+i;
		input.name = 'termin_id';
		input.value = termins[i].getElementsByTagName('id')[0].firstChild.data;
		input.checked = i == 0 ? true : false;
		input.style.clear = 'left';
		class_handler.add(input, 'float_left');
		class_handler.add(input, 'nob');
		event_handler.add(input, 'click', order.updateFree);

		var label = document.createElement('label');
		var attr = document.createAttribute('for');
		attr.nodeValue = 'termin_'+i;
		label.setAttributeNode(attr);
		label.style.display = 'block';
		class_handler.add(label, 'float_left');

		var txt = document.createTextNode(termins[i].getElementsByTagName('desc')[0].firstChild.data);
		label.appendChild(txt);

		var txt = document.createTextNode(' - '+termins[i].getElementsByTagName('free')[0].firstChild.data+' '+TXT_ORDER_FORM_FREE);
		label.appendChild(txt);

		var br = document.createElement('br');

		tmp_container.appendChild(input);
		tmp_container.appendChild(label);
		tmp_container.appendChild(br);
	}

	order.updateFree();
};
order.updateFree = function ()
{
	var tmp_termin = document.getElementById('termin_container');
	var inputs = tmp_termin.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++)
	{
		if (inputs[i].checked == true)
		{
			var termin_id = inputs[i].value;
			break;
		}
	}

	var free_select = document.getElementById('guest_count');
	var tmp_old_value = free_select.value;
	free_select.innerHTML = '';

	//var tmp_trip = document.getElementById('trip_id');
	var tmp_date = document.getElementById('on_date');

	var us_date = '';
	if (tmp_date.value.length > 0)
	{
		var tmp_us_date = tmp_date.value.split('.');
		us_date = tmp_us_date.reverse();
		us_date = us_date.join('-');
	}

	var tmp_container = document.getElementById('category_container');
	if (tmp_container)
	{
		var inputs = tmp_container.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			if (inputs[i].checked == true)
			{
				var category_id = inputs[i].value;
				break;
			}
		}
	}

	param = [];
	var p = 0;

	/*param[p] = ['trip_id', tmp_trip.value];
	p++;*/

	param[p] = ['category_id', category_id];
	p++;

	param[p] = ['on_date', us_date];
	p++;

	param[p] = ['termin_id', termin_id];
	p++;

	order.requester = new xmlhttp_handler();
	order.requester.loadURL('POST', order.termin_script, param, false);

	var response = order.requester.getXML();
	var termins = response.getElementsByTagName('termin');
	for (var i = 0; i < termins.length; i++)
	{
		for (var j = 1; j <= termins[i].getElementsByTagName('free')[0].firstChild.data; j++)
		{
			var option = document.createElement('option');
			option.value = j;
			option.selected = (j == tmp_old_value) ? true : false;

			var txt = document.createTextNode(j);
			option.appendChild(txt);

			free_select.appendChild(option);
		}

		if (j-1 < tmp_old_value)
		{
			option.selected = true;
		}
	}

	var tmp_container = document.getElementById('category_container');
	var tmp_lang = document.getElementById('private_lang');
	if (tmp_container)
	{
		var inputs = tmp_container.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			if (inputs[i].value == 2 && inputs[i].checked == true)
			{
				class_handler.remove(tmp_lang, 'none');
			}
			else
			{
				if (!class_handler.has(tmp_lang, 'none'))
				{
					class_handler.add(tmp_lang, 'none');
				}
			}
		}
	}

	order.recountPrice();
};
order.recountPrice = function ()
{
	//var tmp_trip = document.getElementById('trip_id');
	var tmp_termin = document.getElementById('termin_container');
	var inputs = tmp_termin.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++)
	{
		if (inputs[i].checked == true || inputs[i].checked == 'true')
		{
			var termin_id = inputs[i].value;
			break;
		}
	}

	var tmp_guest_count = document.getElementById('guest_count');

	var tmp_container = document.getElementById('category_container');
	if (tmp_container)
	{
		var inputs = tmp_container.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++)
		{
			if (inputs[i].checked == true)
			{
				var category_id = inputs[i].value;
				break;
			}
		}
	}
	
	var code = "";
	var tmp_code = document.getElementById('code');
	if (tmp_code)
	{
		code = tmp_code.value;
	}

	param = [];
	var p = 0;

	/*param[p] = ['trip_id', tmp_trip.value];
	p++;*/

	param[p] = ['termin_id', termin_id];
	p++;

	param[p] = ['category_id', category_id];
	p++;

	param[p] = ['guest_count', tmp_guest_count.value];
	p++;
	
	param[p] = ['code', code];
	p++;

	order.requester = new xmlhttp_handler();
	order.requester.loadURL('POST', order.price_script, param, false);

	order.updatePrice();
};
order.updatePrice = function ()
{
	var tmp_container = document.getElementById('price_container');
	var tmp_guest_count = document.getElementById('guest_count');

	var response = order.requester.getXML();

	var tmp_price = response.getElementsByTagName('price');
	if (tmp_price[0].getElementsByTagName('amount')[0].childNodes.length <= 0)
	{
		price = 0+' CZK';
	}
	else
	{
		price = tmp_price[0].getElementsByTagName('amount')[0].firstChild.data;
		price = parseInt(price);
		price = price*tmp_guest_count.value;

		price += ' '+tmp_price[0].getElementsByTagName('currencyAbbr')[0].firstChild.data;
		
		var tmp_discounted = tmp_price[0].getElementsByTagName('discounted')[0].firstChild.data;
		if (parseInt(tmp_discounted) > 0)
		{
			price += ' ('+TXT_ORDER_FORM_DISCOUNTED+' '+(tmp_discounted*tmp_guest_count.value)+' CZK)';
		}
	}

	tmp_container.innerHTML = price;
};
order.checkLogin = function ()
{
	var tmp_login = document.getElementById('login');
	var tmp_pass = document.getElementById('pass');

	param = [];
	var p = 0;

	param[p] = ['login', tmp_login.value];
	p++;

	param[p] = ['pass', tmp_pass.value];
	p++;

	order.login_requester = new xmlhttp_handler();
	order.login_requester.setAction(order.updateLogin);
	order.login_requester.loadURL('POST', order.login_script, param, true);
};
order.updateLogin = function ()
{
	var result = order.login_requester.getText();

	var img_ok = document.getElementById('login_yes');
	var img_not = document.getElementById('login_not');

	if (result == 'ok')
	{
		class_handler.remove(img_ok, 'none');
		if (!class_handler.has(img_not, 'none'))
		{
			class_handler.add(img_not, 'none');
		}
	}
	else
	{
		class_handler.remove(img_not, 'none');
		if (!class_handler.has(img_ok, 'none'))
		{
			class_handler.add(img_ok, 'none');
		}
	}
};

event_handler.add(window, 'load', order.init);

/////
//
//	ORDER TOUR SPECIAL FORM CHECK
//
////

form_handler.checkSpecial.order_form = function ()
{
	var tmp_guest_count = document.getElementById('guest_count');
	if (tmp_guest_count.value <= 0)
	{
		form_handler.error_special.order_form = TXT_JS_ERR_GUEST_COUNT;
		return false;
	}

	var tmp_registered = document.getElementById('registered');
	if (!tmp_registered)
	{
		return true;
	}

	if (tmp_registered.type == 'radio' && tmp_registered.checked == true)
	{
		var tmp_login = document.getElementById('login');
		var tmp_pass = document.getElementById('pass');

		param = [];
		var p = 0;

		param[p] = ['login', tmp_login.value];
		p++;

		param[p] = ['pass', tmp_pass.value];
		p++;

		order.login_requester = new xmlhttp_handler();
		order.login_requester.loadURL('POST', order.login_script, param, false);

		var response = order.login_requester.getText();

		if (response != 'ok')
		{
			form_handler.error_special.order_form = TXT_JS_ERR_LOGIN;
			return false;
		}
	}

	return true;
};

/////
//
//	ORDER GIFT
//
////
var order_gift = {};
order_gift.requester = null;
order_gift.price_script = BASE_URL+'scripts/get_price_gift.php';
order_gift.init = function ()
{
	var tmp_form = document.getElementById('order_form_gift');
	if (!tmp_form)
	{
		return;
	}

	var tmp_select = document.getElementById('trip_id');
	if (tmp_select)
	{
		event_handler.add(tmp_select, 'change', order_gift.recountPrice);
		event_handler.add(tmp_select, 'change', order_gift.updateChildren);
	}

	var tmp_select = document.getElementById('category');
	if (tmp_select)
	{
		event_handler.add(tmp_select, 'change', order_gift.recountPrice);
	}

	var tmp_input = document.getElementById('guest_count');
	if (tmp_input)
	{
		event_handler.add(tmp_input, 'keyup', order_gift.updateChildren);
		event_handler.add(tmp_input, 'keyup', order_gift.recountPrice);
	}
};
order_gift.updateChildren = function (event)
{
	var tmp_trip = document.getElementById('trip_id');
	var tmp_count = document.getElementById('guest_count');

	var tmp_label = document.getElementById('children_label');
	var tmp_select = document.getElementById('children');
	if (tmp_select)
	{
		tmp_select.parentNode.removeChild(tmp_select);
	}

	if (tmp_trip.value == 3)
	{
		class_handler.remove(tmp_label, 'none');

		var select = document.createElement('select');
		select.id = 'children';
		select.name = 'children';
		event_handler.add(select, 'change', order_gift.recountPrice);

		if (parseInt(tmp_count.value) > 0)
		{
			for (var i = 0; i < parseInt(tmp_count.value); i++)
			{
				var option = document.createElement('option');
				option.value = i;

				var txt = document.createTextNode(i);
				option.appendChild(txt);

				select.appendChild(option);
			}
		}

		var tmp_td = document.getElementById('guest_count_container');
		tmp_td.appendChild(select);
	}
	else
	{
		if (!class_handler.has(tmp_label, 'none'))
		{
			class_handler.add(tmp_label, 'none');
		}
	}
};
order_gift.recountPrice = function (event)
{
	var tmp_trip = document.getElementById('trip_id');
	var tmp_cat = document.getElementById('category');
	var tmp_count = document.getElementById('guest_count');

	if (parseInt(tmp_count.value) <= 0)
	{
		return 0;
	}

	param = [];
	var p = 0;

	param[p] = ['trip_id', parseInt(tmp_trip.value)]
	p++;

	param[p] = ['category_id', parseInt(tmp_cat.value)]
	p++;

	param[p] = ['guest_count', parseInt(tmp_count.value)]
	p++;

	order_gift.requester = new xmlhttp_handler();
	order_gift.requester.setAction(order_gift.updatePrice);
	order_gift.requester.loadURL('POST', order_gift.price_script, param, true);
};
order_gift.updatePrice = function (event)
{
	var tmp_container = document.getElementById('price_container');
	var tmp_guest_count = document.getElementById('guest_count');
	var tmp_children = document.getElementById('children');

	var response = order_gift.requester.getXML();

	var tmp_price = response.getElementsByTagName('price');
	if (tmp_price[0].getElementsByTagName('amount')[0].childNodes.length <= 0)
	{
		price = 0+' CZK';
	}
	else
	{
		price = tmp_price[0].getElementsByTagName('amount')[0].firstChild.data;
		price = parseInt(price);

		if (tmp_children)
		{
			if (parseInt(tmp_children.value) > 0)
			{
				price = price*(tmp_guest_count.value-parseInt(tmp_children.value))+parseInt(tmp_children.value)*2490;
			}
			else
			{
				price = price*tmp_guest_count.value;
			}
		}
		else
		{
			price = price*tmp_guest_count.value;
		}

		price += ' '+tmp_price[0].getElementsByTagName('currencyAbbr')[0].firstChild.data;
	}

	tmp_container.innerHTML = price;
};

event_handler.add(window, 'load', order_gift.init);
