//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';

/* ---------- 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
	}
}
function FindId(value) {
	if(typeof value != "string") value = value.toString();
	return {
		string:value,
		name:value.match(/^[\w_\-]+[^\d]/g)[0],
		id:value.match(/\d+$/g)[0]
	}
}
/**
 * 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;
	},
	insuranceFieldNumberControl: function(o,i) {
		function insuranceSplitValue(value) {
			if(typeof value != "string") value = value.toString();
			var objectName1 = value.match(/^[a-z_]+/);
			var objectName2 = value.match(/[a-z_]+$/);
			var objectId = value.match(/\d+/);

			return {
				name:objectName1,
				name2:objectName2,
				id:objectId,
				array:( objectId != parseInt(objectId) && objectId != null )?true:false
			}
		}
		$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 = insuranceSplitValue(attrFullName);
						var newAttrValue = attrSplitted.name + i + attrSplitted.name2; 
						$(this).attr(attr[a], newAttrValue);
					}
				}
			});
		}
		return $this;
	},
	insuranceFieldNumberControlArray: function(o,i) {
		function insuranceSplitValue(value) {
			if(typeof value != "string") value = value.toString();
			var objectName1 = value.match(/^[a-zA-Z_]+/);
			var objectName2 = value.match(/\[[a-zA-Z_]+\]$/);
			var objectId = value.match(/\[\d\]/);

			return {
				name:objectName1,
				name2:objectName2,
				id:objectId,
				array:( objectId != parseInt(objectId) && objectId != null )?true:false
			}
		}
		$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 = insuranceSplitValue(attrFullName);
						var newAttrValue = attrSplitted.name + '[' + i + ']' + attrSplitted.name2; 
						$(this).attr(attr[a], newAttrValue);
					}
				}
			});
		}
		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,.dynamic')
		.each(function(){
			var val = $(this).val();
			if (typeof val != 'undefined' && val != '') {
				queryString += '|' + $(this).attr('type') + ':' + $(this).attr('name') + '=' + val;
			}
		});
		createCookie(cookieId,queryString,days);
	},
	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':
						// trzeba ustawić selecta ?
						if ($('select[@name="' + b[0] + '"]').size()>0) {
							$('select[@name="' + b[0] + '"]', $(this)).val(b[1]);
						// albo inputa
						} else {
							$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 cursor = getCursorPosition(e);
			// modyfikacje żeby tip nie wyswietlal sie poza iframe (bo go ucina)
			var object = {};
			if (width == undefined)
				var width = 200;
			object.width = width;
			object.height = 90;
			
			var view = getViewportSize(true);
			var padding = 25;
			var x = (cursor.x + object.width + padding > view.width) ? view.width - (object.width + padding) : cursor.x;
			var y = (cursor.y + object.height + padding > view.height) ? cursor.y - (object.height + padding * 2) : cursor.y + padding;

			
			$('div#custom-field-help').remove();
			$('body').append($('<div></div>')
				.attr('id', 'custom-field-help')
				.css({
					'display':'none',
					'position': 'absolute',
					'left': x ,
					'top': y,
					'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;
}
/* Insurances - standalone */
var getInsuredInvoiceLanguage = function(){
	return document.getElementById('payer_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')
		.append($('<h2></h2>').text(I18N_ValidationErrorsHeader))
		.append($('<div></div>').append($('<ul></ul>')));

	var scrollY = 0;
	if ($('div.user_form').size() > 0) {
		$('div.user_form>h3: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') {
			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...
		}
	}
	if( window.top == window ) // jesli nie iframe to skrollujemy - nie skrolujemy w iframe'ie gdyz ucina to strone i nie mozna jej przeskrollować (lkieres)
		window.scroll(0,scrollY);
};

$(document).ready(function(){

	//poniewaz ciasteczko przychodzi obecnie z php musi zostac unescapowane przed uzyciem (adamp) 
	createCookie('esky_flights',unescape(readCookie('esky_flights')));
	
	$(this).click(function(){
		closeCitySelector();
		closeDestinator();
		closeCalendar();
		closeErrorMessage();
	});

	$('input.external,a.external,a._blank').attr({target: "_blank"});
	$('input.print,a.print').click(function(){
		window.print();
		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 > view.height) ? cursor.y - (object.height + padding * 2) : cursor.y - padding;
		
		$tip.css({
			'top': y,
			'left': x
		}).show();
	}, function(){
		$('#cvv-tip').hide();
	});


	/* Show/Hide flight details */
	$('a.details-toggle').click(function(){
		$details = $('table#flight-details');
		$button = $('span',$(this));
		if($details.hasClass('hidden')){
			$details.removeClass('hidden').next().addClass('hidden');
			$button.html(TXT_HIDE_DETAILS);
		} else {
			$details.addClass('hidden').next().removeClass('hidden');
			$button.html(TXT_SHOW_DETAILS);
		}
		return false;
	});

	/* Show/Hide insurance details */
	$('a.insurance-details-toggle').click(function(){
		$details = $('#insurance-details');
		if($details.hasClass('hidden')){
			$details.removeClass('hidden').next().addClass('hidden');
			$(this).text(TXT_HIDE_DETAILS+' ubezpieczenia');
		} else {
			$details.addClass('hidden').next().removeClass('hidden');
			$(this).text(TXT_SHOW_DETAILS+' ubezpieczenia');
		}
		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
		});
	}

	try {
		resizeIframe();
	} catch (err) {}

});