var close=true;
var path=null;
var this_url = null;

E=function(id){return document.getElementById(id)};
function getElementsByClass(c,n,t){var e=new Array();if(!n){n=document}if(!t){t='*'}var l=n.getElementsByTagName(t),p=new RegExp("(^|\\s)"+c+"(\\s|$)");for(i=0,j=0;i<l.length;i++){if(p.test(l[i].className)){e[j]=l[i];j++}}return e}
function findPos(o){var l=t=0;if(o.offsetParent){l=o.offsetLeft;t=o.offsetTop;while(o=o.offsetParent){l+=o.offsetLeft;t+=o.offsetTop}}return[l,t]}
function kill(f,e){var l=f.elements.length;if(!l){return false}for(n=0;n<l;n++){if((f.elements[n].type=='select-one'||f.elements[n].type=='select-multiple')&&f.elements[n].selectedIndex&&f.elements[n].value==''){continue}if(!e&&(f.elements[n].value==''||f.elements[n].value=='0')&&f.elements[n].type!='hidden'){f.elements[n].disabled=true}else if(e&&f.elements[n].type=='text'){f.elements[n].value=''}}}
var xml=new Array();
function get3(u,x,h,f,nu,d,l){
	
	var c=xml.length;sXML(c);
	if(!xml[c]){return false}
	var ul=(nu?'':'/ajax.php')+u+'&round='+Math.floor(Math.random()*1000);

	xml[c].open('GET',ul,true);
	xml[c].onreadystatechange=function(){
		if(xml[c].readyState==4){
			
			var r=xml[c].responseText;
		
			if(r){if(!h){try{eval(r)}catch(e){alert("XML ERROR: "+e.message+"\n\n"+ul+"\n\n"+r)}}
			else if(h&&h.style){h.style.display='';h.innerHTML=r}
			if(nu){r=null}
		}
		else if(h){h.style.display='none'}}
	};
	xml[c].send(null)
}
function sXML(c){if(!xml[c]){if(typeof(XMLHttpRequest)!='undefined'){xml[c]=new XMLHttpRequest()}else if(window.ActiveXObject){xml[c]=new ActiveXObject("Microsoft.XMLHTTP")}else{xml[c]=false}}}

function selectMenu(o, url) {
	get3(url);
	closeAll();
	
}

function addToFavour(id) {
	get3('?get=trip&save=favourites&idString='+id);
}
function remFromFavour(id) {
	get3('?get=trip&rem=favourites&idString='+id);
}

function scrollToDiv(divName){
	if ($('#' + divName).length != 0)
		$.scrollTo( '#' + divName, 800, {queue:true} );
}

function initElements(){
	$(".maa_l").click(function(){
			close=true;
			closeAll('maa');
			$(".maa_d").toggle("fast");
		});
		$(".city_l").click(function(){
			close=true;
			closeAll('city');
			$(".city_d").toggle("fast");
		});
		$(".country_l").click(function(){
		
			close=true;
			closeAll('country');
			$(".country_d").toggle("fast");
		});
		
		
		$(".type_l").click(function(){
			close=true;
			closeAll('type');
			$(".type_d").toggle("fast");
		});
		
		$(".nights_l").click(function(){
			close=true;
			closeAll('nights');
			$(".nights_d").toggle("fast");
		});
		$(".calendar_l").click(function(){
			close=true;
			closeAll('calendar');
			$("#date_picker_error").css("display", "none");
			$(".calendar_d").toggle("fast");
		});
		
		
		var dates = $( "#datepicker_start, #datepicker_end" ).datepicker({
			dateFormat:'dd.mm.yy',
			onSelect: function( selectedDate ) {
				var dateId = this.id;
				var option = this.id == "datepicker_start" ? "minDate" : "maxDate";
				
				if (this.id == 'datepicker_end'){
					$("#datepicker_end_str").val(selectedDate);	
				}else if (this.id == 'datepicker_start'){
					$("#datepicker_start_str").val(selectedDate);
				}
				
				instance = $( this ).data( "datepicker" ),
				date = $.datepicker.parseDate(
						instance.settings.dateFormat ||
						$.datepicker._defaults.dateFormat,
						selectedDate, instance.settings );
				dates.not( this ).datepicker( "option", option, date );
			}
		});
		
		/*
		$("#datepicker_start").datepicker({
			 onSelect: function(dateText){
		    	$("#datepicker_start_str").val(dateText);
			},
			dateFormat:'dd.mm.yy'
			 
		});
		
		$("#datepicker_end").datepicker({
		 onSelect: function(dateText){
		 	$("#datepicker_end_str").val(dateText);
			},
			dateFormat:'dd.mm.yy'
		});
		*/
		$(".theme_l").click(function(){
			close=true;
			closeAll('theme');
			$(".theme_d").toggle("fast");
		});
		$(".bus_l").click(function(){
			close=true;
			closeAll('bus');
			$(".bus_d").toggle("fast");
		});
		$(".dt_l").click(function(){
			close=true;
			closeAll('dt');
			$(".dt_d").toggle("fast");
		});
		
	$('#country_close').click(function() {
		closeAll();		
	});
	 $('#type_close').click(function() {
		closeAll();		
	});
	
	 $('#city_close').click(function() {
		closeAll();		
	});
	 $('#calendar_close').click(function() {
		closeAll();		
	});
	 $('#nights_close').click(function() {
		closeAll();		
	});
	 $('#theme_close').click(function() {
		closeAll();		
	});
	 $('#bus_close').click(function() {
		closeAll();		
	});
	 $('#dt_close').click(function() {
		closeAll();		
	});
}
function init(p,cal_url) {
	path = p;
	this_url = cal_url;
	
	
	
	 
}


