

function jah(url,target) {
	
	document.getElementById(target).innerHTML = '';
	
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {jahDone(target);};
        req.open("GET", url, true);
        req.send(null);
		

    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {jahDone(target);};
            req.open("GET", url, true);
            req.send();
        }
    }
	 
	
}    

function jah_with_image(url,target,show_progress_image) {
	
	if (show_progress_image) {
		document.getElementById(target).innerHTML = "<img src=\'logic_frontend/templates/site/images/loading.gif\' />";
	} else {
		//document.getElementById(target).innerHTML = '';
	}
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {jahDone(target);};
        req.open("GET", url, true);
        req.send(null);
		

    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {jahDone(target);};
            req.open("GET", url, true);
            req.send();
        }
    }
	 
	
}    

function jahDone(target) {
    if (req.readyState == 4) {
        if (req.status == 200) {
            results = req.responseText;
            document.getElementById(target).innerHTML = results;
        } else {
            document.getElementById(target).innerHTML="jah error:\n" +
                req.statusText;
        }
    }
}

// function requestCalendarPeriod(link, mode){
	// var openWithParam="ajaxindex.php?mod=apart&sec=_ajax_calendar_date_picker&" + link + "&sDestinationMode=" + mode;
	// jah_with_image(openWithParam,'calendar_search_'+mode,true);

// }

function requestCalendarPeriod(link, mode, prefix){
	if(prefix == 'search') {
		if(mode == 'begin') {
			iBorderDay = document.search_form.sDepartureDateDay.value;
			iBorderMonth = document.search_form.sDepartureDateMonth.value;
			iBorderYear = document.search_form.sDepartureDateYear.value;
		}	
		if(mode == 'end') {
			iBorderDay = document.search_form.sArrivalDateDay.value;
			iBorderMonth = document.search_form.sArrivalDateMonth.value;
			iBorderYear = document.search_form.sArrivalDateYear.value;
		}
	}
	else if(prefix == 'reservation') {
		if(mode == 'begin') {
			iBorderDay = document.reservation_form.sEndDateDay.value;
			iBorderMonth = document.reservation_form.sEndDateMonth.value;
			iBorderYear = document.reservation_form.sEndDateYear.value;
		}	
		if(mode == 'end') {
			iBorderDay = document.reservation_form.sStartDateDay.value;
			iBorderMonth = document.reservation_form.sStartDateMonth.value;
			iBorderYear = document.reservation_form.sStartDateYear.value;
		}	
	}
	var openWithParam="ajaxindex.php?mod=apart&sec=_ajax_calendar_date_picker&sPrefix=" + prefix + "&" + link + "&sDestinationMode=" + mode + "&d_border_date=" + iBorderYear + "-" + iBorderMonth + "-" + iBorderDay;
	jah_with_image(openWithParam,'calendar_'+prefix+"_"+mode,true);

}

function requestCalendarMainPeriod(link){
	var openWithParam="ajaxindex.php?mod=apart&sec=_ajax_apartment_calendar_main_period&" + link;
	jah_with_image(openWithParam,'calendar_main',true);

}

function requestCalendarApartPeriod(link, aid){
	var openWithParam="ajaxindex.php?mod=apart&sec=_ajax_apartment_calendar_apart_period&aid="+aid+"&" + link;
	jah_with_image(openWithParam,'calendar_main',true);

}

function requestCalendarNext($link){
	var openWithParam= $link;
	jah(openWithParam,'calendar_outside');
}

function requestCalendarPrev($link){
	var openWithParam=$link;
	jah(openWithParam,'calendar_outside');
}

function requestPhoto(chosen_poster, apartment_id,clean){
	
	var openWithParam="ajaxindex.php?mod=apart&sec=_ajax_apartment_gallery_request_photo&pid="+chosen_poster+"&aid="+apartment_id;
	jah(openWithParam,'photo_duze');
	if(clean==true){
		$('.offlight').attr('class','onlight');
		$('#img_gallery_'+chosen_poster).attr('class','offlight');
		setTimeout('lightrelode()',500);
		
		
		
	}

}
function lightrelode(){
	
	$('.light_big, #hiddengallery a.onlight').lightBox({
		//fixedNavigation:true,
		imageBtnPrev: '/logic_frontend/templates/site/images/prev.gif',
		imageBtnNext: '/logic_frontend/templates/site/images/next.gif',
		imageBtnClose: '/logic_frontend/templates/site/images/close2.gif'
	});

}

