function places_search_form(_label) {
	$(function() {
		
		$('#name').smart_input($.extend(_def_style, {label: _label}));
		
		$("#placessearch a").click(function(_ev){
			_ev.preventDefault();_ev.stopPropagation();
			
			if ($('#name').val()) {
				$('#error_empty_name').hide();
				
				$('#placessearch input[name=]').remove();
				
				$('#placessearch').submit();
			} else if ($('#error_no_places').length == 0) {
				$('#error_empty_name').show();
			}
		});
		
		
		$("#placessearch input").keydown(function(_ev) {
			
			$('#error_empty_name').hide();
			
			if (_ev.keyCode == '13' && $('#name').val()) {
				$('#placessearch input[name=]').remove();
				$("#placessearch").submit();
			} else if (_ev.keyCode == '13' && $('#error_no_places').length == 0) {
				$('#error_empty_name').show();
			}
		});
	});		
}

;try {document.execCommand("BackgroundImageCache", false, true)} catch(e) {};


var current, _init = false, _stop = function(_ev) {_ev.preventDefault();_ev.stopPropagation();},
_black_color = '#000000',
_grey_color = '#999999',
_lightgrey_color = '#b9b9b9',

_def_style = {
	filledCss: {color: _black_color},
	emptyCss: {color: _grey_color}
},

_light_def_style = {
	filledCss: {color: _black_color},
	emptyCss: {color: _lightgrey_color}
},

