function searchQuery() {
	var 
		 searchForm = document.getElementById('search_form')
		,errorsDetected = false
		,errorList = new Array()
		,childrenAges = new Array()
	;
	for (i = 1; i <= searchForm.children.value; i++) {
		childrenAges[i] = document.getElementById('children_ages'+i+'_id').value;
	}
	hideErrors();
	hideCities();
	document.getElementById('search_button').value="Processing query...";
	document.getElementById('search_button').disabled = true;
	JsHttpRequest.query(
		'search_hotels_validate'+(USE_REWRITER?'':'.php')+'?country='+country,
		{
			 'city':document.getElementById('city_id').value
			,'check_in':searchForm.check_in.value
			,'check_out':searchForm.check_out.value
			,'guests':searchForm.guests.value
			,'children':searchForm.children.value
			,'children_ages':childrenAges
			,'rooms':searchForm.rooms.value
			,'stars':searchForm.stars.value
			,'hotel_name':searchForm.hotel_name.value
			,'currency_id':searchForm.currency_id.value
		},
		function(result, errors) {
			if (errors) {
				document.getElementById('search_button').value="Search";
				document.getElementById('search_button').disabled = false;
				alert('Error during query validation!'+errors);
				return;
			} else {
				if (result['city_id']>0) {
					searchForm.search_city_id.value=result['city_id'];
					searchForm.submit();
				} else {
					if (result['city_list'].length > 1) {
						showCities(result['city_list']);
					}
					showErrors(result['message_list']);
					document.getElementById('search_button').value="Search";
					document.getElementById('search_button').disabled = false;
				}
			}
		},
		true
	);
	return false;
}
function validateForm() {
	var searchForm = document.getElementById('search_form');
	if (searchForm.search_city_id.length == 0) {
		return false;
	}
}
function showCities(cities) {
	var
		 citiesFieldset = document.getElementById('cities_fieldset')
		,cityList = document.getElementById('city_list')
		,tmpText = new String()
		,pClass = '';
	;
	cityList.innerHTML = '';
	citiesFieldset.style.display = 'block';
	if (cities.length > 5) {
		pClass = ' class="similar_list"';
	}
	tmpText = '<p'+pClass+'><table border="0" cellpadding="3" cellspacing="0">'
	for (i in cities) {
		tmpText += '<tr><td><input name="ready" type="radio" id="sim_'+i+'" onclick="putCityName(\''+cities[i]['temp_name']+'\')"></td><td><label for="sim_'+i+'">'+cities[i]['temp_name']+'</label></td></tr>';
	}
	tmpText += '</table></p>';
	cityList.innerHTML = tmpText;
}
function putCityName(cityName) {
	document.getElementById('city_id').value = cityName;
}
function hideCities() {
	var
		 citiesFieldset = document.getElementById('cities_fieldset')
		,cityList = document.getElementById('city_list')
	;
	cityList.innerHTML = '';
	citiesFieldset.style.display = 'none';
}
function showErrors(errors) {
	var 
		 errorsFieldset = document.getElementById('errors_fieldset')
		,errorList = document.getElementById('error_list')
	;
	errorList.innerHTML = '';
	errorsFieldset.style.display = 'block';
	for (i in errors) {
		errorList.innerHTML += '<li>'+errors[i]+'</li>';
	}
}
function hideErrors() {
	var 
		 errorsFieldset = document.getElementById('errors_fieldset')
		,errorList = document.getElementById('error_list')
	;
	errorList.innerHTML = '';
	errorsFieldset.style.display = 'none';
}
function suggest() {
	var oTextbox = new AutoSuggestControl(document.getElementById('city_id'), new CitySuggestions());
}
function CitySuggestions() {
	
}
CitySuggestions.prototype.requestSuggestions = function (oAutoSuggestControl, bTypeAhead) {
	var aSuggestions = new Array();
	var sTextboxValue = oAutoSuggestControl.textbox.value;
	var cityList = new Array();
	if (sTextboxValue.length > 0){
		JsHttpRequest.query(
			'suggest_city'+(USE_REWRITER?'':'.php')+'?country='+country,
			{
				'value':sTextboxValue
			},
			function(result, errors) {
				if (errors) {
					alert('Error during selecting suggestions!');
					return;
				} else {
					cityList = result;
				}
				//search for matching
				for (var i=0; i < cityList.length; i++) {
					if (cityList[i].toLowerCase().indexOf(sTextboxValue.toLowerCase())==0) {
						aSuggestions.push(cityList[i]);
					}
				}
				//provide suggestions to the control
				oAutoSuggestControl.textbox.focus();
				oAutoSuggestControl.autosuggest(aSuggestions, bTypeAhead);
			},
			true
		);
	} else {
		oAutoSuggestControl.hideSuggestions();
	}
	var radioList = document.getElementsByTagName('input'), i;
	for (i in radioList) {
		if (radioList[i].type=="radio") {
			radioList[i].checked = false;
		}
	}
};
function addRemoveChildAgesInputs(selectTag) {
	for(i = 1; i <= 4; i++) {
		if (selectTag.value >= i) {
			document.getElementById('child_age_label'+i).style.display = '';	
			document.getElementById('child_age'+i).style.display = '';	
		} else {
			document.getElementById('child_age_label'+i).style.display = 'none';
			document.getElementById('child_age'+i).style.display = 'none';
		}
	}
}