function requestCurrency(waluta, lan, aid){
	var openWithParam="ajaxindex.php?mod=apart&sec=_ajax_apartment_price_list&currency="+waluta+"&lang="+lan+"&aid="+aid;
	jah_with_image(openWithParam,'ceny', true);
}

function requestCurrencyT($waluta, $lan){
	var openWithParam="ajaxindex.php?mod=static&sec=_ajax_tours_regular_prices&sCurrency="+$waluta;
	jah_with_image(openWithParam,'ceny');
}

function requestCurrencyP($waluta, $lan){
	var openWithParam="ajaxindex.php?mod=static&sec=_ajax_tours_private_prices&sCurrency="+$waluta;
	jah_with_image(openWithParam,'ceny');
}



function calculatedate($day,$month,$year,$numdays){
	var openWithParam="index.php?page=calculatedate&day="+$day+"&month="+$month+"&year="+$year+"&numdays="+$numdays;
	jah(openWithParam,'calculatedate');
}


function Tree(id)
{
	this.id = id;
	
	this.click = function ()
	{
		for (var i = 0, el_node; i < this.parentNode.childNodes.length; i++)
		{
			el_node = this.parentNode.childNodes.item(i)
			if (el_node.nodeName.toLowerCase() == 'ul')
			{
				el_node.style.display = el_node.style.display == 'none' ? 'block' : 'none';
				this.parentNode.className = this.parentNode.className.replace(/(^| +)(opened|closed)( +|$)/g, ' ') + ' ' + (el_node.style.display == 'none' ? 'closed' : 'opened');
				return;
			}
		}
	}
	
	this.start = function (el)
	{
		for (var i = 0, el_node; i < el.childNodes.length; i++)
		{
			el_node = el.childNodes.item(i);
			if (el_node.nodeName.toLowerCase() == 'a')
			{
				el_node.onclick = this.click;
				for (var j = 0; j < el_node.parentNode.childNodes.length; j++)
				{
					if (el_node.parentNode.childNodes.item(j).nodeName.toLowerCase() == 'ul')
					{
						el_node.parentNode.className += ' closed';
						el_node.className = (el_node.className ? el_node.className + ' ' : '') + 'folder';
						break;
					}
					if (el_node.parentNode.childNodes.item(j).nodeName.toLowerCase() == 'li') break;
				}
				if (el_node.href && unescape(el_node.href) == unescape(window.location.href))
				{
					el_node.className = 'active';
					var el_parentNode = el_node;
					do
					{
						el_parentNode = el_parentNode.parentNode;
						if (el_parentNode.nodeName.toLowerCase() == 'ul')
						{
							el_parentNode.style.display = 'block';
							if (document.getElementById(this.id) != el_parentNode) el_parentNode.parentNode.className = el_parentNode.parentNode.className.replace(/(^| +)(opened|closed)( +|$)/g, ' ') + ' opened';
						}
					}
					while (document.getElementById(this.id) != el_parentNode)
				}
			}
			else if (el_node.nodeName.toLowerCase() == 'ul') el_node.style.display = 'none';
			this.start(el_node);
		}
	}
	
	if (document.getElementById && document.childNodes) this.start(document.getElementById(this.id));
}

function ShowSeasons(id)
	{
		var seasons = document.getElementById(id);
		var view = seasons.style.display;

         if (view == ""){    
			seasons.style.display = "none";
		}

		if (view == "none"){
			seasons.style.display = "";
		}

	}
	
function hideSearchMap() {
	jQuery('#calendar_search_district').hide()
}

function sessionRefresh() {
	jQuery.ajax({url: "ajaxindex.php?mod=apart&sec=_ajax_session_refresh&lang=en"});	
}
setInterval(sessionRefresh, 240000);	

/**
 * Function getting how many nights will the persons stay in a selected apartment.
 * Function invokes ajax.
 */
