//DBR 1.7 DEFAULT THEME
/* ---------- VARIABLES ---------- */
var cl_OK = 'form-input-ok';
var cl_Error = 'form-input-error';
var cl_ErrorInput = 'form-field-error';
var cl_OmitError = 'form-error-omit';
var lastTip = '';

/* ---------- FUNCTIONS ---------- */
function pause(millisecondi) {
	var now = new Date();
	var exitTime = now.getTime() + millisecondi;
	while(true)	{
		now = new Date();
		if(now.getTime() > exitTime) return;
	}
}
function getViewportSize(includeScroll){
	var viewportwidth;
	var viewportheight;
	var scrollwidth = function()
	{
	var w = window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft;
	return w ? w : 0;
	}
	var scrollheight = function()
	{
	var h = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
	return h ? h : 0;
	}

	// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

	if (typeof window.innerWidth != 'undefined') {
		viewportwidth = window.innerWidth;
		viewportheight = window.innerHeight;
	}
	// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
	else {
		if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' &&	document.documentElement.clientWidth != 0) {
			viewportwidth = document.documentElement.clientWidth;
			viewportheight = document.documentElement.clientHeight;
		}
		// older versions of IE
		else {
			viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
			viewportheight = document.getElementsByTagName('body')[0].clientHeight;
		}
	}
	return {
		width: (includeScroll) ? viewportwidth + scrollwidth() : viewportwidth,
		height: (includeScroll) ? viewportheight + scrollheight() : viewportheight
	};
}
function getCursorPosition(e){
	var x;
	var y;

	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		x = e.pageX;
		y = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		x = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		y = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}

	return {x:x,y:y};
}
function getJQObjectDimensions(object){
	var offset = object.offset();
	return {x:object.left,y:object.top,width:object.width(),height:object.height()};
}
/**
 * Function for creating a cookie
 * @param {Object} name
 * @param {Object} value
 * @param {Object} days
 */
function createCookie(name,value,time) {
	if (time) {
		var date = new Date();
		date.setTime(date.getTime()+time);
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+escape(value)+expires+"; path=/";
}
/**
 * Function for reading a cookie.
 * @param {Object} name
 */
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}
/**
 * Special function for spliting form element name/id
 * into 2 pieces: name (letters) and number (digits).
 * This function is used by hotels/flights ASF
 */
function splitValue(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
	}
}
/**
 * Formating function for autocomplete plugin
 * @param {Object} row
 */
var formatItem = function(row) {
	if (typeof row[1] !== 'undefined'){
		return "<div class=\"ac_line\"><strong>"+row[1]+"</strong>, "+row[2]+" - "+row[3]+" ("+row[4]+")</div>";
	} else {
		return '';
	}
}
var formatItemHotels = function(row) {
	if (typeof row[1] !== 'undefined'){
		return "<div class=\"ac_line\"><strong>"+row[1]+"</strong>, "+row[2]+"</div>";
	} else {
		$.autocomplete.hideResultsNow();
		return '';
	}
}

/**
 * Airport selector for citySelector plugin
 * @param {Object} code
 * @param {Object} field
 */
var selectAirportBack = function(code,field,fieldCode) {
	//$('#'+field).next('.hidden').val(code);
	$('#'+field).unbind('focus').val(code).removeClass('virgin');
	$('#'+field).focus();
	closeCitySelector();
}
/**
 * Little function for closing city selector box
 */
var closeCitySelector = function() {
	$('#esky_cities').empty().remove();
	$(document).blur();
}
var closeCalendar = function() {
	$('#esky_calendar').empty().remove();
	$(document).blur();
}
var closeErrorMessage = function() {
	$('#msg-balloon').empty().remove();
	$(document).blur();
}