function submitDate(){
	var ajax = true;
	var date_start = $("#datepicker_start_str").val();
	var date_end = $("#datepicker_end_str").val();
	$("#date_picker_error").css("display", "none");
	
	if (date_start != '' && date_end != ''){

			// if both dates selected
			var date1 = Date.parse(date_start.replace(/\./g, '/'));
			var date2 = Date.parse(date_end.replace(/\./g, '/'));
			
			var compare = compareDates(date_start, 'dd.MM.yyyy', date_end, 'dd.MM.yyyy');
			if (compare == 1){
					$("#date_picker_error").css("display", "inline");
					ajax= false;
				}
	}
	if (ajax){ //ajax call only if no trouble
		var url_str = this_url;
		if (date_start != ''){
			url_str += '&dp='+date_start;
		}
		if (date_end != ''){
			url_str += '&dp2='+date_end;
		}
		selectMenu(null, url_str);
	}
}


function customRange(input) { 
	    return {minDate: (input.id == "enddate" ? $("#startdate").datepicker("getDate") : '+1'), 
	        maxDate: (input.id == "startdate" ? $("#enddate").datepicker("getDate") : null)}; 
	} 


/* people count in request form */

var people = 0;
	
function createPeopleFields(el) {
	
		repeat = parseInt($('option:selected', el).text());
		if (repeat > people) {
			for (i = people + 1; i <= repeat;i++) {
				$('#people' + i).show();
			}
		}
		
		if (repeat < people) {
			for (i = people; i > repeat; i--) {
				$('#people' + i + ' input').val('');
				$('#people' + i).hide();
			}
		}
		
		people = repeat;
	}
	

function sendTinyOrderingForm(){
	
	var name = $("#name").val();
	var email = $("#email").val();
	var text = $("#text").val();
	var send = true;
	
	if ($.trim(name) == ''){
		alert('Nimi on pakollinen');
		send = false;
	}
	if ($.trim(email) == '' && send){
		alert('Email is empty');
		send = false;
	}
	if ($.trim(text) == '' && send){
		alert('Text is empty');
		send = false;
	}
	if (send) {
		params = '&name=' + name;
		params += '&email=' + email;
		params += '&text=' + text;
		
		$.ajax({
			url: '/ajax.php?method=sendTinyForm' + params,
			success: function(options){
				alert('Kiitos tarjouspyynn\u00F6st\u00E4nne. Palaamme asiaan mahdollisimman pian.');
				document.tinyorderingform.reset();
			}
		});
	}
	
}

function sendOrder(){

	var destination = $("#destination").val();
	var accomodation = $("#accomodation").val();
	var rooms = $("#rooms").val();
	var startdate = $("#startdate").val();
	var enddate = $("#enddate").val();
	var firstname = $("#firstname").val();
	var lastname = $("#lastname").val();
	var katuosoite = $("#katuosoite").val();
	var postinumero = $("#postinumero").val();
	var postitoimipaikka = $("#postitoimipaikka").val();
	var puhelin = $("#puhelin").val();
	var email = $("#email").val();
	var ika = $("#ika").val();
	
	var additionalinfo = $("#additionalinfo").val();

	send = true;
	if ($.trim(firstname) == ''){
		alert('Nimi on pakollinen');
		send = false;
	}
	if (send) {
		var params = '&destination=' + destination;
		params += '&accomodation=' + accomodation;
		params += '&rooms=' + rooms;
		params += '&startdate=' + startdate;
		params += '&enddate=' + enddate;
		params += '&firstname=' + firstname;
		params += '&lastname=' + lastname;
		params += '&katuosoite=' + katuosoite;
		params += '&postinumero=' + postinumero;
		params += '&postitoimipaikka=' + postitoimipaikka;
		params += '&puhelin=' + puhelin;
		params += '&email=' + email;
		params += '&additionalinfo=' + additionalinfo;
		
		var nameEta = "etujasuku1";
		var etujasuku = $("#" + nameEta).val();
		var nameIka = "ika1";
		var ika = $("#" + nameIka).val();
		var i = 1;
		
		while (etujasuku != '') {
			i++;
			params += '&' + nameEta + '=' + etujasuku;
			params += '&' + nameIka + '=' + ika;
			var nameEta = "etujasuku" + i;
			var nameIka = "ika" + i;
			
			var etujasuku = $("#" + nameEta).val();
			var ika = $("#" + nameIka).val();
		}
		
		$.ajax({
			url: '/ajax.php?method=sendForm' + params,
			success: function(options){
				alert('Kiitos viestistanne. Palaamme asiaan mahdollisimman pian.');
				document.orderingform.reset();
			}
		});
	}
}