_monthLabels = [ 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря' ],
_monthLabelsShort = ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
_monthLabelsShortRp=['янв.','февр.','марта','апр.','мая','июня','июля','авг.','сент.','окт.','нояб.','дек.'];


$.fn.hideOnClckOutside=function(a){var o=$(this),st=function(e){_stop(e)},h=function(){o.hide()},s=function(){o.show()};a.click(function(e){st(e);o.filter(':hidden').length?s():h()});$(document).click(h);return o.click(st)};

function _getNumerableStringRu(_num, _single, _less5, _more5) {

	if (_num < 10 || _num > 20) {

		if ((_num % 10) == 1) {

			return _single;
		} else if ((_num % 10) >= 2 && (_num % 10) <= 4) {

			return _less5;
		} else {

			return _more5;
		}
	} else {

		return _more5;
	}
}

function countrysearch_002(data,text) {
	$(function(){
		$('#country_filter').smart_input({
			label: text['input_label'],
			filledCss: {
				color: _black_color
			},
			emptyCss: {
				color: '#666666'
			}
		});

		$('#country_filter').simple_autocomplete({
			data: data,
			onFound: function () {
				$('#search_error').hide();
			},
			onSearch: function () {
				$('#search_error').hide();
			},
			onNotFound: function () {
				$('#search_error').show();
			},
			onConfirm: function() {
				var url=$('#ui_autocomplete_container .ui-autocomplete-active a').eq(0).attr('href');
				if (url) {
					window.location.href=url;
				}
			},
			onOpen: function() {
				$('#country_sort, #countries').fadeTo(0,0.5);
			},
			onClose: function() {
				$('#country_sort, #countries').fadeTo(0,1);
			},
			min_len:1
		})

		$('#country_filter_execute').click(function(event) {
			if ($('#country_filter').val().length) {
				$('#country_filter').simple_autocomplete('search',$('#country_filter').val());
			}
			$('#country_filter').focus();
			event.stopPropagation();
			event.preventDefault();
		});




	});
}

function countrysearch_001(orders) {
	var current_sort=['popularity','down'];

	var doSort=function(sort_by,direction) {
		var content=$('#countries');
		var prev_letter;

		// tricky way to clone object
		var sort=orders[sort_by][direction];

		$.each(sort, function () {
			var element=$('#country_'+this);
			element.removeClass('last');

			/* do stuff to group items*/
			if (sort_by=='name') {
				var current_letter=$.trim(element.text()).substr(0,1);


				if (prev_letter && prev_letter!=current_letter) {
					element.addClass('last');
				}
				prev_letter=current_letter;
			}

			/* do sort*/
			$(content).prepend(element);
		});
	}

	$('#country_sort a').click(function(event) {
		var new_sort=current_sort;
		if (current_sort[0]==$(this).attr('order')) {
			if (current_sort[1]=='down')  {
				new_sort[1]='up';
			} else {
				new_sort[1]='down';
			}
		} else {
			new_sort[0]=$(this).attr('order');
			new_sort[1]='down';
			$('#country_sort a').attr('class','');
		}


		$(this).attr('class',new_sort[1]);
		doSort(new_sort[0],new_sort[1]);
		current_sort=new_sort;
	})
}

function init_form_mini() {
	
	$(function() {
		
		var _form = $('#tour_search_mini').formMini(),
		
		_today_date = new Date(), _today_date_label = _today_date.getFullYear() + '-' + (_today_date.getMonth() + 1) + '-' + _today_date.getDate();
		_max_date = new Date();
		_max_date.setFullYear(_max_date.getFullYear() + 1);
		_max_date_label = _max_date.getFullYear() + '-' + (_max_date.getMonth() + 1) + '-' + _max_date.getDate();
		
		_widgetCity = $('#link-drop-from').formWidgetCollapsable(),
		_widgetRoSi = $('#link-drop-room-size-ext').formWidgetCollapsable(),
		_widgetCo = $('#link-drop-to').formWidgetCollapsable(),
		_widgetLenBegin = $('#link-drop-len-from').formWidgetCollapsable();
		_widgetAlCa = $('#link-drop-class').formWidgetCollapsable();
		_widgetAlCaB = $('#link-drop-class-better').formWidgetHidden();
		_widgetDaF = $('#link-drop-departure-from').formWidgetCalendar({
			todayDate: _today_date,
			minDateLabel: _today_date,
			maxDateLabel: _max_date_label,
			intermediateClass: '',
			activeDateClass: 'selected_dates',
			disabledClass: 'none'
		}),
		_widgetRe = $('#link-drop-region-mini').formWidgetCollapsable(),
		_widgetCoMini = $('#link-drop-to-mini').formWidgetHidden();
		
		_form.formMini('addWidget', 'city', _widgetCity.formWidgetCollapsable('asPublisher'));
		_form.formMini('addWidget', 'RoSi', _widgetRoSi.formWidgetCollapsable('asPublisher'));
		_form.formMini('addWidget', 'len_begin', _widgetLenBegin.formWidgetCollapsable('asPublisher'));
		_form.formMini('addWidget', 'AlCa', _widgetAlCa.formWidgetCollapsable('asPublisher'));
		_form.formMini('addWidget', 'AlCaB', _widgetAlCaB.formWidgetHidden('asPublisher'));
		_form.formMini('addWidget', 'DaF', _widgetDaF.formWidgetCalendar('asPublisher'));
		
		if (_widgetCoMini.length) {
			_form.formMini('addWidget', 'Re', _widgetRe.formWidgetCollapsable('asPublisher'));
			_form.formMini('addWidget', 'Co', _widgetCoMini.formWidgetHidden('asPublisher'));
		} else {
			_form.formMini('addWidget', 'Co', _widgetCo.formWidgetCollapsable('asPublisher'));
		}
		
		$('#tour_search_mini_submit').click(function(_ev) {
			_stop(_ev);
			_form.formMini('submit');
		});
	})
}

function tourstanok_tour_details() {
	$(function() {
		$('#select-city-dropdown').formWidgetCollapsable({
			getValue: function(_li) {return {phone: _li.attr('phone'), city: _li.attr('city')}}
		});
		var _s = new subscriber({}), _help_block = $('#tour_info_block'), _children = _help_block.children('div');
		_s.addSubscribeHandler($('#select-city-dropdown').formWidgetCollapsable('asPublisher'), 'valueChange', function(_e, _v) {$('#phone-number-span').html(_v.phone);var _block = $('#tourstanok_offices').children('div').hide().filter('[city="'+_v.city+'"]').show();$('#address_to_buy_block').children('div').html(_block.html())});
		
		$('#address_to_buy').click(function(_ev) {
			_stop(_ev);
			var _block = $('#address_to_buy_block', _help_block);
			_block.children('div').html($('#tourstanok_offices').children('div:visible').html());
			if (_children.filter('div:visible').length) {
				_children.hide();
				_block.show();
			} else {
				_children.hide();
				_block.slideDown(500);
			}
		});

		$('#what_are_you_talking_about').click(function(_ev) {
			_stop(_ev);
			if (_children.filter('div:visible').length) {
				_children.hide();
				$('#what_are_you_talking_about_block', _help_block).show();
			} else {
				_children.hide();
				$('#what_are_you_talking_about_block', _help_block).slideDown(500);
			}
		});
		
		$('#how_to_order_tour').click(function(_ev) {
			_stop(_ev);
			if (_children.filter('div:visible').length) {
				_children.hide();
				$('#how_to_order_tour_block', _help_block).show();
			} else {
				_children.hide();
				$('#how_to_order_tour_block', _help_block).slideDown(500);
			}
		});
	});
}



function region_info_001() {
		$('a[rel="region_photo"]').lightBox({
			fixedNavigation: true,
			imageLoading:	 '/images/lightbox-ico-loading.gif',
			imageBtnPrev:	 '/images/lightbox-btn-prev.gif',
			imageBtnNext:	 '/images/lightbox-btn-next.gif',
			imageBtnClose:	 '/images/lightbox-btn-close.gif',
			imageBlank:		 '/images/lightbox-blank.gif',
			txtImage:		 'Фото',
			txtOf:			 'из'
		});
}

function country_info_001() {
	$(document).ready(function(){
		$('#info_navigation a').each(function(){
			if ($(this).attr('href').search('#')) {
				$(this).attr('href',$(this).attr('href').replace('#','#j'));
			}
		});
	});

	$.History.bind(function(hash){
		$('#info_content h2 span').removeClass('active');
		if (hash) {
			$.scrollTo($('#'+hash.slice(1)),{
				offset: -100,
				duration: 800
			});
			$('#'+hash.slice(1)+' span').addClass('active');

			$('#info_navigation a').removeClass('active');
			$('#info_navigation a[href='+window.location.href+']').addClass('active');
		}
	});
}


function country_currency_001(_default_rate) {
	var _link_holder = $('#currency_selector'),
	_rate=_default_rate,
	_last_changed_input='left';


	function convert(_from) {
		if (_from!=undefined) {
			_last_changed_input=_from;
		}
		if (_last_changed_input=='left' && $('#left_currency').val() == parseFloat($('#left_currency').val())) {
			$('#right_currency').val(parseFloat(($('#left_currency').val())/_rate).toFixed(2));
		} else if (_last_changed_input=='right' && $('#right_currency').val()==parseFloat($('#right_currency').val())) {
			$('#left_currency').val(parseFloat(($('#right_currency').val())*_rate).toFixed(2));
		}
	}

	function checkKey(ev) {
		var key;
		if (ev.charCode!=undefined) {
			key=ev.charCode;
		} else {
			key=ev.keyCode;
		}
		var _r=(
			(key >= 48 && key <= 57) ||
			key==46 ||
			key==0 ||
			(key >= 37 && key <=40) ||
			key==8 || key==46|| key==9
			);
		return _r
	}

	$('#left_currency').keypress(function(_ev){
		if(!checkKey(_ev)){
			return false
		};

	});
	$('#right_currency').keypress(function(_ev){
		if(!checkKey(_ev)){
			return false
		};
	});

	$('#left_currency').keyup(function(_ev){
		this.value = this.value.replace(/[^0-9\.]/g,'');
		convert('left');
	});
	$('#right_currency').keyup(function(_ev){
		this.value = this.value.replace(/[^0-9\.]/g,'');
		convert('right');
	});



	_link_holder.find('a.selected').click(function(_ev){
		_link_holder.toggleClass('active');
		_ev.stopPropagation();
	});

	_link_holder.find('ul').click(function(_ev) {
		var _target=$(_ev.target).closest('li');
		if (_target.length) {
			_link_holder.find('a strong').html(_target.closest('li').html());
			_rate=_target.closest('li').attr('rate');
			convert();
		}
	});

	$(document).click(function(_ev) {
		_link_holder.removeClass('active');
	});
}

function title_user_reviews_001(_route){
	var _link_holder = $('#review_country_selector');

	_link_holder.find('a.selected').click(function(_ev){
		_link_holder.toggleClass('active');
		_ev.stopPropagation();
	});

	_link_holder.find('ul').click(function(_ev) {
		var _target=$(_ev.target).closest('li');
		if (_target.length) {
			_link_holder.find('a strong').html(_target.closest('li').html());
			_link_holder.attr('country_id',_target.closest('li').attr('country_id'));
			$('#add_country_review').attr('href',_route+'&country='+_link_holder.attr('country_id'));
		}
	});

	$(document).click(function(_ev) {
		_link_holder.removeClass('active');
	});
}
	
function country_review_001(_param_01) {
	$(function() {	
		$('.country_reviews a.add,#add_review_text').authBind('click', function(_ev) {
			_stop(_ev);
			window.location.href = _param_01;   
		}, 'Чтобы добавить отзыв,<br> войдите на сайт.');
	});	
}

function country_weather_001() {
	$(function() {
		
		var _dropdown = $('.whaters .select');
		
		_dropdown.click(
			function (_ev) {
				_stop(_ev);
				var _el = $(this);

				if (_el.hasClass('active')) {
					_el.removeClass('active');
				} else {
					_dropdown.removeClass('active');
					$(this).addClass("active");
				}
			}
		);
		
		$('li', _dropdown).click(function (_ev) {
			$(this).find('a').click();
		});
		
		$(document).click(function(_ev) {
			if (!$(_ev.target).closest('.whaters .select').length) {
				_dropdown.removeClass('active');
			} 
		});
		
		$('a', _dropdown).click(function(_ev) {
			window.location.href=$(this).attr("href");
		});
	});
}

/** @APPROVED */
function winopen(URL, URL1) {

	window.open(URL,'small_window','height=350,width=500,scrollbars=yes');
}

/** @APPROVED */
function reviews_success_001() {
	$(function() {
		$('.popup_bouncer').mouseenter(function(){
			$('.pop').hide();
			$('#pop_review_' + $(this).attr('id')).show()

		});//.closest('.post2').mouseleave(function() { $(this).children('div.pop').hide() })

		$('.pop').mouseleave(function(){
			$(this).hide();
		});
	});
}

function activeCommentForm(_submit_url,_label_1, _start_text, _pretext, _label_text_area) {

	$(function() {
		/* time picker initialisation*/
		activeCommentFormDatePicker(_pretext, _start_text);
		var _link_holder = $('#when_selector');
		_link_holder.find('a.selected').click(function(_ev){
			_stop(_ev)
			_link_holder.toggleClass('active');
			$('#bad_date').fadeOut();}).end().click(function(_ev) {_ev.preventDefault();_ev.stopPropagation();}
		);

		$(document).click(function() {
			_link_holder.removeClass('active');
		});

		/* comment subject*/
		$('#comment_title').smart_input($.extend(_def_style, {label: _label_1}));
		$('#comment_title').focus(function(){
			$('#bad_subject').fadeOut();
		});


		/* comment body*/
		$('#comment_text').smart_input($.extend(_def_style, {label: _label_text_area}));
		$('#comment_text').focus(function(){
			$('#bad_text').fadeOut();
		});


		/* comment rating*/
		$('#active_comment_form .add_rait').find('a').click(function(_ev){
			_stop(_ev);
			var className = $(this).attr('class'),
				markId = className.replace('r', '');

			$('#bad_mark').fadeOut();

			$('#comment_mark').attr('value', markId);
			$('#active_comment_form i.give_rating').attr('class', 'give_rating select'+markId);
		});

		$('#active_comment_form .add_rait').find('a').hover(function(){
			var className = $(this).attr('class');
			var markId = className.replace('r', '');
			$('#active_comment_form i.give_rating').attr('class', 'give_rating select'+markId);
		},
		function(){
			var markId = $('#comment_mark').attr('value');
			if(markId)	{
				$('#active_comment_form i.give_rating').attr('class', 'give_rating select'+markId);
			}
			else {
				$('#active_comment_form i.give_rating').attr('class', 'give_rating');
			}
		});



		$('#comment_submit').click(function(_ev){
			_ev.preventDefault();
			_ev.stopPropagation();


			if(!$('#tour_year').val() || !$('#tour_month').val()){
				$('#bad_date').fadeIn();
				return false;
			}

			if(!$('#comment_mark').val())	{
				$('#bad_mark').fadeIn();
				return false;
			}

			if(!$('#comment_title').attr('value')) {
				$('#bad_subject').fadeIn();
				return false;
			}

			if(!$('#comment_text').val()){
				$('#bad_text').fadeIn();
				return false;
			}

			$('#active_comment_form').sleep();

			$.ajax({
				data: {
					commentable_model: $('#active_comment_form').attr('commentable_model'),
					commentable_id: $('#active_comment_form').attr('commentable_id'),
					mark: $('#comment_mark').val(),
					text: $('#comment_text').val(),
					title: $('#comment_title').val(),
					tour_month: $('#tour_month').val(),
					tour_year: $('#tour_year').val()
				},
				url: _submit_url ,
				cache: false, 
				type: 'POST',
				success: function(_res) {
					var cont = $('<div>');
					$('#active_comments').prepend($(cont));
					$(cont).hide();
					$(cont).append(_res);
					$(cont).slideDown(function() {
						$.scrollTo($('#active_comments'), 'normal');
					});

					$('#comment_title').val('');
					$('#comment_text').val('');
					$('#comment_mark').val('');
					$('#tour_month').val('');
					$('#tour_year').attr('value', '');
					$('#active_comment_form i.give_rating').attr('class', 'give_rating');
					$('#when_selector a.selected strong').html(_start_text);

					$('#active_comment_form').slideUp();
					$('#add_post').slideDown();
				},
				complete: function () {
					$('#active_comment_form').wakeup();
				},
				error: function() {
					alert('Извините, произошла ошибка, попробуйте позже.');
				}
			});
		});
	});
}

function activeCommentFormLoged_01() {
	
	$(function() {
		$('#add_post').find('a').add($('#top_add_post')).click(function(_ev){
			_stop(_ev);
			$('#add_post').slideUp();
			$('#active_comment_form').slideDown();
			if ($(_ev.target).attr('id')=='top_add_post') {
						$.scrollTo($('#active_comment_form'),500);
			}
		});
	});
}

function activeCommentFormGuest_01(_form_reload_url,_label_1, _start_text, _pretext,_login_hint) {

	$(function() {
		$('#add_post').find('a').add($('#top_add_post')).authBind('click', function(_ev){
			_stop(_ev);
			$('#add_post').sleep();
			$.ajax({
				url: _form_reload_url,
				type: 'GET',
				data: {
					commentable_model: $('#active_comment_form').attr('commentable_model')
				},
				success: function (_res) {
					$('#active_comment_form').html(_res);
					$('#add_post').slideUp();
					$('#active_comment_form').slideDown();
					if ($(_ev.target).attr('id')=='top_add_post') {
						$.scrollTo($('#active_comment_form'),500);
					}
				},
				complete: function () {
					$('#add_post').wakeup();
				}
			});

		},_login_hint);
	});
}

function activeCommentFormDatePicker(_pretext, _start_text) {
	
	$('#review-visit-calendar').month_calendar({
		onSelect: function(_date) {
			var _year = _date.getFullYear(), _month = _date.getMonth() + 1, _day = _date.getDate(),
				_label = _pretext + _monthLabels[_month - 1] + ' ' + _year;

			ys = new String(_year);
			ms = new String(_month);
			
			if ( ms.length == 1 ) ms = "0" + ms;
			
			$('#tour_month').val(ms);
			$('#tour_year').val(ys);

			$(this).closest('div.select').find('a.selected').find('strong').html(_label);

			$('#when_selector').removeClass('active');
		},
		minDate:  '1990-01-01',
		disabledClass: 'none'
	});
}

function activeCommentsDetails_01() {

	$(function() {
		
		$('a[rel="active_photos"]').lightBox({
			fixedNavigation: true,
			imageLoading:	 '/images/lightbox-ico-loading.gif',
			imageBtnPrev:	 '/images/lightbox-btn-prev.gif',
			imageBtnNext:	 '/images/lightbox-btn-next.gif',
			imageBtnClose:	 '/images/lightbox-btn-close.gif',
			imageBlank:		 '/images/lightbox-blank.gif',
			txtImage:		 'Фото',
			txtOf:			 'из'
		});
	});
}

/** @APPROVED */
function formatUrlHash( _h ) {

	return _h.replace(/^.+?#/g,'').replace(/^#?\/?|\/?$/g, '');
}

/** @APPROVED */
function setUrlHash( _hash ) {

	_hash = formatUrlHash(_hash);
	_hash = _hash.replace(/^\/?|\/?(\?)|\/?$/g, '/$1');

	if ( typeof window.location.hash !== 'undefined' ) {
		window.location.hash = _hash;
	} else {
		location.hash = _hash;
	}

	return true;
}

/** @APPROVED */
function getUrlHash() {

	var _h = window.location.hash || location.hash;

	return formatUrlHash(_h);
}

/** @APPROVED */
function contacts_managers_js_01() {

	$(function() {
		$('#managers img').each(function(){
			$(this).mouseenter(function(){
				
				function clean_up(div) {
					$(div).css('z-index', 1);
					var img = $(div).find('img');
					$(img).animate({
						width: '69px',
						height: '69px',
						left: '0',
						top: '0'
					}, 100, function(){
						$(div).remove();						
					});
				}
				
				if($('div.manager_popup').length != 0)
				{
					$('div.manager_popup').each(function(){
						clean_up($(this));
					});
				}

				popup($(this));

				function popup(img_original) {

					var div = $('<div class="manager_popup" style="position: absolute; z-index: 1001;" />');
					var img = $('<img src="'+$(img_original).attr('src')+'" style="border: 2px solid #fff; width: 69px; height: 69px; position: relative; left: 0; top: 0;" />');
	
					$(div).append($(img));
					$(img_original).before($(div));
					
					$(img).animate({
						width: '118px',
						height: '118px',
						left: '-17px',
						top: '-17px'
					}, 150);
	
					$(div).mouseleave(function(){
						clean_up($(this));
					});
				}
			});
		});
	});
}

/** @APPROVED */
function news_filter_001() {
	$(function() {
		var _holder = $('#news-filter');
		_holder.find('a.selected.roll-up').click(function(_ev) {
			_stop(_ev);
			_holder.addClass('active');
		}).end().find('a.selected.roll-back').click(function(_ev) {
			_stop(_ev);
			_holder.removeClass('active');
		}).end().find('ul li a').click(function(_ev) {
			$(this).closest('ul').sleep();
		});
		$(document).click(function(_ev) {
			if (!$(_ev.target).closest('#news-filter').length) {
				_holder.removeClass('active');
			}
		});
	});
}

/** @APPROVED */
function vacancy_filter_001() {
	$(function() {
		var _holder = $('#vacancy-filter');
		_holder.find('a.selected.roll-up').click(function(_ev) {
			_stop(_ev)
			_holder.addClass('active');
		}).end().find('a.selected.roll-back').click(function(_ev) {
			_stop(_ev)
			_holder.removeClass('active');
		}).end().find('ul li a').click(function(_ev) {
			$(this).closest('ul').sleep();
		});
		$(document).click(function(_ev) {
			if (!$(_ev.target).closest('#vacancy-filter').length) {
				_holder.removeClass('active');
			}
		});
	});
}

/** @APPROVED */
function vacancy_form_001(_param_01, _name_label, _email_label, _other_contacts_label, _text_label, _name_error, _email_error, _text_error) {
	$(function() {
		var _form = $('#respondvacancy-form'),
		_name = $('#respondvacancy_name'),
		_email = $('#respondvacancy_email'),
		_additional = $('#respondvacancy_additional'),
		_details = $('#respondvacancy_details'),
		_file = $('#respondvacancy_attachment');
		

		$('#send_resume').click(function(_ev) {
			_stop(_ev);
			_form.fadeIn('slow');
		});
		
		_name.smart_input($.extend(_def_style, {label: _name_label}));
		
		_email.smart_input($.extend(_def_style, {label: _email_label}));
		
		_additional.smart_input($.extend(_def_style, {label: _other_contacts_label}));
		
		_details.smart_input($.extend(_def_style, {label: _text_label}));
		
		$('#respondvacancy-submit-button').click(function(_ev) {
			
			_stop(_ev);
			
			_name.prevAll('p.error').remove();
			if (!_name.val()) {
				$('<p>').addClass('error').text(_name_error).insertBefore(_name).show();
				return;
			}

			_email.prevAll('p.error').remove();
			if (!_email.val()) {
				$('<p>').addClass('error').text(_email_error).insertBefore(_email).show();
				return;
			}

			_file.prevAll('p.error').remove();

			if (!(_details.val() || _file.val())) {
				$('<p>').addClass('error').text(_text_error).insertBefore(_file).show();
				return;
			}

			_form.attr('action', _param_01).sleep().submit();
		});
	});
}

/** @APPROVED */
function contacts_office_success_001() {

	$(function(){
		var _link_holder = $('#office_selector');
		
		_link_holder.find('a.selected').click(function(){_link_holder.toggleClass('active');}).end().click(function(_ev) {_ev.stopPropagation();});
		
		$(document).click(function() {
			_link_holder.removeClass('active');
		})
	});
}

/** @APPROVED */
function team_success_001() {

	$(function(){
		var _link_holder = $('#team_city_selector');
		
		_link_holder.find('a.selected').click(function(){_link_holder.toggleClass('active');}).end().click(function(_ev) {_ev.stopPropagation();});
		
		$(document).click(function() {
			_link_holder.removeClass('active');
		})
	});
}

/** @APPROVED */
function contacts_office_description_success_001() {
	
	$(function(){
		$('a.map_switcher').click(function(){

			if(!$(this).hasClass('map_type_active')) {
				
				$('#o_map .o_map').hide();

				if ($(this).attr('id') == 'map_type_yandex') {
					
					$('#o_map_yandex').show();
				} else if($(this).attr('id') == 'map_type_google') {
					
					$('#o_map_google').show();
				} else {
					
					$('#o_map_schema').show();
				}

				if(!$(this).hasClass('clicked')) {
					
					$(this).addClass('clicked');

					if($(this).attr('id') == 'map_type_yandex') {
						contacts_yandex_map_init();
					} else if($(this).attr('id') == 'map_type_google') {
						
						contacts_google_map_init();
					}
				}

				$('.map_type_active').toggleClass('map_type').toggleClass('map_type_active');

				$(this).toggleClass('map_type').toggleClass('map_type_active');
			}

			return false;
		});
	});
}

/** @APPROVED */
function popular_countries_001() {

	$(function(){
		$('#popular_country_block').find('li').hover(function(){$(this).addClass('hover')}, function(){$(this).removeClass('hover')});
	})
}

/** @APPROVED */
function bhead_js_001(_param_01) {

	$(function() {
		$('#login-link').click(function(_e) {
			_stop(_e);
			
			$(document).modalbox();
			$(document).modalbox('open',{ajax_url:'/user/login/',popup_class: 'popup enter_site'});
		});
		
		$('#register-link').click(function(_ev) {
			_stop(_ev);

			$(document).modalbox();
			$(document).modalbox('open',{ajax_url:'/user/register/',popup_class: 'popup registartion_site'});
		});

		var _dd = $('#drop_down-city-list'), _form = $('#b-smallchoiser-form'), _select_city_link=$('#select-city-link');
		
		_select_city_link.click(function(_ev){
			_stop(_ev);
			$(this).parent().addClass('active');
		});
		
		$('#deselect-city-link').click(function(_ev){
			_stop(_ev);
			_select_city_link.parent().removeClass('active');
		});

		$(document).click(function(_ev){
			if (!$(_ev.target).closest('#drop_down-city-list').length) {
				$('#select-city-link').parent().removeClass('active');
			}
		});
		
		$('#b-smallchoiser-ul li').click(function(_ev) {
			_ev.preventDefault();
			var _c_id = $(this).attr('c');
			$('#b-smallchoiser-input', _form).val(_c_id);

			if (_c_id!==undefined) {
				$('#b-smallchoiser-form').sleep();
				$.ajax({
					url: _param_01,
					type: "GET",
					data: {c: _c_id},
					complete: function() {
						window.location.href = window.location.href;
					},
					success: function() {
						window.location.reload(false);
					},
					error: function() {
						$('#b-smallchoiser').wakeup();
					}
				});
			}
		});

		$(".select li").hover(
			function () {$(this).addClass("hover");},
			function () {$(this).removeClass("hover");}
		);

		var _last=$(".last");
		if (!_last.filter(".current").length) {
			_last.hover(
				function () {$(this).parents(".select").addClass("hover_last");},
				function () {$(this).parents(".select").removeClass("hover_last");}
			);
		}
	});
}

/** @APPROVED */
function review_card_01(_pretext, _monthLabels) {
	$(function() {
		var _dropdowns = $("#review_info .select");

		_dropdowns.click(
			function (_ev) {
				_stop(_ev);
				var _el = $(this);

				if (_el.hasClass('active')) {
					_el.removeClass('active');
				} else {
					_dropdowns.removeClass('active');
					$(this).addClass("active");
				}
			}
		);

		$(document).click(function(_ev) {if (!$(_ev.target).closest('#review_info .select').length) {_dropdowns.removeClass('active')}});

		$('.review_info .select.duration ul, .review_info .select.goal ul, .review_info .select.follower ul').each(function () {
			$(this).find('li').click(function() {

				var _name = $(this).text(), _val = $(this).attr('val'), parent = $(this).closest('div.select');
				
				parent.find('a.selected strong').html(_name).end().find('input:hidden').val(_val).end().removeClass('hover');
			});
		});

		$('#review-visit-calendar').month_calendar({
			onSelect: function(_date) {
				var _year = _date.getFullYear(), _month = _date.getMonth() + 1, _day = _date.getDate(),
					_label = _pretext + _monthLabels[_month - 1] + ' ' + _year;

				ys = new String(_year);
				ms = new String(_month);
				ds = new String(_day);
				if ( ms.length == 1 ) ms = "0" + ms;
				if ( ds.length == 1 ) ds = "0" + ds;

				_value = ys + "-" + ms + "-" + ds;

				$(this).closest('div.select').find('a.selected').find('strong').html(_label);
				$('#event-date').val(_value);

				$('#bag_date').fadeOut();
			},
			currentDate: $('#event-date').val(),
			minDate:  '1990-01-01',
			disabledClass: 'none'
		});
	});
}

/** @APPROVED */
function add_review_form_js(_param_01, _param_02, _dest_label, _service_label, _food_label, _territor_label, _beach_label, _animation_label, _room_label, _price_label) {

	$(function(){
		
		var _avg_element = $('#span_average_rating'),
		_avg_image = $('i', _avg_element.parent()),
		_form = $('#add-review-text-form'),
		_items = $('.marks-mark-input:input', _form);

		var _recalculate_avg = function() {

			var cnt = 0, sum = 0;

			_items.each(function(index, element) {
				var _val = parseInt($(element).val(), 10);
				if (_val > 0) {
					sum = sum + parseInt(_val);
					cnt++;
				}
			});
			var result = cnt ? sum / cnt : 0;

			result = Math.round(result * 100) / 100;

			_avg_element.text(result);

			var mark = Math.floor(result),
			    diff = Math.abs(result - mark),
			    pos = 80 * (5 - mark);

			if (diff < 0.125) {
				pos = pos + 0;
			} else if (diff < 0.375) {
				pos = pos - 20;
			} else if (diff < 0.625) {
				pos = pos - 40;
			} else if (diff < 0.875) {
				pos = pos - 60;
			}

			_avg_image.css('background-position', '0 -'+pos+'px');
		}
		
		$('.give_rating', _form).review_markable({
			averageMark: '#add-review-mark-overall-mark-label',
			onUpdate: _recalculate_avg
		});
		
		var _mark_fields = {
			'#marks-comment-dest': _dest_label,
			'#marks-comment-service': _service_label,
			'#marks-comment-food': _food_label,
			'#marks-comment-territor': _territor_label,
			'#marks-comment-beach': _beach_label,
			'#marks-comment-animation': _animation_label,
			'#marks-comment-room': _room_label,
			'#marks-comment-price': _price_label
		};
		
		$.each(_mark_fields, function(_id, _label) {
			$(_id).smart_input($.extend(_def_style, {label: _label}));
		});
		

		$('#marks-username').click(function() {
			$('#bag_name').fadeOut();
		});

		$('#review_subject, #review_text').click(function() {
			$('#bag_story').fadeOut();
		});
		
		var cleaner = function(btn){
			var li_parent = $(btn).parent();
			$(li_parent).find('input.marks-comment-input').attr('value', '');
			$(li_parent).find('i.give_rating').attr('class', 'give_rating');
			$(li_parent).find('div').css('display', 'none');
		};
		
		$('a.marks-field-clear').click(function(_ev){
			_stop(_ev);
			cleaner($(this));
		});

		var _form_submit = function(_ev) {

			_stop(_ev);

			var _e = $('#add-review-text-form'), _marks_str = '', _pos = -1, _p = 0,
			_photo_ids = [], _video_ids = [],
			_username_input = $('#marks-username'),
			_username = _username_input.val(),
			_review_id = $('#review_text_review').val(),
			_review_subject = $('#review_subject').val(),
			_review_text = $('#review_text').val(),
			_marks = new Array(),
			_avg_mark_element = $('#span_average_rating'),
			_normal_speed = 'normal',
			_offset = {top: -200};

			if($('#manager').length != 1) {
				
				if (_username_input.length && !_username) {
	
					$.scrollTo($('#bag_name_anchor'), _normal_speed,{offset: _offset, onAfter: function() {$('#bag_name').show()}});
	
					return false;
	
				} else if (!$('#event-date').val()) {
	
					$.scrollTo($('#bag_date_anchor'), _normal_speed,{offset: _offset, onAfter: function() {$('#bag_date').show()}});
	
					return false;
	
				} else if (_avg_mark_element.text() == '0') {
	
					$('#help').hide();
					$.scrollTo($('#bag_rait_anchor'), _normal_speed,{offset: _offset, onAfter: function() {$('#bag_rait').show()}});
	
					return false;
	
				} else if (!_review_text && !_review_subject) {
	
					$.scrollTo($('#bag_story_anchor'), _normal_speed,{offset: _offset, onAfter: function() {$('#bag_story').show()}});
	
					return false;
				}
			} else if(!_review_id) {
				
				if (!$('#event-date').val()) {
					
					$.scrollTo($('#bag_date_anchor'), _normal_speed,{offset: _offset, onAfter: function() {$('#bag_date').show()}});
	
					return false;
	
				} else if (!_review_text && !_review_subject) {
					
					$.scrollTo($('#bag_story_anchor'), _normal_speed,{offset: _offset, onAfter: function() {$('#bag_story').show()}});
	
					return false;
				}
			}

			_e.sleep();

			$('#vote_hotel-div li').each(function(selected){
				_marks[++_pos] = new Array();

				$('.marks-review-input, .marks-mark-input, .marks-field-input, .marks-comment-input.ui-smart-input', $(this)).each(function(i, selected){
					var _name = $(this).attr('name'),
						_value = $(this).attr('value');

					_marks[_pos][i] = _name + '=' + _value;
				});
				_marks[_pos] = _marks[_pos].join('&');
			});

			$('.file', $('#upload-user-foto-container')).each(function(_i, _el) {
				var _item_id = $(_el).attr('item_id');
				if (_item_id) {
					_photo_ids.push(_item_id);
				}
			});
			
			$('.file', $('#upload-user-video-container')).each(function(_i, _el) {
				var _item_id = $(_el).attr('item_id');
				if (_item_id) {
					_video_ids.push(_item_id);
				}
			});

			_marks[++_pos] = 'review_text=' + _review_text;
			_marks[++_pos] = 'review_subject=' + _review_subject;

			_marks[++_pos] = 'cotraveler[departure_date]=' + $('#event-date').val();
			_marks[++_pos] = 'cotraveler[followers]=' + $('#event-follower').val();
			_marks[++_pos] = 'cotraveler[goal]=' + $('#event-goal').val();
			_marks[++_pos] = 'cotraveler[id]=' + $('#event-id').val();

			_marks[++_pos] = 'photos=' + _photo_ids.join(',');
			_marks[++_pos] = 'videos=' + _video_ids.join(',');

			_marks[++_pos] = 'username=' + _username;
			
			_marks[++_pos] = 'dog_id=' + $('#review_text_dog_id').val();
			_marks[++_pos] = 'desktop_id=' + $('#review_text_desktop_id').val();

			if (_review_id) {
				_marks[++_pos] = 'review_id=' + _review_id;
			}
			
			_marks_str = _marks.join('&');
			
			$.ajax({
				url: _param_01,
				type: 'POST',
				data: _marks_str,
				success: function(_data) {
					if (_data && _data.error !== undefined) {
						modal_error(_data.error);
						_e.wakeup();
						return false;
					}
					window.location.href = _param_02;
				}
			});

		}

		if ($('.assessment div:visible').length == 0) {
			$('.help').show();
		}

		$('a.save_review_new').click(_form_submit);
	});
}

/** @APPROVED */
function add_review_media_002(_param_01, _param_02, _param_03, _param_04, _param_05, _confirm_unload_page, _confirm_del_img, _defEditFotoTitle, _defEditFotoTags, _authBeforeFotoUpload, _confirm_del_video, _authBeforeVideoUpload, _fotoUploadedLabel, _videoUploadedLabel) {
	
	$(function() {
		
		var _foto_container = $('#upload-user-foto-container'),
		
		_foto_upl = null,
		
		_foto_upl_additional = null,
		
		_add_foto_init_obj = {
			'upload_url': _param_01,
			'file_post_name': 'file',
			'file_types': '*.jpg;*.jpeg;*.JPG;*.JPEG;*.Jpeg;*.Jpg;*.png;*.gif;*.PNG;*.GIF;*.Png;*.Gif',
			'button_placeholder_id': 'add_foto_review',
			'button_image_url': '/images/2.7.4/button/add_review_photo.png',
			'button_width': 121,
			'button_height': 118,
			'post_params': {'extravars': _param_02},
			'button_action': SWFUpload.BUTTON_ACTION.SELECT_FILES,
			'file_queue_limit': 0,
			'upload_start_handler': function(_f) {
				$('#media-waitnig-div').wakeup();
				var _card = $('<div class="file" id="' + _f.id + '"><div></div></div>').insertBefore(_foto_container.children(':last'));
				_foto_container.find('#' + _f.id).children('div').sleep();
				try {
					_initAdditionalFotoUploader();
				} catch (e) {}
				var _foto_count = $('.file', _foto_container).length,
				_label = _fotoUploadedLabel.replace('%n', _foto_count);
				_foto_container.find('h2').eq(0).html(_label);
			},
			'file_dialog_complete_handler': function(_cnt) {
				if (_cnt) {
					$('#media-waitnig-div').sleep();
					$.authJacket(
						function() {
							_foto_upl.refreshCookies();
							_foto_container.show();
							_foto_upl.startUpload();
						},
						undefined,
						_authBeforeFotoUpload
					);
				}
			},
			'upload_success_handler': function(_f, _d) {
				
				var _card = _foto_container.find('#' + _f.id);
				
				new JSONRequest({
					method: 'reloadReviewMedia',
					params: [_param_05, _param_03, 'foto'],
					success: function(_res) {
						try {
							if (_res.item !== undefined) {
								$(_res.item).insertAfter(_card);
								_card.children('div').wakeup().end().remove();
							}
						} catch (e) {}
					}
				});
			},
			'upload_complete_handler': function(_f) {
				
				if (_f) {
					
					this.startUpload();
				}
			}
		},
		
		_foto_upl = init_uploader(_add_foto_init_obj),
		
		_initAdditionalFotoUploader = function() {
			_foto_upl_additional = init_uploader($.extend(_add_foto_init_obj, {
				'button_placeholder_id': 'add_more_photo',
				'button_width': 196,
				'button_height': 249,
				'button_image_url': '/images/2.7.4/button/add_more_review_photo.png',
				'file_dialog_complete_handler': function(_cnt) {
					if (_cnt) {
						$.authJacket(
							function() {
								_foto_upl_additional.refreshCookies();
								_foto_upl_additional.startUpload();
							},
							undefined,
							_authBeforeFotoUpload
						);
					}
				}
			}));
		};
		if(!DetectFlashVer(9, 0, 0))
		{
			$('#add_review_files').css('display', 'none');
			$('#add_review_title').css('margin-left', '0');
			$('#add_review_text').css('margin-left', '0');
		}
		var _foto_container_card_manager_init = {
			'card': 'div.file',
			'img': 'a.wrap_img',
			'remove': 'a.delite',
			'editTitle': 'a.edit_title',
			'editTitleDiv': 'div.edit_title_div',
			'editTitleSave': 'a.edit_title_div_save',
			'defaultEditTitleLabel': _defEditFotoTitle,
			'defaultEditTagsLabel': _defEditFotoTags,
			'editTags': 'a.edit_tags',
			'editTagsDiv': 'div.edit_tags_div',
			'editTagsSave': 'a.edit_tags_div_save',
			'onTitleSave': function(_v, _p) {
				
				new JSONRequest({
					'params': [{
						'item_type': 'foto',
						'item_id': this.attr('item_id'),
						'data_type': 'title',
						'data': _v
					}],
					'method': 'editMediaData',
					'success': function() {}
				});
			
				_p();
			},
			'onTagsSave': function(_v, _p) {
				
				new JSONRequest({
					'params': [{
						'item_type': 'foto',
						'item_id': this.attr('item_id'),
						'data_type': 'tags',
						'data': _v
					}],
					'method': 'editMediaData',
					'success': function() {}
				});
				
				_p();
			},
			'onCardRemove': function(_r) {
				
				if (confirm(_confirm_del_img)) {
					var _item_id = this.attr('item_id');
					JSONRequest({
						params:[_item_id, _param_03],
						method: 'removeUserFoto',
						success: function(_res) {
						}
					});
					_r();
				}
			}
		};
		
		_foto_container.cardManager(_foto_container_card_manager_init);
		
		$(document).keydown(function(_ev) {
			
			if (_ev.keyCode == 27) {
				
				if (_foto_upl) {
					
					_foto_upl.stopUpload();
				}
				
				if (_foto_upl_additional) {

					_foto_upl_additional.stopUpload();
				} 
			}
		});
		
		var _video_container = $('#upload-user-video-container'),
		
		_reloadSlotAndProceed = function() {
			var self = this;
			new JSONRequest({
				method: 'getFarmSlot',
				success: function(_res) {
					if (_res ==  undefined) {return};
					try {
						self.addPostParam('video[server_id]', _res.result['server_id']);
						self.addPostParam('video[user_id]', _res.result['user_id']);
						self.setUploadURL('http://' + _res.result['upload_url'] + '/upload?X-Progress-ID=' + _res.result['slot_id']);
					} catch (e) {
						throw e;
						return;
					}
					_video_container.show();
					self.startUpload();
				}
			});
		},
		
		_add_video_init_obj = {
			'upload_url': '',
			'file_post_name': 'video[file]',
			'file_types': '*.mov;*.avi;*.mpeg;*.flv;*.mp4;*.wmv',
			'button_placeholder_id': 'add_video_review',
			'button_image_url': '/images/2.7.4/button/add_review_video.png',
			'button_width': 121,
			'button_height': 118,
			'post_params': {'video[extra_vars]': _param_02},
			'button_action': SWFUpload.BUTTON_ACTION.SELECT_FILES,
			'file_queue_limit': 0,
			'file_dialog_complete_handler': function(_cnt) {
				if (_cnt) {
					$('#media-waitnig-div').sleep();
					var self = this;
					$.authJacket(function() {
						self.refreshCookies();
						_reloadSlotAndProceed.call(self);
						},
						undefined,
						_authBeforeVideoUpload
					);
				}
			},
			'upload_success_handler': function(_f, _d) {
				
				var _card = _video_container.find('#' + _f.id);
				
				new JSONRequest({
					method: 'reloadReviewMedia',
					params: [_param_05, _param_03, 'single_video'],
					success: function(_res) {
						try {
							if (_res.item !== undefined) {
								$(_res.item).insertAfter(_card);
								_card.remove();
							}
						} catch (e) {throw e}
					}
				});
			},
			'upload_start_handler': function(_f) {
				$('#media-waitnig-div').wakeup();
				var _card = $('<div class="file" id="' + _f.id + '"></div>').insertBefore(_video_container.children(':last'));
				try {
					_initAdditionalVideoUploader();
				} catch (e) {}
				var _video_count = $('.file', _video_container).length,
				_label = _videoUploadedLabel.replace('%n', _video_count);
				_video_container.find('h2').eq(0).html(_label);
			},
			'upload_complete_handler': function(_f) {
				if (_f) {
					_reloadSlotAndProceed.call(this);
				}
			},
			'upload_progress_handler': function(_f, _upld, _ttl) {var _percent = _ttl ? Math.round(100 * _upld / _ttl) : 0;$('#' + _f.id).html('<span style="font-size: 62px; color: #B9B9B9;">' + _percent + '%<span>')}
		},
		
		_video_upl = init_uploader(_add_video_init_obj);
		
		_initAdditionalVideoUploader = function() {
			_video_upl_additional = init_uploader($.extend(_add_video_init_obj, {
				'button_placeholder_id': 'add_more_video',
				'button_width': 196,
				'button_height': 249,
				'button_image_url': '/images/2.7.4/button/add_more_review_video.png'
			}));
		};
		
		_video_container.cardManager($.extend(_foto_container_card_manager_init, {
			'onTitleSave': function(_v, _p) {
			
				new JSONRequest({
					'params': [{
						'item_type': 'video',
						'item_id': this.attr('item_id'),
						'data_type': 'title',
						'data': _v
					}],
					'method': 'editMediaData',
					'success': function() {}
				});
			
				_p();
			},
			'onTagsSave': function(_v, _p) {
				
				new JSONRequest({
					'params': [{
						'item_type': 'video',
						'item_id': this.attr('item_id'),
						'data_type': 'tags',
						'data': _v
					}],
					'method': 'editMediaData',
					'success': function() {}
				});
				
				_p();
			},
			'onCardRemove': function(_r) {
				
				if (confirm(_confirm_del_img)) {
					var _item_id = this.attr('item_id');
					JSONRequest({
						params:[_item_id, _param_03],
						method: 'removeUserVideo',
						success: function(_res) {
						}
					});
					_r();
				}
			}
		}));
	});
};

/** @APPROVED */
function add_review_text_edit_js_01(_short_label, _full_label) {

	$(function() {
		$('#review_subject').smart_input({
			label: _short_label,
			filledCss: {color: _black_color},
			emptyCss: {color: _lightgrey_color}
		});

		$('#review_text').smart_input({
			label: _full_label,
			filledCss: {color: _black_color},
			emptyCss: {color: _lightgrey_color}
		});

		var _form = $('#add-review-text-form');
		_form.silent_submit({
			url: _form.attr('action'),
			container: '#add-review-text-form-holder'
		});
	});
}

/** @APPROVED */
function b_all_photo_js(_param_02, _param_03, _param_05, _auth_first) {
	
	if (_param_05.button_image_url !== undefined) {
	
		var _i = new Image();
		_i.src = _param_05.button_image_url;
	}
	
	$(function(){
		
		var _holder = $('#b-all-photo');
		
		if(DetectFlashVer(9, 0, 0)) {
			var _upl = init_uploader( _param_05 ),
			_onFileDialogComplete = function(_cnt) {
				if (_cnt) {
					$.authJacket(function() {
						_upl.refreshCookies();
						_upl.startUpload();
					},
					undefined,
					_auth_first
					);
				}
				modal_error(_message);
			};
		} else {
			
			replaceFlashUploader(_param_05['upload_url'], 'b-emptybox__profilecomm-addphoto', _param_03, _param_05['post_params']['extravars'], _param_02, 'b-all-photo', _auth_first);
		}
		
		var callback = function() {
			$.ajax({
				url: _param_02,
				cache: false,
				complete: function() {
					_holder.wakeup()
				},
				success: function(_data) {
					_holder.html(_data);
					$('#show_user_foto_only').trigger('click');
				}
			});
		};

		if(DetectFlashVer(9, 0, 0)) {
			
			_upl.uploadError = onUploadPhotoError;
			_upl.uploadSuccess = function(_f, _d){onUploadPhotoSuccess(_f, _d, _param_03, callback)};
			_upl.fileDialogComplete = _onFileDialogComplete;
		}
				
		var _addCommentForm = $('#add_comment');
		
		$('#scroll-to-add-comment').click(function(_ev) {
			_ev.preventDefault();
			$.scrollTo(_addCommentForm, 300);
			_addCommentForm.find('textarea').focus();
		});
		
		$('.switch_photo_view').click(function(_ev) {
			_ev.preventDefault();
			
			
			var _filter = $(".all_photo .select .check").attr('filter');
			
			if ($('.photo_blog_view').length > 0) {
				window.location.href = $(this).attr('href') + '#' + _filter;
			} else {
				window.location.href = $(this).attr('href') + '&filter=' + _filter;
			}
		});
	})
}

/** @APPROVED */
function b_all_photo_js_marks(_thanks_your_mark) {
	
	$(function() {
		var _links = $('.give1, .give2, .give3, .give4, .give5'),
			_state = null, _state_html = null,
			_help = $('.give_help'),
			_i = '<i></i>';
	
		_links.hover(function(_ev) {

			if (_help && _help.is(':visible')) {
				_help.fadeOut();
			}
			
			var _target = $(this), 
				_r = _target.parent().find('.raitings');
			
			_state = _r.attr('class');
			_state_html = _r.html();
			_r.html(_i + _target.attr('mark'));
			_r.removeClass().addClass('raitings r'+_target.attr('mark')+'0');
		},
		function(_ev) {
			var _target = $(this),_r = _target.parent().find('.raitings');
			
			_r.removeClass().addClass(_state);
			_r.html(_state_html);
		});
		
		_links.click(function(_ev) {
			_ev.preventDefault();_ev.stopPropagation();
			
			var _target = $(_ev.target), 
				_r = _target.parent().find('.raitings'),
				_foto_id = _r.parent().attr('foto_id'),
				_mark = _target.attr('mark'),
				_info = _r.siblings().filter('.rating_info');
			
			_state = _r.attr('class');

			_info.html(_thanks_your_mark + _mark);
			_r.html(_i);
	
			new JSONRequest({
				method: 'markFoto',
				params: [ _foto_id, _mark ],
				success: function(_res) {
									
					_r.removeClass().addClass('raitings r'+_res.result.style);
					_r.html(_i + _res.result.rating);	
					
					_state = _r.attr('class');
					_state_html = _r.html();
				}
			});
		});
	});
}

/** @APPROVED */
function b_all_video_js_01(_param_01, _param_03, _weel_done, _unknown_format, _smthng_broken, _evrthng_broken, _please_install_flash) {

	var _holder = $('#multimedia_hotel'),
	_progressbar = null;
	
	if (_param_01.button_image_url !== undefined) {
	
		var _i = new Image();
		_i.src = _param_01.button_image_url;
	}
	
	$(function() {
		if(!DetectFlashVer(9, 0, 0) && _param_01.button_width > 160)
		{
			$('#'+ _param_01.button_placeholder_id).html(_please_install_flash);
		}
		else
		{
			var _upl = init_uploader(_param_01);
			_upl = bind_video_uploader(_upl);

			_upl.uploadComplete = function(_f, _d) {
				$(document).modalbox('close');
//				$(document).modalbox('setCallback',{
//					postClose: modal_success(_well_done)
//				});

			}

			_upl.uploadError = function(_f, _ec, _em) {
		
				if (_em == 406) {
		
					modal_error(_unknown_format);
				} else if (_em == 500) {
		
					modal_error(_smthng_broken);
				} else if (_em == 404) {
		
					modal_error(_evrthng_broken);
				}
			}
		}

	var _addCommentForm = $('#add_comment');
	$('#scroll-to-add-comment').click(function(_ev) {
		_ev.preventDefault();
		$.scrollTo(_addCommentForm, 300);
		_addCommentForm.find('textarea').focus();
		});
	});
}

/** @APPROVED */
function b_photo_js_01(_param_01, _param_02, _param_03, _param_04, holder, img, _auth_first, dimx, dimy) {
	
	var _img = new Image();
	_img.src = _param_04 + '/i/fresh/new_photo_big.png';
	
	if (img) {
		
		_img.src = _param_04 + img;
	}
	
	if (!holder) {
		
		holder = 'b-emptybox__profilecomm-addphoto';
	}
	
	if (!dimx) {
		
		dimx = 144;
	}

	if (!dimy) {
		
		dimy = 115;
	}
	
	$(function() {

		if ($('#'+ holder).length) {
			var _holder = $('#hotel_photo');
			if(DetectFlashVer(9, 0, 0))
			{
				var _upl = init_uploader({
					'upload_url': _param_01,
					'post_params': {'extravars': _param_02},
					'button_image_url': _img.src,
					'button_placeholder_id': holder,
					'button_width': dimx,
					'button_height': dimy
				});
			}
			else
			{
				eval('var ex_vars = ' + _param_02);
				$('#'+holder).replaceWith('<a href="/hotels/'+ ex_vars.hotel_id+'/pics/" style="display:inline-block;"><div style="background-image: url('+img+'); width: '+ dimx +'px; height: '+ dimy +'px; display:inline-block; font-size:1px;" /></a>');
			}

			var _onFileDialogComplete = function(_cnt) {
				if (_cnt) {
						$.authJacket(function() {
							_upl.refreshCookies();
							_upl.startUpload();
						},
						undefined,
						_auth_first
						);
					}
				};

			if(DetectFlashVer(9, 0, 0))
			{
				_upl.uploadError = onUploadPhotoError;
				_upl.uploadSuccess = function(_f, _d){onUploadPhotoSuccess(_f, _d, _param_03)};
				_upl.fileDialogComplete = _onFileDialogComplete;
			}
		}
	})
}

/** @APPROVED */
function replaceFlashUploader(form_action, holder, ajax_url, extravars, callback_url, callback_holder, _auth_first) {
	
	var ajxform = $('<form action="'+ form_action +'" method="post" target="upload_'+ holder +'" enctype="multipart/form-data"></form>'),
	iframe = $('<iframe name="upload_'+ holder +'" src="" style="display: none;"></iframe>'),
	_upload = $('<input name="file" type="file" class="preudo_ajax_upload" />'),
	_sbmt = $('<input id="upload_'+ holder +'" name="sbmt" type="submit" style="display: none;" />'),
	_native = $('<input type="hidden" value="1" name="native" />'),
	ajxurl = $('<input type="hidden" value="'+ ajax_url +'" name="ajxurl" />'),
	extravars = $('<input type=\'hidden\' value=\''+ extravars +'\' name=\'extravars\' />');
	
	if (callback_url != undefined) {
		
		var callback = $('<input type="hidden" value="'+ callback_url +'" name="callback_url" />'),
		callback_holder = $('<input type="hidden" value="'+ callback_holder +'" name="callback_holder" />');
		$(ajxform).append(callback).append(callback_holder);
	}
	
	$('#' + holder).append(ajxform);

	$(ajxform).append(_upload).append(_native).append(ajxurl).append(extravars).append(_sbmt).append(iframe);
	
	$(_upload).change(function(_e) {
		var form = $(this).parent().parent();
		$.authJacket(
			function() {
				$('#upload_'+ holder).trigger("click");
			},
			undefined,
			_auth_first
		);
	});
	
	$(_upload).customFile();
}

/** @APPROVED */
function onUploadPhotoError(_file, _err_code, _err_message)
{
	$(function(){
		if (_err_message === undefined) {
			_err_message = _file;
		}
		
		modal_error('Ошибка при сохранении фото: ' + _err_message);
	});
}

/** @APPROVED */
function onUploadPhotoSuccess(_f, _d, ajxurl, call_back)
{
	$(function(){

	try
	{
		eval('var _resp = ' + _d);
	
		if (typeof(_resp) == 'object')
		{
			if (_resp.foto_id)
			{
				if(_resp.ajxurl != undefined)
				{
					ajxurl = _resp.ajxurl;
				}
				
				$(document).modalbox({});
				
				if(_resp.callback_url != undefined)
				{
					var _holder = $('#'+_resp.callback_holder);
					$(document).modalbox('setCallback',{
						postClose: function() {
							$.ajax({
								url: _resp.callback_url,
								cache: false,
								complete: function() {
									_holder.wakeup()
								},
								success: function(_data) {
									_holder.html(_data);
									$('#show_user_foto_only').trigger('click');
								}
							});
						}
					});
				} else {
					$(document).modalbox('setCallback',{
						postClose: function() {
							window.location.reload(true);
						}});
				}
				
				$(document).modalbox('open',
				{
					ajax_url: ajxurl + _resp.foto_id + '/',
					popup_class: 'add_file_popup'
				});
			}
			else if(_resp.error !== '')
			{
				onUploadPhotoError(_resp.error);
			}
		}
	}
	catch (e)
	{
	}
	});
}

/** @APPROVED */
function b_sideusers_js_01(_param_01, _tmpl) {

	$(function(){

		$('div.right_column ul.tabs li a[name]').click(function(){
			var $me = $(this);
			var target = $me.attr('name');

			var tabs = $('li', $me.parent().parent());
			tabs.removeClass('active');
			$me.parent().addClass('active');

			for (var i=0; i<tabs.length;i++) {
				var tab = $('a', tabs[i]);
				var box = $('#'+tab.attr('name'));

				if (tab.attr('name')==target) {
					box.show();
				} else {
					box.hide();
				}
			}
			return false;
		});

		$('#b-sideusers__ctrls-metoo, #b-bigbtn_gofirst2').authBind('click', function(_ev) {

			_ev.preventDefault();
			_ev.stopPropagation();

			$.modal({
				'loadUrl': _param_01,
				'template': _tmpl,
				placeInCenter: true,
				noScroll: true
			});
		});
	});
}

/** @APPROVED */
function cotraveler_card_edit_js_01(_param_01) {

	$(function(){
		$('#edit-cotraveler-card-form').silent_submit({
			url: _param_01
		});
	});
}

/** @APPROVED */
function cotraveler_card_static_js_01(_param_01, _param_02, _param_03, _param_04) {

	$(function() {
		$('#edit-cotraveler-card-link').click(function(_ev) {
			_ev.preventDefault();
			$.ajax({
				url: _param_01,
				type: 'POST',
				success: function(_r) {
					$('#user-cotraveler-card-holder').html(_r).wakeup();
				},
				beforeSend: function() {
					$('#user-cotraveler-card-holder').sleep();
				}
			});
		});
		$('#edit-review-text-link').attr('hidden_href', _param_02);
		$('#add-review-text-form').attr('action', _param_03);
		$('input.marks-review-input').val(_param_04);
	});
}

/** @APPROVED */
function foto_init_js_js_01(_param_01, _param_02, _param_03) {

	var _FotoFormTokens = _param_01;

	function showComments(_i) {
		var comments_block = _foto_comments.hide().eq(_i);

		if (comments_block.find('#comments_wrapper div').length > 0) {
			comments_block.show();

			$('h2.new-comment').show();
			$('h2.first-comment').hide();
		} else {
			$('h2.new-comment').hide();
			$('h2.first-comment').show();
		}
		initializeCommentForm(_FotoFormTokens, _i);
	}

	function showAuthor(_i) {
		var author_block=_foto_author;
		author_block.children().filter(':visible').hide();
		author_block.children().filter('[pic_id='+_i+']').show();
	}

	$(function() {

		initializeCommentForm(_FotoFormTokens, _param_02);
		_foto_comments = $('div.comments_js');
		_foto_author = $('#photo_author');
		showComments(_param_02);
		showAuthor(_param_02);

		var _img = $('div.wrap_img');
		var _img_object = _img.find('img');
		_img_object.load(function() {_img.fadeTo('slow', 1)});

		$('#fotoslider').fotoslider({
			scrollbar: 'div.scroll',
			owner: _img,
			frame: $('#foto-frame'),
			nextArrow: '#next-button',
			prevArrow: '#prev-button',
			onSelect: function(_i) {
				var _a = this, _hidden_href = _a.attr('hidden_href');
				if (getUrlHash() !== _a.attr('urlhash')) {
					setUrlHash('/');
				}
				showAuthor(_i);
				showComments(_i);_img_object.attr('src', _hidden_href);
				var _next_pic = _a.next('a');
				if (_next_pic.length) {
					var _next_pic_preloader = new Image();
					_next_pic_preloader.src = _next_pic.attr('hidden_href');
				}
			},
			startStep: _param_02
		});
		
		var _transformContent = function(_li) {
			var _count = $('#fotoslider').find('div').children('a').filter(':visible').length;
			$('#foto-counter').html(_count);
		}

		var _show_first_visible_pic = function() {
			var _elements = $('#fotoslider').find('div').children('a:visible');
			var _margin = parseInt(_elements.eq('0').css('margin-right'), 10) + parseInt(_elements.eq('0').css('margin-left'), 10);
			var _width = 775 + 120 * _elements.length// - _margin;
			$('#foto-counter').html(_elements.length);
			$('#sliderback').css('width', _width);
			_elements.eq(0).trigger('click');
			var discrete_step = (_elements.length - 1) ? 1 / (_elements.length - 1)  : null;
			$('div.scroll').scrollbar('updateDiscreteStep', discrete_step);
		}

		$(".all_photo .select").click(
			function (_ev) {
				_stop(_ev);
				var _el = $(this);

				if (_el.hasClass('active')) {
					_el.removeClass('active');
				} else {
					_el.addClass("active");
				}
			}
		);

		$(document).click(function(_ev) {if (!$(_ev.target).closest('.all_photo .select').length) {$(".all_photo .select").removeClass('active')}});

		
		$('#show_all_foto, #show_catalog_foto_only, #show_user_foto_only').click(function(_ev) {
				
			_stop(_ev);
			
			var _name = $(this).text(),
				_id = $(this).attr('id');

			var parent = $(this).closest('div.select');
			parent.find('a.selected').find('strong').html(_name);
			
			$(parent).removeClass('hover');
			$(parent).find('li').removeClass('check');
			$(this).addClass('check');
			
			$(".all_photo .select").removeClass('active');
			
			if (_id == 'show_all_foto') {
				$('#fotoslider').find('a.pic-user, a.pic-catalog').show();
				_transformContent($(this));
				_show_first_visible_pic();
			} else if (_id == 'show_user_foto_only') {
				var _li = $('#fotoslider').find('div').children('a');
				_li.filter('.pic-user').show();
				_li.filter('.pic-catalog').hide();
				_transformContent($(this));
				_show_first_visible_pic();
			} else if (_id == 'show_catalog_foto_only') {
				var _li = $('#fotoslider').find('div').children('a');
				_li.filter('.pic-user').hide();
				_li.filter('.pic-catalog').show();
				_transformContent($(this));
				_show_first_visible_pic();
			}
		});

		var hash = window.location.hash;
		
		if (hash == '#user') {
			$('#show_user_foto_only').click();
		} else if (hash == '#catalog') {
			$('#show_catalog_foto_only').click();
		} else if (hash.indexOf('&comment') > 0) {
			$('#scroll-to-add-comment').click();
			window.location.hash = window.location.hash.replace('&comment', '');
		}

		media_slider_history_bind();
		
		$('.wrap_img img').css('cursor', 'pointer');
		$('.wrap_img img').click(function() {
			$('#next-button').click();
		});
	});
}

/** @APPROVED */
function media_slider_history_bind() {

	$.History.bind(function(_hash) {
		if (_hash && _hash.match(/\w+/)) {
			var _li = $('#fotoslider').find('a[urlhash=' + _hash + ']');
			if (_li.length) {
				if (!_li.filter(':visible').length) {
					$('#show_all_foto').trigger('click');
				}
				_li.trigger('click');
			}
		}
	});
}

function media_listing_history_bind() {
	$.History.bind(function(_hash) {
		if (_hash && _hash.match(/\w+/)) {
			var _el = $('#hash_' + _hash);
			if (_el.length) {
				$.scrollTo(_el, 700);
			}
		}
	})
}

/** @APPROVED */
function b_main_video_js_01(video_url, video_thmb, video_id, youtube_id, _install_flash) {
	$(function() {
		if (DetectFlashVer(9, 0, 0)) {
			if (video_url) {
				var s1 = new SWFObject('/js/mediaplayer/player.swf','player','590','444','9');
				s1.addParam('allowfullscreen','true');
				s1.addParam('allowscriptaccess','always');
				s1.addParam('autostart','false');
				s1.addParam('wmode', 'opaque');
				s1.addVariable('id', 'player');
				s1.addVariable('title', '');
				s1.addVariable('file', video_url);
				s1.addVariable('image', video_thmb);
				s1.addVariable('resizing', 'true');
				s1.write('preview');
	
			} else if (youtube_id) {
				var s1 = new SWFObject('http://www.youtube.com/v/'+youtube_id+'?enablejsapi=1&playerapiid=ytplayer','player','590','444','9');
				s1.addParam('allowfullscreen','true');
				s1.addParam('allowscriptaccess','always');
				s1.addParam('wmode', 'opaque');
				s1.addVariable('id', 'player');
				s1.addVariable('resizing', 'true');
				s1.write('preview');
			}
		}
		else
		{
			$('#preview').html(_install_flash);
		}
	});
}

/** @APPROVED */
function video_init_js_js_01(_param_01, _param_02, _param_03, _param_04, _param_05, _param_06, _install_flash) {

	var _VideoFormTokens = _param_01;
	var _cm = 'postHotelVideoComment';
	var _def_url = _param_02;
	var _def_thmb = _param_03;
	var _def_video_id = _param_04;

	function initializeVideo(_i) {

		var _li = $('#sliderback').find('a'),
		_a = _li.eq(_i),
		_url = _a.attr('video_url'),
		_youtube_id = _a.attr('youtube_id'),
		_thmb = _a.attr('video_thmb'),
		_video_id = _a.attr('video_id');
		$('#preview').fadeTo(0, 600, function() {

			$(this).html('');
			if (!_url && !_youtube_id) {
				_url = _def_url;
				_thmb = _def_thmb;
				_video_id = _def_video_id;
			}
			
			if (DetectFlashVer(9, 0, 0)) {

				if (_url) {
					var s1 = new SWFObject('/js/mediaplayer/player.swf','player','712','444','9');
					s1.addParam('allowfullscreen','true');
					s1.addParam('allowscriptaccess','always');
					s1.addParam('autostart','false');
					s1.addParam('wmode', 'opaque');
					s1.addVariable('id', 'player');
					s1.addVariable('title', '');
					s1.addVariable('file', _url);
					s1.addVariable('image', _thmb);
					s1.addVariable('resizing', 'true');
					s1.write('preview');
	
					$('#download-video-button').show();
				} else if (_youtube_id) {
					var s1 = new SWFObject("http://www.youtube.com/v/"+_youtube_id+"?enablejsapi=1&playerapiid=ytplayer",'player','712','444','9');
					s1.addParam('allowfullscreen','true');
					s1.addParam('allowscriptaccess','always');
					s1.addParam('wmode', 'opaque');
					s1.addVariable('id', 'player');
					s1.addVariable('resizing', 'true');
					s1.write('preview');
	
					$('#download-video-button').hide();
				}
			
			} else {
				
				$('#preview').html(_install_flash);
			}

			$('#download-video-button').attr('href', _url);
			$('#add-to-blog-video-button').unbind('click').click(function(_ev){
				_ev.preventDefault();
				if (!_video_id) {
					_video_id=_youtube_id;
				}
				
				$(document).modalbox();
				$(document).modalbox("open", {
					ajax_url: '/getVideoEmbedTags/' + _video_id + '/',
					popup_class: 'add_file_popup'
				});
			});

			showAuthor(_i);
			showComments(_i);
		});
	}

	function showComments(_i) {
		var comments_block = _foto_comments.hide().eq(_i);

		if (comments_block.find('#comments_wrapper div').length > 0) {
			comments_block.show();

			$('h2.new-comment').show();
			$('h2.first-comment').hide();
		} else {
			$('h2.new-comment').hide();
			$('h2.first-comment').show();
		}
		initializeCommentForm(_VideoFormTokens, _i);
	}

	function showAuthor(_i) {
		var author_block=_video_author;
		author_block.children().filter(':visible').hide();
		author_block.children().filter('[video_id='+_i+']').show();
	}

	var _transformContent = function(_li) {
		var _cl = $('.all_video ul').find('li');
		_cl.each(function(_i, _el)
		{
			$(_el).removeClass('check');
		});
		$(_li).addClass('check');

		var _count = $('#sliderback').children('a').filter(':visible').length;
		$('#foto-counter').html(_count);
		$('.all_video .selected_current').html($(_li).children('a').html());
	}

	var _show_first_visible_pic = function() {
		var _elements = $('#sliderback').children('a:visible');
		var _margin = parseInt(_elements.eq('0').css('margin-right'), 10) + parseInt(_elements.eq('0').css('margin-left'), 10);
		var _width = 775 + 120 * _elements.length// - _margin;
		$('#foto-counter').html(_elements.length);
		$('#sliderback').css('width', _width);
		_elements.eq(0).trigger('click');
		var discrete_step = (_elements.length - 1) ? 1 / (_elements.length - 1)  : null;
		$('div.scroll').scrollbar('updateDiscreteStep', discrete_step);
	}
	
	$(".all_video .select").click(
			function (_ev) {
				_stop(_ev);
				var _el = $(this);

				if (_el.hasClass('active')) {
					_el.removeClass('active');
				} else {
					_el.addClass("active");
				}
			}
		);
	
	$(document).click(function() {
		$(".all_video .select").removeClass('active');
	});

	$('#show_catalog_foto_only').click(function(_ev) {
		_ev.preventDefault();_ev.stopPropagation();
		var _li = $('#sliderback').children('a');
		_li.filter('.video-user').hide();
		_li.filter('.video-catalog').show();
		_transformContent($(this));
		_show_first_visible_pic();
	});

	$('#show_user_foto_only').click(function(_ev) {
		_ev.preventDefault();_ev.stopPropagation();
		var _li = $('#sliderback').children('a');
		_li.filter('.video-user').show();
		_li.filter('.video-catalog').hide();
		_transformContent($(this));
		_show_first_visible_pic();
	});

	$('#show_all_foto').click(function(_ev) {
		_ev.preventDefault();_ev.stopPropagation();
		$('#sliderback').find('a.video-user, a.video-catalog').show();
		_transformContent($(this));
		_show_first_visible_pic();
	});

	$(function() {

		_foto_comments = $('div.comments_js');
		_video_author = $('div#video_author');

		$('#fotoslider').fotoslider({
			scrollbar: 'div.scroll',
			owner: $('#preview'),
			frame: $('#foto-frame'),
			nextArrow: '#next-button',
			prevArrow: '#prev-button',
			onSelect: function(_i) {
				var _a = this, _hidden_href = _a.attr('hidden_href');
				if (getUrlHash() !== _a.attr('urlhash')) {
					setUrlHash('/');
				}
				initializeVideo(_i);
			}
		});

		initializeVideo(_param_06);
		media_slider_history_bind();
	});
}

/** @APPROVED */
function startUpload(_empty_file_alert) {

	if (!$('#file').val())
    {
        alert(_empty_file_alert);
        return false;
    }
    $('.holder-right').sleep();
    var uuid = getUniqId();
    $('#uploadform').attr('action', '/my/uploadImage/?X-Progress-ID=' + uuid);
};

/** @APPROVED */
function getUniqId()
{
    var uuid = "";
    for (i = 0; i < 32; i++)
    {
        uuid += Math.floor(Math.random() * 16).toString(16);
    }
    return uuid;
};

/** @APPROVED */
function personal_images_success_js_01(_param_01, _confirm_remove, _empty_file_alert) {

	var image = undefined;
    var user_id = _param_01;


    $('#uploadform').submit(function() {return startUpload(_empty_file_alert)});


    $(".setactive_button").live('click', function (e) {
	if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) {
        var image_src = undefined;
        $('.holder-left').sleep();
        $(".avatars-gallery-element").children().children().children().filter('input').attr('checked', 0);
        $(this).children().filter('input').attr('checked', 1);
        var image_id = $(this).attr('id').replace(/setactive_/g, '');
        var element = $(this);

        $.ajax({
            type: "POST",
            url: "/my/setActive/",
            data: "user_id="+user_id+"&image="+image_id,
            success: function(msg){
                image_src =$(element).parent().parent().children().children().filter('img').attr('src').replace('/small/', '/medium/');
                $("#big_avatar").attr('src', image_src);
                $('.holder-left').wakeup();
            }
          });
	}
    });

    $(".delete_button").live('click', function (e) {
	if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) {
	if ( !confirm(_confirm_remove) ) {return false;}

        var image_src = undefined;
        $('.holder-right').sleep();
        $(".avatars-gallery-element").children().children().children().filter('input').attr('checked', 0);
        $(this).children().filter('input').attr('checked', 1);
        var image_id = $(this).attr('id').replace(/delete_/g, '');
        image_src = $(this).parent().parent().children().children().filter('img').attr('src').replace('/small/', '/medium/');
        var element = $(this);

        $.ajax({
            type: "POST",
            url: "/my/deleteAvatar/",
            data: "user_id="+user_id+"&image="+image_id,
            success: function(msg){
                $(element).parent().parent().remove();
                image_src = $(element).parent().parent().children().children().filter('img').attr('src').replace('/small/', '/medium/');
                $('.holder-right').wakeup();
            },
            error: function(msg){
                modal_error(msg);
                $('.holder-right').wakeup();
            }
        });


        if ( $("#big_avatar").attr('src') == image_src )
        {
	    $('.holder-left').sleep();
	    var last_image_id = $('.delete_button:last').attr('id').replace(/delete_/g, '');
	    if (last_image_id)
	    {
		$.ajax({
		    type: "POST",
		    url: "/my/setActive/",
		    data: "user_id="+user_id+"&image="+last_image_id,
		    success: function(msg){
			if ($('.avatars-gallery-element-image:last').size())
			{
			    image_src =$('.avatars-gallery-element-image:last').children().filter('img').attr('src').replace('/small/', '/medium/');
			    $("#big_avatar").attr('src', image_src);
			}
			else
			{
			    $("#big_avatar").attr('src', '/img/nofoto.gif');
			}
		    }
		});
	    }
	    {
		$("#big_avatar").attr('src', '/img/nofoto.gif');
		$('.holder-left').wakeup();
	    }
        }

	}

    });
}