function setSearchApartmentNights() {
	var iApartmentId = 0;
	postString = "&aid=" + iApartmentId;
	var iDay = document.getElementsByName('sArrivalDateDay')[0].value;
	var iMonth = document.getElementsByName('sArrivalDateMonth')[0].value;
	var iYear = document.getElementsByName('sArrivalDateYear')[0].value;
	postString += "&sBeginDate=" + iYear + "-" + iMonth + "-" + iDay;
	var iDay = document.getElementsByName('sDepartureDateDay')[0].value;
	var iMonth = document.getElementsByName('sDepartureDateMonth')[0].value;
	var iYear = document.getElementsByName('sDepartureDateYear')[0].value;
	postString += "&sEndDate=" + iYear + "-" + iMonth + "-" + iDay;
	jQuery.ajax({
		beforeSend: function() {
			//loaderSearchClient();
			/* deactivating the "continue" button */
			jQuery('[name=search_submit]').attr('disabled','disabled');
			jQuery('#iSearchCountNights').html('<img src="logic_frontend/templates/site/images/ajax-loader3.gif" />');
		},
		type: "POST",
		url: "ajaxindex.php",
		data: "mod=apart&sec=_ajax_reservation_add_count_nights"+postString,
		success: function(data, status){
			jQuery('#iSearchCountNights').html(data);
			/* activating the "continue" button */
			jQuery('[name=search_submit]').attr('disabled','');
		}
	});
}

/**
 * Function setting proper crocow district clicked on the picture
 */
function setCracowDistrict(iDistrictId, sDistrictCodeName) {
	var options = jQuery("[name=iPlacementId]")
	var option = options[0];
	for (i=0;i<option.length;i++) {
		if (option[i].value == iDistrictId) {
			option.selectedIndex = i;
		}
	}
		var fl = document.getElementById("calendar_search_district_swf");
	if (fl) { 
		fl.focus(); 
	}
	//alert(option[option.selectedIndex].value);
}

jQuery(function() {	
	// initialise the "Select date" link
	if(jQuery('#sArrivalDate').length >0){
		jQuery('#sArrivalDate')
			.datePicker(
				// associate the link with a date picker
				{
					createButton:false
				}
			).bind(
				// when the link is clicked display the date picker
				'click',
				function()
				{
					updateSelects(jQuery(this).dpGetSelected()[0]);
					jQuery(this).dpDisplay();
					return false;
				}
			).bind(
				// when a date is selected update the SELECTs
				'dateSelected',
				function(e, selectedDate, $td, state)
				{
					updateSelects(selectedDate);
					updateOther(selectedDate);
					setSearchApartmentNights();
				}
			).bind(
				'dpClosed',
				function(e, selected)
				{
					updateSelects(selected[0]);
				}
			);
	}
	var updateSelects = function (selectedDate)
	{
		selectedDate = new Date(selectedDate);
		var d = selectedDate.getDate();
		var m = selectedDate.getMonth();
		var y = selectedDate.getFullYear();
		(jQuery('#sArrivalDateDay')[0]).selectedIndex = d -1;
		(jQuery('#sArrivalDateMonth')[0]).selectedIndex = m;
		var today = new Date();
		(jQuery('#sArrivalDateYear')[0]).selectedIndex = y - today.getFullYear();
	}
	
	var updateOther = function (selectedDate)
	{
		if(
			jQuery('#sArrivalDateYear').val() > jQuery('#sDepartureDateYear').val()	||
			(	
				jQuery('#sArrivalDateYear').val() == jQuery('#sDepartureDateYear').val() &&
				jQuery('#sArrivalDateMonth').val() > jQuery('#sDepartureDateMonth').val()
			) ||
			(
				jQuery('#sArrivalDateYear').val() == jQuery('#sDepartureDateYear').val() &&
				jQuery('#sArrivalDateMonth').val() == jQuery('#sDepartureDateMonth').val() &&
				jQuery('#sArrivalDateDay').val() >= jQuery('#sDepartureDateDay').val()
			)
		) {
			var nextDay = new Date();
			nextDay.setTime(selectedDate.getTime() + (1000*3600*24));			
			var d = nextDay.getDate();
			var m = nextDay.getMonth();
			var y = nextDay.getFullYear();
			(jQuery('#sDepartureDateDay')[0]).selectedIndex = d -1;
			(jQuery('#sDepartureDateMonth')[0]).selectedIndex = m;
			var today = new Date();
			(jQuery('#sDepartureDateYear')[0]).selectedIndex = y - today.getFullYear();
			jQuery('#sDepartureDate').dpSetSelected(nextDay.asString());
		}
	}
	
	// listen for when the selects are changed and update the picker
	jQuery('#sArrivalDateDay, #sArrivalDateMonth, #sArrivalDateYear')
		.bind(
			'change',
			function()
			{
				var d = new Date(
							jQuery('#sArrivalDateYear').val(),
							jQuery('#sArrivalDateMonth').val() - 1,
							jQuery('#sArrivalDateDay').val()
						);
				jQuery('#sArrivalDate').dpSetSelected(d.asString());
				updateOther(d);
				setSearchApartmentNights();
			}
		);
	// default the position of the selects to today
	if(jQuery('#sArrivalDate').length >0){
		var today = new Date();
		jQuery('#sArrivalDateDay').trigger('change');
		jQuery('#sArrivalDate').dpSetOffset(10, 17);
	}
});

