var lang = {
	allobjects: 'Все санатории ФНПР Профкурорт'
}

// Yandex
function SimpleOverlay (geoPoint, name, link, type, icon, icon_hover) {
    var map, _this = this, offset = new YMaps.Point(-10, -29);
 
    this.onAddToMap = function (pMap, parentContainer) {
        map = pMap;
        getElement().appendTo(parentContainer);
        this.onMapUpdate();
    };

    this.onRemoveFromMap = function () {
        if (getElement().parent()) {
            getElement().remove();
        }
    };

    this.onMapUpdate = function () {
        var position = map.converter.coordinatesToMapPixels(geoPoint).moveBy(offset);
        getElement().css({
            left : position.x,
            top :  position.y
        })
    };

	this.reCenterMap = function(e, elem){
		map.setCenter(geoPoint);
	};

	function getElement() {
		var customIcon = "";
		if(type == 'other' && icon != ""){
			customIcon += " style=\"background: url("+icon+") no-repeat 0 0 transparent;";
			customIcon += "\" data-hover=\""+icon_hover+"\"";
			customIcon += "\" data-idle=\""+icon+"\"";
		}
		var yHTML = "<div class=\"overlay\"><a href=\""+link+"\" class=\"type-"+type+"\"><b class=\"is\""+customIcon+"></b><span class=\"l\">"+name+"</span></a></div>";
		var element = YMaps.jQuery(yHTML);

		element
			.css("z-index", YMaps.ZIndex.Overlay);

		element.bind('mouseover', function(){
			$(this).addClass('hover').css({ zIndex: 100 }).find('span').show();
			var icon = $(this).find('b');
			var customHover = icon.data('hover');
			if(customHover){
				icon.css({ background: 'url('+customHover+') no-repeat 0 0 transparent' });
			}
		}).bind('mouseout', function(){
			$(this).removeClass('hover').css({ zIndex: 10 }).find('span').hide();
			var icon = $(this).find('b');
			var customHover = icon.data('idle');
			if(customHover){
				icon.css({ background: 'url('+customHover+') no-repeat 0 0 transparent' });
			}
		}).bind("click", function(e){
			//if(type == 'facility'){
				location.href = elem.find('a').attr('href');
			//} else {
			//	_this.reCenterMap(e, $(this));
				// do ajax call to show contents
			//}
			return false;
        });

        return (getElement = function () {return element})();
    }
}

function initYandexMap(){
	var ydata = [];
	$.each($('.ydata-container'), function(i){
		var ydataE = eval('['+$(this).text()+']');
		ydata.push(ydataE[0]);
	});
	
	$.each(ydata, function(){
		var map = new YMaps.Map($('#'+this.rel));
		map.setCenter(new YMaps.GeoPoint(this.pos[1], this.pos[0]), this.zoom);
		map.enableScrollZoom();
		map.enableDblClickZoom();
		map.enableDragging();
		map.disableHotKeys();
		map.disableRuler();
		map.addControl(new YMaps.ToolBar());
		map.addControl(new YMaps.Zoom());
		//map.addControl(new YMaps.MiniMap());
		map.addControl(new YMaps.TypeControl());
		map.addControl(new YMaps.ScaleLine());

		// put markers on
		for(var i = 0; i < this.objects.length; i++){
			map.addOverlay(new SimpleOverlay(new YMaps.GeoPoint(this.objects[i].point[1], this.objects[i].point[0]), this.objects[i].name, this.objects[i].link, this.objects[i].type, this.objects[i].icon, this.objects[i].icon_hover));
		}
	});
}

$.fn.rotatorMarkup = function(){
	$(this).each(function(){
		var images = [];
		$(this).find('img').each(function(){
			images.push($(this).attr('src'));
		});
		var container = $('<div class="facility-slider" />');
		var wrapper = $('<div class="facility-slider-wrap" />');
		$.each(images, function(){
			wrapper.append('<div class="facility-slide l" style="background: url('+this+') no-repeat 0 0 transparent;"></div>');
		});
		container.append(wrapper);
		$(this).replaceWith(container);
		container.headSlider({
			wrapper:'.facility-slider-wrap', 
			items:'.facility-slide', 
			autoplay:true, 
			interval:7000, 
			speed: 1000
		});
	});
}

$.fn.headSlider = function(options){
	$.each($(this), function(){
		// set vars
		var wrapper = $(this).find(options.wrapper);
		var items = wrapper.find(options.items);
		var tmID = 0; 
	
		// set init state
		var controls = $('<div class="main-top-controls" />');
		if(items.length > 1){
			for(i=0;i<items.length;i++){
				controls.append('<a href="#" class="is"></a>');
			}
		}
		$(this).append(controls);
		controls = $(this).find('.main-top-controls a');
		items.hide().eq(0).show();
		controls.removeClass('active').live('click', function(){
			if($(this).hasClass('active')){
				return false;
			} else {
				var index = $(this).index();
				items.filter(':visible').fadeOut(options.speed);
				items.eq(index).fadeIn(options.speed);
				controls.removeClass('active').eq(index).addClass('active');
				clearInterval(tmID);
				tmID = setInterval(triggerSlide, options.interval);
			}
			return false;
		}).eq(0).addClass('active');
	
		var triggerSlide = function(){
			var next = controls.filter('.active').next() || controls.eq(0);
			if(next.length){
				next.trigger('click');
			} else {
				controls.eq(0).trigger('click');
			}
		}
	
		if(options.autoplay){
			tmID = setInterval(triggerSlide, options.interval);
		}
	});
};