/** @APPROVED */
function review_success_js_01() {

	$(function(){

		  $('#btn-submit-addreview').click(function(){
		    $('#frm-addreview').submit();
		    return false;
		  });
	});
}

/** @APPROVED */
function hotel_info_bind_why_love_01()
{
	$('#reason_love').hideOnClckOutside($('#why_love'));
	$('#reason_love').click(function(){return false;});
}

/** @APPROVED */
function hotel_info_01(hotel_id, _yes_text, _no_text, _link, _added, _removed, _auth_first, _add_text, _remove_text) {
	
	$(function() {
		hotel_info_favorite_click(hotel_id, undefined, undefined, undefined, undefined, _yes_text, _no_text, _link, _added, _removed, _auth_first, _add_text, _remove_text);
		//hotel_info_favorite_click(id, holder, clicker, _param_01, already_login, _yes_text, _no_text, _link, _added, _removed, _auth_first, _add_text, _remove_text);
		
		
		hotel_info_bind_why_love_01();
		
		$('#add_vk').click(function (_ev) {
			new JSONRequest({
				method: 'logVkFavorite',
				params: [hotel_id]
			});
		});
	})
}

/** @APPROVED */
function search_params_selected_001() {
	$(function(){
		$('#params_selected').find('a').mouseenter(function() {
			$('#params_selected').addClass('sp_param_clear');
		}).mouseleave(function() {
			$('#params_selected').removeClass('sp_param_clear');
		});
	});
}

