/* raflaopas.fi js onload stuff */


/*
 * Add or remove clicked town from selected towns list
 * Filter restaurant and event listing
 * 
 */
function updateLists(clicked_town, restaurant_group, event_category, extra_info)
{
	var ind;
	
	// User clicked restaurant_group
	if(restaurant_group != 0)
	{
		selected_restaurant_groups = updateSelectedArray(selected_restaurant_groups, restaurant_group);
	}
	
	// User clicked event category
	if(event_category != 0)
	{
		selected_event_categories = updateSelectedArray(selected_event_categories, event_category);
	}
	
	// User clicked a town link
	if(clicked_town != 0)
	{
		selected_towns = updateSelectedArray(selected_towns, clicked_town);
	}
	
	// user clicked extra info checkbox
	if(extra_info != 0)
	{
		//alert('klik');
		// If user clicked 'Kaikki' (Piilota), then hide checkboxes
		if(extra_info == 'Kaikki')
		{
			show_extra_info = false;
			search = '';
			
			// hide immediately
			if(document.getElementById("lisatiedot") != null)
			{	
				document.getElementById("lisatiedot").innerHTML = '';
			}
			if(document.getElementById("hakukentta_div") != null)
			{	
				document.getElementById("hakukentta_div").innerHTML = '';
			}
			if(document.getElementById('piilota_linkki_div') != null)
			{
				document.getElementById('piilota_linkki_div').innerHTML = '';
			}
		}
		selected_extra_infos = updateSelectedArray(selected_extra_infos, extra_info);
	}
	
	
	// update restaurant groups menu
	if(document.getElementById("restaurant_groups") != null)
	{
		var rgroups = getRestaurantGroupsMenu();
		document.getElementById("restaurant_groups").innerHTML = rgroups;
	}
	
	// update categorymenu
	if(document.getElementById("event_groups") != null)
	{
		var egroups = getEventsGroupMenu();
		document.getElementById("event_groups").innerHTML = egroups;
	}
	
	// update town list menu
	if(document.getElementById("city_list") != null)
	{
		var menu = getTownMenu();
		document.getElementById("city_list").innerHTML = menu;
	}
	
	// update restaurants listing
	if(document.getElementById("restaurant_list") != null)
	{
		getRestaurantsMainList2();
	}	
}

function getTownMenu()
{
	var i = 0;
	var ind = -10;
	var menu = '<ul>';
   	while(all_towns_xml.getElementsByTagName("nimi")[i] != null)
	{
		//var idt = http.responseXML.getElementsByTagName("id");
		//var id = idt[i].childNodes[0].nodeValue;
	
		var nimet = all_towns_xml.getElementsByTagName("nimi");
		var nimi = nimet[i].childNodes[0].nodeValue;
	
		//var paikkakunnat = http.responseXML.getElementsByTagName("paikkakunta");
		//var paikkakunta = paikkakunnat[i].childNodes[0].nodeValue;
		
		all_towns.push(nimi);
		
		menu += '<li id="' + nimi + '"';
   			
   			if(selected_towns.length == 0)
   			{
   				if(i == 0 && nimi == 'Kaikki')
   					menu += ' class="checked"';
   			}
   			else if((hasValueInside(nimi, selected_towns)) != -1)
   			{
   				menu += ' class="checked"';
   			}
   			else
   			{
   				menu += ' class="unchecked"';
   			}
   			
   			
   			// If we are showing some spesific restaurant, then make left menu links work so,
   			// that when clicking it, the main restaaurant listing will be opened (ravintola-sivu)
   			if((show_restaurant == 0 && show_event == 0) && (getQueryPart('sivu') == 'ravintolat'))
   			{
   				menu += '><a href="javascript:;" onclick="return updateLists(\'' + nimi + '\', 0, 0, 0)";><span class="left_menu_link">' + nimi + '</span></a></li>';
			}
			else
			{
				menu += '><a href="javascript:;" onclick="updateLists(\'' + nimi + '\', 0, 0, 0); return changePage(\'ravintolat\', 0)";><span class="left_menu_link">' + nimi + '</span></a></li>';
			}
		i++;
	}			

	menu += '</ul>';
	return menu;
}