$.fn.clientsMenu = function(options){
	// set vars
	var wrapper = $(this);
	var items = $(this).find(options.items);

	// set init state
	$(this).find('ul').prepend('<li class="is hover-li" />');
	
	if($('.facility').length){
		$('.facility').hover(function(){
			$(this).stop().animate({ width: '913px' });
			$(this).find('ul').stop().animate({ marginLeft: '80px' }, 300);
			$(this).find('li').each(function(i){
				if(!$(this).hasClass('hover-li')){
					var right = (65 + (177+15)*(5-i-1));
					$(this).stop().animate({ right: right+'px' }, 300, 'swing', function(){
						wrapper.addClass('opened');
					});
				}
			});
		}, function(){
			$(this).stop().animate({ width: '300px' });
			$(this).find('ul').stop().animate({ marginLeft: '32px' }, 300);
			$(this).find('li').each(function(i){
				if(!$(this).hasClass('hover-li')){
					var right = 10 + (5-i-1)*25;
					$(this).stop().animate({ right: right+'px' }, 300, 'swing', function(){
						wrapper.removeClass('opened');
					});
				}
			});
		});
	}
	
	items.hover(function(){
		var item = $(this);
		if(item.parents('.opened').length){
			var position = { top: '9px', left: item.offset().left - wrapper.offset().left - 3 };
			wrapper.find('.hover-li').css(position).show();
		}
		if(item.find('span.cs') && item.parents('.index').length){
			item.find('span.cs').css({ display: 'block', opacity: 0 }).stop().animate({ opacity: 1 });
		}
	}, function(){
		wrapper.find('.hover-li').hide();
		if($(this).find('span.cs') && $(this).parents('.index').length){
			$(this).find('span.cs').stop().animate({ opacity: 0 }, function(){ $(this).hide(); });
		}
	});
};