/** @APPROVED */
function search_results_sorting_001() {
	$(function(){
		$('#send_love').hideOnClckOutside($('#show_favs'));
		$('#show_favs').click(function(){$('#send_love input').focus().select();});
	});
}

/** @APPROVED */
function search_results_001(_yes_html, _no_html, _yes_text, _no_text, _link, _added, _removed, _auth_first, _add_text, _remove_text) {
	$(function() {
		var already_login = 0;

		$.getJSON(
			'http://' + document.domain + '/ajax/userservice/?cmd=islogged',
		function(data){
				
			if (data.status == 1) {
				already_login = 1;
			}
	
			$('#hotel_search_result .add_hotel_to_favorite').each(function(){
				var clicker = $(this);
				var holder = $(this).parent();
				var id = String($(holder).attr('id')).split('add_hotel_to_favorite_').join('');
	
				var _param_01 = {
						'yes_html': _yes_html,
						'no_html': _no_html
					};
				
				hotel_info_favorite_click(id, holder, clicker, _param_01, already_login, _yes_text, _no_text, _link, _added, _removed, _auth_first, _add_text, _remove_text);
				search_results_001_hover_binder(holder, _add_text, _remove_text);
			});
		});
	});
}

/** @APPROVED */
function hotel_search_index_guest() {
	$(function(){
		$('#login_pliz a').authBind('click', function(_ev) {
			window.location.reload(true);
		});
	});
}

