	    function checkSearchForm() {
	    	if(document.getElementById('country').value == '') {
	    		alert(error_country);
	    		return false;	
	    	}

	    	if(document.getElementById('area').value == '') {
	    		alert(error_area);
	    		return false;	
	    	}

	    	if(		document.getElementById('apartmentName').value.length > 0
	    		&&	document.getElementById('apartmentName').value.length < 3) {
	    		alert(min_3_chars);
	    		return false;	
	    	}
	    	
	    	if(	  parseInt(document.getElementById('adultCount').value)
	    		+ parseInt(document.getElementById('youngCount').value)
	    		+ parseInt(document.getElementById('seniorCount').value)
	    		== 0) {
    			alert(no_adult);
    			return false;
	    	}

	    	if(	  parseInt(document.getElementById('adultCount').value)
	    		+ parseInt(document.getElementById('childrenCount').value)
	    		+ parseInt(document.getElementById('youngCount').value)
	    		+ parseInt(document.getElementById('seniorCount').value)
	    		> maxPaxCount) {
    			alert(too_many_pax + ": " + maxPaxCount);
    			return false;
	    	}
	    	
	    	if(	  parseInt(document.getElementById('adultCount').value)
	    		+ parseInt(document.getElementById('youngCount').value)
	    		+ parseInt(document.getElementById('seniorCount').value)
	    		< parseInt(document.getElementById('cotsCount').value)) {
    			alert(more_infants_than_adults);
    			return false;
	    	}

	    	if(!checkPeriod()) {
	    		return false;
	    	}
	    	
			hide_show_screen();
			return true;
	    }
	    
	    function countrySelected() {
        	dwr.util.removeAllOptions("area");
        	dwr.util.addOptions("area", [{value:'', text:vyberte_region}], "value", "text");

        	var country_code = dwr.util.getValue("country");
        	if(country_code != '') {
        		IFormCombiApartment.getAreasForCountry(country_code, function(data) {
		        	dwr.util.addOptions("area", data, "id" , "text");
		        	if(fArea != '') {
		        		document.getElementById('area').value = fArea;
		        		fArea = '';
	    	    		areaSelected();
	        		}
        		});
        	}
        		
	     	document.getElementById('area').disabled = false;
    	}

	    function areaSelected() {
        	dwr.util.removeAllOptions("location");
        	dwr.util.addOptions("location", [{value:'', text:bez_omezeni}], "value", "text");

        	var area_code = dwr.util.getValue("area");
        	if(area_code != '') {
        		IFormCombiApartment.getLocationsForArea(area_code, function(data) {
		        	dwr.util.addOptions("location", data, "id" , "text");
		        	if(fLocation != '' && init) {
		        		document.getElementById('location').value = fLocation;
		        		fLocation = '';
	        		}
        		});
        	}
        		
        	document.getElementById('location').disabled = false;
    	}

	    window.onload = function() {
	   	 	initialSettings();
        	dwr.util.addOptions("country", [{value:'', text:vyberte_stat}], "value", "text");
        	dwr.util.addOptions("area", [{value:'', text:vyberte_region}], "value", "text");
        	dwr.util.addOptions("location", [{value:'', text:bez_omezeni}], "value", "text");
        	document.getElementById('area').disabled = true;
        	document.getElementById('location').disabled = true;
        	document.getElementById('country').onchange = countrySelected;
        	document.getElementById('area').onchange = areaSelected;
        
        	IFormCombiApartment.getAllCountries(function(data) {
        		dwr.util.addOptions("country", data, "id", "text");
	        	if(fCountry != '') {
	        		document.getElementById('country').value = fCountry;
	        		countrySelected();
	        	}
        	});
        	
        	if(fArrivalDay != '' && fDepartureDay != '') {
	        	setDays('arrivalDay', 'arrivalMonthYear');
	        	setDays('departureDay', 'departureMonthYear');
        		document.getElementById('arrivalDay').value = fArrivalDay;
        		document.getElementById('departureDay').value = fDepartureDay;
	        	updateDoW('arrivalDoW', 'arrivalDay', 'arrivalMonthYear');
	        	updateDoW('departureDoW', 'departureDay', 'departureMonthYear');
        	} else {
        		date = new Date();
        		date.setHours(12);
        		date.setMinutes(0);
        		date.setSeconds(0);
        		date.setMilliseconds(0);
        		date.setTime(date.getTime() + (defaultDaysFromNow * 3600 * 24000));        		
			    document.getElementById('arrivalMonthYear').value = (date.getMonth()+1).numberFormat("00") + ' ' + date.getFullYear();
	        	setDays('arrivalDay', 'arrivalMonthYear');
        		document.getElementById('arrivalDay').value = date.getDate().numberFormat("00");
	        	updateDoW('arrivalDoW', 'arrivalDay', 'arrivalMonthYear');
    	    	updateDeparture();
        	}
        	
        	if(fAdultCount != '')
        		document.getElementById('adultCount').value = fAdultCount;
        	if(fSeniorCount != '')
        		document.getElementById('seniorCount').value = fSeniorCount;
        	if(fYoungCount != '')
        		document.getElementById('youngCount').value = fYoungCount;
        	document.getElementById('childrenCount').value = fChildrenAges.length;
        	childCombos(fChildrenAges.length);
        	for(var i = 0; i < fChildrenAges.length; i++) {
        		document.getElementById('childrenAges' + i).value = fChildrenAges[i];
        	}
        	if(fCotsCount != '')
        		document.getElementById('cotsCount').value = fCotsCount;
        	
    	}
    	
    	
    	function extendedSearch(link) {
    		if(document.getElementById('extended').value == 'false') {
    			document.getElementById('extended').value = 'true';
    			document.getElementById('extended_form').style.display = 'block';
    			link.innerHTML = zakladni_hledani;
    		} else {
    			document.getElementById('extended').value = 'false';
    			document.getElementById('extended_form').style.display = 'none';
    			link.innerHTML = rozsirene_hledani;
    			document.getElementById('apartmentName').value = '';
    			facs = document.getElementsByName('facilities');
    			for(var i = 0; i < facs.length; i++) {
    				facs[i].checked = false;
    			}
    		}
    	}
    	
    	function updateDeparture() {
     		var my = document.getElementById('arrivalMonthYear').value.split(/[ ]/);
    		var month = (my[0] - 1);
    		var year = my[1];
    		var day = document.getElementById('arrivalDay').value;
    		var date = new Date();
    		date.setTime(0);
    		date.setFullYear(year);
    		date.setMonth(month);
    		date.setDate(day);
    		date.setHours(12);

    		var now = new Date();
     		now.setHours(12);
    		now.setMinutes(0);
    		now.setSeconds(0);
    		now.setTime(now.getTime() + 24000 * 3600 * defaultDaysFromNow);

    		if(date < now) {
    			alert(in_past);
    			return false;
    		}
    		date.setTime(date.getTime() + (daysPeriod * 3600 * 24000));
    		var depM = new Number(date.getMonth() + 1);
    		document.getElementById('departureMonthYear').value = depM.numberFormat("00") + ' ' + date.getFullYear();
        	if(document.getElementById('departureMonthYear').selectedIndex == -1) {
        		alert(too_short_period);
        		document.getElementById('arrivalDay').selectedIndex = document.getElementById('arrivalDay').selectedIndex - daysPeriod;
				updateDoW('arrivalDoW', 'arrivalDay', 'arrivalMonthYear');
        		updateDeparture();
        		return;
        	}
        	setDays('departureDay', 'departureMonthYear');
        	var depD = new Number(date.getDate());
    		document.getElementById('departureDay').value = depD.numberFormat("00");
			updateDoW('departureDoW', 'departureDay', 'departureMonthYear');
    	}
    	
    	function checkPeriod() {
     		var my = document.getElementById('arrivalMonthYear').value.split(/[ ]/);
    		var month = (my[0] - 1);
    		var year = my[1];
    		var day = document.getElementById('arrivalDay').value;
    		var arrival = new Date();
    		arrival.setTime(0);
    		arrival.setFullYear(year);
    		arrival.setMonth(month);
    		arrival.setDate(day);
    		arrival.setHours(12);

     		my = document.getElementById('departureMonthYear').value.split(/[ ]/);
    		month = (my[0] - 1);
    		year = my[1];
    		day = document.getElementById('departureDay').value;
    		var departure = new Date();
    		departure.setTime(0);
    		departure.setFullYear(year);
    		departure.setMonth(month);
    		departure.setDate(day);
    		departure.setHours(12);

     		var now = new Date();
    		now.setHours(12);
    		now.setMinutes(0);
    		now.setSeconds(0);
    		now.setTime(now.getTime() + 24000 * 3600 * defaultDaysFromNow);

    		if(arrival < now || departure < now) {
    			alert(in_past);
    			return false;
    		}

			if((departure - arrival) / 24000 / 3600 < daysPeriod) {
				alert(too_short_period);
				updateDeparture();
				return false;
			}
			
			return true;
    	}
    	
    	function setDays(daysComboId, monthYear) {
    		var d = dwr.util.getValue(daysComboId);
    		var my = document.getElementById(monthYear).value.split(/[ ]/);
    		var month = (my[0] - 1);
    		var year = my[1];
			var daycount = 0;
			switch(month) {
	        	case 1:
    	        	if ((year%4 == 0 && year%100 !=0 ) || 
              			 year%400 == 0)
               			daycount = 29;
               		 else 
               			daycount = 28;
               		
           			break;
         	case 3:
	        case 5:
    	    case 8:
        	case 10:
            	daycount = 30;
            	break;
         	default:
            	daycount = 31;
            }
			dwr.util.removeAllOptions(daysComboId);
			for(i = 1; i <= daycount; i++) {
				var day = new Number(i);
				dwr.util.addOptions(daysComboId, [day.numberFormat("00")]);
			}
			dwr.util.setValue(daysComboId, d);
    	}
    	
    	function updateDoW(DoWspan, d, my) {
    		var day = document.getElementById(d).value;
    		var monthYear = document.getElementById(my).value;
    		var mya = monthYear.split(/[ ]/);
    		var month = (mya[0] - 1);
    		var year = mya[1];
    		var date = new Date();
    		date.setTime(0);
    		date.setFullYear(year);
    		date.setMonth(month);
    		date.setDate(day);
    		date.setHours(12);
    		document.getElementById(DoWspan).innerHTML = daysOfWeek[date.getDay()];
    	}
    	
    	function childCombos(count) {
    		var html = '<label>' + vek_deti + '</label> ';
    		for(var i = 0; i < count; i++) {
    			html += '<select id="childrenAges' + i +'" name="childrenAges">';
    			for(var j = childrenAgesCombo.min; j <= childrenAgesCombo.max; j++) {
    				html += '<option value="' + j + '"';
    				if(childrenAgesCombo.def == j)
    					html += ' selected="selected"';
    				html += '>' + j + '</option>';
    			}
    			html += '</select>';
    		}
    		document.getElementById('children').innerHTML = count > 0 ? html : '';
    	}
    	