/* ---------- DESTINATOR FUNCTIONS ----------- */
var closeDestinator = function() {
	$destinator = $('#destinator');
	if ($destinator.length > 0) {
		$destinator.empty().remove();
	}
}
var setDestination = function(target, value) {
	$('#' + target).attr('value', value).unbind('focus').removeClass('virgin');
	closeDestinator();
}



/* ---------- JQUERY EXTENSIONS ---------- */
jQuery.fn.extend({
	/*
	 * FIELD DUPLICATION UTILITIES
	 */
	fieldNumberControl: function(o,i) {
		$this = $(this);
		for(f in o) {
			$(f,$this).each(function(){
				var attr = o[f].split(',');
				for (a in attr) {
					if (typeof $(this).attr(attr[a]) != 'undefined') {
						var attrFullName = $(this).attr(attr[a]);
						var attrSplitted = splitValue(attrFullName);
						var newAttrValue = (attrSplitted.name == null) ? parseInt(attrSplitted.id) + i : attrSplitted.name + parseInt(parseInt(attrSplitted.id) + i)

						//console.log(attrFullName+"\n"+newAttrValue);

						$(this).attr(attr[a], newAttrValue);
						//$(this).attr(attr[a], attrName.name + parseInt(attrName.id + i));
					}
				}
			});
		}
		return $this;
	},
	fieldReset: function(o) {
		$this = $(this);
		var fields = o.split(',');
		for(f in fields) {
			switch(fields[f]) {
				case 'input':
				case 'select':
					$(fields[f],$this).val('');
				break;
				case 'label':
					$(fields[f],$this).text('').removeClass(cl_Error);
				break;
			}
		}
		return $this;
	},

	saveQuery: function(formId,days){
		var cookieId = (formId) ? formId : $(this).attr('id');
		var queryString = cookieId;
		$('input[type="text"],input[type="hidden"].hidden,select,input[type="radio"]:checked,input[type="checkbox"]:checked',$(this))
		.not(':disabled').each(function(){
			var val = $(this).val();
			if (typeof val != 'undefined' && val != '') {
				queryString += '|' + $(this).attr('type') + ':' + $(this).attr('name') + '=' + val;
			}
		});
		createCookie(cookieId,queryString,days);
	},
	saveSearchType: function(formId,days){
		var cookieId = (formId) ? formId : $(this).attr('id');
		queryString = $('tbody.advanced').hasClass('hidden') ? 'simple' : 'advanced';
		createCookie(cookieId,queryString,days);
	},
	loadSearchType: function(formId,field){
		var cookieId = (formId) ? formId : $(this).attr('id');
		var cookie = readCookie(cookieId);
		if (cookie) {
			if (cookie == 'advanced') {
				$('#advanced-form-changer').click();
				$('#lnkChangeCriteria').addClass('isAdvanced');
			};
		}
	},
	loadQuery: function(formId,field){
		var cookieId = (formId) ? formId : $(this).attr('id');
		var cookie = readCookie(cookieId);
		if (cookie) {
			var fields = cookie.split('|');
			for (i in fields) {
				var a = String(fields[i]).split(':');
				if(a[1]) var b = a[1].split('='); else continue;
				if(field && field!=b[0]) continue;
				switch(a[0]) {
					case 'radio':
					case 'checkbox':
						$('input[@name="' + b[0] + '"][@value="' + b[1] + '"]', $(this)).attr('checked','checked');
						break;
					case 'text':
					case 'hidden':
						$input = $('input[@name="' + b[0] + '"]', $(this));
						$input.val(b[1]);
						if (b[1] != ASF_ENTER_FROM_CITY_NAME && b[1] != ASF_ENTER_TO_CITY_NAME && b[1] != Date.format.toUpperCase() && b[1] != 'RRRR-MM-DD') {
							$input.removeClass('virgin');
						}
						break;
					default:
						$('select[@name="' + b[0] + '"]', $(this)).val(b[1]);
						break;
				}
			}
		}
	},

	/*
	 * CITY SELECTOR
	 */
	citySelector: function() {
		$(this).each(function(){
			$this = $(this);

			var url = $this.attr('href');
			var title = $this.attr('title');
			var scrolling = ($.browser.msie) ? 'no' : 'auto';

			$this.unbind().click(function(){
				closeCitySelector();
				var c = $(this).siblings('input').offset();
				$('body')
				.append(
					$('<div></div>')
						.attr('id','esky_cities')
						.css({
							'position':'absolute',
							'top':c.top + $(this).prev().height()+8,
							'left':c.left
						})//css
						.append(
							$('<h3></h3>')
								.text(title)
								.append($('<a></a>')
									.attr('href','javascript:void(0);')
									.text(TXT_CLOSE)
									.click(closeCitySelector)
								)
						)
						.append(
							$('<iframe>')
								.attr('src',url)
								.attr('width',300)
								.attr('height',300)
								.attr('frameborder',0)
								.attr('scrolling',scrolling)
								.attr('marginwidth',0)
								.attr('marginheight',0)
								.attr('allowTransparency','true')
								.css({
									'border':'none',
									'background':'transparent'
								})
						)
						.bgIframe()
				);//append
				return false;
			}); //onclick
		}); //each
	},
	/*
	 * DESTINATOR - select destination from flash map
	 */
	destinator: function() {
		$(this).each(function(){
			$(this).unbind().click(function(){
				if ($('#destinator').length > 0) {
					closeDestinator();
					return false;
				}
				var ww = $(window).width();
				var input = $('#' + $(this).attr('rel'));
				var xy = input.offset();
				var dx = xy.left; //destinator offset x
				if (xy.left > ww/2) { //if QSF is on the right side of the screen, align destinator to right
					dx = xy.left + input.width() + parseInt(input.css('padding-left'))*2 - 711;
				}

				$('body').append(
					$('<div></div>')
					.attr('id', 'destinator')
					.css({top: xy.top + input.height() + 8, left: dx})
					.append(
						$('<div></div>')
						.attr('id', 'destinatorContent')
						.append(
							$('<p></p>')
							.html('Do działania mapy niezbędny jest plugin <a href="http://get.adobe.com/flashplayer/" target="_blank">Adobe Flash</a> - prosimy o jego zainstalowanie.')
						)
					)
				);

				swfobject.embedSWF(ibeConfig.host + "/swf/destinator.swf", "destinatorContent", "750", "500", "9.0.0", "", {input:$(this).attr('rel')});

				return false;
			});
		});
	},
	tipBox: function(html,width){
		$(this)
		.mouseover(function(e){
			var a = $(this);
			//var xy = a.offset();
			var pos = getCursorPosition(e);

			$('div#custom-field-help').remove();
			$('body').append($('<div></div>')
				.attr('id', 'custom-field-help')
				.css({
					'display':'none',
					'position': 'absolute',
					'left': pos.x + 8,
					'top': pos.y + 8,
					'width':(width)?width:200
				})
				//.load( a.attr('href')+ ' #jqText' )
				.html(html)
				.fadeIn('slow')
			);
			return false;
		})
		.mouseout(function(){
			$('div#custom-field-help').remove();
			return false;
		})
		.click(function(){return false;});
	}
});
var showPiTime = 15000;
var showPiTimeInformation = function(){
	$('#information p.time').fadeIn(800);
}


