
//window.onload = function(){

  
//document.write(unescape("%3Cscript src='http://www.eskyservices.pl/qsf/v2/scripts/jquery.qsf.partner.dev.js' type='text/javascript'%3E%3C/script%3E"));
if(true){
    document.write(unescape("%3Cscript src='http://www.eskyservices.pl/qsf/v2/scripts/swfobject.js?key=1bOn0Vkri6B1cMwfyeteyKKyydD0KeTa8dpBBv4avu4_CJVvPOiIfcWMSo0VaImUNy7fhH5i3ZfRMgPTgy3chRw_yMm3Lw' type='text/javascript'%3E%3C/script%3E"));
    document.write(unescape("%3Cscript src='http://www.eskyservices.pl/qsf/v2/scripts/jquery.esky.destinator.js?key=1bOn0Vkri6B1cMwfyeteyKKyydD0KeTa8dpBBv4avu4_CJVvPOiIfcWMSo0VaImUNy7fhH5i3ZfRMgPTgy3chRw_yMm3Lw' type='text/javascript'%3E%3C/script%3E"));
}

	var hasPreset = true;

	//console.log('partner.pack.v2.dev.js...');
	var eskyQsf = function(settings){
		//console.log('eskyQsf...');
		var rand = String(Math.random()).split('.');

		///////////////////////////////// obejscie START >>>

		///////////////////////////////// obejscie >>>
		//document.write('<div class="esky_QsfPlacer" id="esky_Qsf_Placer_' + rand[1] + '"></div>');
		/*
		if(typeof settings === 'object'){
			for(i in settings){

			}
		}
		*/
		///////////////////////////////// obejscie END
	}

	/** Normalizing the date input field value into standard yyyy-mm-dd format */
	var esky_normalizeDataField = function(name)
	{
		var normalized_f = 'yyyy-mm-dd';
		
		var i = $esky('input[name='+name+']');
		if(!i)
			return;
			
		var d = new Date.fromString(i.val());
		var cache = Date.format;
		Date.format = normalized_f;
		i.val(d.asString());
		Date.format = cache;
	}
	
	var esky_isValidDateFormat = function(s, startFromYear){
		var reFormat = /^([0-9]{2,4}[\.\-\/]{1}){2}([0-9]{2,4})$/i.test(s);

		var f = Date.format;
		f.toLowerCase();

		var reSeparator = false;
		if (/^\d+\-\d+\-\d+$/i.test(s) && /^\w+\-\w+\-\w+$/i.test(f))
			reSeparator = true;
		if (/^\d+\.\d+\.\d+$/i.test(s) && /^\w+\.\w+\.\w+$/i.test(f))
			reSeparator = true;
		if (/^\d+\/\d+\/\d+$/i.test(s) && /^\w+\/\w+\/\w+$/i.test(f))
			reSeparator = true;

		var y = parseInt(s.substr(f.indexOf('yyyy'), 4), 10);
		var m = parseInt(s.substr(f.indexOf('mm'), 2), 10);
		var d = parseInt(s.substr(f.indexOf('dd'), 2), 10);

		var md = new Date(y, m - 1).getDaysInMonth();

		return (!reFormat || !reSeparator || y < 0 || m < 1 || m > 12 || d < 1 || d > md) ? false : true;
	}
	var eskt_CalculateCheckoutDate = function(input){
		input = (typeof input !== 'string') ? $esky(this).attr('id') : input;
		switch (input) {
			case 'hotel_checkout_date':
				var i = new Date.fromString($esky('#hotel_checkin_date').val());
				var o = new Date.fromString($esky('#hotel_checkout_date').val());
				$esky('#hotel_nights').val(parseInt((o - i) / (24 * 60 * 60 * 1000), 10));
				break;
			default:
				var d = String($esky('#hotel_checkin_date').val());
				if(d)
				{
					var n = (esky_isValidDateFormat(d)) ? new Date.fromString(d) : new Date();
					var d = n./*addDays(parseInt($esky('#hotel_nights').val()), 10).*/asString();
					$esky('#hotel_checkout_date').val(d);
					
				}
				break;
		}
	}

	var eskt_CheckDate = function(input){
		input = (typeof input !== 'string') ? $esky(this).attr('id') : input;
		switch(input){
		  case 'esky_DateFrom':
				var i = new Date.fromString($esky('#esky_DateFrom').val());
				var o = new Date.fromString($esky('#esky_DateTo').val());
				if(i>o) $esky('#esky_DateTo').val($esky('#esky_DateFrom').val());
        return;
		  case 'esky_DateTo':
				var i = new Date.fromString($esky('#esky_DateFrom').val());
				var o = new Date.fromString($esky('#esky_DateTo').val());
				if(i>o) $esky('#esky_DateFrom').val($esky('#esky_DateTo').val());
        return;
		  case 'hotel_checkin_date':
				var i = new Date.fromString($esky('#hotel_checkin_date').val());
				var o = new Date.fromString($esky('#hotel_checkout_date').val());
				if(i>o) $esky('#hotel_checkout_date').val($esky('#hotel_checkin_date').val()); 
        return;
		  case 'hotel_checkout_date':
				var i = new Date.fromString($esky('#hotel_checkin_date').val());
				var o = new Date.fromString($esky('#hotel_checkout_date').val());
				if(i>o) $esky('#hotel_checkin_date').val($esky('#hotel_checkout_date').val()); 
        return;
		  case 'insuranceStartDate':
				var i = new Date.fromString($esky('#insuranceStartDate').val());
				var o = new Date.fromString($esky('#insuranceEndDate').val());
				if(i>o) $esky('#insuranceEndDate').val($esky('#insuranceStartDate').val()); 
        return;
		  case 'insuranceEndDate':
				var i = new Date.fromString($esky('#insuranceStartDate').val());
				var o = new Date.fromString($esky('#insuranceEndDate').val());
				if(i>o) $esky('#insuranceStartDate').val($esky('#insuranceEndDate').val()); 
        return;
		    
    }
	 
	}

	var eskt_splitValue = function (value) {
		if(typeof value != "string") value = value.toString();
		var objectName = value.match(/(\.|\#)?[\/\?\.=a-z_]+/g);
		var objectId = value.match(/\d+/g);
		return {
			name:objectName,
			id:objectId,
			array:( objectId != parseInt(objectId) && objectId != null )?true:false
		}
	}

	var esky_compatMode = function(enabled)
	{
		switch(enabled)
		{
			case true:
				if($esky('#esky_Qsf .esky_FlyPassenger').attr('style') !== undefined
                    && $esky('#esky_Qsf .esky_FlyPassenger').attr('style') != '') // IE7
					return;

				// classic mode - uruchomione ustawienia imitujace starego QSFa
				$esky('#esky_Qsf .esky_FlyPassenger').css({'float':'left','display':'inline'});
				$esky('#esky_Qsf .esky_FlyPassenger span, #esky_Qsf .esky_FlyPassenger select').css('display','block');
				$esky('#esky_Qsf .esky_FlyPassenger select').css('position','relative');
				$esky("#esky_Qsf .esky_InputContainer input").css({
					'height': '28px',
					'font-size': '18px'
				});
				$esky('#esky_Qsf #hotel-rooms label').css('clear','both');
				$esky('#esky_Qsf .esky_Input a.button').css('height','24px');
				break;
			case false:
				if($esky('#esky_Qsf .esky_FlyPassenger').attr('style') == undefined
                    || $esky('#esky_Qsf .esky_FlyPassenger').attr('style') == '') // IE7
					return;
				// usuniecie zmian classic mode
				$esky('#esky_FlightsQsf fieldset').eq(2).after('<fieldset class="esky-dates-container"></fieldset>');
				$esky('#esky_FlightsQsf fieldset')
					.eq(3)
					.append($esky('#esky_FlightsQsf fieldset').eq(1).children().eq(2))
					.append($esky('#esky_FlightsQsf fieldset').eq(1).children().eq(2));
				$esky('#esky_Qsf .esky_FlyPassenger').removeAttr('style');
				$esky('#esky_Qsf .esky_FlyPassenger span, #esky_Qsf .esky_FlyPassenger select').removeAttr('style');
				$esky('#esky_Qsf .esky_FlyPassenger select').removeAttr('style');
				$esky("#esky_Qsf .esky_InputContainer input").removeAttr('style');
				$esky('#esky_Qsf .esky_Input a.button').removeAttr('style');
				$esky('#esky_Qsf #hotel-rooms label').removeAttr('style');
			
				break;
		}
	}

    var esky_CalculateInsurance = function(){

        var data = $esky('#esky_InsuranceQsf').serialize();
        data=data + '&callback=?';

        html = '<div id="esky-insurance-stda-price" class="options-group active-field calculating">'+I18N_pricing_insurance+'</div>';
        $esky('#esky-insurance-stda-price').remove();
        $esky('#esky-insurance-stda-details').append(html);

       _url = "http://www.esky.pl/ubezpieczenia/sprawdz_cene";

        if('pl' == 'ro'){
            _url = 'http://www.esky.ro/insurances/checkprice';
        }
        if('pl' == 'bg'){
            _url = 'http://www.esky.bg/insurances/checkprice';
        }

        $esky.ajax({
            url: _url,
            method: "GET",
            data: $esky('#esky_InsuranceQsf').serialize(),
            dataType: "jsonp",
            beforeSend: function(){
            },
            complete: function(){
                //$esky('#esky-insurance-stda-price').remove();
            },
            success: function(data){
                $esky('#esky_InsuranceQsf').trigger('validate');
                var html = '';
                if (data != null && typeof (data) == 'object' && data.requestStatus == true) {
                    html = '<div id="esky-insurance-stda-price" class="options-group active-field">'+I18N_insurance_price+': <strong>' + data.price[14].Amount + '&nbsp;' + data.price[14].Currency + '</strong></div>';
                }
                else {
                    html = '<div id="esky-insurance-stda-price" class="options-group active-field error">'+I18N_pricing_insurance_error+'</div>';
                }

                $esky('#esky-insurance-stda-details').html(html);
            }
        });
    };

    var qsf_onload_performed = false;
    var qsf_initially_hidden = false;
    var qsf_calendar_out = false;

	qsf_window_onload = function(){
		//$esky('#'+esky_Qsf.container).html(esky_QsfData);

        if(qsf_onload_performed)
            return;

        qsf_onload_performed = true;

        // handle calendar clickouts
        $esky('body').mouseup(function(){
            if(qsf_calendar_out){
                setTimeout("$esky('#esky_Calendar').remove();",0);
                qsf_calendar_out = false;
            }   
        });

		/* populate qsfProducerFill data */
		if (typeof(qsfProducerFill) != 'undefined') {
			// convert intervals into datetime format in following fields: 
            var dateFields = ['Fly[0][DepartureDate]','Fly[1][DepartureDate]','CheckInDate','CheckOutDate','StartDate','EndDate'];
			for(var i in dateFields)
			{
				f = dateFields[i];
				if (qsfProducerFill[f]) {
					qsfProducerFill['s_'+f] = qsfProducerFill[f] = new Date().zeroTime().addDays(parseInt(qsfProducerFill[f])).asString();
				}	
			}
			$esky('#esky_FlightsQsf').populate(qsfProducerFill);
			$esky('#esky_HotelsQsf').populate(qsfProducerFill);

		}
		/*$esky('form#esky_FlightsQsf,form#esky_HotelsQsf,form#esky_InsuranceQsf').submit(function(){
			var dateFields = ['fly_from_date_0','fly_to_date_0','hotel_checkin_date','hotel_checkout_date','insuranceStartDate','insuranceEndDate'];
			for (var i in dateFields) {
				f = dateFields[i];
				$esky('input[name='+f+']').val($esky('input[name=s_'+f+']').val());
				esky_normalizeDataField(f);					
			}
			return true;
		});*/

        qsf_initially_hidden = $esky('.esky_QsfPlacer').parent().is(':visible');
        if(!qsf_initially_hidden)
            $esky('.esky_QsfPlacer').parent().show(); // workaround only for the initialization time being

        $esky('input.esky_serviceType').click(function(){
			var qsfToShow = $esky(this).val();
			$esky('#esky_Qsf form').hide();
			$esky('#' + qsfToShow).show();
			$esky('input[value=' + qsfToShow + ']').attr('checked', 'checked');
		});

		$esky('#esky_Qsf_loader').hide(); $esky('#esky_Qsf').show(); // ready to show

		$esky('input.esky_serviceType:visible:first').click();
    
		if($esky('input.esky_serviceType:visible').length <= 1)
		{
			$esky('input.esky_serviceType').parent().parent().hide();
		}
		
		// PT - generator qsf - usunięcie ubezpieczenia od rezygnacji dla RO [66515]
		if('pl' == 'ro')
		{
		      $esky('[name=InsuranceType]').closest('fieldset').hide();
    }

		$esky('input#esky_TripTypeOneWayTrip').click(function(){

				$esky('.esky_Date.esky_Arrival,.esky-inline-Calendar.esky_Arrival').animate({opacity: 0.3},500)
					.find(".esky_InputContainer").append('<div class="dummy-overlay" style="position:absolute;top:0;left:0;width:100%;height:100%"></div>')
					.find("input").attr('disabled','disabled');
					
		});

        if(!qsf_initially_hidden)
            $esky('.esky_QsfPlacer').parent().hide(); // workaround only for the initialization time being

		$esky('.esky_Arrival,.esky_Departure').css('opacity','auto');

		$esky('input#esky_TripTypeRoundTrip').click(function(){
		
			$esky('.esky_Arrival')
				.css('opacity','1.0')
				.css('opacity','auto')//IE7-8 fix//animate({opacity: 1.0},500)
				.find("input").removeAttr('disabled');
			$esky('.dummy-overlay').remove();
			
		});
		
		$esky('input#esky_TripTypeRoundTrip').click(); // by default: roundtrip
		

		/*$esky('select[name=number-of-rooms]').change(function(){
			var noOfRooms = $esky(this).val();
			$esky('.esky_HotelRoomsTypes select').hide().filter(':lt(' + noOfRooms + ')').show();
		}).change();*/

		/*$esky('select#hotel_nights').change(eskt_CalculateCheckoutDate);*/

        if(true)
        {
            // Wlacz flashmape w QSF
            $esky('a.button.flight').eskydestinator(
                {
                    partner: 'esky',
                    selectedContinent: 'EU',
                    swfLocation: 'http://www.eskyservices.pl/qsf/v2/swf/',
                    rOffset: 45,
                    language: 'PL',                    
                    jq: '$esky'
                }
            );
        }else{
            $esky('a.button.flight').click(function(){

                // close calendars if open [PWC 39891]
                $esky('#esky_Calendar').remove();

                var button = $esky(this);
                var input = button.prev();
                if ($esky('#esky_AirportsList').size() == 0) {
                    var maxWidth =$esky('body').width();
                    var maxHeight = $esky(document).height();

                    var css = 'position:absolute;left:' + input.offset().left + 'px;top:' + (input.offset().top + input.outerHeight()) + 'px;';
                    var html = '<div id="esky_AirportsList" style="' + css + '"><div class="esky_ModalHeader"><h2>'+I18N_Select_airport+'</h2><p>'+I18N_Select_country_and_city+'</p><a href="javascript:void(0);" class="button close">'+I18N_Close+'</a></div><div class="esky_ModalContent mc_loading"></div></div>';
                    $esky('body').append(html);

                    // Naprawa qsf dla partnerów [49970]                    
                    var divWidth = Math.min(parseInt($esky('#esky_AirportsList').css('width')),$esky('#esky_AirportsList').width());
                    var divHeight = Math.min(parseInt($esky('#esky_AirportsList').css('height')),$esky('#esky_AirportsList').height());

                    if(input.offset().left + divWidth  > maxWidth){
                        $esky('#esky_AirportsList').css({'left':maxWidth-divWidth});
                    }
                    if(input.offset().top + divHeight > maxHeight){
                        $esky('#esky_AirportsList').css({'top':maxHeight-divHeight});
                    }

                }

                $esky('#esky_AirportsList a.button.close').click(function(){
                    $esky('#esky_AirportsList').remove();
                });

                $esky.getJSON('http://www.eskyservices.pl/autocomplete/countries/v1/?language=pl&servicetype=flights&callback=?', function(data){
                    var list = [];
                    for (i = 0; i < data.length; i++) {
                        list.push('<a href="http://www.eskyservices.pl/autocomplete/airports_in_country/v1/?language=pl&q=' + data[i].code + '&callback=?" class="select country">' + data[i].name + '</a>');
                    }
                    var html = '<ul><li>' + list.join('</li><li>') + '</li></ul>';

                    $esky('#esky_AirportsList>.esky_ModalContent').removeClass('mc_loading').html(html).get(0).scrollTop = 0;

                    $esky('a.select.country').click(function(){
                        var country = $esky(this);
                        $esky.getJSON(country.attr('href'), function(data, status){
                            var list = [];
                            for (i = 0; i < data.length; i++) {
                                list.push('<a href="javascript:void(0);" class="select city">' + data[i].name + ' (' + data[i].code + ')</a>');
                            }
                            var html = '<ul><li>' + list.join('</li><li>') + '</li></ul>';
                            $esky('#esky_AirportsList>.esky_ModalContent').removeClass('mc_loading').html(html).append('<a href="javascript:void(0);" class="button back">'+I18N_Back_to_country_list+'</a>').get(0).scrollTop = 0;
                            $esky('#esky_AirportsList p').html('<a href="javascript:void(0);" class="button back">'+I18N_Country_list+'</a> &raquo; ' + country.text());
                            $esky('a.button.back').click(function(){
                                button.click();
                                $esky('#esky_AirportsList p').text(I18N_Select_country_and_city);
                            });
                            $esky('a.select.city').click(function(){
                                input.val($esky(this).text());
                                $esky('#esky_AirportsList').remove();
                            });

                        });
                        return false;
                    });


                });
                return false;
            });
        }


      /*  if(true)
        {
            $esky('#esky_DateFrom').datepicker({
                'minDate' : '+1',
                onSelect: function(dateText, inst)
                {
                    test = $esky(this).datepicker('getDate');
                    testm = new Date(test.getTime());
                    testm.setDate(testm.getDate() + 1);

                    $esky("#esky_DateTo").datepicker("option", "minDate", testm);
                    $esky("#esky_DateTo").val('');
                },
                beforeShowDay: function(date) {
                    var caldate = date.getTime()/1000;
                    var nowdate = new Date().getTime()/1000;

                    if(caldate-nowdate > 0 && caldate-nowdate <= (60*60*24*1))
                        return [true,'', esky_calender_translate.OnlyCCPayment];
                    else
                        return [true];
                }
            });

            $esky('#esky_DateTo').datepicker();

            $esky('#hotel_checkin_date').datepicker({
                'minDate' : '+1',
                onSelect: function(dateText, inst)
                {
                    test = $esky(this).datepicker('getDate');
                    testm = new Date(test.getTime());
                    testm.setDate(testm.getDate() + 1);

                    $esky("#hotel_checkout_date").datepicker("option", "minDate", testm);
                    $esky("#hotel_checkout_date").val('');
                }
            });

            $esky('#hotel_checkout_date').datepicker();

            $esky('#insuranceStartDate').datepicker({
                'minDate' : '+1',
                onSelect: function(dateText, inst)
                {
                    test = $esky(this).datepicker('getDate');
                    testm = new Date(test.getTime());
                    testm.setDate(testm.getDate() + 1);

                    $esky("#insuranceEndDate").datepicker("option", "minDate", testm);
                    $esky("#insuranceEndDate").val('');

                    esky_CalculateInsurance();
                }
            });

            $esky('#insuranceEndDate').datepicker({
                onSelect:function(){
                    esky_CalculateInsurance();
                }
            });

            $esky.datepicker.setDefaults( datepicker_translate );
        } else {
            $esky('#esky_DateFrom,#esky_DateTo,#insuranceStartDate,#insuranceEndDate,#hotel_checkin_date,#hotel_checkout_date').click(function(){

                var a = $esky(this);
                a.next().trigger('click');
            });
        }*/
            
		$esky('a.calendar').click(function(){
            // remove airport selector (if open)
            $esky('#esky_AirportsList').remove();

			var $input = $esky('#' + $esky(this).attr('rel'));
            $input.trigger('focus');

            if(false)
            {

                var a = $esky(this);

                if(!a.hasClass('calendar'))
                    a = $esky(this).next('a');

                a.esky_calendar({
                    i18n: esky_calender_translate,
                    thisInput: a.attr('rel'),
                    linkedInput: a.attr('rev'),
                    loop: 2,
                    blockedDays: 1
                });
                var $input = $esky('#' + a.attr('rel'));

                var tableWidth = Math.min($esky('#esky_Calendar table').width(),parseInt($esky('#esky_Calendar table').css('width') == 'auto' ? $esky('#esky_Calendar table').width() : $esky('#esky_Calendar table').css('width')));

                $esky('#esky_Calendar').css({
                    'left': $input.offset().left + 'px',
                    'top': $input.offset().top + $input.outerHeight() + 'px',
                    'width': (tableWidth * 2),
                    'zIndex': 1000
                })
    			.hover(function(){
                      //a.trigger('click');
                        qsf_calendar_out = false;
                },function(){
                        qsf_calendar_out = true;
                });
                   
                var maxWidth =  $esky('body').width();
                var maxHeight = $esky(document).height();

                //    Naprawa qsf dla partnerów [49970]
                var calWidth = Math.min($esky('#esky_Calendar').width(),parseInt($esky('#esky_Calendar').css('width')));
                var calHeight = Math.min($esky('#esky_Calendar').height(),parseInt($esky('#esky_Calendar').css('height')));

                if($input.offset().left + calWidth > maxWidth){
                    $esky('#esky_Calendar').css({'left':maxWidth-calWidth});
                }
                if($input.offset().top + calHeight > maxHeight){
                    $esky('#esky_Calendar').css({'top':maxHeight-calHeight});
                }
                qsf_calendar_out = false; // by default
                //$esky('#esky_FlightsQsf').hide();
                //$esky('#esky_Calendar h2').text(a.text());

                $esky('#esky_Calendar').show();
                // Don't like the solution, but it works.                
                $esky('#esky_Calendar .inline-month-day').click(function(){
                  if($esky('#esky_InsuranceQsf:visible').length > 0)
                    esky_CalculateInsurance();
                });
                                                        
                // QSF Calendar [58043] - very ugly hack to force redrawing of the body
                if($esky.browser.webkit == true)
                  $esky('body').css('opacity',0).animate({'opacity':1.0},1);
            }
			return false;
		});
		
		// Inline calendars
		var calendars = {
			'#esky_Departure_Inline_Calendar' : { thisInput : 'esky_DateFrom', linkedInput : 'esky_DateFrom' }, 
			'#esky_Arrival_Inline_Calendar' : { thisInput : 'esky_DateTo', linkedInput : 'esky_DateTo' },
			'#esky_Checkin_Inline_Calendar' : { thisInput : 'hotel_checkin_date', linkedInput : 'hotel_checkin_date' },
			'#esky_Checkout_Inline_Calendar': { thisInput : 'hotel_checkout_date', linkedInput : 'hotel_checkout_date' },
			'#esky_Insurance_Start_Inline_Calendar': { thisInput : 'insuranceStartDate', linkedInput : 'insuranceStartDate' },
			'#esky_Insurance_End_Inline_Calendar': { thisInput : 'insuranceEndDate', linkedInput : 'insuranceEndDate' }
		};
		
		for(var i in calendars)
		{
			if($esky('#'+calendars[i].thisInput).is(":empty"))
				$esky(i).esky_calendar_render({
					i18n: esky_calender_translate,
					thisInput: calendars[i].thisInput,
					linkedInput: calendars[i].linkedInput,
					loop: 1,
					blockedDays: 1,
					type: 'inline'			
				});
			
		}

		$esky('input[name=insurancePolicyType]').click(function() {
			j = $esky('#insurance_type_full');
			if (!j.is(':checked')) {
				$esky('#insurance-cancellation-cost').show();
			} else {
				$esky('#insurance-cancellation-cost').hide();
			}

			return true;
		});

		$esky.fn.extend({
			fieldNumberControl: function(o,i) {
					$this = $esky(this);
					for(f in o) {
						$esky(f,$this).each(function(){
							var attr = o[f].split(',');
							for (a in attr) {
								if (typeof $esky(this).attr(attr[a]) != 'undefined') {
									var attrFullName = $esky(this).attr(attr[a]);
									var attrName = eskt_splitValue(attrFullName)
									$esky(this).attr(attr[a], (attrName.name == null) ? parseInt(attrName.id) + i : attrName.name + parseInt(parseInt(attrName.id) + i));
									//$(this).attr(attr[a], attrName.name + parseInt(attrName.id + i));
								}
							}
						});
					}
					return $this;
			},
			fieldReset: function(o){
				$this = $esky(this);
				var fields = o.split(',');
				for (f in fields) {
					switch (fields[f]) {
						case 'input':
						case 'select':
							$esky(fields[f], $this).val(0);
							break;
						case 'label':
							$esky(fields[f], $this).text('').removeClass(cl_Error);
							break;
					}
				}
				return $this;
			}
		});

		// Hotel rooms select
		$esky('#hotel-rooms-select select').change(function(){
				$rooms = $esky('#hotel-rooms li');
				$rooms.not(':first').remove();
				var i = 1;
				while ($esky('#hotel-rooms li').size() < $esky(this).val()) {
					$esky('#hotel-rooms li:first').clone().insertAfter('#hotel-rooms li:last');
					$esky('#hotel-rooms li:last')
						.fieldReset('select')
						.data('index',i)
						.find('select')
							.attr('name','Rooms[Guests]['+i+'][Children]')
							.end()
						.find('strong')
							.html(I18N_Room+(++i));
					$esky('#hotel-rooms li:last').find('.age').remove();
				}
		});
		$esky('.children select').live("change",function(e){
			$parent = $esky(this).parent('label');
			$parent.next('.age').remove();
			var index = $parent.parent('li').data('index');
			if(typeof index === 'undefined' || index == null){
				index = 1;
			}
			var children = $esky(this).val();
			if (children != 0) {
				var select = '';
				for (i = 0; i < children; i++) {
					select += '<select name="Rooms[Guests]['+index+'][ChildrenAges]['+i+']" class="children-age"><option>- ? -</option>';
					for (j = 0; j < 18; j++) {
						if ("pl"=="pl") {
							var ageString = (j==0) ? I18N_ChildrenYears.BelowOne : (j==1) ? ' '+I18N_ChildrenYears.One : (j>1&&j<5) ? ' '+I18N_ChildrenYears.Two : ' '+I18N_ChildrenYears.More;
						} else {
							var ageString = "";
						}
						select += '<option value="' + j + '">' + ((j>0) ? j : '') + ageString + '</option>';
					}
					select += '</select>';
				}
				var label = '<div class="esky_Input label age esky_Customized"><span>' + I18N_Children_Age + '</span>' + select + '</div>';
				$parent.after(label);
			}
			if($esky(".label.age").size()>0) {
				$esky("#children-age-info").removeClass('hidden');
			} else {
				$esky("#children-age-info").addClass('hidden');
			}
		}).change();
	
		$esky.fn.childrenAgeSelect = childrenAgeSelect = function(e){
			$parent = $esky(this).parent('label');
			$parent.next('.age').remove();
			var index = $parent.parent('li').data('index');
			if(typeof index === 'undefined' || index == null){
				index = 1;
			}
			var children = $esky(this).val();
			if (children != 0) {
				var select = '';
				for (i = 0; i < children; i++) {
//					select += '<select name="hotnumchildrenage['+index+']['+i+']" class="children-age"><option>- ? -</option>';
					select += '<select name="Rooms[Guests]['+index+'][ChildrenAges]['+i+']" class="children-age"><option>- ? -</option>';
					for (j = 0; j < 18; j++) {
						if ("pl"=="pl") {
							var ageString = (j==0) ? ' '+I18N_ChildrenYears.BelowOne : (j==1) ? ' '+I18N_ChildrenYears.One : (j>1&&j<5) ? ' '+I18N_ChildrenYears.Two : ' '+I18N_ChildrenYears.More;
						} else {
							var ageString = "";
						}
						select += '<option value="' + j + '">' + ((j>0) ? j : '') + ageString + '</option>';
					}
					select += '</select>';
				}
				var label = '<div class="label age"><span>' + I18N_Children_Age + '</span>' + select + '</div>';
				$parent.after(label);
			}
			if($esky(".label.age").size()>0) {
				$esky("#children-age-info").removeClass('hidden');
			} else {
				$esky("#children-age-info").addClass('hidden');
			}
		};

		//if(esky_Qsf.autocomplete){
		var acExtraParams = {
			'request' : 'autocomplete',
			'format' : 'json',
			'encoding' : 'utf-8',
			'language' : 'pl',
			'callback' : '?'
		};

		$esky('input.esky_AirportAutocomplete').autocomplete('http://www.eskyservices.pl/autocomplete/airport/v3', {
			delay: 300,
			minChars: 3,
			matchSubset: 1,
			matchContains: 1,
			cacheLength: 10,
			autoFill: false,
			maxItemsToShow: 15,
			extraParams: acExtraParams,
			autoFillOne: true,
			element: 'CityName',
			//width: 400,

			formatItem: function(row) {
				if (row.CountryName=='') {
					return '<div class="ac_line"><strong>'+row.CityName+'</strong> ('+row.AirportCode+')</div>';
				} else {
					return '<div class="ac_line"><strong>'+row.CityName+'</strong>, '+row.CountryName+' - '+row.AirportName+' ('+row.AirportCode+')</div>';
				}
			},
			formatResult: function(row) {
				if (row.CountryName=='') {
					return row.CityName+" ("+row.AirportCode+")";
				} else {
					return row.CityName+", "+row.CountryName+" - "+row.AirportName+" ("+row.AirportCode+")";
				}
			}
			//onItemSelect: function(row){}
		});
		
		$esky('input.esky_CityAutocomplete').autocomplete('http://www.eskyservices.pl/autocomplete/hotels/v1', {
			delay: 300,
			minChars: 3,
			matchSubset: 1,
			matchContains: 1,
			cacheLength: 10,
			autoFill: false,
			maxItemsToShow: 20,
			extraParams: acExtraParams,
			autoFillOne: true,
			//width: 400,

			formatItem: function(e){
				var elementname = (typeof e.elementhiglight !== 'undefined') ? e.elementhiglight : e.elementname;
				var parentname = (typeof e.parentname !== 'undefined' && e.parentname != e.elementcode) ? ', ' + e.parentname : '';
				return '<div class="ac_line"><strong>'+elementname+'</strong>'+parentname+'</div>';
			},
			formatResult: function(e){
				var parentname = (typeof e.parentname !== 'undefined' && e.parentname != e.elementcode) ? ', ' + e.parentname : '';
				return e.elementname+parentname;
			},
		onChange: function(){
			$esky('[name=Code],[name=Type]').val('');
		},
		onItemSelect: function(e){
			$esky('[name=Code]').val(e.data.elementcode);
			$esky('[name=Type]').val(e.data.type);
		}			
		});

		if(hasPreset == false)
		{
			$esky('#esky_Qsf').hide();			
		}
		//}else{
		//	$esky('#esky_Content a.flight').remove();
		//}

        $esky('select,input','#esky_InsuranceQsf')
            //.not('#insuranceInsuredCount')
            .change(esky_CalculateInsurance);

        $esky('#insurance_value_ticket_only_v').keyup(esky_CalculateInsurance);

        $esky('input[name=InsuranceType]').change(function(){
            if($esky(this).val() == 'full')
                $esky('#insurance-cancellation-cost').hide();
            else
                $esky('#insurance-cancellation-cost').show();
        });

        $esky('#insurance_type_full').trigger('click').trigger('change');

		if(true)
		{
			esky_compatMode(true);

		}

	// przestawienie kolejnosci segmentow
  if('square' == 'horizontal'){
			$esky('#esky_FlightsQsf fieldset').eq(1).after($esky('#esky_FlightsQsf fieldset').eq(3))
  			.append($esky('#esky_FlightsQsf fieldset').eq(2).children());
      $esky('#esky_FlightsQsf .esky-dates-container').remove();
  }

		//$esky('head').append("<link type='text/css' rel='stylesheet' href='http://www.eskyservices.pl/qsf/presets/406/.css?refresh=1321384384' media='screen' />");
  	};

	if(typeof addLoadEvent == 'undefined')
	{
		addLoadEvent = function(func) {  
		  var oldonload = window.onload;  
		  if (typeof window.onload != 'function') {  
		    window.onload = func;  
		  } else {  
		    window.onload = function() {  
		      if (oldonload) {  
		        oldonload();  
		      }  
		      func();  
		    }  
		  }  
		};  
		
	}

    // sometimes onload is not loaded
    addLoadEvent(qsf_window_onload);
    // .. protect against it here
    setTimeout("qsf_window_onload();",2000);
//}
eskyQsf();
