function showApartmentImage(src)
{
	$('main_image').src = src;
	$('video_holder').hide();
	$('gmap').hide();
}

function showApartmentVideo(src)
{
	$('gmap').hide();
	$('video_holder').show();
	document.apartment_video.movie = src;
	$$('#video_holder param[name=movie]').first().value = src;
	$$('#video_holder object').first().data = src;
	
}

var loaded = false;
function showGMap(lat, lng)
{
	$('gmap').show();
	
	if(!loaded)
	{
		var map = new GMap2(document.getElementById("gmap"));
		map.addControl(new GSmallMapControl());	
		map.setCenter(new GLatLng(lat, lng), 15);
		
		var point = new GLatLng(lat, lng);
	    map.addOverlay(new GMarker(point));	
	    loaded = true;
	}
	
    
	$('video_holder').hide();
	
}

var firstSelectedDay  = null;
var secondSelectedDay = null;
var responseReturned = true;
function selectDay(day, month, year)
{
	//dont accept click until ajax response is returned
	if(responseReturned)
	{
		if(firstSelectedDay && secondSelectedDay)
		{
			secondSelectedDay = firstSelectedDay = null;
		}
		if(!firstSelectedDay && !secondSelectedDay)
		{
			clearSelection();
		}
		var date = new Date(year, month - 1, day, 0, 0, 0, 0);
		var timestamp = date.valueOf() / 1000; //seconds
		$('day' + timestamp).addClassName('selection');
		
		secondSelectedDay = firstSelectedDay != null ? date : secondSelectedDay;
		firstSelectedDay  = firstSelectedDay == null ? date : firstSelectedDay;
		
		//send form only if check in date and check out is selected
		if(firstSelectedDay && secondSelectedDay)
		{
			$('start_reservation_msg').show();
			$('end_reservation_msg').hide();
		
			//switch dates
			if(firstSelectedDay > secondSelectedDay)
			{
				var tmp = firstSelectedDay;
				firstSelectedDay = secondSelectedDay;
				secondSelectedDay = tmp;
			}
		
			$('form_check_in').value = firstSelectedDay.getDate();
			$('form_check_in_month_year').value = firstSelectedDay.getFullYear() + "-" + (firstSelectedDay.getMonth() + 1);		
			$('form_check_out').value = secondSelectedDay.getDate();
			$('form_check_out_month_year').value = secondSelectedDay.getFullYear() + "-" + (secondSelectedDay.getMonth() + 1);	
			
			bookApartment();
			makeCalendarSelection(firstSelectedDay.valueOf() / 1000, secondSelectedDay.valueOf() / 1000);
		}
		else
		{
			$('start_reservation_msg').hide();
			$('end_reservation_msg').show();
			new Effect.Highlight("end_reservation_msg", {startcolor: '#ffd94f',endcolor: '#ffffff'});
		}
	}	
}

//clear calendar
function clearSelection()
{
	$$('.selection').each(function(element){element.removeClassName('selection');});
	$$('.start_selection').each(function(element){element.removeClassName('start_selection');});
	$$('.end_selection').each(function(element){element.removeClassName('end_selection');});
}

function makeCalendarSelection(timestamp1, timestamp2)
{
	clearSelection();
	for(var timestamp = timestamp1; timestamp <= timestamp2; timestamp += 86400)
	{
		//day light saving
		if($('day' + (timestamp + 3600)))
		{
			timestamp += 3600;
		}
		else if($('day' + (timestamp - 3600)))
		{
			timestamp -= 3600;
		}
		if($('day' + timestamp) && !$('day' + timestamp).hasClassName('selection') && !$('day' + timestamp).hasClassName('booked'))
		{
			$('day' + timestamp).addClassName('selection');
		}
	}
}

function orderChanged()
{
	var checkInMonthYear = $F('form_check_in_month_year');
	var checkInDay = $F('form_check_in');
	var checkOutMonthYear = $F('form_check_out_month_year');
	var checkOutDay = $F('form_check_out');
	
	var matches = checkInMonthYear.match(/(\d+)-(\d+)/i);
	var checkInYear = matches[1];
	var checkInMonth = matches[2];
	var date = new Date(checkInYear, checkInMonth - 1, checkInDay, 0, 0, 0, 0);
	var firstSelectedDay = date.valueOf() / 1000; //seconds
	
	var matches = checkOutMonthYear.match(/(\d+)-(\d+)/i);
	var checkOutYear = matches[1];
	var checkOutMonth = matches[2];
	date = new Date(checkOutYear, checkOutMonth - 1, checkOutDay, 0, 0, 0, 0);
	var secondSelectedDay = date.valueOf() / 1000; //seconds
	
	if(firstSelectedDay > secondSelectedDay)
	{
		var tmp = firstSelectedDay;
		firstSelectedDay = secondSelectedDay;
		secondSelectedDay = tmp;
	}
	
	bookApartment();
	makeCalendarSelection(firstSelectedDay, secondSelectedDay);
}

function scrollToQuestion(id)
{
	new Effect.ScrollTo(id, {afterFinish: onFinishScrollToQuestion.bind(null, id)});
}

function onFinishScrollToQuestion(id)
{
	new Effect.Highlight(id + "_holder", {startcolor: '#ffd94f',endcolor: '#ffffff'});
}

function hideError()
{
	if($('ta_error'))
	{
		$('ta_error').hide();
	}
}