/* selects */
(function(a){a("html").addClass("js");Array.prototype.indexOf=function(c,d){for(var b=(d||0);b<this.length;b++){if(this[b]==c){return b}}};a.fn.extend({getSetSSValue:function(b){if(b){a(this).val(b).change();return this}else{return selText=a(this).find(":selected").text()}},resetSS:function(){$this=a(this);$this.next().remove();$this.unbind().sSelect()}});a.fn.sSelect=function(b){return this.each(function(){var j={defaultText:"Please select",animationSpeed:0,ddMaxHeight:""};var m=a.extend(j,b),e=a(this),k=a('<div class="selectedTxt"></div>'),s=a('<div class="newListSelected" tabindex="0"></div>'),A=a('<ul class="newList"></ul>'),u=-1,d=-1,n=[],x=false,h="",w=false;s.insertAfter(e);k.prependTo(s);A.appendTo(s);e.hide();if(e.children("optgroup").length==0){e.children().each(function(B){var C=a(this).text();n.push(C.charAt(0).toLowerCase());if(a(this).attr("selected")==true){m.defaultText=C;d=B}h+="<li>"+C+"</li>"});A.html(h);h="";var y=A.children()}else{e.children("optgroup").each(function(D){var B=a(this).attr("label"),E=a('<li class="newListOptionTitle">'+B+"</li>");E.appendTo(A);var C=a("<ul></ul>");C.appendTo(E);a(this).children().each(function(){++u;var F=a(this).text();n.push(F.charAt(0).toLowerCase());if(a(this).attr("selected")==true){m.defaultText=F;d=u}h+="<li>"+F+"</li>"});C.html(h);h=""});var y=A.find("ul li")}var p=A.height(),o=s.height(),z=y.length;if(d!=-1){i(d,true)}else{k.text(m.defaultText)}function q(){var C=s.offset().top,B=jQuery(window).height(),D=jQuery(window).scrollTop();if(p>parseInt(m.ddMaxHeight)){p=parseInt(m.ddMaxHeight)}C=C-D;if(C+p>=B){A.css({top:"-"+p+"px",height:p});e.onTop=true}else{A.css({top:o+"px",height:p});e.onTop=false}}q();a(window).resize(function(){q()});a(window).scroll(function(){q()});function t(){s.css("position","relative")}function c(){s.css("position","static")}k.click(function(){if(A.is(":visible")){A.hide();c();return false}s.focus();A.slideDown(m.animationSpeed);t();A.scrollTop(e.liOffsetTop)});y.hover(function(C){var B=a(C.target);B.addClass("newListHover")},function(C){var B=a(C.target);B.removeClass("newListHover")});y.click(function(C){var B=a(C.target);d=y.index(B);w=true;i(d);A.hide();s.css("position","static")});function i(D,F){var B=s.offset().top,G=y.eq(D).offset().top,C=A.scrollTop();if(e.onTop==true){e.liOffsetTop=(((G-B)-o)+C)+parseInt(m.ddMaxHeight)}else{e.liOffsetTop=((G-B)-o)+C}A.scrollTop(e.liOffsetTop);y.removeClass("hiLite").eq(D).addClass("hiLite");var E=y.eq(D).text();if(F==true){e.val(E);k.text(E);return false}e.val(E).change();k.text(E)}e.change(function(B){$targetInput=a(B.target);if(w==true){w=false;return false}$currentOpt=$targetInput.find(":selected");d=$targetInput.find("option").index($currentOpt);i(d,true)});function r(B){B.onkeydown=function(E){if(E==null){var D=event.keyCode}else{var D=E.which}w=true;switch(D){case 40:case 39:v();return false;break;case 38:case 37:l();return false;break;case 33:case 36:g();return false;break;case 34:case 35:f();return false;break;case 13:case 27:A.hide();c();return false;break}keyPressed=String.fromCharCode(D).toLowerCase();var C=n.indexOf(keyPressed);if(typeof C!="undefined"){++d;d=n.indexOf(keyPressed,d);if(d==-1||d==null||x!=keyPressed){d=n.indexOf(keyPressed)}i(d);x=keyPressed;return false}}}function v(){if(d<(z-1)){++d;i(d)}}function l(){if(d>0){--d;i(d)}}function g(){d=0;i(d)}function f(){d=z-1;i(d)}s.click(function(){r(this)});s.focus(function(){a(this).addClass("newListSelFocus");r(this)});s.blur(function(){a(this).removeClass("newListSelFocus");A.hide();c()});k.hover(function(C){var B=a(C.target);B.parent().addClass("newListSelHover")},function(C){var B=a(C.target);B.parent().removeClass("newListSelHover")});A.css("left","0").hide()})}})(jQuery);
/* placeholders */
if((!$.browser.msie && $.browser.version != '7.0') || (!$.browser.msie && $.browser.version != '6.0')) {
(function(a){if(!a)return false;a.fn.extend({storeEvents:function(e){return this.each(function(){a.data(this,"storedEvents",function(b){var d={};for(i in b)d[i]=typeof b[i]=="object"?arguments.callee(b[i]):b[i];return d}(a(this).data("events")));e&&a(this).unbind()})},restoreEvents:function(e){return this.each(function(){var b=a.data(this,"storedEvents");if(b){e||a(this).unbind();for(var d in b)for(var g in b[d])a.event.add(this,d,b[d][g],b[d][g].data)}})},copyAttr:function(e,b,d){return this.each(function(){var g= {},f,h,c;if(b===true){f=0;for(d=a.makeArray(d);f<this.attributes.length;f++){h=this.attributes[f].nodeName;if((c=this.attributes[f].nodeValue)&&a.inArray(h,d)==-1)g[h]=c}}else{f=0;for(b=a.makeArray(b);f<b.length;f++)if(typeof a(this).attr(b[f])=="string")g[b[f]]=a(this).attr(b[f])}a(this).attr(g)})},blurfocus:function(e){return this.each(function(){if(a.browser.safari)return false;var b=a(this).attr("placeholder");e=a.extend({className:"placeholded",handle_send:true,handle_password:true},e||{});a(this).is(":password")&& e.handle_password&&a(this).data("placeholded_type","password");var d=function(){if(a(this).val().length==0){if(a(this).data("placeholded_type")=="password"){var c=a('<input type="text" name="'+a(this).attr("name")+'" />'),j=a(this).storeEvents(true).data("storedEvents");a(this).copyAttr(c,true,["type","name"]).replaceWith(c);c.blur().data("placeholded_type","password").data("storedEvents",j).restoreEvents()}else c=a(this);c.attr("readonly",true).val(b).addClass(e.className)}},g=function(){if(a(this).val()== b&&a(this).hasClass(e.className)){if(a(this).data("placeholded_type")=="password"){var c=a('<input type="password" name="'+a(this).attr("name")+'" />'),j=a(this).storeEvents(true).data("storedEvents");a(this).copyAttr(c,true,["type","name"]).replaceWith(c);c.focus().data("placeholded_type","password").data("storedEvents",j).restoreEvents()}else c=a(this);c.val("").removeAttr("readonly").removeClass(e.className)}},f=function(){g.call(this);a(this).storeEvents(true).focus().restoreEvents()},h=function(c){if(c.keyCode== 9){a.browser.msie||d.call(this);c.stopPropagation()}};if(a(this).is(":password, :text, textarea")){a(this).val(a(this).val()==b?"":a(this).val()).blur(d).focus(g).click(f).keydown(h).blur();e.handle_send&&a(this).parents("form:eq(0)").each(function(){if(a(this).data("placeholder_form")!="handled"){events=a(this).data("placeholder_form","handled").storeEvents().data("storedEvents");eval("var anonfunc = function(){ "+(a(this).attr("onsubmit")||"")+" };");events.submit=a.extend(true,{spec_sub:function(){a(this).find("."+ e.className).focus()}},events.submit,{anonfunc:anonfunc,spec_aft:function(c){c.isDefaultPrevented()&&a(this).find(":input").blur()}});a(this).removeAttr("onsubmit").data("storedEvents",events).restoreEvents()}})}})}});a(function(){a(":input[placeholder]").each(function(){a(this).blurfocus(a(this).attr("placeholder"))})})})(jQuery);
}
/* mousewheel 3.0.2 */
(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);
/* jscrollpane */
(function(A){A.jScrollPane={active:[]};A.fn.jScrollPane=function(C){C=A.extend({},A.fn.jScrollPane.defaults,C);var B=function(){return false};return this.each(function(){var O=A(this);O.css("overflow","hidden");var X=this;if(A(this).parent().is(".jScrollPaneContainer")){var Ac=C.maintainPosition?O.position().top:0;var L=A(this).parent();var d=L.innerWidth();var Ad=L.outerHeight();var M=Ad;A(">.jScrollPaneTrack, >.jScrollArrowUp, >.jScrollArrowDown",L).remove();O.css({top:0})}else{var Ac=0;this.originalPadding=O.css("paddingTop")+" "+O.css("paddingRight")+" "+O.css("paddingBottom")+" "+O.css("paddingLeft");this.originalSidePaddingTotal=(parseInt(O.css("paddingLeft"))||0)+(parseInt(O.css("paddingRight"))||0);var d=O.innerWidth();var Ad=O.innerHeight();var M=Ad;O.wrap(A("<div></div>").attr({className:"jScrollPaneContainer"}).css({height:Ad+"px"}));A(document).bind("emchange",function(Ae,Af,p){O.jScrollPane(C)})}if(C.reinitialiseOnImageLoad){var N=A.data(X,"jScrollPaneImagesToLoad")||A("img",O);var G=[];if(N.length){N.each(function(p,Ae){A(this).bind("load",function(){if(A.inArray(p,G)==-1){G.push(Ae);N=A.grep(N,function(Ag,Af){return Ag!=Ae});A.data(X,"jScrollPaneImagesToLoad",N);C.reinitialiseOnImageLoad=false;O.jScrollPane(C)}}).each(function(Af,Ag){if(this.complete||this.complete===undefined){this.src=this.src}})})}}var o=this.originalSidePaddingTotal;var l={height:"auto",width:d-C.scrollbarWidth-C.scrollbarMargin-o+"px"};if(C.scrollbarOnLeft){l.paddingLeft=C.scrollbarMargin+C.scrollbarWidth+"px"}else{l.paddingRight=C.scrollbarMargin+"px"}O.css(l);var m=O.outerHeight();var i=Ad/m;if(i<0.99){var H=O.parent();H.append(A("<div></div>").attr({className:"jScrollPaneTrack"}).css({width:C.scrollbarWidth+"px"}).append(A("<div></div>").attr({className:"jinner"}).append(A("<div></div>").attr({className:"jinner2"}).append(A("<div></div>").attr({className:"jScrollPaneDrag"}).css({width:C.scrollbarWidth+"px"}).append(A("<div></div>").attr({className:"jScrollPaneDragTop"}).css({width:C.scrollbarWidth+"px"}),A("<div></div>").attr({className:"jScrollPaneDragBottom"}).css({width:C.scrollbarWidth+"px"}))))));var z=A(">.jScrollPaneTrack",H);var P=A(">.jScrollPaneTrack .jScrollPaneDrag",H);if(C.showArrows){var g;var Ab;var S;var r;var j=function(){if(r>4||r%4==0){y(u+Ab*b)}r++};var K=function(p){A("html").unbind("mouseup",K);g.removeClass("jScrollActiveArrowButton");clearInterval(S)};var Z=function(){A("html").bind("mouseup",K);g.addClass("jScrollActiveArrowButton");r=0;j();S=setInterval(j,100)};H.append(A("<a></a>").attr({href:"javascript:;",className:"jScrollArrowUp"}).css({width:C.scrollbarWidth+"px"}).html("Scroll up").bind("mousedown",function(){g=A(this);Ab=-1;Z();this.blur();return false}).bind("click",B),A("<a></a>").attr({href:"javascript:;",className:"jScrollArrowDown"}).css({width:C.scrollbarWidth+"px"}).html("Scroll down").bind("mousedown",function(){g=A(this);Ab=1;Z();this.blur();return false}).bind("click",B));var Q=A(">.jScrollArrowUp",H);var J=A(">.jScrollArrowDown",H);if(C.arrowSize){M=Ad-C.arrowSize-C.arrowSize;z.css({height:M+"px",top:C.arrowSize+"px"})}else{var s=Q.height();C.arrowSize=s;M=Ad-s-J.height();z.css({height:M+"px",top:s+"px"})}}var w=A(this).css({position:"absolute",overflow:"visible"});var D;var Y;var b;var u=0;var V=i*Ad/2;var a=function(Ae,Ag){var Af=Ag=="X"?"Left":"Top";return Ae["page"+Ag]||(Ae["client"+Ag]+(document.documentElement["scroll"+Af]||document.body["scroll"+Af]))||0};var f=function(){return false};var v=function(){n();D=P.offset(false);D.top-=u;Y=M-P[0].offsetHeight-4;b=2*C.wheelSpeed*Y/m};var E=function(p){v();V=a(p,"Y")-u-D.top;A("html").bind("mouseup",T).bind("mousemove",h);if(A.browser.msie){A("html").bind("dragstart",f).bind("selectstart",f)}return false};var T=function(){A("html").unbind("mouseup",T).unbind("mousemove",h);V=i*Ad/2;if(A.browser.msie){A("html").unbind("dragstart",f).unbind("selectstart",f)}};var y=function(Ae){Ae=Ae<0?0:(Ae>Y?Y:Ae);u=Ae;P.css({top:Ae+"px"});var Af=Ae/Y;w.css({top:((Ad-m)*Af)+"px"});O.trigger("scroll");if(C.showArrows){Q[Ae==0?"addClass":"removeClass"]("disabled");J[Ae==Y?"addClass":"removeClass"]("disabled")}};var h=function(p){y(a(p,"Y")-D.top-V)};var q=Math.max(Math.min(i*(Ad-C.arrowSize*2),C.dragMaxHeight),C.dragMinHeight);P.css({height:q+"px"}).bind("mousedown",E);var k;var R;var I;var t=function(){if(R>8||R%4==0){y((u-((u-I)/2)))}R++};var Aa=function(){clearInterval(k);A("html").unbind("mouseup",Aa).unbind("mousemove",e)};var e=function(p){I=a(p,"Y")-D.top-V};var U=function(p){v();e(p);R=0;A("html").bind("mouseup",Aa).bind("mousemove",e);k=setInterval(t,100);t()};z.bind("mousedown",U);H.bind("mousewheel",function(Ae,Ag){v();n();var Af=u;y(u-Ag*b);var p=Af!=u;return false});var F;var W;function c(){var p=(F-u)/C.animateStep;if(p>1||p<-1){y(u+p)}else{y(F);n()}}var n=function(){if(W){clearInterval(W);delete F}};var x=function(Af,p){if(typeof Af=="string"){$e=A(Af,O);if(!$e.length){return}Af=$e.offset().top-O.offset().top}H.scrollTop(0);n();var Ae=-Af/(Ad-m)*Y;if(p||!C.animateTo){y(Ae)}else{F=Ae;W=setInterval(c,C.animateInterval)}};O[0].scrollTo=x;O[0].scrollBy=function(Ae){var p=-parseInt(w.css("top"))||0;x(p+Ae)};v();x(-Ac,true);A("*",this).bind("focus",function(Ah){var Ag=A(this);var Aj=0;while(Ag[0]!=O[0]){Aj+=Ag.position().top;Ag=Ag.offsetParent()}var p=-parseInt(w.css("top"))||0;var Ai=p+Ad;var Af=Aj>p&&Aj<Ai;if(!Af){var Ae=Aj-C.scrollbarMargin;if(Aj>p){Ae+=A(this).height()+15+C.scrollbarMargin-Ad}x(Ae)}});if(location.hash){x(location.hash)}A(document).bind("click",function(Ae){$target=A(Ae.target);if($target.is("a")){var p=$target.attr("href");if(p.substr(0,1)=="#"){x(p)}}});A.jScrollPane.active.push(O[0])}else{O.css({height:Ad+"px",width:d-this.originalSidePaddingTotal+"px",padding:this.originalPadding});O.parent().unbind("mousewheel")}})};A.fn.jScrollPane.defaults={scrollbarWidth:12,scrollbarMargin:5,wheelSpeed:18,showArrows:false,arrowSize:0,animateTo:false,dragMinHeight:1,dragMaxHeight:99999,animateInterval:100,animateStep:3,maintainPosition:true,scrollbarOnLeft:false,reinitialiseOnImageLoad:false};A(window).bind("unload",function(){var C=A.jScrollPane.active;for(var B=0;B<C.length;B++){C[B].scrollTo=C[B].scrollBy=null}})})(jQuery);