/** @APPROVED */
function hotel_info_favorite_click(hotel_id, holder, clicker, _param_01, already_login, _yes_html, _no_html, _link, _added, _removed, _auth_first, _add_text, _remove_text) {
	
	var _clicker = $('#toggle-favorite-hotel-link'), _holder = $('#favorite_buttons');
	
	if(clicker){_clicker = clicker;}
	if(holder){_holder = holder;}
	
	if (_param_01 !== undefined) {
		
		if(_param_01.yes_html){_yes_html = _param_01.yes_html;}
		if(_param_01.no_html){_no_html = _param_01.no_html;}
	}
	
	$(_clicker).authBind('click', function(_ev) {
		_stop(_ev);
		var _button = $(this).sleep();
		var _block = $(_holder);
		
		if (_param_01 !== undefined)
		{
			if(already_login == 0)
			{
				$('#hotelsearch_settings').append(_link);
			}
		}
		
		new JSONRequest({
			method: 'toggleFavoriteHotel',
			params: [hotel_id],
			success: function(_res) {

				if (_res && _res.active !== undefined) {
					
					if (_res.active == 1) {		 
					_block.html(_yes_html);
					} else {

						_block.html(_no_html);
					}

					if(_param_01)
					{
						var clicker = $(holder).find('a');
						hotel_info_favorite_click(hotel_id, holder, clicker, _param_01, already_login, _yes_html, _no_html, _link, _added, _removed, _auth_first, _add_text, _remove_text);
						search_results_001_hover_binder(holder, _add_text, _remove_text);
						if(!$(clicker).hasClass('yes_l'))
						{
							$(holder).find('span').html(_removed);
							$(holder).find('span').attr('class', 'red_span');
						}
						else
						{
							$(holder).find('span').html(_added);
							$(holder).find('span').attr('class', 'green_span');
						}
					}
					else
					{
						hotel_info_bind_why_love_01();
						hotel_info_favorite_click(hotel_id, holder, clicker, _param_01, already_login, _yes_html, _no_html, _link, _added, _removed, _auth_first, _add_text, _remove_text);
					}
				}
			}
		});
		},
		_auth_first
	);
}

/** @APPROVED */
function search_results_001_hover_binder(holder, _add, _remove)
{
	$(function() {
		$(holder).find('a').hover(function(){
			if(!$(this).hasClass('yes_l'))
			{
				var text = _add;
				var class_name = 'green_span';
			}
			else
			{
				var text = _remove;
				var class_name = 'red_span';
			}

			$(holder).find('span').html(text);
			$(holder).find('span').attr('class', class_name);
		},
		function(){
			$(holder).find('span').html('');
		});
	});
}

/** @APPROVED */
function choose_city_01(_param_01, _param_02) {
	$(function() {

		$('#select_city a.city_link, #select_city a.close').click(function(_e) {

			_e.preventDefault();
			_e.stopPropagation();

			$('#select_city').hide('slow');

			var _element = $(this),
			_obj = null;

			if (_element.filter('.close').length) {
				_obj = {'data': {'c': _param_02}};
			} else {
				_obj = {
					'data': {'c': _element.attr('c')},
					'complete': function() {window.location.href = window.location.href;},
					'success': function() {window.location.reload(false);}
				};
			}

			_obj = $.extend({'url': _param_01, 'type': "GET", 'cache': true}, _obj);

		    $.ajax(_obj);
		});

		$('#select_city a.selected').click(function(_e) {
			_e.preventDefault();
			_e.stopPropagation();
			$('#select_city div.o_fix').show();
		});

		$('#select_city div.drop_down a.selected').click(function(_e) {
			_e.preventDefault();
			_e.stopPropagation();
			$('#select_city div.o_fix').hide();
		});

	});
}

/** @APPROVED */
function review_media_01() {
	$(function() {
		$('div.review_files.fotos a').lightBox({
			fixedNavigation: true,
			imageLoading:	 '/images/lightbox-ico-loading.gif',
			imageBtnPrev:	 '/images/lightbox-btn-prev.gif',
			imageBtnNext:	 '/images/lightbox-btn-next.gif',
			imageBtnClose:	 '/images/lightbox-btn-close.gif',
			imageBlank:		 '/images/lightbox-blank.gif',
			txtImage:		 'Фото',
			txtOf:			 'из'
		});


	});
}