/* Validation functions */

var getFlyFrom = function(id){
	//return $('input[name=fly_from_'+id+']').val();
	return $(document.getElementsByName('fly_from_'+id)).val();
}
var getFlyTo = function(id){
	//return $('input[name=fly_to_'+id+']').val();
	return $(document.getElementsByName('fly_to_'+id)).val();
}
var getFlyFromDate = function(id){
	//return $('input[name=fly_from_date_'+id+']').val();
	return $(document.getElementsByName('fly_from_date_'+id)).val();
}
var getCheckinDate = function(days){
	//return $('input[name=fly_from_date_'+id+']').val();
	var checkin = $(document.getElementsByName('hotel_checkin_date')).val();
	return checkin.strToDate().addDays(days).asString();
}
var setFlyDate = function(days){
	return new Date().addDays(days).asString();
}
var setDate = function(days){
	return new Date().addDays(days).asString();
}
var getPassengers = function(arr){
	var count = 0;
	if(!arr){
		$('.passenger select').each(function(){
			count += parseInt($(this).val());
		});
	} else {
		for(i in arr){
			$('.passenger select[name$='+arr[i]+']').each(function(){
				count += parseInt($(this).val());
			});
		}
	}
	return count;
}
var getPayerLanguage = function(){
	return document.getElementById('payer_country').value;
}
var getInvoiceLanguage = function(){
	return document.getElementById('invoice_country').value;
}