function getRestaurantGroupsMenu()
{
	var groups = '<ul>';
	var i = 0;
	for(i = 0; i < all_restaurant_groups.length; i++)
	{
		groups += '<li id="' + all_restaurant_groups[i] + '"';
		
		// Is it selected?
		if((hasValueInside(all_restaurant_groups[i], selected_restaurant_groups) != -1))
		{
			groups += ' class="checked"';
		}
		else
   		{
   			groups += ' class="unchecked"';
   		}
   		
   		if((show_restaurant == 0 && show_event == 0) && (getQueryPart('sivu') == 'ravintolat'))
   			groups += '><a href="javascript:;" onclick="return updateLists(0, \'' + all_restaurant_groups[i] + '\', 0, 0)";><span class="left_menu_link">' + all_restaurant_groups[i] + '</span></a></li>';
   		else
   			groups += '><a href="javascript:;" onclick="updateLists(0, \'' + all_restaurant_groups[i] + '\', 0, 0); return changePage(\'ravintolat\', 0)";><span class="left_menu_link">' + all_restaurant_groups[i] + '</span></a></li>';
  	}
	
	groups += '</ul>';
	return groups;
}

function getEventsGroupMenu()
{
	var e_groups = '<ul>';
	var i = 0;
	
	for(i = 0; i < all_selected_event_categories.length; i++)
	{
		e_groups += '<li id="' + all_selected_event_categories[i] + '"';
		
		if((hasValueInside(all_selected_event_categories[i], selected_event_categories) != -1))
		{
			e_groups += ' class="checked"';
		}
		else
   		{
   			e_groups += ' class="unchecked"';
   		}
   		
   		if((show_restaurant == 0 && show_event == 0) && (getQueryPart('sivu') == 'ravintolat'))
   			e_groups += '><a href="javascript:;" onclick="return updateLists(0, 0, \'' + all_selected_event_categories[i] + '\', 0)";><span class="left_menu_link">' + all_selected_event_categories[i] + '</span></a></li>';
   		else
     		e_groups += '><a href="javascript:;" onclick="updateLists(0, 0, \'' + all_selected_event_categories[i] + '\', 0); return changePage(\'ravintolat\', 0)";><span class="left_menu_link">' + all_selected_event_categories[i] + '</span></a></li>';
   	}
	
	e_groups += '</ul>';
	return e_groups;	
}





function getRestaurantsMainList2()
{
	if(show_restaurant != 0)
	{
		getEventsList2();
		return '';
	}
	
	requestRestaurantsList();	
}



// Load ALL restaurants from db as XML
function requestRestaurantsList()
{
	// Set loading-gif to list, if it's NOT text search
	if((document.getElementById("restaurant_list") != null) && (show_restaurant == 0) && search == '')
	{
		document.getElementById("restaurant_list").innerHTML = '<img src="images/ajax_loader_white.gif" border="0" heigth="24" width="24" class="restaurant_loader_gif" />';
	}
	
	// search has it's own loader gif
	if((document.getElementById('search_loader') != null) && (search != ''))
	{
		document.getElementById("search_loader").innerHTML = '<img src="images/ajax-loader_white_small.gif" border="0" heigth="16" width="16" />';
	}
	
	http6 = createQCObject(); 	
	http6.onreadystatechange = printRestaurantsList;
	http6.open("POST", "ajax_ravintolat2.php", true);
	http6.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	var town_string = '&kaupunki=';
	
	selected_towns[0] = convert_chars(selected_towns[0]);
	town_string += makeQueryPart(selected_towns);
	//alert(town_string);
	var group_string = '&rav=';
	group_string += makeQueryPart(selected_restaurant_groups);
	var extra_string = '&extra=';
	extra_string += makeQueryPart(selected_extra_infos);
	
	if(search != '')
	{
		search = convert_chars(search);
		var haku="&haku=" + search;
	}
	
	if(search != '')
		http6.send('replyType=ajax' + town_string + group_string + extra_string + haku);
	else
		http6.send('replyType=ajax' + town_string + group_string + extra_string);
}



