    var map = null;
    var geocoder = null;
    var isCorrect = false;
	function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              map.setCenter(new GLatLng(lang['showAddress']), 13);
            } else {
              map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);
            }
          }
        );
      }
    }



	function  setCoordinates(obj,name)
	{			var x=0, y=0;
			while(obj) {
			   x+=obj.offsetLeft;
			   y+=obj.offsetTop;
			   obj=obj.offsetParent;
			}
			mousex = x;
			mousey = y;
			document.getElementById('fly_'+name).style.top = (mousey-document.getElementById('pic_'+name).height-2)+'px';
			document.getElementById('fly_'+name).style.left = (mousex-(document.getElementById('pic_'+name).width/2))+'px';
		//	document.getElementById('fly_'+name).style.display = "none";
		//document.getElementById('fly_'+name).style.visibility = "visible";
	}

	function setBookingValues(valueDate,valueStatus, valuePrice){
		document.getElementById('dateOfTravel').value = valueDate;
		document.getElementById('dateOfTravelDescr').innerHTML = "";
		disableButtons();
	}

	function disableButtons(postfix){
		if(document.getElementById('btnRequest' + postfix))
			document.getElementById('btnRequest' + postfix).style.display = "none";
		if(document.getElementById('btnBook' + postfix))
			document.getElementById('btnBook' + postfix).style.display = "none";
		if(document.getElementById('price' + postfix))
			document.getElementById('price' + postfix).innerHTML = lang["label.rentalPriceDescription"];
	}

	function prepareBooking(onlyCheck,postfix){
		var dateOfTravel = document.getElementById('dateOfTravel' + postfix).value;
		var minNumberOfDays = document.getElementById('durationOfTrip' + postfix).value;
		var numberOfPersons = document.getElementById('numberOfPersons' + postfix).value;
		var warning = "";
		isCorrect = false;
		var reg=/^\d+$/;
		if(!reg.test(minNumberOfDays)){
            alert(lang["error.numberOfDays"]);
			return false;
		}

		if(!reg.test(numberOfPersons)){
            alert(lang["error.persons"]);
			return false;
		}

		if(dateOfTravel && dateOfTravel != "dd.mm.yyyy" && isValidDate(dateOfTravel)){
			if(minNumberOfDays>0){
				if(numberOfPersons>0){
					var checkNumberOfDays = lang["MinDays"] - minNumberOfDays;
					if(checkNumberOfDays > 0){
						alert(lang["error.warningNumberOfDays"].replace("[%COUNT%]",lang["MinDays"]));
						document.getElementById('durationOfTrip' + postfix).value = lang["MinDays"];
						return;
					}
					
					isCorrect = true;
					if(onlyCheck)
						return;
					
					//document.getElementById('price').innerHTML = lang['label.checkingPleaseWait'];
					document.getElementById('price' + postfix).innerHTML = "<img width=13 src=\"/images/loading.gif\"/>&nbsp;"+lang["label.checkingPleaseWait"];
					var link = lang['URL'];
					link = link + lang['URL2'] + dateOfTravel + "&persons=" + numberOfPersons + "&numberOfDays=" + minNumberOfDays + "&j_language="+lang['lang'] ;
					if(postfix)
						link = link + "&postfix=" + postfix;
					var objAj = new Ajax.Updater("availabilityInfo" + postfix, link,{evalScripts:true});
				}else{
					alert(lang["error.persons"]);
				}
			}else{
				alert(lang["error.numberOfDays"]);
			}
		}else{
			alert(lang["error.startDate"]);
		}
	}

	function doBooking(type,postfix){

    	document.getElementById('bookingArrivalDate' + postfix).value =  document.getElementById('dateOfTravel' + postfix).value;
    {
		var objStringDate = new String(document.getElementById('bookingArrivalDate' + postfix).value);

		var day = objStringDate.substr(0,2);
		var month = objStringDate.substr(3,2)-1;
		var year = objStringDate.substr(6);
		day = eval(parseInt(day,10)+parseInt(document.getElementById('durationOfTrip' + postfix).value,10));
		date = new Date(year,month,day);
		day = date.getDate();
		if(day<10)
			 day = "0"+""+day;
		month = date.getMonth()+1;
		if(month<10)
			 month = "0"+""+month;
		year = date.getYear()+1900;
		year = year % 100;
		year = ((year < 50) ? (2000 + year) : (1900 + year));
        objStringDate = day+"."+month+"."+year;
    	document.getElementById('bookingDepartueDate' + postfix).value =  objStringDate;
    }

    	document.getElementById('bookingPersons' + postfix).value =  document.getElementById('numberOfPersons' + postfix).value;

		var locationUrl = lang["booking"]+ document.getElementById('bookingArrivalDate' + postfix).value+"&departureDate=" + document.getElementById('bookingDepartueDate' + postfix).value +
			"&persons=" + document.getElementById('bookingPersons' + postfix).value + "&j_language=" + lang['lang'] +"&type="+type+lang['type'];
		acePopup(locationUrl,'Booking',810,700,'center')
	}


	function openCalendar(postfix){
		var locationUrl = lang["location"];
		if(postfix)
			locationUrl = locationUrl + "&postfix=" + postfix;
		acePopup(locationUrl,'Calendar',510,600)
	}

	function showFullCalendar(cIteration){
		for(i=1;i<cIteration;i++){
			document.getElementById("calendar"+i).style.display = "block";
		}
		document.getElementById("showMonthBtn").style.display = "none";
	}

	function isValidDate(sText) {
		var today = new Date();
		var curYear = today.getFullYear();
		var curMonth = today.getMonth() + 1;
		var curDay = today.getDate();

                                                                                                                           		var objStringDate = new String(sText);
		var day = objStringDate.substr(0,2);
		var month = objStringDate.substr(3,2);
		var year = objStringDate.substr(6);

		var reDate = /^\d{2}\.?\d{2}\.?\d{4}$/;
		if(objStringDate.length == 10 &&  reDate.test(sText) && (day > 0 && day < 32) && (month > 0 && month < 13) && (year >= curYear && year < 2026)){

		if(curYear > year){
		    return false;
		   }

		   if(curMonth > month &&  curYear == year){
		    return false;
		   }

		   if(curDay > day && curMonth == month &&  curYear == year){
		    return false;
		   }
			if((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) && (day > 0 && day < 32)){
				return true;
			}else{
				if((month == 4 || month == 6 || month == 9 || month == 11) && (day > 0 && day < 31)){
					return true;
				}else{
					var isNotLeapYear = (year % 4);
					if(isNotLeapYear && month == 2 && (day > 0 && day < 29)){
						return true;
					}else{
						if(!isNotLeapYear && month == 2 && (day > 0 && day < 30)){
							return true;
						}
					}
				}
			}
		}
		return false;
	}
	
	function loadWSData(targetId, data){
		var isOK = false;
		if(data){
			var params = "";
			var link = "http://" + window.location.host + "/ajax.php?grandparent=site";
			for(param in data){
				params = params + "&" + param + "=" + data[param];
			}
			if(targetId != ''){
				var objWrapper = document.getElementById(targetId);
				new Ajax.Updater(targetId, link + params, 
					{ evalScripts: true,
					  onLoaded: function () {
						// some action if required
						objWrapper.style.height = ""; // <- reset block height
						isOK = true;
					  } 
					}
				);
			}else{
				new Ajax.Request(link + params, {
				  onSuccess: function(response) {
					isOK = true;
				  }
				});
			}
		}
		return isOK;
	}
	
	function checkEmail(emailValue){
		reEmail = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2,4}([zmuvtg]|fo|me)?$/;
		if(reEmail.test(emailValue)){ // check pattern
			return true
		}
		return false;
	}
	
	function sendToFriend(module){
		var emailTo = document.getElementById("stf_r_email").value;
		var nameTo = document.getElementById("stf_r_name").value;
		var emailFrom = document.getElementById("stf_y_email").value;
		var nameFrom = document.getElementById("stf_y_name").value;
		var comment = document.getElementById("stf_comment").value;
		var isOK = false;
		if(emailTo != "" && nameTo != "" && emailFrom != "" && nameFrom != ""){
			if(!checkEmail(emailTo) || !checkEmail(emailFrom)){
				alert(lang['error.invalidEmailFormat']);
			}else{
				isOK = loadWSData('',{'m':module,'a':'260','sbm':1,'emailTo':emailTo,'nameTo':encodeURI(nameTo),'emailFrom':emailFrom,'nameFrom':encodeURI(nameFrom),'comment':encodeURI(comment),'ol':window.location.href});
				document.getElementById('stf_message').style.display = "block";
			}
		}else{
			var strError = lang['error.followingFieldsShouldNotBeEmpty'] + "\n";
			var isError;
			if(emailTo == ""){
				strError = strError + lang['label.recipientEmail'] + "\n";
				isError = 1;
			}
			if(nameTo == ""){
				strError = strError + lang['label.recipientName'] + "\n";
				isError = 1;
			}
			if(emailFrom == ""){
				strError = strError + lang['label.yourEmail'] + "\n";
				isError = 1;
			}
			if(nameFrom == ""){
				strError = strError + lang['label.yourName'] + "\n";
				isError = 1;
			}
				
			if(isError)
				alert(strError);
		}
	}
	
	function clearSTFFields(){
		var stf_r_name = document.getElementById('stf_r_name');
		if(stf_r_name) stf_r_name.value = "";
		var stf_r_email = document.getElementById('stf_r_email');
		if(stf_r_email) stf_r_email.value = "";
		var stf_message = document.getElementById('stf_message');
		if(stf_message) stf_message.style.display = "none";
	}