function getCities(){
	var country = $("#destCountry").val();
	$.ajax({
		url:'/ajax.php?get=info&method=getCities&code='+country,
		success: function(options){ 
			$("#destCity").html(options);
      }
	});
}

function submitPacketing(){
	var submit = true;
	
	if (!$('#depDate').val()) {
		submit = false;
		alert('Departure date should be selected');
	}
	if (!$('#retDate').val() && submit) {
		submit = false;
		alert('Return date should be selected');
	}
	if ($('#dep_city').val() == "" && submit) {
		submit = false;
		alert(' Departure city should be selected');
	}
	if ($('#destCountry').val() == "0" && submit) {
		submit = false;
		alert(' Destination country should be selected');
	}
	if ($('#destCity').val() == "0" && submit) {
		submit = false;
		alert(' Destination city should be selected');
	}
	if (submit) {
		
		var compare = compareDates($('#retDate').val(), 'dd.MM.yyyy', $('#depDate').val(), 'dd.MM.yyyy');
		if (compare == 0) submit= false;
		if (!submit){
			alert('Departure date >= return date');
		}
	}
			
	if (submit){
		$.ajax({
		url:'/ajax.php',
		data: {
			get:'info',
			method:'createPacketingUrl',
			depDate: $('#depDate').val(),
			retDate:  $('#retDate').val(),
			dep_city: $('#dep_city').val(),
			destCountry:  $('#destCountry').val(),
			destCity: $('#destCity').val(),
			rooms: $('#rooms').val(),
			hlo: $('#hlo').val(),
			child_1: $('#child_1').val(),
			child_2: $('#child_2').val(),
			cbxOnlyDirectFlights: $('#cbxOnlyDirectFlights').val()
		}
		, 
		success: function(url){ 
				$('#load_div').css('display', 'block');
  				$('#load_div').css('position', 'absolute');
	 			$('#load_div').css('top', '400px');
 	 			$('#load_div').css('left', '830px');
	
			window.location = url;
      }
	});
	}
}


function submitFlights(){
	
	var submit = true;
	
	if($('#dep_city2').val()=="" && submit){
		submit = false;
		alert(' Departure city should be selected');
	} 
	if (!$('#depDate2').val() && submit){
		submit = false; 
		alert('Departure date should be selected');
	}
	if (!$('#retDate2').val() && submit){
		submit = false;
		alert('Return date should be selected');
	}
	if ((!$("#ArrivalAirport").val()) && submit){
		submit = false;
		alert('Arrival airport should be selected');
	}
	
	if (submit) {
		var compare = compareDates($('#retDate2').val(), 'dd.MM.yyyy', $('#depDate2').val(), 'dd.MM.yyyy');
		if (compare == 0) submit= false;
		if (!submit){
			alert('Departure date >= return date');
		}
	}
	
	if (submit){
		  $('#load_div').css('display', 'block');
				$('#load_div').css('position', 'absolute');
	 			$('#load_div').css('top', '400px');
 	 			$('#load_div').css('left', '830px');
	
		var checked = 'False';
		if ($('#cbxOnlyDirectFlights2:checked').val()){
				checked = 'True';	
		}
		
		$.ajax({
			url:'/ajax.php',
			data: {
				
				get:'info',
				method:'createFlightUrl',
				depDate: $('#depDate2').val(),
				retDate:  $('#retDate2').val(),
				dep_city: $('#dep_city2').val(),
				arrivalAirport: $('#ArrivalAirport').val(),
				adults: $('#Adults').val(),
				children: $('#Children').val(),
				infants: $('#Infants').val(),
				onlyDirectFlights: checked,
				sectorNumber: $('#frmLennot input:radio:checked').val()
			}
			, 
			success: function(url){
			  
				 window.location = url;
	      }
	});
	}
}