$.fn.tabMenu = function(options){
	if(!$(this).length) return;
	// set vars
	var menu = $(this);
	var items = $(this).find(options.items);
	var itemwrap = $(this).find(options.itemwrap);
	var contentHolder = $('section');
	var contentHeading = contentHolder.find('h1').eq(0);
	var current = location.hash.replace(/#tab-/, '') || 'main';
	var tabs = contentHolder.find('.single-facility');
	var documentTitle = document.title;

	if(!tabs.filter('#'+current).length){ current = 'main'; }

	// set init state
	tabs.not('#'+current).hide();
	var activeItem = items.filter('[href*="#'+current+'"]');
	var title = activeItem.text();
	activeItem.parents('li').addClass('active');
	if(current.indexOf('all-objects') >= 0 ){
		title = lang.allobjects;
	}
	contentHeading.text(title);
	Cufon.replace('h1');
	document.title = title + ' - ' + documentTitle;
	
	// search for current outside of menu
	if($('a.tab_click[href="#'+current+'"]').length){
		$('a.tab_click[href="#'+current+'"]').not('.overall').hide();
	}
	
	items.click(function(e){
		if($(this).hasClass('outlink')){
			return true;
		}
		e.preventDefault();
		// open/close
		var sub = $(this).next();
		if(sub.hasClass('root-item')){
			itemwrap.removeClass('active');
			if(sub.is(':visible')){
				//alert(1);
			}
			if(sub.is(':visible')){
				$(this).parent().removeClass('active');
				sub.slideUp();
			} else {
				$(this).parent().addClass('active');
				sub.slideDown();
			}
		} else {
			var link = $(this).attr('href').split('#');
			var title = $(this).text();
			var anchor = link[1];
			itemwrap.removeClass('active');
			$(this).parent().addClass('active');
			$(this).parents('.parent').addClass('active');
			if(link[1] != current){
				tabs.filter(':visible').stop().fadeOut(200, function(){
					tabs.filter('#'+anchor).fadeIn();
					if(anchor.indexOf('all-objects') >= 0 ){
						title = lang.allobjects;
					}
					contentHeading.text(title);
					document.title = title + ' - ' + documentTitle;
					location.hash = '#tab-' + anchor;
					current = anchor;
					Cufon.replace('h1');
				});
			}
			if($('a.tab_click[href="#'+link[1]+'"]').not('.overall').length){
				$('a.tab_click[href="#'+link[1]+'"]').not('.overall').fadeOut();
			} else {
				$('a.tab_click').not('.overall').fadeIn();
			}
		}
		return false;
	});
	
	$('.tab_click').live('click', function(e){
		e.preventDefault();
		var item = items.filter('[href*="'+$(this).attr('href')+'"]');
		item.trigger('click');
		$(this).fadeOut();
		return false;
	});
}

$.fn.tabMenuNew = function(options){
	if(!$(this).length) return;
	// set vars
	var menu = $(this);
	var items = $(this).find(options.items);
	var itemwrap = $(this).find(options.itemwrap);
	var contentHolder = $('section');
	var contentHeading = contentHolder.find('h1').eq(0);
	var current = location.hash.replace(/#tab-/, '') || 'main';
	if(current == '#'){ current = 'main'; }
	var tabs = contentHolder.find('.single-facility');
	var documentTitle = document.title;

	if(!tabs.filter('#'+current).length){ current = 'main'; }

	// set init state
	if(location.hash.length > 0){
		var currLoc = location.href.split('#tab-');
		var initItem = items.filter('[href*="'+location.hash.substring(5)+'.html'+'"]').eq(0);
			var visiblePage = $('.single-facility').eq(0);
			visiblePage.fadeOut('slow');
			itemwrap.removeClass('active');
			initItem.parent().addClass('active');
			initItem.parents('.parent').addClass('active');
			$.get(initItem.attr('href'), function(data){
				visiblePage.replaceWith(data).fadeIn('slow');
				Cufon.replace('h1');
				$('.single-facility-panoramas').not('.active-panorama').panorama({
					preview: '.preview-panorama',
					medium: '.medium-panorama',
					slider: '.single-facility-slider-wrapper',
					wrapper: '.medium-panorama-wrapper'
				});
				$('a.facebox').facebox();
			});
	}
	var activeItem = items.filter('[href*="#'+current+'"]');
	var title = activeItem.text();
	activeItem.parents('li').addClass('active');
	if(current.indexOf('all-objects') >= 0 ){
		title = lang.allobjects;
	}
	Cufon.replace('h1');
	
	// search for current outside of menu
	if($('a.tab_click[href="#'+current+'"]').length){
		$('a.tab_click[href="#'+current+'"]').not('.overall').hide();
	}
	
	items.click(function(e){
		if($(this).hasClass('outlink')){
			return true;
		}
		e.preventDefault();
		// open/close
		var sub = $(this).next();
		if(sub.hasClass('root-item')){
			itemwrap.removeClass('active');
			if(sub.is(':visible')){
				//alert(1);
			}
			if(sub.is(':visible')){
				$(this).parent().removeClass('active');
				sub.slideUp();
			} else {
				$(this).parent().addClass('active');
				sub.slideDown();
			}
		} else {
			var path = $(this).attr('href').split('.');
			var pathO = path[0].split('/');
			pathO = pathO[pathO.length-1];
			
			var visiblePage = $('.single-facility').eq(0);
			visiblePage.fadeOut('slow');
			itemwrap.removeClass('active');
			$(this).parent().addClass('active');
			$(this).parents('.parent').addClass('active');
			$.get($(this).attr('href'), function(data){
				visiblePage.replaceWith(data).fadeIn('slow');
				location.hash = 'tab-'+pathO;
				Cufon.replace('h1');
				$('.single-facility-panoramas').not('.active-panorama').panorama({
					preview: '.preview-panorama',
					medium: '.medium-panorama',
					slider: '.single-facility-slider-wrapper',
					wrapper: '.medium-panorama-wrapper'
				});
				$('a.facebox').facebox();
			});
		}
		return false;
	});
	
	$('.tab_click').live('click', function(e){
		e.preventDefault();
		var item = items.filter('[href*="'+$(this).attr('href')+'"]');
		item.trigger('click');
		$(this).fadeOut();
		return false;
	});
}

$.fn.profRadio = function(options){
	$(this).each(function(){
		var id = $(this).attr('id');
		var state = 'profradio-off';
		if($(this).is(':checked')){ state = 'profradio-on'; }
		$(this).css({ position: 'absolute', top:'-1000em' });
		$('label[for="'+$(this).attr('id')+'"]').addClass('profradio').prepend('<span class="is '+state+' l"></span>');	
	});
	
	$('label.profradio').live('click', function(){
		var myFor = $(this).attr('for');
		var input = $('#'+myFor);
		var span = $(this).find('span');
		if(input.not(':checked')){
			$('[name="'+input.attr('name')+'"]').each(function(){
				$('label[for="'+$(this).attr('id')+'"]').find('span').removeClass('profradio-on');
			});
			span.addClass('profradio-on');
			options.callback(input);
		}
	});
}

$.fn.profList = function(options){
	var $options = options;
	$.each($(this), function(){
		var width = $(this).width();
		var height = $(this).height();
		var options = $(this).find('option');
		var container = $('<ul />').attr('rel', $(this).attr('id')).css({ width: width, height: height, 'overflow-y': 'scroll' }).data('select-elem', $(this).attr('id'));
		container.addClass('proflist');
		$.each(options, function(){
			var option = $('<a href="#" />').data('option-value', $(this).attr('value')).text($(this).text());
			if($(this).data('country')){ option.data('country', $(this).data('country')); }
			container.append($('<li />').append(option));
		});
		$(this).hide().after(container);
		if($options.callfirst && $options.callfirst[container.attr('rel')]){
			$options.callfirst[container.attr('rel')]();
		}		
	});

	$('ul.proflist').find('a').live('click', function(){
		var ul = $(this).parents('ul').eq(0);
		var select = ul.data('select-elem');
		var data = $(this).data('option-value');
		if($(this).hasClass('highlight')){
			$(this).removeClass('highlight');
		} else {
			$(this).addClass('highlight');
		}
		var value = [];
		$.each(ul.find('a'), function(i){
			if($(this).hasClass('highlight') || (data == 'all' && $(this).is(':visible'))){
				value.push($(this).data('option-value'));
			}
		});
		if($('#'+select).find('option').eq(0).attr('value') == 'all' && ul.find('li').index($(this).parent()) > 0){
			ul.find('li').eq(0).removeClass('highlight').find('a').removeClass('highlight');
		}
		$('#'+select).val(value);
		if($options.callback && $options.callback[ul.attr('rel')]){
			$options.callback[ul.attr('rel')](value);
		}
		return false;
	});
}

$.fn.panorama = function(options){
	// set vars
	$(this).each(function(){
		var container = $(this);
			container.addClass('active-panorama');
		var containerPage = container.parents('.single-facility');
		var init = true;
		if(!containerPage.is(':visible')){
			init = false;
			containerPage.css({ visibility:'hidden' }).show();
		}
		
		var slider = container.find(options.slider);
		var wrapper = container.find(options.wrapper);
		var mediums = container.find(options.medium);
		var previews = container.find(options.preview);
		var wrapperH = 0;
		
		slider
			.show()
			.append('<a href="#" class="is slider-prev"></a><a href="#" class="is slider-next"></a>');
			
		mediums
			.css({ position: 'absolute' })
			.hide()
			.each(function(){
				if($(this).height() > wrapperH){ wrapperH = $(this).height(); }
			}).eq(0).find('img').load(function(){ $(this).parent().fadeIn(); });

		if(!init){ containerPage.css({ visibility:'visible' }).hide(); }
			
		wrapper
			.height(wrapperH)
			.append('<a href="#" class="is expand"></a>');
			
		previews
			.hide()
			.each(function(){
				$(this).find('img').load(function(){ $(this).parent().fadeIn(); });
			})
			.css({ opacity: '0.5' })
			.hover(function(){ if(!$(this).hasClass('active')){ $(this).stop().animate({ opacity:'1' }); } }, function(){ if(!$(this).hasClass('active')){ $(this).stop().animate({ opacity:'0.5' }); } })
			.click(function(){
				previews.removeClass('active').stop().animate({ opacity:'0.5' });
				$(this).addClass('active').stop().animate({ opacity:'1' });
				mediums.fadeOut().filter('#'+$(this).attr('rel')).fadeIn();
				return false;
			}).eq(0).css({ opacity: '1' }).addClass('active');
				
		$('.slider-prev, .slider-next, .expand', container)
			.live('mouseover', function(){ $(this).addClass('hover'); }).live('mouseout', function(){ $(this).removeClass('hover'); });
			
		$('.medium-panorama, .expand', container).click(function(){
			var image = $('<img rel="'+wrapper.find('a:visible').attr('id')+'" src="'+wrapper.find('a:visible').attr('href')+'" />');
			$(this).after('<span class="image-loading">Секундочку...</span>');
			image.load(function(){
				$('body').append('<div class="black80" style="width:'+$(document).width()+'px; height:'+$(document).height()+'px;"><div id="open-image-wrapper"><a href="#" class="is collapse"></a><a href="#" class="is slider-prev"></a><a href="#" class="is slider-next"></a></div></div>')
				$('#open-image-wrapper').prepend(image.css({ visibility: 'hidden' })).css({ width: ($('#open-image-wrapper img').width()+6)+'px' });
				$('#open-image-wrapper img').css({ visibility: 'visible' });			
				$('span.image-loading').remove();
			});
			return false;
		});
		
		$('.single-facility-slider-wrapper .slider-next', container).live('click', function(){
			var step = $('.single-facility-slider').attr('step') || 0;
			var next = parseInt(step) + parseInt(1);
			if(next <= previews.length-6){
				$('.single-facility-slider').attr('step', next).animate({ left: '-=111px' });
			}
			return false;
		});
	});
	
	//$('.black80').live('click', function(){ $(this).remove(); });
	$('.black80 .collapse').live('click', function(){
		$('.black80').fadeOut(300, function(){ $(this).remove(); });
		return false;
	});
	
	$('.single-facility-slider-wrapper .slider-prev').live('click', function(){
		var step = $('.single-facility-slider').attr('step') || 0;
		var prev = parseInt(step) - parseInt(1);
		if(prev >= 0){
			$('.single-facility-slider').attr('step', prev).animate({ left: '+=111px' });
		}
		return false;
	});
};

$.fn.placeholding = function(){
	$(this).each(function(){
		var title = $(this).attr('title') || false;
		if(!$(this).val()){
			$(this).val(title).addClass('empty-field');
		}
	});
	
	$(this).live('focus', function(){
		var title = $(this).attr('title') || false;
		if($(this).val() == title){
			$(this).val('').removeClass('empty-field');
		}
	}).blur(function(){
		var title = $(this).attr('title') || false;
		if(!$(this).val()){
			$(this).val(title).addClass('empty-field');
		}		
	});
}

$.fn.gfilterplus = function(options){
	// item: '.gitem', trigger: '.gfilter-trigger', secondTrigger: '.gfilter-trigger-second'
	var container = $(this);
	var items 			= container.find(options.item);
	var triggers 		= container.find(options.trigger);
	var secondTriggers 	= container.find(options.secondTrigger);
		
	triggers.click(function(){
		if(this.nodeName == 'INPUT' && $(this).attr('checked')){
			$(this).addClass('ready');
		} else {
			$(this).removeClass('ready');
		}
		filterItems();
	});
	
	secondTriggers.click(function(){
		if($(this).hasClass('ready')){
			$(this).removeClass('ready');
		} else {
			secondTriggers.removeClass('ready');
			$(this).addClass('ready');
		}
		filterItems();
		return false;
	});
	
	function filterItems(){
		items.hide();
		var selector = new Array();
		$.each(triggers, function(i){
			if($(this).hasClass('ready') || (this.nodeName == 'INPUT' && $(this).attr('checked'))){
				var dataValue = $(this).data('value');
				selector.push('.'+dataValue);
			}
		});
		$.each(secondTriggers, function(i){
			if($(this).hasClass('ready') || (this.nodeName == 'INPUT' && $(this).attr('checked'))){
				var dataValue = $(this).data('value');
				$.each(selector, function(i){
					selector[i] = selector[i]+'.'+dataValue;
				});
			}
		});
		for(i=0;i<selector.length;i++){
			items.filter(selector[i]).show();
		}
	}
	
	filterItems();
};

$(document).ready(function(){
	$('.placeholding').placeholding();
	
	$('#index-slider').headSlider({
		wrapper:'#index-slider-wrap', 
		items:'.index-slide', 
		autoplay:true, 
		interval:7000, 
		speed: 1000 
	});

	$('.facility-slider').headSlider({
		wrapper:'.facility-slider-wrap', 
		items:'.facility-slide', 
		autoplay:true, 
		interval:7000, 
		speed: 1000 
	});

	$('#main-top-clients').clientsMenu({ 
		items: 'ul li'
	});
	
	if($('#left-tab-menu-init').length){
		$('.aside-menu').tabMenu({
			items: 'a',
			itemwrap: 'li'
		});
	}
	
	if($('#left-tab-menu-init-new').length){
		$('.aside-menu').tabMenuNew({
			items: 'a',
			itemwrap: 'li'
		});
	}
	
	$('.single-facility-panoramas').panorama({
		preview: '.preview-panorama',
		medium: '.medium-panorama',
		slider: '.single-facility-slider-wrapper',
		wrapper: '.medium-panorama-wrapper'
	});

	$('.auth-popup').toggle(function(){
		$('#main-auth').fadeIn();
		$(this).addClass('current');
		return false;
	}, function(){
		$('#main-auth').fadeOut();
		$(this).removeClass('current');
		return false;
	});
	
	$('#main-auth-form').submit(function(){
		var formData = $(this).serializeArray();
		$.post('/login/index.php', formData, function(data){
			if(data.result == 'logged'){
				location.href = '/geo/all_objects/';
			} else {
				if(data.notifyAuthForm == 'showemail'){
					$('#I_STORE_PASS').empty();
					$('#I_EMAIL').show().find('input').removeAttr('disabled').focus();
				}
				alert(data.message);
			}
		}, 'json');
		return false;
	});
	
	$('.city-badge').live('mouseover', function(){
		$('.city-badge').css({ zIndex: 10 });
		$(this).css({ zIndex: 20 }).find('b').addClass('hover');
		$(this).find('span').fadeIn();
	}).live('mouseout', function(){
		var badge = $(this);
		setTimeout(function(){
			badge.find('b').removeClass('hover');
			badge.find('span').fadeOut();
		}, 300);
	});
	
	$('.city-list a').live('mouseover', function(){
		var blob = $('.'+$(this).attr('rel'));
		$('.city-badge').css({ zIndex: 10 });
		blob.css({ zIndex: 20 }).find('b').addClass('hover');
		blob.find('span').fadeIn();
	}).live('mouseout', function(){
		var blob = $('.'+$(this).attr('rel'));
		blob.find('b').removeClass('hover');
		blob.find('span').fadeOut();
	});

	$('.hoverable').live('mouseover', function(){
		$(this).addClass('hover');
	}).live('mouseout', function(){
		$(this).removeClass('hover');
	});

	$('.add_more').live('click', function(){
		var myTable = $(this).parents('.people_table').eq(0).find('tbody');
		if(myTable.find('tr').length < 13){
			var newTr = myTable.find('tr:last').clone().appendTo(myTable);
			myTable.find('tr:last').find('input').val('');
		} else {
			alert('Максимум 13 человек');
		}
		return false;
	});
	
	var wijmoCalendar = function(){
		var months = 1;
		if($(this).hasClass('two-months')){ months = 2; }
		var changemenus = false;
		if($(this).hasClass('changemenus')){ changemenus = true; }
		var yearRange = '1900:2011';
		if($(this).hasClass('tour_adult_foreign_valid')){ yearRange = 'c-10:c+15'; }
		$(this).datepicker({
			dateFormat: 'dd/mm/yy',
			numberOfMonths: months,
			changeMonth: changemenus, changeYear: changemenus,
			yearRange:yearRange,
			showOtherMonths: true, selectOtherMonths: true,
			onSelect: function(dateText, inst) {
				$(this).removeClass('error');
				if($(this).hasClass('single_kid_birth')){
					var d = new Date();
					var suggestKidAge = (d.getFullYear()*12 + d.getMonth()) - (inst.currentYear*12 + inst.currentMonth);
					if(suggestKidAge < 0){
						alert('Отрицательный возраст? Вы в своем уме?!');
						$(this).val('');
						$(this).parents('tr').find('.single_kid_age').eq(0).val('');
						return false;
					} else {
						if(suggestKidAge >= 12){
							suggestKidAge = (suggestKidAge/12).toFixed(1) + ' лет';
						} else {
							suggestKidAge = suggestKidAge + ' мес.';
						} 
					}
					$(this).parents('tr').find('.single_kid_age').eq(0).val(suggestKidAge); 
				} else if($(this).hasClass('single_adult_birth')){
					var d = new Date();
					var suggestAge = (d.getFullYear()*12 + d.getMonth()) - (inst.currentYear*12 + inst.currentMonth);
					if(Math.floor(suggestAge/12) < 18){
						alert('Вы ввели дату рождения еще несовершеннолетнего человека. Перенесите его в раздел Дети.');
						$(this).val('');
						return false;
					}
				} else if($(this).hasClass('single_book_date')){
					var myVal = $('.single_book_days').val();
					var fromVal = $(this).val();
					if(myVal > 0){
						var timeFrom = new Date(fromVal.replace(/(\d+)\/(\d+)\/(\d+)/, '$2/$1/$3'));
						var dateTo = new Date();
						dateTo.setTime(timeFrom.getTime()+(myVal*86400*1000));
						var putDate = '';
						if(dateTo.getDate() < 10){ putDate += '0' + dateTo.getDate(); } else { putDate += dateTo.getDate(); }
						if(dateTo.getMonth() < 10){ putDate += '/0' + (dateTo.getMonth()+1); } else { putDate += '/' + (dateTo.getMonth()+1); }
						putDate += '/' +dateTo.getFullYear();
						$('.single_book_date_till').val(putDate);						
					}
				} else if($(this).hasClass('single_book_date_till')){
					var myVal = $('.single_book_days').val();
					var toVal = $(this).val();
					if(myVal > 0){
						var timeFrom = new Date(toVal.replace(/(\d+)\/(\d+)\/(\d+)/, '$2/$1/$3'));
						var dateTo = new Date();
						dateTo.setTime(timeFrom.getTime()-(myVal*86400*1000));
						var putDate = '';
						if(dateTo.getDate() < 10){ putDate += '0' + dateTo.getDate(); } else { putDate += dateTo.getDate(); }
						if(dateTo.getMonth() < 10){ putDate += '/0' + (dateTo.getMonth()+1); } else { putDate += '/' + (dateTo.getMonth()+1); }
						putDate += '/' +dateTo.getFullYear();
						$('.single_book_date').val(putDate);
					}
				}
			}
		});
	};
	
	$('.add_more_ex').live('click', function(){
		var myTable = $(this).parents('.people_table').eq(0).find('tbody');
		if(myTable.find('tr.people_container').length < 13){
			var newTr = myTable.find('tr.people_container:last').clone();
			newTr.find('input').val('');
			var newNumber = parseInt(newTr.find('.tourist_number span').text());
			newTr.find('.tourist_number span').html(newNumber+1);
			myTable.find('tr.people_container:last').after(newTr);
			//$('.wijmo_calendar').live('click', wijmoCalendar);
		} else {
			alert('Максимум 13 человек');
		}
		return false;
	});

	$('.wijmo_calendar').live('focus', wijmoCalendar);
	$('.single_book_days').live('change', function(){
		var myVal = parseInt($(this).val());
		var fromVal = $('.single_book_date').val();
		if(myVal > 0 && fromVal.length){
			var timeFrom = new Date(fromVal.replace(/(\d+)\/(\d+)\/(\d+)/, '$2/$1/$3'));
			var dateTo = new Date();
			dateTo.setTime(timeFrom.getTime()+(myVal*86400*1000));
			var putDate = '';
			if(dateTo.getDate() < 10){ putDate += '0' + dateTo.getDate(); } else { putDate += dateTo.getDate(); }
			if(dateTo.getMonth() < 10){ putDate += '/0' + (dateTo.getMonth()+1); } else { putDate += '/' + (dateTo.getMonth()+1); }
			putDate += '/' +dateTo.getFullYear();
			$('.single_book_date_till').val(putDate);
		}
	});
	
	$('#single-facity-book-form, #avia-tickets-form, #agencies-request-form').live('submit', function(){
		// check required
		var requiredEmpty = [];
		$(this).find('.reqfield').each(function(){
			if($(this).val().length <= 0){
				requiredEmpty.push($(this));
			}
		});
		if(requiredEmpty.length > 0){
			$.each(requiredEmpty, function(){
				$(this).addClass('error').attr('title', 'Это обязательное поле').tipsy({ gravity: 'n' });
			});
			$('.book_form_submit').fadeOut(300, function(){
				$('#submit_placeholder').css({ display:'block' }).html('Ошибки при заполнении формы!');
			});
			setTimeout(function(){
				$('#submit_placeholder').fadeOut(300, function(){
					$('.book_form_submit').fadeIn();
				});				
			}, 5000);
			return false;
		}
		
		var formdata = $(this).serializeArray();
		$('.book_form_submit').hide();
		$('#submit_placeholder').css({ display:'block' }).html('Отправка данных...');
		$.post('/receive.php', formdata, function(data){
			if(data.result == 'success'){
				$('.form-body').slideUp();
				$('#response').hide().html(data.message + '<br /><a href="#" class="returnToForm">Вернуться к форме</a>').slideDown();
			} else {
				$('#submit_placeholder').html('Ошибка при отправке данных.<br />Попробуйте еще раз.');
			}
		}, 'json');
		return false;
	});
	$('.returnToForm').live('click', function(){
		location.reload();
		return false;
	});
	$('.error').live('change', function(){
		if($(this).val()){
			$(this).removeClass('error');
		}
	});
	
	$('#foreign-search-form').live('submit', function(){
		var container = $('#search-result');
		var formdata = $(this).serializeArray();
		$.post('/bitrix/templates/profkurort/includes/tours-request.php', formdata, function(data){
			container.html(data);
			$('a.facebox', container).facebox({
				loadingImage: '/assets/images/ajax-loader.gif',
				closeImage: '/assets/images/closelabel-white.png',
				modal: true,
				faceboxHtml: '<div id="facebox" style="display:none;"><div class="popup"><div class="inner_content"><div class="content"><img src="/assets/images/ajax-loader.gif" /></div><a href="#" class="close"><img src="/assets/images/facebox/closelabel.png" title="close" class="close_image" /></a></div></div></div>'	
			});
			$('html, body').animate({ scrollTop: container.offset().top + 'px' }, 'slow');
		});
		return false;
	});
	
	$('#single_facility_prices').live('submit', function(e){
		e.preventDefault();
		if($('#single_prices_date').val() == '' || $('#single_prices_days').val() == ''){
			alert('Необходимо заполнить все поля');
			return false;
		}
		$.post($(this).attr('action'), $(this).serializeArray(), function(data){
			var innerData = data;
			if($.browser.msie){
				innerData = innerShiv(data, false);
			}
			jQuery.facebox(innerData, 'price-table');
			$('th .tipsyme').tipsy({ gravity:'e' });
		});
		return false;
	});
	
	$('.single_facility_overbook').live('submit', function(e){
		e.preventDefault();
		var error = false;
		$(this).find('.single_prices_date').each(function(){
			if($(this).val() == ''){ error = true; }
		});
		if(error){
			alert('Необходимо заполнить все поля');
			return false;
		}
		$.post($(this).attr('action'), $(this).serializeArray(), function(data){
			var innerData = data;
			if($.browser.msie){
				innerData = innerShiv(data, false);
			}
			jQuery.facebox(innerData, 'price-table');
			$('th .tipsyme').tipsy({ gravity:'e' });
		});
		return false;
	});
	
	$('#tour-order-form').live('submit', function(e){
		e.preventDefault();
		var form = $(this);
		var requiredEmpty = [];
		form.find('.reqfield').each(function(){
			if($(this).val().length <= 0){
				requiredEmpty.push($(this));
			}
		});
		if(requiredEmpty.length > 0){
			$.each(requiredEmpty, function(){
				$(this).addClass('error').attr('title', 'Это обязательное поле').tipsy({ gravity: 'n' });
			});
			form.find('.book_form_submit').fadeOut(300, function(){
				$('#submit_placeholder_add').css({ display:'block' }).html('Ошибки при заполнении формы!');
			});
			setTimeout(function(){
				$('#submit_placeholder_add').fadeOut(300, function(){
					form.find('.book_form_submit').fadeIn();
				});				
			}, 5000);
			return false;
		}
		
		var formdata = $(this).serializeArray();
		form.find('.book_form_submit').hide();
		$('#submit_placeholder_add').css({ display:'block' }).html('Отправка данных...');
		$.post('/receive.php', formdata, function(data){
//			console.log(data);
			if(data.result == 'success'){
				form.find('.form-body').slideUp();
				$('#response_add').hide().html(data.message + '<br /><a href="#" class="returnToForm">Вернуться к форме</a>').slideDown();
			} else {
				$('#submit_placeholder').html('Ошибка при отправке данных.<br />Попробуйте еще раз.');
			}
		}, 'json');
		return false;
	});
	
	//$(":input[type='radio']").wijradio();
	$(":input[type='radio']").profRadio({
		'callback': function(input){
			if(input.attr('name') == 'ticket[way]'){
				if(input.val() == 'ticket-one-way'){
					$('#ticket_return_date').css({ visibility: 'hidden' }).removeClass('reqfield');
					$('[for="ticket_return_date"]').css({ visibility: 'hidden' });
				} else {
					$('#ticket_return_date').css({ visibility: 'visible' }).addClass('reqfield');
					$('[for="ticket_return_date"]').css({ visibility: 'visible' });
				}
			}
		}
	});
	$("select.proflist").profList({
		'callfirst': {
			'foreign_regions': function(){
				var ulfr = $('ul[rel="foreign_regions"]');
				ulfr.find('li').not(':first').hide();
			},
			'foreign_objects': function(){
				var ulfr = $('ul[rel="foreign_objects"]');
				ulfr.find('li').not(':first').hide();
			}
		},
		'callback': { 
			'foreign_countries': function(value){
				var ulfr = $('ul[rel="foreign_regions"]');
				var selectfr = $('#foreign_regions');
				var curfr = selectfr.val();
				var newfr = [];
				var ulfo = $('ul[rel="foreign_objects"]');
				var selectfo = $('#foreign_objects');
				var regions = [];
				selectfr.find('option').each(function(i){
					var country = $(this).data('country')+'';
					var region = $(this).attr('value');
					if($.inArray(country, value) < 0){
						if(i > 0){
							ulfr.find('li').eq(i).hide().find('a').removeClass('highlight');
						}
					} else {
						ulfr.find('li').eq(i).show();
						if(curfr != null){
							if($.inArray(region, curfr)){
								newfr.push(region);
							}
						}
						regions.push(region);
					}
				});
				selectfr.val(newfr);
				
				var curfo = selectfo.val();
				var newfo = [];
				selectfo.find('option').each(function(i){
					var option = $(this);
					var region = $(this).data('region')+'';
					var show = false;
					$.each(regions, function(){
						if(this == region){ show = true; }
					});
					if(show){
						ulfo.find('li').eq(i).show();
						if(curfo != null && $.inArray(option.attr('value'), curfo)){
							newfo.push(option.attr('value'));
						}
					} else {
						if(i > 0){
							ulfo.find('li').eq(i).hide().find('a').removeClass('highlight');
						}
					}
				});
				selectfo.val(newfo);
			},
			'foreign_regions': function(value){
				var ulfo = $('ul[rel="foreign_objects"]');
				var selectfo = $('#foreign_objects');
				var curfo = selectfo.val();
				var newfo = [];
				selectfo.find('option').each(function(i){
					var myVal = $(this).attr('value');
					var myId = $(this).data('region')+'';
					if($.inArray(myId, value) > -1){
						ulfo.find('li').eq(i).show();
						if(curfo != null && $.inArray(myVal, curfo) > -1){
							newfo.push(myVal);
						}
					} else {
						if(i > 0){
							ulfo.find('li').eq(i).hide().find('a').removeClass('highlight');
						}
					}
				});
				selectfo.val(newfo);
			} 
		}
	});
	$(":input[type='checkbox']").wijcheckbox();
	$(".wijmo_phone").mask("+7 (999) 999-99-99");
	//$('#wijmo_calendar_tmp').datepicker({ numberOfMonths: 2, changeMonth: true, changeYear: true, showOtherMonths: true, selectOtherMonths: true });
	
	$('.geobox').each(function(){
		$(this).autocomplete({
			source: citys
		}).data('autocomplete')._renderItem = function( ul, item ) {
			var index = $.inArray(item.value, citys);
			var country = coun[$.inArray(cous[index], couid)];
			var newObj = { label: item.label + ', ' + country + ' (' + iatas[index] + ')', value: item.label + ', ' + country + ' (' + iatas[index] + ')' };
			return $( "<li></li>" )
				.data( "item.autocomplete", newObj )
				.append( '<a>' + newObj.label + '</a>' )
				.appendTo( ul );
		};	
	});

	$('#glossary-list-plain').gfilterplus({ item: '.gitem', trigger: '.gfilter-trigger', secondTrigger: '.gfilter-trigger-second' });
	$('#glossary-list-medical').gfilterplus({ item: '.gitem', trigger: '.gfilter-trigger' });
	
	$('a.gexpand').facebox({
		loadingImage: '/assets/images/ajax-loader.gif',
		closeImage: '/assets/images/facebox/closelabel.png',
		faceboxHtml: '<div id="facebox" style="display:none;"><div class="popup"><div class="inner_content"><div class="content"><img src="/assets/images/ajax-loader.gif" /></div><a href="#" class="close"><img src="/assets/images/facebox/closelabel.png" title="close" class="close_image" /></a></div></div></div>'	
	});
	
	$('a.facebox').facebox({
		loadingImage: '/assets/images/ajax-loader.gif',
		closeImage: '/assets/images/facebox/closelabel.png',
		modal: true,
		faceboxHtml: '<div id="facebox" style="display:none;"><div class="popup"><div class="inner_content"><div class="content"><img src="/assets/images/ajax-loader.gif" /></div><a href="#" class="close"><img src="/assets/images/facebox/closelabel.png" title="close" class="close_image" /></a></div></div></div>'	
	});
	
	$('a.close_facebox').live('click', function(e){
		e.preventDefault();
		$(document).trigger('close.facebox');
		return false;
	});
	
	$(document).bind('reveal.facebox', function(){
		var innerData = $('#facebox .content').html();
		if($.browser.msie){
			//innerData = innerShiv(innerData, false);
		}
		$('#facebox .content').html(innerData);
		var glossary = $('#facebox .content').find('.glossary');
		if(glossary.length){
			$('#facebox .content').empty().append(glossary);
		}
		if($('#facebox #agencies-request-form').length || $('#facebox #tour-order-form').length){
			$('#facebox .popup').addClass('no-background');
			$(":input[type='radio']").profRadio();
		}
		$("#facebox :input[type='checkbox']").wijcheckbox();
		Cufon.replace('h1.regionName');
		
		if($('#facebox .content').hasClass('autopopup')){
			$('#facebox .popup').wrapInner('<div class="inner_content" />');	
		}
	});

	$('a.closeauth').click(function(){
		$('.auth-popup').triggerHandler('click');
		return false;
	});

	$('.facility-news .profk-page-navigation a').each(function(){
		$(this).attr('href', $(this).attr('href') + '#tab-news');
	});

	$('.agencies_request_ceo_empowered').change(function(){
		if($(this).val() == 'Прочее'){
			$('#agencies_request_ceo_empowered_4').removeAttr('disabled').show();
		} else {
			$('#agencies_request_ceo_empowered_4').attr('disabled', 'disabled').hide();
		}
	});

	var heading = $('#main-header-facility h1');
	if(heading.length){
		if(heading.height() > 40){
			heading.addClass('twoline');
			Cufon.replace('#main-header-facility h1');
		}
	}
	
	if($('.bggeo').length){
		$('a[href*="all-objects"]').eq(0).parent().css({ borderTop: '1px solid', paddingTop: '10px' });
	}

	$('th .tipsyme').tipsy({ gravity:'e' });

	$('div.all_objects ul.sub-menu > li > a').click(function(e){
		e.preventDefault();
		var sub = $(this).next();
		if(sub.is(':visible')){
			sub.css({ borderTop: 'none', marginTop:'0px' }).slideUp();
		} else {
			sub.css({ borderTop: '1px solid', marginTop: '10px' }).slideDown();
		}
		return false;
	});

	$('.overbook_now').live('click', function(e){
		e.preventDefault();
		var stophour = $(this).data('stop');
		var el = $(this);
		if (confirm('Ваш заказ сохранится в статусе брони '+stophour+' ч. Продолжить?')){
			$.get(el.attr('href'), function(data){
				if($.trim(data) == '1'){
					alert('Успешно сохранено!');
					el.parent().prev().append('<br />'+stophour+':00').wrapInner($('<span class="red" />'));
					el.after('<span class="red">Бронь</span>');
					el.remove();
				}
			});
		}
		return false;
	});
	
	$('.overbuy_now').live('click', function(e){
		e.preventDefault();
		var el = $(this);
		var elTr = el.parents('tr').eq(0);
		var clients = parseInt(elTr.find('.clients').text());
		if(elTr.next().find('.overbuy_form').length > 0){ return false; }
		 
		$.get(el.attr('href'), function(data){
			var clientsLine = '<tr><td colspan="10" style="background-color: #D7F0FF;" class="overbuy_form"><h4 class="tc">Введите гостей</h4><form method="post" action="/assets/soap/retrievers/buyletter.php" class="overbuy_now_form">';
			clientsLine += '<input type="hidden" name="agentcod" value="'+data.agentcod+'" /><input type="hidden" name="letcod" value="'+data.letcod+'" /><input type="hidden" name="usrid" value="'+data.usrid+'" />';
			clientsLine += '<div><span class="l" style="width: 168px;">Фамилия</span><span class="l" style="width: 168px;">Имя</span><span class="l" style="width: 168px;">Отчество</span><span class="l" style="width: 168px;">Примечания</span></div>';
			for(i=0;i<clients;i++){
				var clinam1 = data.overbook[i] ? data.overbook[i]['clinam1'] : '';
				var clinam1 = data.overbook[i] ? data.overbook[i]['clinam1'] : '';
				var clinam2 = data.overbook[i] ? data.overbook[i]['clinam2'] : '';
				var clinam3 = data.overbook[i] ? data.overbook[i]['clinam3'] : '';
				var clinot = data.overbook[i] ? data.overbook[i]['clinot'] : '';
				clientsLine += '<div style="margin-bottom: 5px;">';
				if(data.overbook[i]){
					clientsLine += '<input type="hidden" name="clients['+i+'][clientid]" value="'+data.overbook[i]['clientid']+'" />';
				}
				clientsLine += '<input type="text" name="clients['+i+'][clinam1]" value="'+clinam1+'" style="width: 150px;" />';
				clientsLine += '<input type="text" name="clients['+i+'][clinam2]" value="'+clinam2+'" style="width: 150px;" />';
				clientsLine += '<input type="text" name="clients['+i+'][clinam3]" value="'+clinam3+'" style="width: 150px;" />';
				clientsLine += '<input type="text" name="clients['+i+'][clinot]" value="'+clinot+'" style="width: 239px; margin-right: 0px;" />';
				clientsLine += '</div>';
			}
			clientsLine += '<div><a href="#" class="r overbuy_now_close" style="padding: 7px 4px 0px 10px;">Закрыть</a><input type="submit" value="Сохранить" class="r" /><span class="r overbuy_now_response" style="padding: 7px 4px 0px 10px;"></span></div>';
			clientsLine += '</form></td></tr>';
			elTr.after(clientsLine);
		}, 'json');
		return false;
	});
	
	$('.overbuy_now_form').live('submit', function(e){
		e.preventDefault();
		var form = $(this);
		form.find('.overbuy_now_response').html('Сохранение...');
		$.post(form.attr('action'), form.serializeArray(), function(data){
			form.find('.overbuy_now_response').fadeOut('slow', function(){
				$(this).html(data.message).fadeIn();
			});
			setTimeout(function(){
				form.find('.overbuy_now_response').fadeOut('slow', function(){
					$(this).html('').show();
				});
			}, 3000);
		}, 'json');
		return false;
	});

	$('.overbuy_now_close').live('click', function(e){
		e.preventDefault();
		$(this).parents('tr').eq(0).remove();
		return false;
	});
	
	$('.byletter').live('click', function(){
		var overbook_form = $(this).parent().find('.overbook_form');
		if(overbook_form.is(':visible')){
			overbook_form.hide();
		} else {
			overbook_form.show();
		}
		return false;
	});

	$('profrotate').rotatorMarkup();

	$('#foreign_types input[type="checkbox"]').live('click', function(){
		var ftypes = $('#foreign_types').serializeArray();
		var ftypes_class = '';
		$.each(ftypes, function(){
			ftypes_class += ',.type'+this.value;
		});
		ftypes_class = ftypes_class.substr(1);
		$('.object_line').hide().filter(ftypes_class).show();
	//	console.log(ftypes_class);
	});

	$('a.hrd').toggle(function(e){
		e.preventDefault();
		$('.region-description').hide();
		$(this).html('Развернуть описание регионов');
		return false;
	},function(e){
		e.preventDefault();
		$('.region-description').show();
		$(this).html('Скрыть описание регионов');
		return false;
	});

	$('.tour_order_additional input').live('click', function(){
		var textarea = $('.tour_order_additional textarea.'+$(this).attr('id'));
		if($(this).attr('checked')){
			textarea.show();
		} else {
			textarea.hide();
		}
	});

	// overlay
	$('.black80 .slider-prev').live('click', function(){
		var rel = $('#open-image-wrapper').find('img').attr('rel');
		if($('#'+rel).prev().length){
			$('#open-image-wrapper').fadeOut(300, function(){
				$(this).find('img').remove();
				var image = $('<img rel="'+$('#'+rel).prev().attr('id')+'" src="'+$('#'+rel).prev().attr('href')+'" />');
				$(this).after('<span class="image-loading">Секундочку...</span>');
				image.load(function(){
					$('#open-image-wrapper').prepend(image).fadeIn();
					$('span.image-loading').remove();
				});
			});
		}
		return false;
	});
	$('.black80 .slider-next').live('click', function(e){
		var rel = $('#open-image-wrapper').find('img').attr('rel');
		if($('#'+rel).next().length && !$('#'+rel).next().hasClass('expand')){
			$('#open-image-wrapper').fadeOut(300, function(){
				$(this).find('img').remove();
				var image = $('<img rel="'+$('#'+rel).next().attr('id')+'" src="'+$('#'+rel).next().attr('href')+'" />');
				$(this).after('<span class="image-loading">Секундочку...</span>');
				image.load(function(){
					$('#open-image-wrapper').prepend(image).fadeIn();
					$('span.image-loading').remove();
				});
			});
		}
		return false;
	});

/*	$('.authorize').live('click', function(e){
		e.preventDefault();
		
		return false;
	});*/
	
	initYandexMap();
});