jQuery(function() {	
	// initialise the "Select date" link
	if(jQuery('#sDepartureDate').length >0){
	jQuery('#sDepartureDate')
		.datePicker(
			// associate the link with a date picker
			{
				createButton:false
			}
		).bind(
			// when the link is clicked display the date picker
			'click',
			function()
			{
				updateSelects(jQuery(this).dpGetSelected()[0]);
				jQuery(this).dpDisplay();
				return false;
			}
		).bind(
			// when a date is selected update the SELECTs
			'dateSelected',
			function(e, selectedDate, $td, state)
			{
				updateSelects(selectedDate);
				updateOther(selectedDate);
				setSearchApartmentNights();
			}
		).bind(
			'dpClosed',
			function(e, selected)
			{
				updateSelects(selected[0]);
			}
		);
	}
	var updateSelects = function (selectedDate)
	{
		selectedDate = new Date(selectedDate);
		var d = selectedDate.getDate();
		var m = selectedDate.getMonth();
		var y = selectedDate.getFullYear();
		(jQuery('#sDepartureDateDay')[0]).selectedIndex = d -1;
		(jQuery('#sDepartureDateMonth')[0]).selectedIndex = m;
		var today = new Date();
		(jQuery('#sDepartureDateYear')[0]).selectedIndex = y - today.getFullYear();
	}
	
	var updateOther = function (selectedDate) 
	{
		if(
			jQuery('#sArrivalDateYear').val() > jQuery('#sDepartureDateYear').val()	||
			(	
				jQuery('#sArrivalDateYear').val() == jQuery('#sDepartureDateYear').val() &&
				jQuery('#sArrivalDateMonth').val() > jQuery('#sDepartureDateMonth').val()
			) ||
			(
				jQuery('#sArrivalDateYear').val() == jQuery('#sDepartureDateYear').val() &&
				jQuery('#sArrivalDateMonth').val() == jQuery('#sDepartureDateMonth').val() &&
				jQuery('#sArrivalDateDay').val() >= jQuery('#sDepartureDateDay').val()
			)
		) {
			var prevDay = new Date();
			prevDay.setTime(selectedDate.getTime() - (1000*3600*24));			
			var d = prevDay.getDate();
			var m = prevDay.getMonth();
			var y = prevDay.getFullYear();
			(jQuery('#sArrivalDateDay')[0]).selectedIndex = d -1;
			(jQuery('#sArrivalDateMonth')[0]).selectedIndex = m;
			var today = new Date();
			(jQuery('#sArrivalDateYear')[0]).selectedIndex = y - today.getFullYear();
			jQuery('#sArrivalDate').dpSetSelected(prevDay.asString());
		}
	}
	
	// listen for when the selects are changed and update the picker
	jQuery('#sDepartureDateDay, #sDepartureDateMonth, #sDepartureDateYear')
		.bind(
			'change',
			function()
			{
				var d = new Date(
							jQuery('#sDepartureDateYear').val(),
							jQuery('#sDepartureDateMonth').val() - 1,
							jQuery('#sDepartureDateDay').val()
						);
				jQuery('#sDepartureDate').dpSetSelected(d.asString());
				updateOther(d);
				setSearchApartmentNights();
			}
		);
	// default the position of the selects to today
	if(jQuery('#sDepartureDate').length >0){
		var today = new Date();
		jQuery('#sDepartureDateDay').trigger('change');
		jQuery('#sDepartureDate').dpSetOffset(10, 17);
	}
});