validator.prototype.ZipCode = function(language){
	var messages = [];
	var valid = true;
	switch(language.toUpperCase())
	{
		case 'PL':
		if(!/^\d{2}-\d{3}$/.test(this._value)){
			valid = false;
		}
		break;

		default:
		if(this._value==''){
			valid = false;
		}
		break;
	}
	if(!valid){
		messages.push(['Given Zip Code is invalid.']);
	}
	return this._collectMessages(messages);
}
validator.prototype.SelectCc = function(){
	var messages = [];
	if ($(document.getElementsByName('payment_type')).filter(':checked').val() == 1 && this._empty() ){
		messages.push(["Please select credit card type or change payment type to bank transfer."]);
	}
	return this._collectMessages(messages);

};
validator.prototype.CcExpireDate = function(){
	var messages = [];

	var _temp = String(this._value) + '-01';
	this.__value = (this._value + '-' +(_temp.strToDate().getDaysInMonth())).strToDate();

	if ( this.__value < new Date() || this._value.indexOf('-0') != -1 ){
		messages.push(["Credit Card has expired."]);
	}
	return this._collectMessages(messages);

};
validator.prototype.CcCvv = function(){
	var cardType = $('#cctype').val().toLowerCase();
	var cvvLength = ( /American ?Express/i.test( cardType ) ) ? 4 : 3;
	var ccNumber = $('#payment_card_cc_number').val();
	var messages = [];

	if ( String(this._value).length != cvvLength ) {
		messages.push(["Incorrect CVV length."]);
	}
	if ( this._value == ccNumber.substring(ccNumber.length - cvvLength) ){
		messages.push(["Incorrect CVV number."]);
	}

	return this._collectMessages(messages);
};
validator.prototype.CcnumType = function(){
	var messages = [];
	var cardType = $('#cctype').val().toLowerCase();
	var ccnum = String(this._value.replace(/\D/g,''));

	switch (cardType) {
		case 'mastercard':
		case 'master card':
			if(ccnum.length != 16 || ccnum[0] != 5 || ccnum[1] == 0 || ccnum[1] > 5) {
				messages.push({INVALID:this._formatMessage("%value%' is not valid MasterCard credit card numer")});
			}
		break;
		case 'visa':
		case 'visa electron':
		case 'visaelectron':
			if((ccnum.length != 16 && ccnum.length != 13) || ccnum[0] != 4) {
				messages.push({INVALID:this._formatMessage("%value%' is not valid VISA credit card numer")});
			}
		break;
		case 'american express':
		case 'americanexpress':
			if(ccnum.length != 15 || ccnum[0] != 3 || (ccnum[1] != 4 && ccnum[1] != 7)) {
				messages.push({INVALID:this._formatMessage("%value%' is not valid AmericanExpress credit card numer")});
			}
		break;
		case 'diners club':
		case 'dinersclub':
			if(ccnum.length != 14 || ccnum[0] != 3 || (ccnum[1] != 0 && ccnum[1] != 6 && ccnum[1] != 8) || ccnum[1] == 0 && ccnum[2] > 5) {
				messages.push({INVALID:this._formatMessage("%value%' is not valid DinersClub credit card numer")});
			}
		break;
	}
	if( !Luhn(ccnum) ){
		messages.push({CHECKSUM:this._formatMessage("Luhn algorithm (mod-10 checksum) failed on '%value%'")});
	}
	return this._collectMessages(messages);
};
validator.prototype.Nip = function(language){
	var messages = [];
	switch (language.toUpperCase()) {
		case 'PL':
			var newValue = this._value.replace(/\D/g, ''); //Remove characters other than digits before validation

			this._input.val(newValue);
			this._value = newValue;

			if (!/^\d{10}$/.test(this._value)) {
				messages.push(["Numer NIP powinien składać się z dokładnie 10 cyfer, bez znaków myślinka i spacji."]);
			}
			if (!Nip(this._value)) {
				messages.push(["Podany numer NIP jest nieprawidłowy."]);
			}
			break;

		default:
			if(this._value==''){
				messages.push(["Podany numer NIP jest nieprawidłowy."]);
			}
			break;
	}
	return this._collectMessages(messages);
}
var departureDate = function(add){
	return ibeConfig.departureDate.strToDate().subYears(add).asString();
};
var arrivalDate = function(add){
	if(!ibeConfig.arrivalDate)
		ibeConfig.arrivalDate = ibeConfig.departureDate;

	return ibeConfig.arrivalDate.strToDate().subYears(add).asString();
};
var todayDate = function(){
	return new Date().asString();
};