function printRestaurantsList()
{
	if(http6.readyState == 4)
	{
		// Check if request is completed:
		if(http6.status == 200)
		{
			//alert(http6.responseText);
			
			// print link, if no extra info checkboxes checked
			var linkki = '';
			
			//if(hasValueInside('Kaikki', selected_extra_infos) != -1)
			if(show_extra_info == false)
			{
				//alert('link');
				 linkki += '<a href="javascript:;" onclick="printExtraInfoCheckBoxes();" id="lisatiedot_linkki">Tarkenna hakua &raquo;</a>';
				 document.getElementById("restaurant_list").innerHTML = linkki + http6.responseText;
			}
			else
			{
				//alert('no link');
				var lisatiedot_form = getExtraInfoCheckBoxes();
				
				if(document.getElementById("lisatiedot") != null)
				{
					document.getElementById("lisatiedot").innerHTML = lisatiedot_form;
				}
				
				document.getElementById("restaurant_list").innerHTML =  http6.responseText;
			}
			
			if(document.getElementById("selected_restaurants") != null)
			{
				var s = document.getElementById("selected_restaurants").innerHTML;
				s = s.split(",");
			}
			else
				s = '';
			
			if(s == '')
			{
				selected_restaurants[0] = 0;
			}
			else
			{
				selected_restaurants = s;
			}
			
			// unset search loader
			if((document.getElementById('search_loader') != null))
			{
				document.getElementById("search_loader").innerHTML = '';
			}
			
			
			if((document.getElementById("events_list") != null) && (getQueryPart('sivu') == 'ravintolat'))
			{
				//alert(selected_restaurants);
				getEventsList2();
			}
		}	
	}
}

function getEventsList2()
{
	requestEventsList();	
}

function requestEventsList()
{
	http7 = createQCObject(); 	
	http7.onreadystatechange = printEventList;
	http7.open("POST", "ajax_tapahtumat3.php", true);
	http7.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	var selected_restaurants_string = '&ravintolat=';
	selected_restaurants_string += makeQueryPart(selected_restaurants);
	
	var event_string = '&tapahtumat=';
	event_string += makeQueryPart(selected_event_categories);
	var ravintola_string = '&ravintola=' + show_restaurant;

	http7.send('replyType=ajax' + selected_restaurants_string + event_string + ravintola_string);
}


function printEventList()
{
	if(http7.readyState == 4)
	{
		// Check if request is completed:
		if(http7.status == 200)
		{
			if(show_event == 0)
				document.getElementById("events_list").innerHTML =  http7.responseText;
			else
			{
				var event_text = document.getElementById("events_list").innerHTML;
				document.getElementById("events_list").innerHTML = event_text + http7.responseText;
			}
		}
	}
}

function loadAllXML()
{
	requestTownsFromDbAsXML();
	//requestRestaurantsFromDbAsXML();
	//requestEventsFromDbAsXML();
}
	
function initPage()
{
	// towns selected?
	var t = getQueryPart('kaupunki');
	if(t == false)
	{
		selected_towns[0] = 'Kaikki';	
	}
	else
	{
		selected_towns = t;
	}
	
	// restaurant groups selected?		
	var g = getQueryPart('rav');
	if(g == false)
	{
		selected_restaurant_groups[0] = 'Kaikki';	
	}
	else
	{
		selected_restaurant_groups = g;
	}		
	// events groups selected?
	var e = getQueryPart('tapahtumat');
	if(e == false)
	{
		selected_event_categories[0] = 'Kaikki';	
	}
	else
	{
		selected_event_categories = e;
	}		
	
	// lisatiedot checked?
	var ext = getQueryPart('ext');
	if(ext == false)
	{
		selected_extra_infos[0] = 'Kaikki';	
	}
	else
	{
		selected_extra_infos = ext;
	}
	
	
		
	// Single restaurant selected?
	var r = getQueryPart('ravintola');
	if(r == false)
	{
		show_restaurant = 0;	
	}
	else
	{
		show_restaurant = r;
		selected_restaurants = [];
		selected_restaurants.push(r);
	}		
	
	// Single event selected?
	var eq = getQueryPart('tapahtuma');
	if(eq == false)
	{
		show_event = 0;	
	}
	else
	{
		show_event = eq;
	}		
		
	// Load all XML
	loadAllXML();
}