var room_group = {};
room_group.source = globals.base_url+'pop_up_pages/room_group.php';
room_group.types_to_select = 5;
room_group.invoked_by = null;
room_group.init = function ()
{
	var image = document.getElementById('room_group_image');
	if (image)
	{
		event_handler.add(image, 'click', room_group.invoke);
	}

	var room_group_div = document.createElement('div');
	room_group_div.id = 'javascript_room_group';
	room_group_div.style.position = 'absolute';
	room_group_div.style.zIndex = '100';
	room_group_div.style.display = 'none';
	document.getElementsByTagName('body')[0].appendChild(room_group_div);
};
room_group.invoke = function (event)
{
	var event = event_handler.fix(event);
	if (event.preventDefault)
	{
		event.preventDefault();
	}

	var element = event.target;

	var form = element;

	while (form.tagName.toLowerCase() != 'form')
	{
		form = form.parentNode;
	}

	var inputs = form.getElementsByTagName('input');
	room_counts = new Array();
	var c = 0;
	room_types = new Array();
	var t = 0;
	for (var i = 0; i < inputs.length; i++)
	{
		if (inputs[i].name == 'room_count[]')
		{
			room_counts[c] = inputs[i].value;
			c++;
		}
		if (inputs[i].name == 'room_type[]')
		{
			room_types[t] = inputs[i].value;
			t++;
		}
	}

	param = new Array();
	var p = 0;
	for (var i = 0; i < room_counts.length; i++)
	{
		param[p] = new Array('room_count[]', room_counts[i]);
		p++;
		param[p] = new Array('room_type[]', room_types[i]);
		p++;
	}
	param[p] = new Array('types_to_select', room_group.types_to_select);

	if (requester.loadURL('POST', room_group.source, param, false))
	{
		var room_group_div = document.getElementById('javascript_room_group');

		room_group_div.style.display = 'block';
		room_group_div.style.top = (position.getPositionY(event)+20)+'px';
		room_group_div.style.left = (position.getPositionX(event)-50)+'px';

		room_group_div.innerHTML = requester.getText();

		form_handler.init();

		var room_type_close = document.getElementById('javascript_room_type_close');
		var room_type_clear = document.getElementById('javascript_room_type_clear');
		var room_type_ok = document.getElementById('javascript_room_type_ok');

		event_handler.add(room_type_close, 'click', room_group.destroy);
		event_handler.add(room_type_clear, 'click', room_group.clear);
		event_handler.add(room_type_ok, 'click', room_group.select);

		room_group.invoked_by = element;
	}
};
room_group.destroy = function (event)
{
	if (event)
	{
		var event = event_handler.fix(event);

		if (event.preventDefault)
		{
			event.preventDefault();
		}
	}

	var room_group_div = document.getElementById('javascript_room_group');

	if (room_group_div)
	{
		room_group_div.innerHTML = '';
		room_group_div.style.display = 'none';
	}

	if (typeof(stars) != 'undefined')
	{
		stars.update_map();
	}

	return false;
};
room_group.clear = function (event)
{
	var event = event_handler.fix(event);

	if (event.preventDefault)
	{
		event.preventDefault();
	}

	if (document.getElementById('javascript_room_group_h3') != null)
	{
		form = room_group.invoked_by;
		while (form.tagName.toLowerCase() != 'form')
		{
			form = form.parentNode;
		}

		document.getElementById('javascript_room_group_h3').parentNode.removeChild(document.getElementById('javascript_room_group_h3'));
		var selects = room_group.invoked_by.parentNode.getElementsByTagName('select');
		for (var i = 0; i < selects.length; i++)
		{
			if (selects[i].id != 'operation')
			{
				selects[i].style.display = 'inline';
			}
		}

		if (form.id != 'resform')
		{
			var room_count = document.getElementsByName('room_count');
			if (room_count.length > 0)
			{
				if (room_count[0].tagName.toLowerCase() == 'input')
				{
					room_count[0].style.display = 'inline';
				}
			}
		}

		var inputs = form.getElementsByTagName('input');
		var input_count = inputs.length;
		for (var i = (input_count-1); i >= 0; i--)
		{
			if (inputs[i].name == 'room_count[]' || inputs[i].name == 'room_type[]')
			{
				inputs[i].parentNode.removeChild(inputs[i]);
			}
		}
	}

	if (typeof(free_hotels) != 'undefined')
	{
		free_hotels.update_count();
	}

	room_group.destroy();

	return false;
};
room_group.select = function (event)
{
	var event = event_handler.fix(event);

	if (event.preventDefault)
	{
		event.preventDefault();
	}

	var form = event.target;
	while (form.tagName.toLowerCase() != 'form')
	{
		form = form.parentNode;
	}

	var inputs = form.getElementsByTagName('input');
	room_counts = new Array();
	var c = 0;
	room_types = new Array();
	var t = 0;
	for (var i = 0; i < inputs.length; i++)
	{
		if (!class_handler.has(inputs[i], 'invalid') && inputs[i].value.length > 0)
		{
			if (inputs[i].name == 'room_count[]')
			{
				room_counts[c] = inputs[i].value;
				c++;
			}
			if (inputs[i+1].name == 'room_type[]')
			{
				room_types[t] = inputs[i+1].value;
				t++;
			}
		}
		i++;
	}

	if (room_counts.length <= 0)
	{
		room_group.destroy();
		return false;
	}

	form = room_group.invoked_by;
	while (form.tagName.toLowerCase() != 'form')
	{
		form = form.parentNode;
	}

	var inputs = form.getElementsByTagName('input');
	for (var i = (inputs.length-1); i >= 0; i--)
	{
		if (inputs[i].name == 'room_count[]' || inputs[i].name == 'room_type[]')
		{
			inputs[i].parentNode.removeChild(inputs[i]);
		}
	}

	for (var i = 0; i < room_counts.length; i++)
	{
		var input = document.createElement('input');
		input.style.visibility = 'hidden';
		input.style.width = '0px';
		input.style.height = '0px';
		input.style.margin = '0px';
		input.style.padding = '0px';
		input.style.border = 'none';
		input.type = 'hidden';
		input.name = 'room_count[]';
		input.value = room_counts[i];

		form.appendChild(input);

		var input = document.createElement('input');
		input.style.visibility = 'hidden';
		input.style.width = '0px';
		input.style.height = '0px';
		input.style.margin = '0px';
		input.style.padding = '0px';
		input.style.border = 'none';
		input.type = 'hidden';
		input.name = 'room_type[]';
		input.value = room_types[i];

		form.appendChild(input);
	}

	if (document.getElementById('javascript_room_group_h3') == null)
	{
		var selects = room_group.invoked_by.parentNode.getElementsByTagName('select');
		for (var i = 0; i < selects.length; i++)
		{
			if (selects[i].id != 'operation')
			{
				selects[i].style.display = 'none';
			}
		}

		if (form.id != 'resform')
		{
			var room_count = document.getElementsByName('room_count');
			if (room_count.length > 0)
			{
				if (room_count[0].tagName.toLowerCase() == 'input')
				{
					room_count[0].style.display = 'none';
				}
			}
		}

		var info = document.createElement('h3');
		info.id = 'javascript_room_group_h3';
		if (form.id == 'resform')
		{
			info.style.cssFloat = 'left';
		}
		else
		{
			info.style.display = 'inline';
		}
		info.innerHTML = ROOMS_GROUP;

		var image = document.getElementById('room_group_image');
		dom_handler.insertBefore(info, image);
	}

	if (typeof(free_hotels) != 'undefined')
	{
		free_hotels.update_count();
	}

	room_group.destroy();

	return false;
};