var validationOptions = {
	labelErrorClass : 'form-input-error',
	messagesErrorId : 'errors',
	breakChain : true,
	locale : false,
	preAction : function() {
		$('input.virgin').val('').removeClass('virgin');
	}
};
var validationDecorator = function(data){
	$('div#messages,p#message').remove();
	if(!data) return false;
	$html = $('<div></div>').attr('id','messages').addClass('dSection')
		.append($('<div></div>').addClass('hdrCntr').append($('<h2></h2>').text(I18N_ValidationErrorsHeader)))
		.append($('<div></div>').append($('<ul></ul>')));
	var scrollY = 0;
	if ($('form.user_form').size() > 0) {
		$('form.user_form>div:first').after($html);
		var scrollY = $('div#messages').offset(); scrollY = (scrollY.top - 50);
	}
	else if($('div.option.double.last').size()>0){
		$html.css({'margin':'0 0 10px 0'});
		$('div.option.double.last>h4:first').after($html);
	}
	else {
		$('div.flight:first').prepend($html);
		/*
		if ($('div.flight>h3:first').size() > 0) {
			// Temporary solution - may be removed when ASF will be redesigned
			$('div.flight>h3:first').after($html);
		}
		else {
			$('div.flight').prepend($html);
		}
		*/

	}

	$errors = $('div#messages ul');
	for(index in data.label){
		if (typeof data.label[index] == 'object') {
			//console.log(data.label);
			data.label[index].addClass('form-input-error').data('error', data.message[index]);//.click(validationMessage);
		}
		if (data.repeated[index] == false) {
			var title = data.label[index].attr('title');
			$errors.append($('<li></li>').html(data.message[index]+"<br/>")); // Leave <br>!!! Otherwise there is a strange error...
		}
	}
	window.scroll(0,scrollY);
};