function declOfNum(num, form1, form2, form5, separ) {
	if (!separ) separ = '';
	if (num == 0) return '';
    num = parseInt(num) % 100;
    var num1 = num % 10;
    if (num > 10 && num < 20) return separ + num + ' ' + form5;
    if (num1 > 1 && num1 < 5) return separ + num + ' ' + form2;
    if (num1 == 1) return separ + num + ' ' + form1;
    return separ + num + ' ' + form5;
}

$(document).ready(function(){
	/*  IE6: Top-menu hover, png */
	if($.browser.msie && $.browser.version <= '6.0') {
		$('div.flybox span.close').hover(function(){
			$(this).toggleClass('jshover');
		}, function() {
			$(this).toggleClass('jshover');
		});
		
		$('#booking #main .select').each(function(){ /* too slow */
			if ($(this).hasClass('required')) $(this).addClass('select-required');
		});
		
	}

	/* w1024, JSon */
	w1024Els = $('body');
	if ($(window).width() <= 1125) w1024Els.addClass('w1024');
	$(window).resize(function(){
		if ($(window).width() <= 1125) w1024Els.addClass('w1024');
		else w1024Els.removeClass('w1024');
	});
	w1024Els.addClass('js');
	
	/* main menu */
	$('#mainmenu').width( $('#mainmenu ul').width()-13 );
	//$('#mainmenu ul li').each(function(){
	//	var menuArray = new Array();
	//	menuArray = $(this).children('a').text().split(' ');
	//	//alert( menuArray.lenght );
	//});
	
	/* flyBox */
	$('#login, #recall, #new-quest, #map, #helpNum, #bilet').click(function(){
		$(this).next('div.flybox').slideDown();
		return false;
	});
	$('div.flybox span.close').click(function(){
		$(this).parent('div.flybox-inner').parent('div.flybox').slideUp('fast');
	});


	/* FAQ */
	$('#new-quest').click(function(){
		$('#main').height($('#main').height()+100);
	});
	$("div.faq div.answer").hide().filter(':first').show().prev('h4').toggleClass("active");
	$("div.faq h4").click(function(){
		$(this).next("div.answer").slideToggle("fast")
		.siblings("div:visible").slideUp("slow");
		$(this).toggleClass("active");
		$(this).siblings("h4").removeClass("active");
	});


	/* Booking, Mainpage: forms */
	$('#booking #content input:radio, #mainpage #content input:radio').each(function(){
		if(this.checked){$($(this).parent('span')).addClass('checked');}
	});
	$('#booking #content input:checkbox, #mainpage #content input:checkbox').each(function(){
		if(this.checked){$($(this).parent('span')).addClass('checkd');}
	});
	$('span.input-radio').click(function(){
		var input = $(this).addClass('checked').children('input').attr('checked', true);
		$('input:radio[name="'+ input.attr('name') +'"]').not(input).each(function(){
			$(this).attr('checked',false).parent('span.input-radio').removeClass('checked');
		});
	});
	$('span.checkbox').click(function(){
		if ($(this).is('.checkd')) $(this).removeClass('checkd').children('input').attr('checked',false);
		else $(this).addClass('checkd').children('input').attr('checked',true);
		
	});
	$('#booking #content select, #mainpage #content select').sSelect({ddMaxHeight: '300px'});

	
	/* Booking: 1 step */
	var passWidth = new Array();
		passWidth['adult'] = 40;
		passWidth['teen'] = 33;
		passWidth['baby'] = 29;
	var curPass = new Array();
		curPass['adult'] = new Number($('#adults').val());
		curPass['teen'] = new Number($('#teens').val());
		curPass['baby'] = new Number($('#babys').val());
		curPass['all'] = new Number();
	$('#peoples div.adult').css('width', $('#adults').val() * passWidth['adult']);
	$('#peoples div.teen').css('width', $('#teens').val() * passWidth['teen']);
	$('#peoples div.baby').css('width', $('#babys').val() * passWidth['baby']);

	function peopleCount() {
		$('#people-count').text(
			declOfNum(curPass['adult'] = parseInt($('#adults').val()), 'взрослый', 'взрослых', 'взрослых') +
			declOfNum(curPass['teen'] = parseInt($('#teens').val()), 'ребёнок', 'ребёнка', 'детей', ', ') +
			declOfNum(curPass['baby'] = parseInt($('#babys').val()), 'младенец', 'младенца', 'младенцев', ', ')
		);
		
		curPass['all'] = curPass['adult'] + curPass['teen'] + curPass['baby'];
		if ( curPass['all'] >= 8 ) $('#peoples-active').addClass('peoples-deactive');
	}
	function addPass(passType) {
		curPass[passType] = parseInt($('#' + passType + 's').val()) + 1;
		if (curPass['all'] < 8) {
			if ( passType == 'teen' || passType == 'baby' ) {
				if ( (curPass['teen'] + curPass['baby']) / curPass['adult'] > 3 ) {
					alert('На каждого взрослого должно быть не более трёх детей');
					return peopleCount();
				}
			}
			$('#' + passType + 's').val(curPass[passType]);
			$('#peoples div.' + passType).css('width', curPass[passType] * passWidth[passType]);
		}
		return peopleCount();
	}
	function remPass(passType) {
		curPass[passType] = parseInt($('#' + passType + 's').val()) - 1;
		if (curPass[passType] >= 0) {
			if ( passType == 'adult' ) {
				if ( (curPass['teen'] + curPass['baby']) / curPass['adult'] > 3 ) {
					alert('На каждого взрослого должно быть не более трёх детей');
					return peopleCount();
				}
			}
			$('#' + passType + 's').val(curPass[passType]);
			$('#peoples div.' + passType).css('width', curPass[passType] * passWidth[passType]);
			$('#peoples-active').removeClass('peoples-deactive');
		}
		return peopleCount();
	}
	peopleCount();

	$('#peoples-active div').click(function(){
		addPass( $(this).attr('class') );
	});
	$('#peoples div').click(function(){
		remPass( $(this).attr('class') );
	});	


	/* Booking: 2 step */
	jQuery.fn.sidebarCartFix = function() {
		$('#booking #sidebar .sidebar-inner').css('padding-top', $('#booking #cart').offset().top);
	}
	
	$('#ticket-rate li').click(function(){
		$(this).siblings('li').removeClass('active');
		$(this).addClass('active');
		params = $(this).attr('id').split('-');
		$('#airtypeRadio input[name="currency"]').val(params[1].toUpperCase());
		var thisID = $(this).attr('id');
		$('#ticket-dtl td.cost span, #cart .cost span').each(function(){
			if ($(this).attr('class') != thisID) $(this).hide();
			else $(this).show();
		});
	});
	$('#ticket-dtl input[type="radio"]').click(function(){
		$('#cart input.continue').removeAttr('disabled').removeClass('disbld');
		var costSum = $(this).parent().next();
		$('#cart .cost span').each(function(){
			$(this).text( costSum.children('.' + $(this).attr('class')).text() );
		});
// start of modified by programmer
		// запоминает сопутствующие параметры при выборе тарифного плана(radiobutton) на 2 шаге оформления заказа
		var params = $(this).val().split('_');
		$('#airtypeRadio input[name="company"]').val(params[0]);
		$('#airtypeRadio input[name="flight"]').val(params[1]);
		$('#airtypeRadio input[name="tariff"]').val(params[2]);
		$('#airtypeRadio input[name="sum"]').val(costSum.children('.cost-eur').text());
// end of modified by programmer
	});

	/* Booking: 3 step */
	$('#cart').sidebarCartFix();
	if ($('#cal-from').size()) {
		var cals = new Array();
			cals[0] = $('#cal-from');
			cals[1] = $('#cal-to');
		$('#cal-from .days, #cal-to .days').find('.scrollable').css('overflow', 'hidden').jScrollPane()
			.parents('.days').hide().filter('.active').show();
		$('.calendar .years span').click(function(){
			$(this).addClass('active').siblings().removeClass('active');
			var parentBlock = $(this).parents('.calendar').attr('id');
			index = $('span', '#' + parentBlock + ' .years').index($(this));
			$('#' + parentBlock + ' .days').hide().eq(index).show();
		});
// start of modified by programmer
		$('td', cals[0]).not('.lastmonth, .nextmonth, .monthname, .deactive, .err').click(function(){
			$('td', cals[0]).removeClass('active');
			var activeDate = $(this).addClass('active');
			$('#dateFromInput').val(activeDate.attr('title'));
			// ajax запрос для проверки корректности даты для направления "туда"
			data = $.ajax({
				type : 'POST',
				url : '/handlers/checkdate.php?'+Math.random(),
				data : $('.order').serialize()+"&dir=from",
				cache: false,
				async: false
			}).responseText;
			if (data != '') {
				$('.direct-to .flight:gt(0)').remove();
				$('.direct-to .em').remove();
				obData = eval('('+data+')');
				if (obData['type'] == 'success') {
					for (n in obData['params']['company']) {
						$('.direct-to').prepend('<span class="em">Вылет по '+obData['params']['dows'][n]+"</span>");
						$('.direct-to').prepend('<span class="flight">Рейс '+obData['params']['company'][n]+' '+obData['params']['flight'][n]+"</span>");
					}
					$('.direct-to').prepend($('.direct-to .flight:last'))
					$('.direct-to').prepend($('.direct-to h4'))
					$('#dateFrom').removeClass('error required').empty().append(activeDate.attr('title'));
					$('#cart input.finish').removeAttr('disabled').removeClass('disbld');
					// if ($('.order input[name="return"]').val() == '0') {
						// $('#cart input.finish').removeAttr('disabled').removeClass('disbld');
					// }
					// else {
						// if ($('#dateToInput').val() != '') $('#cart input.finish').removeAttr('disabled').removeClass('disbld');
					// }
					idx = $('#cal-from .calendardata td').index($(this));
					idx2 = $('#cal-to .calendardata td').index($('#cal-to .calendardata td.active'));
					$('#cal-to .calendardata td:gt('+(idx-1)+'):lt('+idx2+')').each(function(){
						if ($(this).attr('title')) $(this).removeClass('deactive');
					});
					$('#cal-to .calendardata td:lt('+idx+')').addClass('deactive');
				}
				else {
					$('#dateFrom').addClass('error').empty().html('<strike>'+activeDate.attr('title')+'</strike>'+obData['msg']);
					$('#dateFromInput').attr('value', '');
					$('#cart input.finish').attr('disabled','disabled').addClass('disbld');
				}
			}
			$(this).sidebarCartFix();
		});
		$('td', cals[1]).not('.lastmonth, .nextmonth, .monthname, .deactive, .err').click(function(){
			$('td', cals[1]).removeClass('active');
			var activeDate = $(this).addClass('active');
			$('#dateToInput').val(activeDate.attr('title'));
			// ajax запрос для проверки корректности даты для направления "обратно"
			//alert($('.order').serialize()+"&dir=to");
			data = $.ajax({
				type : 'POST',
				url : '/handlers/checkdate.php?'+Math.random(),
				data : $('.order').serialize()+"&dir=to",
				cache: false,
				async: false
			}).responseText;
			if (data != '') {
				$('.direct-from .flight:gt(0)').remove();
				$('.direct-from .em').remove();
				obData = eval('('+data+')');
				if (obData['type'] == 'success') {
					for (n in obData['params']['company']) {
						$('.direct-from').prepend('<span class="em">Вылет по '+obData['params']['dows'][n]+"</span>");
						$('.direct-from').prepend('<span class="flight">Рейс '+obData['params']['company'][n]+' '+obData['params']['flight'][n]+"</span>");
					}
					$('.direct-from').prepend($('.direct-from .flight:last'))
					$('.direct-from').prepend($('.direct-from h4'))
					$('#dateTo').removeClass('error').empty().append(activeDate.attr('title'));
					if ($('#dateFromInput').val() != '') $('#cart input.finish').removeAttr('disabled').removeClass('disbld');
					idx = $('#cal-to .calendardata td').index($(this));
					idx2 = $('#cal-from .calendardata td').index($('#cal-from .calendardata td.active'));
					idx3 = $('#cal-from .calendardata td').index($('#cal-from .calendardata td[title]').eq(0));
					if (idx2 == -1) {
						idx2 = idx3;
					}
					$('#cal-from .calendardata td:lt('+(idx+1)+'):gt('+idx2+')').each(function(){
						if ($(this).attr('title')) {
							$(this).removeClass('deactive');
						}
					});
					$('#cal-from .calendardata td:gt('+idx+')').addClass('deactive');
				}
				else {
					$('#dateTo').addClass('error').empty().html('<strike>'+activeDate.attr('title')+'</strike>'+obData['msg']);
					$('#dateToInput').attr('value', '');
//					if ($('.order input[name="return"]').val() == '1') $('#cart input.finish').attr('disabled','disabled').addClass('disbld');
				}
			}
			$(this).sidebarCartFix();
		});
// end of modified by programmer
	}

	/* Booking: 4 step */
	jQuery.fn.loginBlock = function() {
		if ($('#auth:checked').length) {
			$('#login-form input:text').removeAttr('disabled');
			$('#login-form input:password').removeAttr('disabled');
			$('#login-form span.input').removeClass('disabled');
		}
		else {
			$('#login-form input:text').attr('disabled', 'disabled');
			$('#login-form input:password').attr('disabled', 'disabled');
			$('#login-form span.input').addClass('disabled');
			$('#login-form .error_small').remove();
		}
	}
	
	if ($('#login-block').size()) $('#login-block').loginBlock();
	$('#login-block span.input-radio').click(function() {
		$(this).loginBlock();
	});

	/* Booking: 5 step */
	if ($('#passengers').size()){
		var passNum = $('div.passenger').length;
		$('div.passenger:first').find('span.dell-icon').hide();
		$('#new_pas').click(function(){
			if (passNum < 10) {
				var newPassEl = $('div.passenger:first', '#passengers').clone().insertBefore('#new_pas');
					if ($.browser.msie && $.browser.version <= '7.0') newPassEl.find('p.small-tip').hide();
					newPassEl.find('.newListSelected').remove();
					newPassEl.find('select').sSelect({ddMaxHeight: '300px'});
					newPassEl.find('input[type="text"]').val('');
					newPassEl.find('span.dell-icon').show();
				passNum++;
				$('div.passenger span.dell-icon').click(function(){
					$(this).parent('div.inner').parent('div.passenger').remove();
					passNum--;
				});
			}
		});
	}
	
	if ($('#time-to-call').children('input').value == "") $('#time-to-call').addClass('disabled').children('input').attr('disabled', true);
	$('#recall-please').click(function(){
		if ($('#recall-please input:checked').length) $('#time-to-call').removeClass('disabled').children('input').attr('disabled', false);
		else $('#time-to-call').addClass('disabled').children('input').attr('disabled', true);
	});
	
	/* Booking: 5 step */
	if (!$('#booking ul.booking-links').size()) $('#booking .title-big h2').css('padding-top', '25px');
	
// start of programmer`s code
	// обработчик клика на кнопке "назад"
	$('.navigate .back').click(function(){
		prev_step = parseInt($('form.order input:hidden[name="step"]').val(), 10);
		prev_step -= 2;
		window.location.href = 'http://'+window.location.hostname+window.location.pathname+'?step='+prev_step;
	});
	// обработчик смены значения селекта визового режима, устанавливает единое значение для всех пассажиров
	$('.passenger .select ul:eq(0) li').click(function() {
		val = $(this).text();
		$('.passenger .select select:gt(0)[name*="visa"]').children('option').removeAttr('selected');
		$('.passenger .select select:gt(0)[name*="visa"]').children('option:contains("'+val+'")').attr('selected', 'selected');
		$('.passenger .select ul:even').children('li').removeClass('hiLite');
		$('.passenger .select ul:even').children('li:contains("'+val+'")').addClass('hiLite');
		$('.passenger .select ul:even').prev('.selectedTxt').text(val);
	});
	// обработчик отправляемых в процессе бронирования форм на заполнение обязательных полей(простейшая проверка на пустое значение)
	$('form.order').submit(function() {
		// проверка формы на 1 шаге оформления заказа
		err = 0;
		where = $(this);
		switch ($(this).children('input[name="step"]').val()) {
			case '5':
				if ($('input:radio[name="account"][checked]', $(this)).val() == '0') return 1;
				where = $('.login-form',$(this));
				break;
			default:
				break;
		}
		$('.error_small', where).remove();
		if ($(this).children('input[name="step"][value="2"]').size() > 0) {
			if (($('select[name="cityfrom"]', $(this)).next('.newListSelected').children('.selectedTxt').text() == 'Откуда...')||($('select[name="cityto"]', $(this)).next('.newListSelected').children('.selectedTxt').text() == 'Куда...') || ($('select[name="cityfrom"]', $(this)).next('.newListSelected').children('.selectedTxt').text() == $('select[name="cityto"]', $(this)).next('.newListSelected').children('.selectedTxt').text())) {
				where.prepend("<div class='error_small'>Вы выбрали одинаковые города.</div>\n");
				return !1;
			}
		}
		err += $('span.required input:text[value=""]', $(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required input:text[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required input:password[value=""]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required input:password[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required select option:selected[value=""]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required select option:selected[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required input:checkbox',$(this)).size() - $('span.required input:checkbox[checked]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
	});
	//форма регистрации нового пользователя
	$('#regform').submit(function() {
		err = 0;
		where = $(this);
		$('.error_small', where).remove();
		err += $('span.required input:text[value=""]', $(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required input:text[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required input:password[value=""]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required input:password[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required select option:selected[value=""]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required select option:selected[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required input:checkbox',$(this)).size() - $('span.required input:checkbox[checked]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
	});
	$('#fbform').submit(function() {
		err = 0;
		where = $(this);
		$('.error_small', where).remove();
		err += $('span.required input:text[value=""]', $(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required input:text[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required input:password[value=""]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required input:password[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required select option:selected[value=""]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			$('span.required select option:selected[value=""]',$(this)).eq(0).focus();
			return !1;
		}
		err += $('span.required input:checkbox',$(this)).size() - $('span.required input:checkbox[checked]',$(this)).size();
		if (err>0) {
			where.prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
	});
	// форма заявки "перезвоните мне"
	$('.recall form').submit(function() {
		$(this).children('.error,.success').remove();
		err = 0;
		$('.required:text', $(this)).each(function() {
			val = $.trim($(this).val());
			if (val == '') {
				$(this).focus();
				err++;
				return !1;
			}
		});
		if (err == 0) {
			$('textarea.required', $(this)).each(function() {
				val = $.trim($(this).val());
				if (val == '') {
					$(this).focus();
					err++;
					return !1;
				}
			});
		}
		if (err>0) {
			$(this).prepend("<div class='error'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
		data = $.ajax({
					async: false,
					cache: false,
					url: "/handlers/handlecall.php?"+Math.random(),
					method: "POST",
					data: $(this).serialize()
				}).responseText;
		obData = eval('('+data+')');
		if (obData['type'] == 'success') {
			$(this).hide();
			$(this).parent().append("<div class='"+obData['type']+"'>"+obData['msg']+"</div>\n");
		}
		else {
			$(this).prepend("<div class='"+obData['type']+"'>"+obData['msg']+"</div>\n");
		}
		return !1;
	});
	// форма "задать вопрос"
	$('.faqbox form').submit(function() {
		$(this).children('.error,.success').remove();
		err = 0;
		$('.required:text', $(this)).each(function() {
			val = $.trim($(this).val());
			if (val == '') {
				$(this).focus();
				err++;
				return !1;
			}
		});
		if (err == 0) {
			$('textarea.required', $(this)).each(function() {
				val = $.trim($(this).val());
				if (val == '') {
					$(this).focus();
					err++;
					return !1;
				}
			});
		}
		if (err>0) {
			$(this).prepend("<div class='error'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
		data = $.ajax({
					async: false,
					cache: false,
					url: "/handlers/handlequestion.php?"+Math.random(),
					method: "POST",
					data: $(this).serialize()
				}).responseText;
		obData = eval('('+data+')');
		if (obData['type'] == 'success') {
			$(this).hide();
			$(this).parent().append("<div class='"+obData['type']+"'>"+obData['msg']+"</div>\n");
		}
		else {
			$(this).prepend("<div class='"+obData['type']+"'>"+obData['msg']+"</div>\n");
		}
		return !1;
	});
	//форма авторизациии на 4 шаге бронирования билета
	$('form#authform').submit(function() {
		$('.error_small,.success',$(this)).remove();
		err = 0;
		$('.required:text, .required:password', $(this)).each(function() {
			val = $.trim($(this).val());
			if (val == '') {
				$(this).focus();
				err++;
				return !1;
			}
		});
		if (err>0) {
			$('.flybox .content', $(this)).prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
	});
	//форма восстановления пароля
	$('form#restoreform').submit(function() {
		$('.error_small,.success',$(this)).remove();
		err = 0;
		$('.required:text, .required:password', $(this)).each(function() {
			val = $.trim($(this).val());
			if (val == '') {
				$(this).focus();
				err++;
				return !1;
			}
		});
		if (err>0) {
			$(this).prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
	});
	//форма быстрой смены пароля на странице профиля
	$('form#chpasswd').submit(function() {
		$('.error_small,.success',$(this)).remove();
		err = 0;
		$('.required:text, .required:password', $(this)).each(function() {
			val = $.trim($(this).val());
			if (val == '') {
				$(this).focus();
				err++;
				return !1;
			}
		});
		if (err>0) {
			$(this).prepend("<div class='error_small'>Не заполнено обязательное поле.</div>\n");
			return !1;
		}
		else {
			data = $.ajax({
						async: false,
						cache: false,
						url: "/handlers/chpasswd.php?"+Math.random(),
						method: "POST",
						data: $(this).serialize()
					}).responseText;
			obData = eval('('+data+')');
			if (obData['type'] == 'success') {
				$(this).prepend("<div class='"+obData['type']+"'>"+obData['msg']+"</div>\n");
			}
			else {
				//if (obData['msg'] == '') document.reload();
				$(this).prepend("<div class='"+obData['type']+"'>"+obData['msg']+"</div>\n");
			}
		}
		return !1;
	});
	
	if (!$('#comeback input:checked').length) $('#inputDateSmall').hide();
	$('#comeback').click(function(){
		if ($('#comeback input:checked').length) $('#inputDateSmall').show();
		else $('#inputDateSmall').hide();
	});
	
	$('#inputDate').DatePicker({
		format:'d.m.Y',
		date: $('#inputDate').val(),
		onChange: function(formated, dates){
		$('#inputDate').val(formated);
		$('#inputDate').DatePickerHide();
	},
		prev: '«',
		next: '»'
	});
	
	$('#inputDateSmall').DatePicker({
		format:'d.m.Y',
		date: $('#inputDateSmall').val(),
		onChange: function(formated, dates){
		$('#inputDateSmall').val(formated);
		$('#inputDateSmall').DatePickerHide();
	},
		prev: '«',
		next: '»',
		onChange: function(formated, dates){
			var dateParts = $('#inputDate').val().split(".");
			//alert(dateParts[2]);
			var dateFrom = Date.parse (dateParts[2] + '/' + dateParts[1]  + '/' + dateParts[0]);
			dates = Date.parse(dates);
			//alert(dates + ' ' + dateFrom)
			if (dates < dateFrom) alert('Дата возврата должна быть позже даты отправки');
			else $('#inputDateSmall').val(formated);
		}

	});
// end of  programmer`s code
});