$(document).ready(function(){
	
	var LanguageID = $('#LanguageID').val();
	
	var day=new Date();
	var d = day.getDate();
	var m =day.getMonth() + 1;
	var y = day.getFullYear();
	mm = m-1;
	
	var dNames = new Array('Su','Ma','Ti','Ke','To','Pe','La');
	var mNames = new Array('Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&auml;kuu','Hein&auml;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu');
	
	if(LanguageID != 3){
		dNames = new Array('Sun','Mo','Tu','We','Thu','Fri','Sat');
		mNames = new Array('January','February','March','April','May','June','July','August','Septemper','October','November','December');
	}
	
	$(function() {
		$(".datepicker").datepicker({
			showOn: 'both',
			buttonImage: '/Custom_modules/RTG/Amadeus/shared/images/calendarIcon.png',
			buttonImageOnly: true,
			firstDay: 1,
			dateFormat: 'd.m.yy',
			minDate: new Date(y, mm, d),
			dayNamesMin: dNames,
			monthNames: mNames
		});
	});
	
//----------------------------------------------------------------------

	$('.amadeus_RoomCount option:first').attr('selected', 'selected');
	
	$('.tab .datepicker1').live('change', function(){
		
		var selectedDate = $(this).val();										
		var picker = $(this).parents('.tab').find('.datepicker:last');
		
		items = selectedDate.split('.');
		var dd = items[0];
		var mm = items[1];
		var yy = items[2];
		
		if(!$(this).is('.flightdatepicker')){
			var selectedDate = setDay(dd,mm,yy, 1);
		}
		
		picker.datepicker('option', 'minDate', new Date(yy, mm-1, dd));
		picker.val(selectedDate);
		
	});

//---------------------------------------------------------------------------------------		
	
	function setDay(day,month,year, step)
	{
		
		day = parseInt(day);
		month = parseInt(month);
		year = parseInt(year);
		
		var dateCounts = new Array('0',31,28,31,30,31,30,31,31,30,31,30,31);
		
		while(step > 0){	
			var day = day + 1;	
				
			if(day > dateCounts[month]){
				day = 1
				month = month + 1;
			
				if(month == 13){
					month = 1;
					year = year + 1;
				}	
			}
			
		step--;	
		}
		
		return day + '.' + month + '.' + year;	
	}

//---------------------------------------------------------------------------------------		
	
	$('.amadeus_RoomCount').change(function(){
		$('.RoomDefs').removeClass('RoomDefs_visible');
		var i = parseInt($(this).val()) - 1;
		while(i >= 0){
			$('.RoomDefs:eq('+i+')').addClass('RoomDefs_visible');
			i--;
		}
	});

	$('.Amadeus .ftype').click(function(){
		if($(this).val() == 'O'){
			$(this).parents('.tab').find('.rowRetTime').hide();
		}else{
			$(this).parents('.tab').find('.rowRetTime').show();
		}
	}).filter('.Amadeus .ftype:first').click();

//---------------------------------------------------------------------------------------		
	
	if(!$.cookie('activeTab')){
			$.cookie('activeTab', 0);
	}
	
	$('.tabs li a').click(function(event){
		if(!$(this).parents('li:first').is('.disabled')){
			event.preventDefault();	
		}
	});
	
	$('.tabs li').click(function(event){
		if($(this).is('.active') || $(this).is('.disabled')){
			if(typeof(pageTracker)=="object" ) {
				asHref = pageTracker._getLinkerUrl($(this).find('a').attr('href'));
			}
			return;
		}
		event.preventDefault();
		
		var alt = $(this).find('img').attr('alt')
		var src = alt.replace('2.png', '.png');
		
		$(this).find('img').attr('src', alt).attr('alt', src);		
		
		var activeAlt = $(this).parents('.tabs').find('.active img').attr('alt');
		var activeSrc = activeAlt.replace('.png', '2.png');
		
		$(this).parents('.tabs').find('.active img').attr('alt', activeSrc);
		$(this).parents('.tabs').find('.active img').attr('src', activeAlt);
				
		
		$(this).parents('.tabs').find('.active').removeClass('active');
		$(this).addClass('active');
		
		var id = $(this).parents('.tabs').attr('id');
		var index = $('#'+id+' li').index($(this)[0]);
		var bind = id + 'Container';
		
		$('#'+bind).find('.tab').hide(0);
		$('#'+bind).find('.tab:eq('+index+')').fadeIn(400);	
		
		$.cookie('activeTab', index);
		$('.AmadeusGoButton').attr('id', 'tab'+index);
		AdvancedSearch($(this).find('a').attr('href'));
		
		switch(index){
			case 1:
				AdvancedSearch('http://wftc2.e-travel.com/plnext/readytogo/CleanUpSessionPui.action?TYPE_FLOW=air&SITE=BAYYBAYY&LANGUAGE=FI');
			break;
		}
		
		
		
	}).filter('.tabs li:eq('+$.cookie('activeTab')+')').click();
	
//-------------------------------------------------------------------------------------

	function AdvancedSearch(href){
		$('.AdvancedSearch').attr('href', href);
	}

//-------------------------------------------------------------------------------------

	$('.AmadeusGoButton').click(function(event){
		event.preventDefault();
		var index = $(this).attr('id').replace('tab', '');
		var tab = $('.Amadeus .tab:eq('+index+')')
		var href = $('#Tabs').find('a').eq(index).attr('href');
		
		switch(index){
			case '0':
				tab0(tab, href);
			break;
			
			case '1':
				tab1(tab, href);
			break;
			
			case '2':
				tab2(tab, href);
			break;
			
			case '3':
				tab3(tab, href);
			break;
			
			case '4':
				tab4(tab, href);
			break;
		}
	});
	
//-------------------------------------------------------------------------------------

	function tab0(tab, href)
	{
		var from = tab.find('.amadeusFrom').val();
		var to = tab.find('.amadeusTo').val();
		
		var fromDate = tab.find('.fromDate').val();
		var toDate = tab.find('.toDate').val();
		
		var fromDate = formatDate(fromDate) + '0000';	
		var toDate = formatDate(toDate) + '0000';	
		
		href += '&TRIP_FLOW=YES&B_LOCATION_1='+from+'&B_LOCATION_2='+to+'&E_LOCATION_1='+to+'&B_DATE_1='+fromDate+'&B_DATE_2='+toDate+'&';
		
		var tr = new getTravellersByRoom();
		tr.run();
		
		href += tr.qs + '&FIELD_ADT_NUMBER='+tr.adults+'&FIELD_INF_NUMBER=0&FIELD_CHD_NUMBER='+tr.kids+'';
		window.open(AddGoogleTracker(href));
	}

//-------------------------------------------------------------------------------------
	
	function getTravellersByRoom(){
		this.adults = 0;
		this.kids = 0;
		
		this.run = function(){
			var qs = '';
			var adults = 0;
			var kids = 0;
			var e = 0;
			$('.RoomDefs_visible').each(function(){
				var a = parseInt($(this).find('.amadeus_adults').val());
				var k = parseInt($(this).find('.amadeus_kids').val());
				var room = $(this).attr('id').replace('room', '');
				var tr =  new setTravellersInRoom(room, a, k, e);
				qs += tr.get();
				e = tr.e;
				
				adults = adults + a;
				kids = kids + k;
			});
			this.adults = adults;
			this.kids = kids;
			this.qs = qs.substring(0, qs.length-1);
		}
	}

//-------------------------------------------------------------------------------------

	function setTravellersInRoom(room, adults, kids, e)
	{
		this.adults = adults;
		this.kids = kids;
		this.room = room;
		this.e = e;
		this.i = 0;
		this.count = parseInt(kids) + parseInt(adults);
	
	//----------------------------------------
	
		this.get = function(){
			qs = '';
			while(this.i < this.count){
				this.i++;
				this.e++;
				qs += 'TRAVELLER_TYPE_'+this.e+'='+this.getType()+'&HOTEL_1_ROOM_'+this.room+'_TRAVELLER_'+this.i+'_ID='+this.e+'&';
			}
			return qs;
		}
	
	//----------------------------------------
	
		this.getType = function(){
			if(this.i > this.adults){
				return 'CHD';
			}
			return 'ADT';
		}
	}

//-------------------------------------------------------------------------------------
	
	function tab1(tab, href)
	{
		var sorting = tab.find('.fSorting:checked').val();
		var from = escape(tab.find('.fFrom').val());
		var to = escape(tab.find('.fTo').val());
		
		var ftype = tab.find('.ftype:checked').val();
		
		var fFromDate = tab.find('.fFromDate').val();
		var fFromTime = tab.find('.fFromTime').find('option:selected').val();
		
		var fToDate = tab.find('.fToDate').val();
		var fToTime = tab.find('.fToTime').find('option:selected').val();
		
		var fFromDate = formatDate(fFromDate) + fFromTime;	
		var fToDate = formatDate(fToDate) + fToTime;
		
		var adults = tab.find('.adults').val();
		var kids = tab.find('.kids').val();
		
		var trav = new travellers(adults, kids, false);
		
		
		
		if(sorting == 'T'){
			href += '&TRIP_FLOW=YES&TRIP_TYPE='+ftype+'&B_ANY_TIME_1=TRUE&B_ANY_TIME_2=TRUE&PRODUCT_TYPE_1=STANDARD_AIR&B_LOCATION='+from+'&E_LOCATION='+to+'&B_DATE='+fFromDate+'&E_DATE='+fToDate+ '&' + trav.get();
			href = href.replace('/TravelShopperAvailability.action?', '/TimeTable.action?');
		}else{
			href += '&TRIP_FLOW=YES&TRIP_TYPE='+ftype+'&B_ANY_TIME_1=TRUE&B_ANY_TIME_2=TRUE&PRODUCT_TYPE_1=STANDARD_AIR&B_LOCATION_1='+from+'&E_LOCATION_1='+to+'&B_DATE_1='+fFromDate+'&B_DATE_2='+fToDate+ '&' + trav.get();
		}
		
		window.open(AddGoogleTracker(href));
	}

//-------------------------------------------------------------------------------------

	function tab2(tab, href)
	{
		var city = escape(tab.find('.hCity').val());
		var area = tab.find('.hArea').find('option:selected').val();
		
		var arrDate = tab.find('.hArrDate').val();
		var depDate = tab.find('.hDepDate').val();
		
		var hRoomType = tab.find('.hRoomType:checked').val();
		
		var arrDate = formatDate(arrDate) + '0000';	
		var depDate = formatDate(depDate) + '0000';
		
		href += '&SORT_CRITERIA=P&MAX_HOTEL_PER_PAGE=20&COUNTRY_CODE=FI&&B_LOCATION='+city+'&B_DATE='+arrDate+'&E_DATE='+depDate+'&AREA='+area+'&OCCUPANCY='+hRoomType+''
		window.open(AddGoogleTracker(href));
	}

//-------------------------------------------------------------------------------------

	function tab3(tab, href)
	{
		var from = escape(tab.find('.cFrom').val());
		
		var fromDate = tab.find('.cFromDate').val();
		var fromTime = tab.find('.cFromTime').find('option:selected').val();
		
		var retPlace = tab.find('.cRetPlace').val();
		var retDate = tab.find('.cRetDate').val();
		var retTime = tab.find('.cRetTime').find('option:selected').val();
		
		var fromTime = formatDate(fromDate) + fromTime;
		var retTime = formatDate(retDate) + retTime;
		
		href += '&TRIP_FLOW=YES&&B_LOCATION='+from+'&E_LOCATION='+retPlace+'&B_DATE='+fromTime+'&E_DATE='+retTime+''	
		window.open(AddGoogleTracker(href));
	}

//-------------------------------------------------------------------------------------
	$('.cabin_getToKnow').change(function(){
		var area = $(this).val();
		var href = 'http://online.readytogo.fi/varaukset/index.cfm';
		window.open(AddGoogleTracker(href));
	});
	
	function tab4(tab, href)
	{
		var area = tab.find('.cabin_area').val();
		var arrDate = tab.find('.cabin_arrDate').val();
		var depDate = tab.find('.cabin_depDate').val();
		var groupSize = tab.find('.cabin_groupSize').val();		
		
		if(arrDate){
			var arrDate = formatDate(arrDate);
		}
		
		if(depDate){
			var depDate = formatDate(depDate);
		}
		
		href = 'http://online.readytogo.fi/varaukset/index.cfm';
		window.open(AddGoogleTracker(href));
	}


//-------------------------------------------------------------------------------------
	
	function formatDate(date)
	{
		var dateItems = date.split('.');
		var day = dateItems[0].toString();
		var month = dateItems[1].toString();
		var year = dateItems[2].toString();
		
		if(day.length == 1){ day = '0' + day; }
		if(month.length == 1){ month = '0' + month; }
		
		return year+month+day;	
	}

//-------------------------------------------------------------------------------------
	
	function AddGoogleTracker(href){
		if (typeof(pageTracker)=="object" ) {
			//return pageTracker._getLinkerUrl(href);
		}
		return href;
	}

	function getLanguage(){
		var lang = 'FI';
		/*
		var languageID = $('#languageID').val();
		if(languageID != 3){
			lang = 'GB';
		}
		*/
		return lang;
	}

//-------------------------------------------------------------------------------------

	function travellers(adults, kids, hotel)
	{
		this.adults = adults;
		this.kids = kids;
		this.hotel = hotel;
		this.i = 0;
		this.k = 0;
		this.count = parseInt(kids) + parseInt(adults);
	
	//----------------------------------------
	
		this.get = function(){
			qs = '';
			while(this.i < this.count){
				this.i++;			
				this.k++;
				qs += 'TRAVELLER_TYPE_'+this.i+'='+this.getType();
				if(hotel){
					qs += '&HOTEL_1_ROOM_'+this.getroom()+'_TRAVELLER_'+this.veller()+'_ID='+this.i;
				}
				qs += '&';
			}
			return qs.substring(0, qs.length-1);
		}
	
	//----------------------------------------
	
		this.getroom = function(){
			var room = 1;
			if(this.i > 3){
				room = 2;
			}
			if(this.i > 6){
				room = 3;
			}
			if(this.i > 9){
				room = 4;
			}
			return room;
		}
	
	//----------------------------------------
		
		this.veller = function(){
			if(this.i== 4 || this.i == 7 || this.i == 10){
				this.k = 1;
			}
			return this.k;
		}
	
	//----------------------------------------
	
		this.getType = function(){
			if(this.i > this.adults){
				return 'CHD';
			}
			return 'ADT';
		}
	}
	
});