function lookupAjax(){
	var oSuggest = $("#Mihin_ed")[0].autocompleter;
	oSuggest.findValue();
	return false;
}

 function findValue(li) {
	if( li == null ) return alert("No match!");
	// if coming from an AJAX call, let's use the CityId as the value
	if( !!li.extra ) var sValue = li.extra[0];
	else var sValue = li.selectValue;
	
	$("#ArrivalAirport").val(sValue);
} 

function selectItem(li) {
	findValue(li);
	}

function formatItem(row) {
	return row[0] ;
	}


function insertSessionParams(city,hotel){
	 
	 var regExp = /\s+/g;
	 var regExp2 = /[&]/g; 
	 
	 var hotel = hotel.replace(regExp,'_');
		 hotel = hotel.replace(regExp2,'^');
	
	 var city = city.replace(regExp,'_');
		 city = city.replace(regExp2,'^');
		 
		 
	var params = '&city=' + city + 
				 '&hotel='+ hotel;
				 
	$.ajax({
			url: '/ajax.php?method=putToSession' + params,
			success: function(){
				
			}
		});
		
}


$(document).ready(function(){

	  function addMenuStyles()
	  {
		  
		  $("#topmenu > ul > li").each( function(index) {
		  		
		  	 	if ($(this).children("ul").children("li").size() == 1)
		  	 	{
			  		$(this).addClass("only-one");
			 	}
			 	
			 	if ($(this).children("ul").children("li").children("ul").size() == 0)
		  	 	{
			  		$(this).addClass("only-one-ul");
			 	}
		  });
	  } 
		
	  function addMega(){  
	  	  $(this).addClass("hovering");

		  
	   	  
	    }  
	  function removeMega(){  
	    	$(this).removeClass("hovering");
	    	//$(this).removeClass("only-one");  
	    } 

	  var megaConfig = {  
		         interval: 250,  
		         sensitivity: 4,   
		         over: addMega,  
		         timeout: 500,  
		         out: removeMega  
	  }; 

	  addMenuStyles();
	  
	  $("#topmenu ul li").hoverIntent(megaConfig);
	  

	
	
	  $('.tabs').tabs();
	
	  $('.tabs_fl').tabs();
		var destination = '<cms:value.city_code>';
		$('#Mihin_ed_value').val(destination);
		$('#Mihin_ed_dyn_value').val(destination);

	
		

var dates = $( "#from, #to" ).datepicker({
			beforeShow: customRange,
			showOn: 'both', 
			defaultDate: "+1w",
			buttonImage: "/img/new/booking_input_grey_cal.png",
			buttonImageOnly: true,
			changeMonth: true,
			numberOfMonths: 1,
			onSelect: function( selectedDate ) {
				var option = this.id == "from" ? "minDate" : "maxDate",
					instance = $( this ).data( "datepicker" ),
					date = $.datepicker.parseDate(
						instance.settings.dateFormat ||
						$.datepicker._defaults.dateFormat,
						selectedDate, instance.settings );
				dates.not( this ).datepicker( "option", option, date );
			}
		});
		
var dates2 = $( "#dyn_from, #dyn_to" ).datepicker({
			beforeShow: customRange,
			showOn: 'both', 
			defaultDate: "+1w",
			buttonImage: "/img/new/booking_input_grey_cal.png",
			buttonImageOnly: true,
			changeMonth: true,
			numberOfMonths: 1,
			onSelect: function( selectedDate ) {
				var option = this.id == "from" ? "minDate" : "maxDate",
					instance = $( this ).data( "datepicker" ),
					date = $.datepicker.parseDate(
						instance.settings.dateFormat ||
						$.datepicker._defaults.dateFormat,
						selectedDate, instance.settings );
				dates.not( this ).datepicker( "option", option, date );
			}
		});
});

function recordOutboundLink(link, category, action) {
	  try {
	  	$('#load_div').css('display', 'block');
	  	$('#load_div').css('position', 'fixed');
		$('#load_div').css('top', '0px');
		$('#load_div').css('bottom', '0px');
		$('#load_div').css('right', '0px');
	 	$('#load_div').css('left', '0px'); 
	 	$('#load_div').css('z-index', '99999');
		
	    var pageTracker=_gat._getTracker("UA-6628509-4");
	    pageTracker._trackEvent(category, action);
	    setTimeout('document.location = "' + link.href + '"', 100)
	  }catch(err){}
	}



function closeAll(c){
	if(!close) return false;
	var d=getElementsByClass('dropped');
	for(i=0;i<d.length;i++) {
		if (c+'_d dropped' != d[i].className) {
			d[i].style.display = 'none';
		}
	}	
}

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-6628509-4']);
_gaq.push(['_trackPageview']);

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