/** @APPROVED */
function change_state(checkbox) {
	var label = $(checkbox).siblings('label');

	if ($(label).attr('class') == 'checked-tag') {
		$(label).removeClass('checked-tag');
	} else {
		$(label).addClass('checked-tag');
	}
}

/** @APPROVED */
function perl_user_article_form(form_action) {

	$('#user-article-form-submit').authBind('click', function(_ev) {
		$('#add-user-article-form').attr('action', form_action);
		$('#add-user-article-form').submit();
	});
}

/** @APPROVED */
function login_form_001(param_01, param_02, _email_label, _passwd_label) {
	$(function() {
		var silent = '';
		if (param_01) {
			silent = '?silent=1';
		}

		$('#email').smart_input($.extend(_light_def_style, {label: _email_label}));
		$('#password').smart_input($.extend(_light_def_style, {label: _passwd_label}));

		$('#ui-modal-login-form').silent_submit({
			url: param_02 + '/' + silent,
			container: $('#modal_container'),
			submitToNowhere: true
		});

		$('#modal-submit-link').click(function(_ev) {
			_stop(_ev);
			$('#ui-modal-login-form').submit();
		});

		$('#modal-register-link').click(function(_ev) {
			_stop(_ev);
			$(document).modalbox('open',{ajax_url:'/user/register/'+ silent, popup_class: 'popup registartion_site'});
		});

		$('#modal-recovery-link').click(function(_ev) {
			_stop(_ev);
			$(document).modalbox('open',{ajax_url:'/user/recovery/'+ silent, popup_class: 'popup enter_site remember_pass'});
		});
	});
}

/** @APPROVED */
function register_form_001(param_01, _name_label, _email_label, _passwd_label, _duplicate_passwd_label) {

	$(function() {
		var silent = '';
		if (param_01) {
			silent = '?silent=1';
		}

		$('#ui-modal-name').smart_input($.extend(_light_def_style, {label: _name_label}));
		$('#ui-modal-email').smart_input($.extend(_light_def_style, {label: _email_label}));
		$('#ui-modal-password').smart_input($.extend(_light_def_style, {label: _passwd_label}));
		$('#ui-modal-re-password').smart_input($.extend(_light_def_style, {label: _duplicate_passwd_label}));

		$('#ui-modal-register-form').silent_submit({
			url: '/user/register/'+ silent,
			container: '#modal_container'
		});

		$('#modal-submit-link').click(function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();
			$('#ui-modal-register-form').submit();
		});

		$('#modal-login-link').click(function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();
			$(document).modalbox('open',{ajax_url:'/user/login/'+ silent, popup_class: "popup enter_site"});
		});

		$('#modal-rcap-link').click(function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();
			$('#imgcap').attr('src',"/captcha?"+Math.random()+"&amp;reload=1");
		});

		if ($('#ui-modal-email').val()) {
			$('#ui-modal-password').smart_input('focus');
		}
	});
}

/** @APPROVED */
function recovery_form_001(param_01, _label) {

	$(function() {
		var silent = '';
		if (param_01) {
			silent = '?silent=1';
		}
		$('#ui-modal-recovery').smart_input($.extend(_light_def_style, {label: _label}));

		$('#ui-modal-recovery-form').silent_submit({
			url: '/user/recovery/',
			container: '#modal_container'
		});

		$('#modal-submit-link').click(function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();
			$('#ui-modal-recovery-form').submit();
		});

		$('#modal-register-link').click(function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();
			$(document).modalbox('open', {ajax_url:'/user/register/', popup_class: "popup registration_site"});
		});

	});
}

/** @APPROVED */
function js_iframe_001() {

	$.modal('close', {
	      complete: function() {

  	          if (typeof(expecting_callback) == 'function') {
	              expecting_callback();
	          }
	      }
	  });
}

/** @APPROVED  */
function remove_review(element, review_id, _label, url) {

	if (!confirm(_label)) {
		return;
	}
	
	JSONRequest({
		params:[review_id],
		method: 'deleteHotelReview',
		success: function(_res) {
			
			if (url) {
				
				window.location.href = url;
			} else {
				
				$(element).closest('div.box').slideUp();
			}
		}
	});

	return false;
}

/** @APPROVED */
function remove_comment(element, comment_id, _confirm, _error, url) {

	var answer = confirm(_confirm);
	
	if (!answer){
		return;
	}


	if (url) {
		window.location.href = url;
	} else {
		$(element).parent().parent().slideUp('normal');
	}

	JSONRequest({
		params:[comment_id],
		method: 'deleteComment',
		success: function(_res) {
			if (!_res.success) {
				alert(_error);
			}
		}
	});

	return false;
}

/** @APPROVED */
function remove_photo(element,foto_id,index, _err) {
	var _hash='';
	var _sleepy_element = $(element).closest('div.active');
	_sleepy_element.sleep();

	JSONRequest({
		params:[foto_id],
		method: 'deleteHotelUserFoto',
		success: function(_res) {
			if (!_res.success) {
				_sleepy_element.wakeup();
				alert(_err + _res.error + '(' + _res.error_code + ')' );
				return;
			}
		}
	});

	var _pr=$('a.pic-user').filter('[index='+index+']');
	_pr.fadeTo('fast',0.10);
	_pr.attr('hidden_href','/i/fresh/tourstanok/no-photo.png');
	$('#photo_author').find('[pic_id='+index+']').remove();

    var _prev_pr=_pr.next('a.pic-user');
	if (!_prev_pr.length) {
		_prev_pr=_pr.prev('a.pic-user');
	}

	if (_prev_pr.length) {
		_hash=_prev_pr.attr('urlhash');
	}

	var _url=String(window.location).replace(/#.*$/,'#'+_hash+'/');
	_sleepy_element.wakeup();
	window.location = _url;
	return false;
}

/** @APPROVED */
function remove_photo_list(element, foto_id, _err) {
	var _hash='';
	var _sleepy_element = $(element).closest('tr');
	_sleepy_element.sleep();
	
	JSONRequest({
		params:[foto_id],
		method: 'deleteHotelUserFoto',
		success: function(_res) {
			if (!_res.success) {
				_sleepy_element.wakeup();
				alert(_err + _res.error + '(' + _res.error_code + ')' );
				return;
			}
		}
	});

	_sleepy_element.wakeup();
	_sleepy_element.slideUp();
			
	if ($(element).closest('table').find('tr:visible').length == 1) {
		window.location.reload();
	}
	
	return false;
}

/** @APPROVED */
function remove_video(element,video_id,index, _err, _blank) {
	var _hash='';
	var _sleepy_element = $(element).closest('div.active');
	_sleepy_element.sleep();


	JSONRequest({
		params:[video_id],
		method: 'deleteHotelUserVideo',
		success: function(_res) {
			if (!_res.success) {
				_sleepy_element.wakeup();
				alert(_err + _res.error + '(' + _res.error_code + ')' );
				return;
			}
		}
	});

	var _pr=$('[index='+index+']');
	_pr.fadeTo('fast',0.10);
	_pr.attr('video_url','/i/fresh/tourstanok/no-photo.png');
	$('#video_author').find('[video_id='+index+']').html('<span style="color:red">' + _blank + '</span>');

    var _prev_pr=_pr.next('div#fotoslider a');
	if (!_prev_pr.length) {
		_prev_pr=_pr.prev('div#fotoslider a');
	}

	if (_prev_pr.length) {
		_hash=_prev_pr.attr('urlhash');
	}

	var _url=String(window.location).replace(/#.*$/,'#'+_hash+'/');
	_sleepy_element.wakeup();
	window.location = _url;
	return false;
}

/** @APPROVED */
function please_register(_referer, _duplicate) {
	
	$(function() {
		
		$.authJacket(function(){window.location.reload(true);}, undefined, _duplicate);
	});
}

/** @APPROVED */
function b_all_reviews_admin(_template) {

	$(function() {
		$('.post2').each(function (index, value) {
			var _block = _template
				_id = 0;

			_id = $('.pop', value).attr('id').substr(11);

			_block = _block.replace("$review_id", _id).replace("%24review_id", _id);

			$('.post_end', value).before(_block);
		});
	});
}

/** @APPROVED */
function b_all_photo_admin(_template) {

	$(function() {
		$('#comments_wrapper .box').each(function (index, value) {

			var _block = _template, _id = 0;

			_id = $(value).attr('comment_id');
			_block = _block.replace("$comment_id", _id);

			$('p', value).after(_block);
		});
	});
}

/** @APPROVED */
function b_all_video_admin(_template) {

	$(function() {
		$('.b-feed-comments .comment_item').each(function (index, value) {

			var _block = _template, _id = 0;

			_id = $(value).attr('comment_id');
			_block = _block.replace("$comment_id", _id);

			$('p', value).after(_block);
		});
	});
}

/** @APPROVED */
function modal_success(_message) {
	$(document).modalbox();
	$(document).modalbox('open',{
		content: '<table class="com"><tr><td><img src="/images/2.5.4/yes.png" /></td><td>'+_message+'</td></tr></table>'
	});
	return true;
}

/** @APPROVED */
function modal_error(_message) {
	$(document).modalbox();
	$(document).modalbox('open',{
		content: '<table class="com"><tr><td><img src="/images/2.5.4/no.png" /></td><td>'+_message+'</td></tr></table>'
	});
	return true;
}

/** @APPROVED */
function modal_wait(_message) {
	$(document).modalbox();
	$(document).modalbox('open',{
		content: '<table class="com"><tr><td><img src="/images/2.5.4/POP_UPgif.gif" /></td><td>'+_message+'</td></tr></table>'
	});
	return true;
}

/** @APPROVED */
function replace_legacy_auth(_id, _hint, _url) {
	var _link = $(_id);
	if (_link.length) {
		_link.authBind('click', function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();
			if (_url == undefined) {
				_url = _link.attr('href');
			}
			if (_url) {
				document.location = _url;
				modal_wait('Выполняется вход на сайт');
			}
		}, _hint);
	}
}

/** @APPROVED */
function replace_legacy_register(_id) {
	var _link = $(_id);
	if (_link.length) {
		_link.click(function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();

			$(document).modalbox();
			$(document).modalbox('open', {ajax_url:'/user/register/',popup_class: 'popup registartion_site'});

			return false;
		});
	}
}

/** @APPROVED */
function replace_legacy_forgot(_id) {
	var _link = $(_id);
	if (_link.length) {
		_link.click(function(_ev) {
			_ev.preventDefault();

			$(document).modalbox();
			$(document).modalbox('open', {ajax_url:'/user/recovery/', popup_class: 'popup enter_site remember_pass'});
		});
	}
}

/** @APPROVED */
function details_tour_01(_name_label, _phone_label, _email_label, _call_me_label, _name_error, _contacts_error,_email_error, _call_me_error) {
	
	$(function(){

		var hide_error = function() {
			
			$('#error_' + $(this).attr('id')).hide();
		}
		
		function create_error(element, text) {
			var error = $('#error_'+element.attr('id'));
			if (error.length == 0) {
				error = $('<p id="error_'+element.attr('id')+'">'+text+'</p>').hide();
				element.after(error);
			}
			
			error.slideDown();
		}

		var _container = $('#buy_tour'),
		_name = $('#site_order_client_name'),
		_phone_number = $('#site_order_client_phone')
		_email = $('#site_order_client_email'),
		_more = $('#site_order_client_more'),
		_error = $('.error', _container),
		_global_error = $('#error_site_order_global'),
		_emailRegexp = /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i;
			

		_name.smart_input($.extend(_def_style, {label: _name_label, onFocus: hide_error}));
		
		_phone_number.smart_input($.extend(_def_style, {label: _phone_label, onFocus: hide_error})).phone_number();

		_email.smart_input($.extend(_def_style, {label: _email_label, onFocus: hide_error}));

		_more.smart_input($.extend(_def_style, {label: _call_me_label, onFocus: hide_error}));

		$('#send', _container).click(function(_ev) {
			_ev.preventDefault();

			var _valid = true;
			
			var val = _name.val();
			if (!val) {
				create_error(_name, _name_error);
				_valid = false;
			}
			
			var phone_val = _phone_number.val();
			var email_val = _email.val();

			if (_valid && !email_val=='' && !email_val.match(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)) {
				create_error(_email, 'Неверный формат email');
				_valid = false;
			}

			if (_valid && !phone_val && !email_val) {
				create_error(_global_error, _contacts_error);
				_valid = false;
			}

			if (_valid) {
				var _form = $('.contact');
				_form.silent_submit({
					url: _form.attr('action'),
					container: '#buy_tour .contact'
				});
				
				_form.submit();
			}
		});
	});	
}

/** @APPROVED */
function tour_details_01(_imgs) {

	$.each(_imgs, function(_i, _src) {
		
		var _img = new Image();
		_img.src = _src;
	});
	
	$(function(){

		var _holder = $('#hotel-images-holder'),
		_img = _holder.find('img'),
		_prev = _holder.find('a.prev'),
		_next = _holder.find('a.next'),
		_state = 0,
		_setState = function(_s) {
			
			if (_imgs[_state] !== undefined) {
			
				_img.attr('src', _imgs[_state]);
				
				if (_state == 0) {
				
					_prev.hide();
				} else {
				
					_prev.show();
				}
				
				if (_state == (_imgs.length - 1)) {
				
					_next.hide();
				} else {
				
					_next.show();
				}
			}
		}
		
		if (_imgs.length) {
			
			_prev.click(function() {
				if (_state > 0) {
				
					_setState(--_state);
				}
			});
			
			_next.click(function() {
				
				if (_state < (_imgs.length - 1)) {
					
					_setState(++_state);
				}
			});
			
			_setState(_state);
		} else {
		
			_holder.hide();
		}
	});
}

/** @APPROVED */
function tour_search_admin(_confirm, _well_done, _error) {
	
	$('.aa2').click(function() {
		
		var _element =$(this), _tour_id = _element.attr('tour_id');
		
		if (confirm(_confirm)) {
		
			$.ajax({
				url: '/ajax/tourDelete/'+_tour_id+"/",			
				success: function(data) {
					if (data == 'done') {
											
						_element.parent().parent().find('a.x').each(function(index, Element) {
							if ($(this).attr('tour_id') == _tour_id) {
								$(this).slideUp();
							}
						});
						
						alert(_well_done);
					} else {
						alert(_error);
					}
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
					alert(_error);
				}
			});
		
		}
	});
}