$(document).ready(function(){

	//poniewaz ciasteczko przychodzi obecnie z php musi zostac unescapowane przed uzyciem (adamp)
	createCookie('flights',unescape(readCookie('flights')));

	$(this).click(function(){
		closeCitySelector();
		closeDestinator();
		closeCalendar();
		closeErrorMessage();
	});


	//$('#payment-form').checkForm(flight_payment,errorBoxStickers);


	$('input.external,a.external,a._blank').attr({target: "_blank"});
	$('input.print,a.print').click(function(){
		window.print();
		return false;
	});


/*
	//@TODO do przepisania - sprawdzanie ceny
	$('#options-form').submit(function () {
		console.log(this);

		r = jQuery.getJSON('/ibe_17/display_broker/loty/przelicz_cene', $(this).serialize(), function (resp, stat) {
			if (stat == 'success') {
				$('table.price tr.total .price p').text(resp.Total.Price);
			}
			console.log('odebrano');
			console.log(arguments);
		});
		console.log('wyslano');
		return false;
	});
*/

	$('.cvv-help_toggle').hover(function(e){
		$tip = $('#cvv-tip');
		var cursor = getCursorPosition(e);
		var object = getJQObjectDimensions($tip);
		var view = getViewportSize(true);
		var padding = 25;

		var x = (cursor.x + object.width + padding > view.width) ? view.width - (object.width + padding * 2) : cursor.x - padding;
		var y = cursor.y - (object.height + padding * 2) + 20;



		$tip.css({
			'top': y,
			'left': x
		}).show();
	}, function(){
		$('#cvv-tip').hide();
	});


		$('.hintIconCell img,img.hintIcon').hover(function(e){
		$tip = $('#tltpCntnr');
		var cursor = getCursorPosition(e);
		var padding = 25;

		var x = (cursor.x+padding);
		var y = (cursor.y+padding);

		$tip.find('p').text($(this).attr('title'));
		lastTip = $(this).attr('title');
		$(this).attr('title','');
		$(this).attr('alt','');
		$(this).removeAttr('title');
		$tip.css({
			'top': y,
			'left': x
		}).show();
		e.stopPropagation();
	}, function(){
		$('#tltpCntnr').hide();
		$(this).attr('title',lastTip);
	});


	/* Show/Hide flight details */
	$('a.details-toggle').click(function(){
		$details = $('table#flight-details');
		$button = $('span',$(this));
		if($details.hasClass('hidden')){
			$details.removeClass('hidden').next().removeClass('hidden');
			$button.html(TXT_HIDE_DETAILS);
		} else {
			$details.addClass('hidden').next().addClass('hidden');
			$button.html(TXT_SHOW_DETAILS);
		}
		return false;
	});

	/* Show/Hide price details */
	$('a.price-details-toggle').click(function(){
		$details = $('#price-details');
		$button = $('span',$(this));
		if($details.hasClass('hidden')){
			$details.removeClass('hidden').next().removeClass('hidden');
			$button.html(TXT_HIDE_DETAILS);
		} else {
			$details.addClass('hidden').next().addClass('hidden');
			$button.html(TXT_SHOW_DETAILS);
		}
		return false;
	});

	/* Show/Hide form for invoice */
	$('#invoice_toggle').is(':checked') ? $('#invoice').removeClass('hidden').show() : $('#invoice').addClass('hidden').hide();
	$('#invoice_toggle').click(function(){
		if ($(this).is(':checked')) {
			$('#invoice').removeClass('hidden').show(); //,function(){window.scrollBy(0,200);}
		} else{
			$('#invoice').addClass('hidden').hide();
		}
	});

	/* Show/Hide payment or service details on the payment page */
	$('#service-details>dd').hide();
	$('#service-details dt a').click(function(){
		var o = $($(this).attr('href'));
		var txt = o.attr('id').replace('-', '_');
		if (o.is(':hidden')) {
			o.slideDown("fast");
			$(this).text(eval('txt_hide_' + txt));
		}
		else {
			o.slideUp("fast") ;
			$(this).text(eval('txt_show_' + txt));
		}
		return false;
	});

	$('#fly_invoice_country').change(function(){
		var t = ($(this).val()=='PL') ? TXT_NIP : TXT_TAXID ;
		$('label[for=fly_invoice_nip]').text(t+':');
	})

	$('input.virgin')
	.one('focus',function(){
		if($(this).hasClass('virgin')){ // do it only if the object still has "virgin" class
			$(this).val('').removeClass('virgin');
		}
	});

	$('input[type=text]').focus(function(){
		$(this).get(0).select();
	});


	/*
	 * Przełączanie między polem select a ukrytym polem input
	 * na ekranie doprecyzowania danych, jesli źle podano miasto.
	 * DBR flights
	 */
	$('input.switch').change(function(){
		var id = $(this).attr('id');
		var id_temp = id.split('_');
		var $input =$('#value_' + id_temp[1]);
		if($(this).is(':checked')){
			$input.removeAttr('disabled');
			$input.parent().show().removeClass('hidden');
			$(this).siblings('select').attr('disabled','disabled');
		} else {
			$input.attr('disabled','disabled');
			$input.parent().hide();
			$(this).siblings('select').removeAttr('disabled');
		}
	});


	/*
	 * Kalendarze na ekranie doprecyzowania danych jeśli użytkownik
	 * źle podał datę wylotu lub powrotu.
	 * DBR flights
	 */
	if ($('#inline-calendar-from').size() > 0) {
		$('#inline-calendar-from').esky_calendar_render({
			thisInput: 'fly_from_date_0',
			loop: 2,
			type: 'inline',
			clickCallback: function(value){$('.calendar-value-from').text(value);},
			i18n : I18N_CalendarText
		});
	}
	if ($('#inline-calendar-to').size() > 0) {
		$('#inline-calendar-to').esky_calendar_render({
			thisInput: 'fly_to_date_0',
			//linkedInput: 'fly_from_date_0',
			loop: 2,
			type: 'inline',
			clickCallback: function(value){$('.calendar-value-to').text(value);},
			i18n : I18N_CalendarText
		});
	}

	/* Control cities popup window */
	$('a.pop-cities').citySelector();

	/*try {
		resizeIframe();
	} catch (err) {}*/
if (jQuery.browser.msie) {
	window.EPLinesSelectors = (function() {
		function makeWider(oEvent) {
			if (this.resized === true) {
				return true;
			}
			this.resized = true;
			var oParent = this.parentNode,
				toHide, hiddens = [], i =0;

			oParent.oldWidth = jQuery(oParent).width();
			toHide = oParent.parentNode.firstChild;
			while (toHide) {
				if (toHide !== oParent && toHide.nodeType === 1) {
					hiddens[i] = toHide;
					toHide.oldDisplay = toHide.style.display;
					toHide.style.display = "none";
					i += 1;
				}
				toHide = toHide.nextSibling;
			}
			oParent.style.width = "218px";
			this.hiddens = hiddens;
			return true;
		}

		function makeNarrower(oEvent) {
			if (this.resized && !this.isInUse) {
				this.resized = false;
				var hiddens = this.hiddens,
					i;
				this.parentNode.style.width = this.parentNode.oldWidth + "px";
				for (i = 0; i < hiddens.length; i += 1) {
					hiddens[i].style.display = hiddens[i].oldDisplay;
				}
			}
			return true;
		}

		function onfocus(oEvent) {
			this.isInUse = true;
			makeWider.call(this, oEvent);
		}

		function onblur(oEvent) {
			this.isInUse = false;
			makeNarrower.call(this, oEvent);
		}

		function onchange(oEvent) {
			if (this.isKeyPressed === true) {
				this.isKeyPressed = false;
				return true;
			}
			this.isInUse = false;
			makeNarrower.call(this, oEvent);
			this.isInUse = true;
			return true;
		}

		function init() {
			jQuery("form.frmPlaneTicketsSearcher select[name^=lines]")
				.bind("focus", onfocus)
				.hover(makeWider, makeNarrower)
				.bind("blur", onblur)
				.bind("change", onchange);
			delete EPLinesSelectors.init;
		}

		return {
			init: init
		};
	}());

	jQuery(EPLinesSelectors.init);
}


});