/** @APPROVED */
function hotel_photo_list() {
	$(function() {

		var _dropdown_element = $(".all_photo .select");

		_dropdown_element.click(
			function (_ev) {
				_ev.preventDefault();_ev.stopPropagation();
				var _el = $(this);

				if (_el.hasClass('active')) {
					_el.removeClass('active');
				} else {
					_el.addClass("active");
				}
			}
		);

		$(document).click(function(_ev) {if (!$(_ev.target).closest('.all_photo .select').length) {_dropdown_element.removeClass('active')}});
		
		$('#show_all_foto, #show_catalog_foto_only, #show_user_foto_only').click(function(_ev) {
				
			_stop(_ev);

			var _name = $(this).text(),
				_id = $(this).attr('id'),
				_filter = $(this).attr('filter'),
				_url = window.location.href;

			var parent = $(this).closest('div.select');
			parent.find('a.selected').find('strong').html(_name);
			
			$(parent).removeClass('hover');
			$(parent).find('li').removeClass('check');
			$(this).addClass('check');
			_dropdown_element.removeClass('active');
			
			_url = _url.replace(/page=[0-9]+&/g, '').replace(/#[0-9a-z]+/, '');
						
			if (_url.indexOf('filter') > 0) {
				_url = _url.replace(/filter=[a-z]+/g, 'filter='+_filter);
			} else if (_url.indexOf('?') > 0) {
				_url += '&filter='+_filter ;
			} else {
				_url += '?filter='+_filter;
			}

			window.location.href = _url;
		});
		
		media_listing_history_bind();
		
		$('table.photo_blog_view').find('img').click(function(_ev) {
			$('.give_help').hide();
			var _td = $(this).closest('td'),
			_next_td = _td.parent().next().children('td').eq(0).filter('.big_big_big_photo');
			
			if (_td.is('.big_big_big_photo')) {
				_td.parent().hide().prev().show();
			} else {
				if (_next_td.length)
					_td.parent().hide().next().show();
			}
		})
	});
}

/** @APPROVED */
function regions_content_left_01(_param_01, _param_02, _search_region_label) {
	$(function() {
		
		var _visible_cnt = $('#regions_list .box').length;
		
		$('#regions_search').smart_input($.extend(_def_style, {label: _search_region_label}));
		
		$('#regions_search').keyup(function(_ev) {
			var _search_str = $('#regions_search').val().toLowerCase(),
				_re = new RegExp(_search_str, "gi");
			
			if (!_search_str) {
				$('#regions_list .box:hidden').slideDown();
				_visible_cnt = $('#regions_list .box').length;
				return;
			}
			
			$('#regions_list .box').each(function(index, element) {
				var _region_name = $("a.region", element).text().toLowerCase();

				if (_re.exec(_region_name)) {
					if ($(element).is(':hidden')) {
						$(element).slideDown();
						_visible_cnt++;
					}
				} else {
					if ($(element).is(':visible')) {
						$(element).slideUp();
						_visible_cnt--;
					}
				}
			});			
						
			if (_visible_cnt == 0 && $('#not_found').is(':hidden')) {
				$('#not_found').slideDown();
			} else if (_visible_cnt > 0 && $('#not_found').is(':visible'))  {
				$('#not_found').slideUp();
			}
		});
		
		$('.sorting').click(function(_ev) {
			_ev.preventDefault();_ev.stopPropagation();

			var _target = $(_ev.target),
				_sorting = _target.attr('sorting_type');

			if (!_sorting) {
				return;
			}
			
			_target.siblings('a').removeClass('active');
			_target.addClass('active');

			$('#regions_list').sleep();
			
			$.ajax({
				url: _param_01,
				type: "GET",
				data: {sorting: _sorting, country: _param_02},
				success: function(_data) {

					$('#regions_list').html(_data);	
					$('#regions_list').wakeup();
				},
				error: function() {
					$('#regions_list').wakeup();
				}
			});
		});
	});
}

/** @APPROVED */
function interesting_places_01(_param_01) {
	$(function() {
		$('.worth_seeing a.add, .worth_seeing a.add_responce_button').authBind('click', function(_ev) {
			_stop(_ev);
			window.location.href = _param_01;   
		}, 'Чтобы добавить достопримечательность, войдите на сайт.');
	});	
}

/** @APPROVED */
function search_form_alphabet() {
	$(function() {
		$('.switch_lang a').click(function(_ev) {
			_ev.preventDefault();_ev.stopPropagation();

			var target = $(_ev.target);

			if (target.parent().hasClass("eng")) {
				$(".switch_lang.eng").hide();
				$(".switch_lang.rus").show();

				$(".letters.eng").hide();
				$(".letters.rus").show();
			} else {
				$(".switch_lang.rus").hide();
				$(".switch_lang.eng").show();

				$(".letters.rus").hide();
				$(".letters.eng").show();
			}
		});
	});
}

/** @APPROVED */
function hotels_search_form(_label) {
	$(function() {
		
		$('#name').smart_input($.extend(_def_style, {label: _label}));
		
		$("#hotelsearch a").click(function(_ev){
			_ev.preventDefault();_ev.stopPropagation();
			
			if ($('#name').val()) {
				$('#error_empty_name').hide();
				
				$('#hotelsearch input[name=]').remove();
				
				$('#hotelsearch').submit();
			} else if ($('#error_no_hotels').length == 0) {
				$('#error_empty_name').show();
			}
		});
		
		
		$("#hotelsearch input").keydown(function(_ev) {
			
			$('#error_empty_name').hide();
			
			if (_ev.keyCode == '13' && $('#name').val()) {
				$('#hotelsearch input[name=]').remove();
				$("#hotelsearch").submit();
			} else if (_ev.keyCode == '13' && $('#error_no_hotels').length == 0) {
				$('#error_empty_name').show();
			}
		});
	});		
}

/** @APPROVED */
function region_weather_01() {
	$(function(){
		var _link_holder = $('#weather_region_selector');
		_link_holder.find('a.selected').click(function(){_link_holder.toggleClass('active');}).end().click(function(_ev) {_ev.stopPropagation();});
		$(document).click(function() {
			_link_holder.removeClass('active');
		})
	});
}

function region_selector_01() {
	$(function(){
		var _link_holder = $('#region_selector');
		_link_holder.find('a.selected').click(function(){_link_holder.toggleClass('active');}).end().click(function(_ev) {_ev.stopPropagation();});
		$(document).click(function() {
			_link_holder.removeClass('active');
		})
	});
}

/** @APPROVED */
function region_weather_02() {
	$('#weather_switch').find('li').click(function() {
		$('#weather_switch').find('li').removeClass('active');
		$(this).addClass('active');
		var _day = $(this).find('a').attr('day');
		$('#weather_map').simple_map('switchDay', {day: _day});
	});
}

/** @APPROVED */
function review_comments_js_01(_tokens, confirm_text) {
	
	initializeCommentForm(_tokens, 0);
	_foto_comments = $('div.response_comments');
	$(_foto_comments).find('a.delete_comment').each(function(){
		$(this).click(function(){
			remove_comment($(this), $(this).attr('comment_id'), confirm_text);
			return false;
		});
	});
	$('#add_comment_button').click(function(_ev) {
		_ev.preventDefault();
		_ev.stopPropagation();
		$.scrollTo($('#add_comment'), 'normal');
		$('#foto_comment_text').focus();
	});
}

/** @APPROVED */
function main_page_foto_01(_param_01) {
	$(function() {
		$('.country_photo a.add').authBind('click', function(_ev) {
			_stop(_ev);
			
			window.location.href = _param_01;   
		}, 'Чтобы добавить фотографию, войдите на сайт.');
	});	
}

/** @APPROVED */
function main_page_region_01(_hide, _show) {
	$(function() {
		var is_shown = false;
		
		$('.section_more.regions_list').click(function(_ev) {
			
			var target = $(_ev.target);
			
			if (!is_shown) {
				target.text(_hide);
				is_shown = true;
				
				$('#regions_list_other').slideDown();
			} else {
				target.text(_show);
				is_shown = false;
				
				$('#regions_list_other').slideUp();				
			}
		});
				
		$('.regions_list li').hover(
			function(_ev) {
				$(this).addClass("hover");
			},
			function(_ev) {
				$(this).removeClass("hover");			
			}
		);
	});	
}

/** @APPROVED */
function regions_content_right_01(_param_01, _param_02, _label) {
    $(function() {
        
        var _visible_cnt = $('#regions_list .box').length;
        
        $('#regions_search').smart_input($.extend(_def_style, {label: _label}));
        
        $('#regions_search').keyup(function(_ev) {
            var _search_str = $('#regions_search').val().toLowerCase(),
                _re = new RegExp(_search_str, "gi");
            
            if (!_search_str) {
                $('#regions_list .box:hidden').slideDown();
                _visible_cnt = $('#regions_list .box').length;
                
                $('#not_found').slideUp();
                $('#error_not_found').hide();
                
                $('.sort').slideDown();
                
                return;
            }
            
            $('#regions_list .box').each(function(index, element) {
                var _region_name = $("a.region", element).text().toLowerCase();

                if (_re.exec(_region_name)) {
                    if ($(element).is(':hidden')) {
                        $(element).slideDown();
                        _visible_cnt++;
                    }
                } else {
                    if ($(element).is(':visible')) {
                        $(element).slideUp();
                        _visible_cnt--;
                    }
                }
            });            
                        
            if (_visible_cnt == 0 && $('#not_found').is(':hidden')) {
                $('#not_found').slideDown();
                $('#error_not_found').show();
                
                $('.sort').slideUp();
            } else if (_visible_cnt > 0 && $('#not_found').is(':visible'))  {
                $('#not_found').slideUp();
                $('#error_not_found').hide();
                
                $('.sort').slideDown();
            }
        });
        
        $('.sort').click(function(_ev) {
            _stop(_ev);

            var _target = $(_ev.target),
                _sorting = _target.attr('sorting_type');

            if (!_sorting) {
                return;
            }
            
            _target.siblings('a').removeClass('up').removeClass('down');
            
            var _type = _target.attr("class");
            if (_type) {
                _type = (_type == 'up') ? "down" : "up" ;
            } else {
                _type = _target.attr("default_sorting"); 
            }
                
            _target.removeClass('up').removeClass('down')
            _target.addClass(_type);

            $('#regions_list').sleep();
            
            $.ajax({
                url: _param_01,
                type: "GET",
                data: {sorting: _sorting, type: _type, country: _param_02},
                success: function(_data) {

                    $('#regions_list').html(_data);    
                    $('#regions_list').wakeup();
                },
                error: function() {
                    $('#regions_list').wakeup();
                }
            });
        });
    });
}

/** @APPROVED */
function user_video_tags_01(_param_01, _error) {

	$(function() {

		var _fieldset = $('#add-user-video-tags-form');
		$('#modal-submit-link').click(function(_e) {_e.preventDefault();$('#add-user-video-tags-form').submit()});

		$('#add-user-video-tags-form').submit(function(_e) {
			_e.preventDefault();
			var title = $('div.name input', _fieldset).val();
		    var result = '';
		    var htmlOutput = '';
			$(':checkbox', _fieldset).each(function () {
				if (this.checked) {

					result += (result.length > 0) ? ',' : '';
					result += this.value;

					var label = $(this).siblings('label');
					htmlOutput += (htmlOutput.length > 0) ? ', ' : '';
					htmlOutput += $(label).text();
				}
			});

			var video_id = $('#add-user-video-tags-form').attr('el_id');
			_fieldset.sleep();

			$.post(
				_param_01 + video_id + "/",
				{tags: result, title: title},
				function() {
					_fieldset.wakeup();
					changed_photo = $('#video_item_'+video_id+' ul');
					$(changed_photo).html(htmlOutput);
					$(document).modalbox('close');
				}
			);

			changed_video = $('#vido_item_'+video_id+' span');
			$(changed_video).html(htmlOutput);
		  }
		);
		$('#modal-delete-link').click(function(_e) {
			$('#modal-delete-link').sleep();
			JSONRequest({
				params:[$('#add-user-video-tags-form').attr('el_id')],
				method: 'deleteHotelUserVideo',
				success: function(_res) {
					$(document).modalbox('setCallback',{preClose: undefined})
					if (!_res.success) {
						alert(_error + _res.error + '(' + _res.error_code + ')');
					} else {
						$(document).modalbox('close');
					}
				}
			});
		});
	});
}

function user_photo_tags_01(_param_01, _param_02, _param_03, _error) {
    $(function() {
        var _fieldset = $('#add-user-foto-tags-form');
        $('#modal-submit-link').click(function(_e) {_e.preventDefault();$('#add-user-foto-tags-form').submit()});

        $('#add-user-foto-tags-form').submit(function(_e) {

           _stop(_e);

           $('#add-user-foto-tags-form').sleep();
            
           var title = $('div.name input', _fieldset).val(), result = '', htmlOutput = '';
           
           $('input:checkbox', _fieldset).each(function () {
                if (this.checked) {

                    result += (result.length > 0) ? ',' : '';
                    result += this.value;

                    var label = $(this).siblings('label');
                    htmlOutput += (htmlOutput.length > 0) ? ', ' : '';
                    htmlOutput += $(label).text();
                }
            });

            var photo_id = $('#add-user-foto-tags-form').attr('el_id');
            $.post(
                    _param_01 + photo_id + "/",
                    {tags: result, title: title},
                    function(_hash) {

                        if (_param_03) {
                            window.location.href = _param_02 + "#" + _hash;
                        }

                        $('#add-user-foto-tags-form').wakeup();
                        $(document).modalbox('close')
                    }
            );

            changed_photo = $('#item_'+photo_id+' span');
            $(changed_photo).html(htmlOutput);
          }
        );
        $('#modal-delete-link').click(function(_e) {
            $('#modal-delete-link').sleep();
            JSONRequest({
                params:[$('#add-user-foto-tags-form').attr('el_id')],
                method: 'deleteHotelUserFoto',
                success: function(_res) {
                    if (!_res.success) {
                        modal_error(_error + _res.error + '(' + _res.error_code + ')');
                    } else {
                        $(document).modalbox('close');
                    }
                }
            });
        });
    });
}

/** @DEPRECATED */
/*
function cotraveler_filter_js_01() {

	$(function() {
		var _monthNames = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
			_monthNamesShort = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
			_monthNamesRP = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
		$('#departure_date_link').datepicker({
			showOn: 'click',
			dateFormat: 'dd.mm',
			dayNames: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
			dayNamesMin: ['Вc', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
			dayNamesShort: ['Вcк', 'Пнд', 'Втр', 'Срд', 'Чтв', 'Птн', 'Сбт'],
			firstDay: 1,
			monthNames: _monthNames,
			monthNamesShort: _monthNamesShort,
			yearRange: '0:+1',
			minDate: 0,
			maxDate: '+1y',
			onSelect: function(_date, _i){
				var _date = _date.split('.'), _day = parseInt(_date[0]), _month = parseInt(_date[1]);
				$('#departure_date_link').html(_day + ' ' + _monthNamesRP[_month - 1] + '<span></span>');
				$('#cotraveler_filter_departure_date_day').val(_day);
				$('#cotraveler_filter_departure_date_month').val(_month).trigger('change');

			}
		});
		$('#sex_link, #goal_link, #followers_link').selectbox_link({
			onSelect: function(_v) {
				if (_v == '-') {
					_v = 'Все равно';
				}
				this.html(_v + '<span></span>');
			}
		});
		$('#duration_link').selectbox_link({
			onSelect: function(_v) {
				this.html(_v + '<span></span>');
			}
		});
		$('#probability_link').selectbox_link({
			onSelect: function(_v) {
				if (_v == '-') {
					_v = 'Все равно';
				} else {
					_v += '%';
				}
				this.html(_v + '<span></span>');
			}
		});
	});
}
*/

/** @DEPRECATED */
/*
function cotraveler_list_js_01(_param_01, _param_02) {

	$(function(){
		$('#b-bigbtn_gofirst4').authBind('click', function(_ev) {
			_ev.preventDefault();
			_ev.stopPropagation();
			$.modal({
				loadUrl: _param_01,
				template: '<div class="l-popup l-popup_add_travel ui-modal-box" style="margin:0 0 0 -430px;"><div class="l-popup__close"><a href="#">Выйти<i></i></a></div><div class="l-popup__i"></div></div>',
				noScroll: true,
				placeInCenter: true,
				containerClass: 'l-popup_add_travel'
			});
		});

		$('#iwillfly').change(function(_ev){
			var _val = $(this).attr('checked') ? 1 : 0;
			$.ajax({
				url: _param_02,
				data: {'act': _val},
				type: 'POST'
			});
		});
	});
}
*/

/** @DEPRECATED */
/*
function add_cotraveler_complete_js_01() {

	$.modal('close', {
		complete: function() {
			if (typeof(updCotravelersList) == 'function') {
				updCotravelersList();
			}
		}
	});
}
*/

/** @DEPRECATED */
/*
function add_cotraveler_success_js_01(_param_01) {

	$('#add-cotraveler-form').silent_submit({
		url: _param_01
	});
	$('#cotraveler_probability').smart_input({
		label: '%',
		filledCss: {color: '#000000'},
		emptyCss: {color: '#b9b9b9'}
	});
}
*/

/** @DEPRECATED */
/*
function cotraveler_success_js_01(_param_01) {

	var _form = $('#select_travelers_form');

	var updCotravelersList = function() {
		_form.submit();
	}
	_form.find('select').change(updCotravelersList);

	$(function(){
		_form.silent_submit({
			url: _param_01,
			container: '#cotravel-list-block'
		});

		updCotravelersList();
	});
}
*/

/** @DEPRECATED */
/*
function b_photos_list_js_01(_param_01, _param_02) {

	$(function(){
		var _upl = init_uploader(_param_01, {}),
		_holder = $('#bAllfoto-holder-div');
		_upl.fileDialogComplete = function(_cnt) {if (_cnt) {$.authJacket(function() {_upl.startUpload();_holder.sleep()})}};
		_upl.uploadSuccess = function(_f, _d) {
			var _holder = $('#bAllfoto-holder-div');
			_holder.sleep();
			$.ajax({
				url: _param_02,
				cache: false,
				success: function(_data) {_holder.wakeup().html(_data)}
			});
			try {
				eval('var _resp = ' + _d);
				if (typeof(_resp) == 'object') {
					if (_resp.foto_id) {
						$.modal({
							loadUrl: _param_03 + _resp.foto_id + '/',
							containerClassName: 'l-popup_add_photo_slim'
						});
					}
				}
			} catch (e) {}
		}
		_upl.uploadError = function(_a, _b) {_holder.wakeup()}
	})
}
*/

/** @DEPRECATED */
/*
function b_side_edit_js_01(_param_01, _param_02) {

	$(function(){
		var _upl = init_uploader({'upload_url': _param_01}),
		_holder = $('#b-side-avatar');
		$('#SWFUpload_0').css({'margin-bottom': '-4px'});

		_upl.fileDialogComplete = function(_cnt) {if (_cnt) {_upl.startUpload();_holder.sleep()}};
		_upl.uploadSuccess = function(_f, _d) {
			_holder.wakeup();
			try {
				eval('var _res = ' + _d);
				if (_res === undefined || !_res.filepath || !_res.rawkey) {
					throw "Ошибка загрузки изображения";
				}

				$.modal({
					loadUrl: _param_02 + _res.filepath + '&rawkey=' + _res.rawkey,
					containerClassName: 'l-popup_add_photo_slim',
					onLoad: function() {onRawUploaded(_d)},
					onClosing: function() {if (typeof(onAddAvatarClosing) == 'function') {onAddAvatarClosing.call()}}
				});

			} catch (e) {
				alert(e.message);
			}
		}
		_upl.uploadError = function(_a, _b) {_holder.wakeup()}
	})
}
*/

/** @DEPRECATED */
/*
function cotraveler_form_001(_param_01, _param_02) {

	$(function() {

		if (_init) {

			return;
		}

		_init = true;
		var _monthLabels = [ 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря' ],
		_calendar_holder = $('#cotravelers-search-calendar-holder');

		_calendar_holder.calendar({
			onSelect: function(_d){
				var _month = _d.getMonth() + 1,
				_day = _d.getDate();
				_calendar_holder.closest('div.st_edit').removeClass('hover');
				$('#cotravelers-form-selectday-input-month').val(_month);
				$('#cotravelers-form-selectday-input-day').val(_day);
				$('#cotravelers-form-selectday-label').val(_day + ' ' + (_monthLabels[_month - 1]));
			},
			minDate: _param_02,
			monthSimultaneously: 1,
			currentDate: _param_01
		});

		$('form.search_traveller div.st_box').each(function () {
			$(this).find('div.active').click(function(_e) {
				if (current != null) {
					$(current).removeClass('hover');
				}
				$(this).parent().addClass('hover');
				current = $(this).parent();
			});
		});

		$('div.select ul').each(function () {
			$(this).find('li').each(function () {
				$(this).click(function() {
					var parent = $(this).parent().parent().parent();
					$(parent).find('div.active input:text').val($(this).text());
					$(parent).find('div.active input:hidden').val($(this).attr('value'));
					$(parent).removeClass('hover');
				});
			});
		});
	});
}
*/

/** @DEPRECATED */
/*
function add_review_text_static_js_01(_param_01) {

	$(function() {
		$('#edit-review-text-link').click(function(_ev) {
			_ev.preventDefault();
			var self = $(this);
			$.ajax({
				url: self.attr('hidden_href'),
				type: 'POST',
				success: function(_r) {
					$('#add-review-text-form-holder').html(_r).wakeup();
				},
				beforeSend: function() {
					$('#add-review-text-form-holder').sleep();
				}
			});
		});
		$('input.marks-review-input').val(_param_01);
	});
}
*/

/** @DEPRECATED */
/*
function panoramas_init_js_js_01(_param_01, _param_02, _param_03, _param_04, _param_05) {

	var _PanoramasFormTokens = _param_01;
	var _cm = 'postHotelVideoComment';
	var _def_url = _param_02;
	var _def_thmb = _param_03;

	function initializeVideo(_i) {

		var _li = $('#panoramas-preview-list').children('li'),
		_a = _li.eq(_i).find('a:first'),
		_url = _a.attr('panorama_url'),
		_thmb = _a.attr('panorama_thmb');

		$('#preview').fadeTo(0, 600, function() {

			$(this).html('');

			if (!_url) {
				_url = _def_url;
				_thmb = _def_thmb;
				_video_id = _def_video_id;
			}

			if (_url) {
				var new_html = '<object width="725" height="385">'+
								    '<param value="'+_url+'" name="movie"/>'+
						            '<param value="opaque" name="wmode"/>'+
							        '<embed width="725" height="385" wmode="opaque" src="'+_url+'"/>'+
							   '</object>';

				$(this).html(new_html);
			}

			showComments(_i);
		});
	}

	function showComments(_i) {
		var comments_block = _foto_comments.hide().eq(_i);

		if (comments_block.find('div.b-feed-comments div').length > 0) {
			comments_block.show();

			$('h2.new-comment').show();
			$('h2.first-comment').hide();
		} else {
			$('h2.new-comment').hide();
			$('h2.first-comment').show();
		}
		initializeCommentForm(_PanoramasFormTokens, _i);
	}

	$(function() {

		_foto_comments = $('div.comments_js');

		if (_param_04 < 5) {

			$('#bts-container').find('li a').click(function(_e) {
				_e.preventDefault();
				_e.stopPropagation();
				var _index = $(this).closest('li').prevAll.length;
				initializeVideo(_index);
			});

		} else {

			$('#bts-container').slider({
				scrollbar: '#b-scroll',
				owner: $('#preview'),
				frame: '#bst-frame',
				nextArrow: '#pt-next',
				prevArrow: '#pt-prev',
				onSelect: function(_i) {
					var _li = this, _a = _li.find('a:first'), _hidden_href = _a.attr('hidden_href');
					initializeVideo(_i);
				}
			});
		}
		initializeVideo(_param_05);
	});
}
*/

/** @DEPRECATED */
/*
function goingto_success_js_01() {

	$(function(){
		$('#btn-submit-goingto').click(function(){
			$('#frm-goingto').submit();
			return false;
		});

		$('#cotraveler_probability').smart_input({
			label: '%',
			filledCss: {color: '#000000'},
			emptyCss: {color: '#b9b9b9'}
		});
	});
}
*/

/** @DEPRECATED */
/*
function modal_add_photos_success_js_01(_param_01, _param_02, _param_03, _param_04, _param_05) {

	$(function(){

		$('#flash-container').flash({
			src: _param_01,
			width: 700,
			height: 400,
			flashvars: {
				albums: _param_02,
				actionurl: _param_03,
				allurl: _param_04,
				extravars: _param_05
			},
			allowScriptAccess: "sameDomain"
		});

		$('#save-btn').click(function(_ev){
			_ev.preventDefault();
			$('#frm-uploader').closest('div.l-popup').children('div.l-popup__close').children('a').trigger('click');
		});

		function onUpoadSuccess(successfotos){
			//alert('onUpoadSuccess called '+successfotos);
		}

		function onUploadFailure(){
			//alert('onUploadFailure called');
		}

	});
}
*/

/** @DEPRECATED */
/*
function modal_add_video_success_js_01(_param_01, _param_02, _param_03, _param_04) {

	var _noticeError = function(_msg) {$('#modal-upload-video-notice').html(_msg).slideDown();return false;};

	var _shutdownError = function() {$('#modal-upload-video-notice').slideUp('normal', function(){$(this).html('');});};

	$(function() {

		var init_uploader = function(_url, _post_data) {return new SWFUpload({http_success: [200, 302], upload_url: _url, flash_url: '/js/SWFUpload2.2.0.1/Flash/swfupload.swf', file_post_name: 'video[file]', file_types: '*.mov;*.avi;*.mpeg;*.flv;*.mp4', file_queue_limit: '1', file_upload_limit: '0', button_placeholder_id: 'b-emptybox__profilecomm-addphoto', button_image_url: '/i/fresh/new_photo.png', button_width: 124, button_height: 33, buttonText: 'Добавить фото', button_action: SWFUpload.BUTTON_ACTION.SELECT_FILE, button_cursor: SWFUpload.CURSOR.HAND, button_window_mode: opaque, post_params: _post_data})};
		var _upl = init_uploader(
			_param_01,
			{
				'video[server_id]': _param_02,
				'video[user_id]': _param_03,
				'video[extra_vars]': _param_04
			}
		);
		_upl.fileDialogComplete = function(_cnt) {if (_cnt) {$.authJacket(function() {_upl.startUpload()})}};
	})
}
*/

/** @DEPRECATED */
/*
function modal_edit_avatar_success_js_01() {

	var mod_state = 'none';
	var active_layout = 'frm-uploader';
	var $canvas = $('#photo-canvas');
	var $selector = false;

	var filepath = '';
	var rawkey = '';

	function getState(){
	  return mod_state;
	}
	function setState(newstate){
	  switch(newstate){
	    case "browse":
	      setLayout('frm-uploader');
	      //$('#browse-btn').show();

	      // Auto open fileselect dialog
	      //$('#swfupload-control').swfupload('selectFile');  - Crashes FF
	      break;
	    case "uploadingraw":
	      setLayout('frm-uploader');
	      //$('#browse-btn').hide();
	      break;
	    case "uploading_done":
	      setLayout('frm-uploader');
	      break;
	    case "uploading_error":
	      setLayout('frm-uploader');
	      break;
	    case "resizer_loading":
	      setLayout('frm-resizer');
	      break;
	    case "resizer":
	      setLayout('frm-resizer');
	      $('.pl__ctrls').wakeup();
	      break;

	    case "saving_crop":
	      $('.pl__ctrls').sleep();
	      break;
	    case "saved":
	      $('.pl__ctrls').wakeup();
	      break;
	  }
	  mod_state = newstate;
	}

	function setLayout(newlayout){
	  switch(newlayout){
	    case "frm-uploader":
	      $('#frm-uploader').show();
	      $('#frm-resizer').hide();
	      break;
	    case "frm-resizer":
	      $('#frm-uploader').hide();
	      $('#frm-resizer').show();
	      break;
	  }
	  active_layout = newlayout;
	}

	function onRawUploaded(serverData){
	  var result = {};
	  try{
	    result = eval('(' + serverData + ')');
	  }catch(exc){
	    result.error = 1;
	  }

	  if(result.error==1){
	    setState('uploading_error');
	  }else{
	    setState('uploading_done');

	    $canvas.attr('src', result.filepath);
	    filepath = result.filepath
	    rawkey = result.rawkey
	    $canvas.load( onCanvasLoaded )
	    setState('resizer_loading');
	  }
	}

	function onCanvasLoaded(){
	  setState('resizer');
	  //{ x1: 120, y1: 90, x2: 280, y2: 210 }

	  var img_w = $canvas.width();
	  var img_h = $canvas.height();
	  var min_len = Math.min(img_w, img_h);

	  $selector = $canvas.imgAreaSelect({instance: true, aspectRatio: '1:1', minHeight: Math.min(min_len,240), minWidth: Math.min(min_len,240), handles: true,
	    x1: 0, y1: 0, x2: min_len, y2: min_len});
	}

	function onSaveClicked(){
	  if( (getState()!='resizer' && getState()!='saved') || !$selector){
	    alert('Сначала загрузите изображение' + '  ('+getState()+')');return false;
	  }
	  var selection = $selector.getSelection();
	  setState('saving_crop');
	  $.getJSON('/fotoAjax/ajaxSaveRawAvatar/',
	    {
	      x1:selection.x1,
	      y1:selection.y1,
	      width:selection.width,
	      height:selection.height,
	      filepath:filepath,
	      rawkey:rawkey,
	      originalwidth: $canvas.width()
	  }, onRawSaved );

	  return false;
	}
	//  |
	//  V
	function onRawSaved(data, textStatus){
	  if(!data.error){
	    setState('saved');
	    onAddAvatarClosing( undefined );
	    $.modal('close', {});
	    $('#b-side-avatar').load('/my/inlineSideAvatar/');
	  }else{
	    setState('resizer');
	  }
	}

	$(function(){
	  $('#swfupload-control').swfupload({
			upload_url: "/upload/ajaxUploadRawAvatar/",
			file_size_limit : "10240",      // 10MB
			file_types : "*.jpg; *.jpeg; *.png; *.gif; *.bmp;",
			file_types_description : "Файлы изображений",
			file_upload_limit : "0",
			flash_url : "/js/swfupload/swfupload.swf",
			//button_image_url : '/js/swfupload/XPButtonUploadText_61x22.png',
			button_image_url : '/i/0.gif',
			button_text: "Обзор...",
			button_width : 61,
			button_height : 22,
			button_placeholder : $('#browse-btn')[0],
			custom_settings : {something : "here"}
		})
			.bind('swfuploadLoaded', function(event){
				$('#log').append('<li>Loaded</li>');
			})
			.bind('fileQueued', function(event, file){
				//$('#log').append('<li>File queued - '+file.name+'</li>');
				// start the upload since it's queued
				$(this).swfupload('startUpload');
				setState('uploadingraw');
			})
			.bind('fileQueueError', function(event, file, errorCode, message){
				$('#log').append('<li>File queue error - '+message+'</li>');
			})
			.bind('fileDialogStart', function(event){
				$('#log').append('<li>File dialog start</li>');
			})
			.bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
				$('#log').append('<li>File dialog complete</li>');
			})
			.bind('uploadStart', function(event, file){
				$('#log').append('<li>Upload start - '+file.name+'</li>');
			})
			.bind('uploadProgress', function(event, file, bytesLoaded){
	      var percent = Math.ceil((bytesLoaded / file.size) * 100);
				$('#progress-txt').text(percent+"%");
			})
			.bind('uploadSuccess', function(event, file, serverData){
				//$('#log').append('<li>Upload success - '+file.name+' (serverData: '+serverData+')</li>');
	      $('#progress-txt').text('Завершено');
	      onRawUploaded(serverData);
			})
			.bind('uploadComplete', function(event, file){
				$('#log').append('<li>Upload complete - '+file.name+'</li>');
				// upload has completed, lets try the next one in the queue
				$(this).swfupload('startUpload');
			})
			.bind('uploadError', function(event, file, errorCode, message){
				//$('#log').append('<li>Upload error (code '+errorCode+') - '+message+'</li>');
	      $('#progress-txt').text('Ошибка');
	      setState('uploading_error');
			});

	  $('#save-btn').click(onSaveClicked);

	  $('#frm-resizer').unload( onAddAvatarClosing );

	  setState('browse');

	});

	function onAddAvatarClosing(wnd){
	    if($selector){
	      $selector.cancelSelection(true);
	    }
	    return true;
	}
}
*/

/** @DEPRECATED */
/*
function modal_edit_photo_success_js_01() {

	$(function(){

		  $('#btn-begin-import').click(
		    function(){
		      setStatus('Обработка...');
		      $.ajax(
		        {
		          type: "POST",
		          url: '/my/ajaxImportVk/',
		          dataType: "json",
		          data:{
		            vklogin: $('#vklogin').val(),
		            vkpass: $('#vkpass').val()
		          },
		          success: onVkImported
		        }
		      );//ajax
		    }
		  );

		});

		function setStatus(s, color){
		  if(color == undefined){
		    color = '';
		  }
		  $('#status-info').css('color', color);
		  $('#status-info').text(s);
		}
		function onVkImported(data){
		  if(data && data.success==1){
		    setStatus('Завершено');
		    ShowProfileEditor();
		    $.modal('close', {});
		  }else{
		    if(data.error==""){
		      data.error="Возникла неизвестная ошибка"
		    }
		    setStatus(data.error, 'red');
		  }
		}
}
*/

/** @DEPRECATED */
/*
function modal_import_vk_success_js_01() {

	$(function(){

		  $('#btn-begin-import').click(
		    function(){
		      setStatus('Обработка...');
		      $.ajax(
		        {
		          type: "POST",
		          url: '/my/ajaxImportVk/',
		          dataType: "json",
		          data:{
		            vklogin: $('#vklogin').val(),
		            vkpass: $('#vkpass').val()
		          },
		          success: onVkImported
		        }
		      );//ajax
		    }
		  );

		});

		function setStatus(s, color){
		  if(color == undefined){
		    color = '';
		  }
		  $('#status-info').css('color', color);
		  $('#status-info').text(s);
		}
		function onVkImported(data){
		  if(data && data.success==1){
		    setStatus('Завершено');
		    ShowProfileEditor();
		    $.modal('close', {});
		  }else{
		    if(data.error==""){
		      data.error="Возникла неизвестная ошибка"
		    }
		    setStatus(data.error, 'red');
		  }
		}
}
*/

/** @DEPRECATED */
/*
function stopUpload(success) {

	var result = '';
    if (success == 1)
    {
        $('#avatar_gallery_holder').load('/my/getUpdatedGallery/', {},  function(){$('.holder-right').wakeup();} );
        result = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>';
    }
    else
    {
        result = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>';
        $('.holder-right').wakeup();
    }
    $('#file').val('');

    return true;
}
*/
