/* Debounce function's decorator plugin [ http://code.google.com/p/jquery-debounce/ ] */
(function($){$.extend({debounce:function(fn,timeout,invokeAsap,context){if(arguments.length==3&&typeof invokeAsap!='boolean'){context=invokeAsap;invokeAsap=false;}var timer;return function(){var args=arguments;if(invokeAsap&&!timer){fn.apply(context,args);}clearTimeout(timer);timer=setTimeout(function(){if(!invokeAsap){fn.apply(context,args);}timer=null;},timeout);};}});})(jQuery);

/**
 * Система комментариев
 *
 */
var comment = {
	
	/**
	 * @var string Форма ответа
	 */
	form: '',

	/**
	 * @var string Форма для анонима
	 */
	form_anonymouse: '<div id="answer_comment">'+
	'<div class="user_plazka" style="margin-bottom:-10px;margin-left:0px;">Добавление комментария</div>'+
	'<div class="new_section_content2">'+
		'<div class="controls_post_buttons" style="width:500px;">'+
			'Для того чтобы добавлять комментарии, нужно <a href="/login">войти</a> или <a href="/register">зарегистрироватся</a>.'+
		'</div>'+
	'</div>'+
	'</div>',

	/**
	 * @var string Форма для предпросмотра
	 */
	form_preview: '<div id="post_preview">'+
		'<div class="user_plazka">Предварительный просмотр</div>'+
		'<div class="main_post_wr">'+
			'<div id="preview_author_post_ava" class="author_post_ava fl"></div>'+
			'<div class="post_wr">'+
				'<div id="preview_about_author" class="about_author"><font class="small"></font></div>'+
				'<div id="post_preview_text" class="post"></div>'+
				'<div class="cl"></div>'+
			'</div>'+
		'</div>'+
	'</div>',
	
	/**
	 * @var object Данные которые будут отправлены на сервер
	 */
	submit_data: {
		/**
		 * @var string
		 */
		url: 'add',

		/**
		 * @var int ID коменнтария или ID родительского коменнтария при добавлении
		 */
		comm_id: 0,

		/**
		 * @var int ID группы форума. Используется только для форума
		 */
		part_id: 0,

		/**
		 * @var int ID сущности к которой пишется комментарий (Заполняется в comments_last.html)
		 */
		record_id: 0,

		/**
		 * @var string Тип записи. (video, audio, forum) (Заполняется в comments_last.html)
		 */
		record_type: '',

		/**
		 * @var string Текст комента
		 */
		content: '',
		
		/**
		* @var int ID текущего сообщества
		*/
		community_id: 0
	},

	/**
	 * @var object Данные о авторе, т.е. тот кто пишет комент
	 */
	user_data: {
		/**
		 * @var int Если аноним то = 0, если пользователь то = 1, если модер то = 2.
		 */
		is_user: 0,
		/**
		 * @var string Аватар. Используется для превью. (Заполняется в comments_last.html)
		 */
		avatar: '',
		/**
		 * @var string Ссылка на профиль. Используется для превью. (Заполняется в comments_last.html)
		 */
		link: ''
	},

	/**
	 * @var string временно хранится текст сообщения, которое редактирует пользователь
	 */
	tmp_text: '',

	/**
	 * Показываем форму ответа (При клике по кнопке ответить)
	 *
	 * @param div_id ID родительского дива, на который пишется ответ
	 * @return void
	 */
	show: function(div_id) {

		// Если кликают по той же кнопки "Ответить", выходим из функци
		if (this.submit_data['comm_id'] == div_id && this.submit_data['url'] == 'add') return;

		// Скрываем текущую открытую форму комментариев
		$('#add_comments').hide();
		
		this.hide(function(){comment.show(div_id);});
		if (this.submit_data['comm_id'] > 0) return;


		// Запоминаем текущиe параметры
		this.submit_data['comm_id'] = div_id;
		this.submit_data['url'] = 'add';

		// Если авторизованный пользователь
		if (!this.user_data['is_user'])
		{
			$('#comm_'+div_id+' > div.10p').hide().html(this.form_anonymouse).slideDown();
			return;
		}

		$('#comm_'+div_id+' > div.10p').hide().append(this.form);
		$('#forum_border_'+div_id+' td').addClass('forum_border_color');
		$('#answer_button').val('Добавить');

		$('#comm_'+div_id+' > div.10p').slideDown(function(){
			comment.tinyMCE('answer_comments_text', 'add', 0);
		});
		
		// Устанавливаем фокус
		if (tinyMCE.getInstanceById('answer_comments_text'))
			tinyMCE.execCommand('mceFocus', false, 'answer_comments_text');
	},

	/**
	 * Инициализируем tinyMCE
	 *
	 * @param element_id ID textarea
	 */
	tinyMCE: function(element_id, url, is_root) {

		tinyMCE.init({
			plugins: "inlinepopups,taba",
			theme_advanced_buttons1 : "bold,italic,underline,strikethrough|,link,unlink,|,blockquote,|,taba_user,taba_community,taba_smile",
			theme_advanced_buttons2 : "",
			theme_advanced_buttons3 : "",
			relative_urls : false,
			remove_script_host : false,
			theme_advanced_blockformats : "p,h2,h3,blockquote",
			language: "ru",
			theme: "advanced",
			skin: "taba",
			mode: "exact",
			elements: element_id,
			inlinepopups_skin: "tabapopup",
			theme_advanced_toolbar_location: "top",
			theme_advanced_toolbar_align: "left",
			theme_advanced_path: false,
			theme_advanced_resizing : true,
			theme_advanced_resizing_use_cookie : false,
			theme_advanced_resize_horizontal : false,
			theme_advanced_statusbar_location : "bottom",
			height: "150px",
			width: "99%",
			theme_advanced_font_sizes : "2,3,4",
			setup : function(ed) {
				ed.onKeyPress.add(function(ed, e) {
					if((e.ctrlKey) && ((e.keyCode == 0xA) || (e.keyCode == 0xD))) {
						comment.submit(url, is_root);
					}
				});
			}
		});
	},

	/**
	 * Скрывает форму ответа на комментарий
	 *
	 * @param callback вызывает функцию обратного вызова после slideUp
	 * @return void
	 */
	hide: function(callback) {
		var self = this;
		// Удаляем tinyMCE
		if (tinyMCE.getInstanceById('answer_comments_text'))
			tinyMCE.execCommand('mceRemoveControl', false, 'answer_comments_text');

		// Удаляем предпросмотра и саму форму ответа
		$('#answer_comment').parent().slideUp("normal", function(){
			
			if (comment.submit_data['url'] == 'edit') 
				$('#answer_comment').parent().html(comment.tmp_text).slideDown();

			$('#answer_comment').remove();
			$('#post_preview').remove();

			$('#forum_border_'+self.submit_data['comm_id']+' td').removeClass('forum_border_color');

			comment.submit_reset();
			
			if (typeof(callback) == 'function') callback();
		});
		
	},

	/**
	 * Скрывает и разворачивает дочерние комментарии, при клике по кнопке "скрыть комментарии" или "показать комментарии"
	 *
	 * @return void
	 */
	toggle_child: function(pid) {
		
		var t = $('#toggle_child_'+pid).text();
		
		if ($('#comm_'+pid+' > div.main_post_wr').css('display') == 'none') {
			$('#toggle_child_'+pid).text(t.replace('показать', 'скрыть'));
			$('#comm_'+pid+' > div.main_post_wr').slideDown();
		} else {
			$('#toggle_child_'+pid).text(t.replace('скрыть', 'показать'));
			$('#comm_'+pid+' > div.main_post_wr').slideUp();
		}
	},

	/**
	 * Проверяем на валидность и отображаем ошибки, если они были
	 * 
	 * @return void
	 */
	validate: function() {
		
		// Получаем
		if (this.submit_data['comm_id']) id = 'answer_comments_text';
		else id = 'add_comments_text';
		var text = tinyMCE.get(id).getContent();

		// Если текст пустой, выводим сообщение об ошибке
		if (text == "" || text.replace('<p>&nbsp;</p>','') == "") {
			$('#'+id+'_error').show();
			return false;
		} // Иначе скрываем сообщение об ошибке
		else {
			$('#'+id+'_error').hide();
		}

		if (this.submit_data['url'] == 'edit') {
			// Если редактируемый текст не изменился, говорим фэлс
			if (comment.tmp_text.replace(/^[ \t\n\r\0]+/g, '').replace(/[ \t\n\r\0]+$/g, '') == text.replace(/^[ \t\n\r\0]+/g, '').replace(/[ \t\n\r\0]+$/g, '')){
				comment.hide();
				return false;
			}

			this.submit_data['edit_desc'] = $('#desc_edit_text').val();
		}

		// Если ошибок не было, заносим сообщение в массив
		this.submit_data['content'] = text;

		return true;
	},

	/**
	 * Плавно прокручивает скролл до указанного комментария
	 * 
	 * @param comment_id если число, то ID комментария, до которго нужно прокрутить скролл, иначе ID любого элемента
	 * @param position позиция на экране, в которой должен оказатся требуемый элемент. Может быть top(по дефолту) или center
	 * @return void
	 */
	scroll_slideTo: function(comment_id, position){

		if (typeof(comment_id) == 'number') comment_id = 'comm_'+comment_id;

		if (position == 'center') {
			var slideTo = $('#'+comment_id).offset().top - $(window).height()/2;
		} else if (position == 'top_if_need') {
			var slideTo = $('#'+comment_id).offset().top;
			if (Math.abs($(window).scrollTop() - slideTo) < 600) return;
		} else {
			var slideTo = $('#'+comment_id).offset().top;
		}

		$("html:not(:animated),body:not(:animated)").animate({scrollTop: slideTo-130});
	},

	inc: function() {
		$('#comments_count').text(parseInt($('#comments_count').text())+1);
	},

	dec: function() {
		$('#comments_count').text(parseInt($('#comments_count').text())-1);
	},

	/**
	 * Отправляет комментарий на сервер
	 *
	 * @param url необязятельный, по умолчанию берётся из this.submit_data['url']
	 * @return void
	 */
	submit: function(url, is_root, author_id, content_id, record_type) {

		// Проверяем поле на валидность
		if (comment.submit_data['url'] != 'del' && comment.submit_data['url'] != 'recovery')
			if (!this.validate()) return;

		if (!url) url = this.submit_data['url'];
		$.ajax({type: 'POST', url: current_domain+'comment/'+url+'/', dataType: 'json', data: this.submit_data,
		   success: function(data)
		   {
				if(data.error != '') {
					alert(data.error);
				} else {

					var pid = comment.submit_data['comm_id'];

					if (comment.submit_data['url'] == 'recovery')
					{
						$('#comm_text_'+pid).slideUp(function(){
							$('#comm_text_'+pid).html(data.text);
							$('#comm_inner_'+pid+' > .post_reply').show();
							$('#comm_inner_'+pid+' > .fr').show();
							comment.submit_reset();
							$('#comm_text_'+pid).slideDown();
						});
						comment.inc();
						return;
					}
					else if (comment.submit_data['url'] == 'del')
					{
						if (data.is_author)$('#comm_text_'+pid).html('<p>Комментарий был удалён автором. <a href="#" onclick="comment.recovery('+pid+', '+author_id+', '+content_id+', \''+record_type+'\');return !1;">Восстановить</a></p>');
						else $('#comm_text_'+pid).html('<p>Комментарий был удалён модератором. <a href="#" onclick="comment.recovery('+pid+', '+author_id+', '+content_id+', \''+record_type+'\');return !1;">Восстановить</a></p>');
						
						$('#comm_inner_'+pid+' > .post_reply').hide();
						$('#comm_inner_'+pid+' > .fr').hide();
						$('#comm_inner_'+pid+' > .small').hide();
						comment.submit_reset();
						comment.dec();
						return;
					}
					else if (comment.submit_data['url'] == 'edit')
					{
						// Редактируемый комент
						comment.tmp_text = tinyMCE.get('answer_comments_text').getContent();
						comment.tmp_text = comment.tmp_text.replace(/&lt;!--.*?--&gt;/i, '');
						comment.tmp_text = comment.tmp_text.replace(/<!--.*?-->/i, '');

						var desc_edit_text = comment.submit_data['edit_desc']
						comment.hide();

						if (data.is_author) $('#comm_inner_'+pid+' > .small').html('Отредактировано автором. '+data.datetime).show();
						else {
							var t = desc_edit_text ? '<br />Причина: "'+desc_edit_text+'"' : '';
							$('#comm_inner_'+pid+' > .small').html('Отредактировано модератором ('+data.userlink+') ' + data.datetime + t).show();
						}

						return;
					}
					else if (comment.submit_data['url'] == 'add') 
					{
						// Если тру, значит отправлялся из главной (нижней) формы
						if (!is_root)
						{
							comment.hide(function(){
								// Вставляем новый комент
								log(pid);
								$('#comm_'+pid).append(data.item);
								comment.scroll_slideTo(data.comment_id, 'top_if_need');
							});
						}
						// Иначе если родительский id == 0 то значит комментарий отправлялся с нижней формы
						// Добавляем новый комментарий в самый низ
						else
						{
							try {
								tinyMCE.get('add_comments_text').setContent('');
							} catch(e) {}

							data.item = data.item.replace(/&lt;!--.*?--&gt;/i, '');
							data.item = data.item.replace(/<!--.*?-->/i, '');
							$('#post_comments_wr').append(data.item);
							$('#add_comments_preview').text('');
							comment.submit_reset();
						}
						comment.inc();
					}
				}
		   },
		   error: function(data, status, e) {
		   }
		 });
	},

	submit_reset: function() {
		
		// Очищаем данные о текущем комментарии
		comment.submit_data['comm_id'] = 0;
		comment.submit_data['content'] = '';
		comment.submit_data['url'] = 'add';
		comment.submit_data['edit_desc'] = '';
	},

	/**
	 * Показывает провеью комментария
	 * 
	 * @return void
	 */
	preview: function() {

		// Проверяем поле на валидность
		if (!this.validate()) return;

		$('#post_preview').remove();

		if (this.submit_data['comm_id']) $('#answer_comment').prepend(this.form_preview);
		else $('#add_comments_preview').prepend(this.form_preview);
		
		$('#post_preview_text').html(this.submit_data['content']);

		$('#preview_author_post_ava').html(this.user_data['avatar']);
		$('#preview_about_author').prepend(this.user_data['link']);
	},

	/**
	 * Редактирование комментария
	 *
	 * @param div_id ID дива, который редактируется
	 * @return void
	 */
	edit: function(div_id, author_id, content_id, record_type) {

		// Если кликают по той же кнопки "Редактировать", выходим из функци
		if (this.submit_data['comm_id'] == div_id && this.submit_data['url'] == 'edit') return;

		// Скрываем текущую открытую форму комментариев
		this.hide(function(){comment.edit(div_id);});
		if (this.submit_data['comm_id'] > 0) return;

		// Запоминаем текущиe параметры
		this.submit_data['comm_id'] = div_id;
		this.submit_data['url'] = 'edit';

		this.submit_data['author_id']   = author_id;
		this.submit_data['content_id']  = content_id;
		this.submit_data['record_type'] = record_type;

		$('#comm_text_'+div_id).slideUp(function(){

			comment.tmp_text = $('#comm_text_'+div_id).html();
			$('#comm_text_'+div_id).html(comment.form);
			if (comment.user_data['is_user'] == 2) $('#edit_desc').show();
			$('#answer_comments_text').val(comment.tmp_text);
			$('#answer_comment > .user_plazka').hide();
			$('#answer_button').val('Готово');

			$('#comm_text_'+div_id).slideDown(function(){
				comment.tinyMCE('answer_comments_text', 'edit', 0);
			});

			// Устанавливаем фокус
			if (tinyMCE.getInstanceById('answer_comments_text'))
				tinyMCE.execCommand('mceFocus', false, 'answer_comments_text');
		});
	},

	/**
	 * Удаление комментария
	 *
	 * @param div_id ID дива, который требуется удалить
	 * @return void
	 */
	del: function(div_id, author_id, content_id, record_type) {
		$.prompt('Вы действительно хотите удалить этот комментарий?',{buttons: {'Да': true, 'Нет': 0},
			submit: function(v) {
			if(!v) {
				$.prompt.close();
				return;
			}
			comment.submit_data['comm_id'] = div_id;

			comment.submit_data['author_id']   = author_id;
			comment.submit_data['content_id']  = content_id;
			comment.submit_data['record_type'] = record_type;

			comment.submit_data['url'] = 'del';
			comment.submit(false, false, author_id, content_id, record_type);
		}});
	},

	/**
	 * Восстановление комента
	 *
	 * @return void
	 */
	recovery: function(div_id, author_id, content_id, record_type){

		comment.submit_data['comm_id'] = div_id;

		comment.submit_data['author_id']   = author_id;
		comment.submit_data['content_id']  = content_id;
		comment.submit_data['record_type'] = record_type;

		comment.submit_data['url'] = 'recovery';
		comment.submit(false, false, author_id, content_id, record_type);
	}
}

/**
 * Всплывающие окна
 */
var popup = {
	get: function(url, data, callback, type) {
		if (!url) url = location.href.split('#')[0];
		if (!type) type = 'GET'
		this.show('loading');
		var p = this;
		$.ajax({
			type: type,
			url: url,
			dataType: "json",
			data: data,
			timeout: 30000,
			success: function(data) {
				p.show(data.html);
				if (typeof(callback) == 'function') callback();
			},
			error: function() {
				p.show('error');
			}
		});
	},

	post: function(url, data, callback) {
		this.get(url, data, callback, 'POST');
	},

	close: function() {
		$('#ed_popup_wr').hide();
	},

	show: function(html) {
		if (!$('#ed_popup_wr').length) {
			var t = this;
			$('body').append('<div id="ed_popup_wr"><div class="opa"></div><div class="ed_popup_content">\
				<div class="top_popup"><div class="top1"></div><div class="top2"></div><div onclick="popup.close();" title="Закрыть" class="close_popup"></div></div>\
				<div id="ed_popup_error" style="display:none;padding:40px 0px;text-align:center;" class="content1">Произошла непредвиденная ошибка. Попробуйте позже.<br /><br /><a href="#close" onclick="popup.close();return !1;">Закрыть</a></div>\
				<div id="ed_popup_loading" style="display:none;padding:40px 0px;text-align:center;" class="content1"><img src="/src/i/ajax-loader.gif" title="Идёт загрузка..." alt="Идёт загрузка..." /><br /><br />Пожалуйста подождите, идёт загрузка...</div>\
				<div id="ed_popup_content" style="display:none" class="content1"></div>\
				<div id="ed_popup_content_grey" class="content_grey" style="display:none"></div>\
				<div id="ed_popup_bottom" class="bottom_popup"><div class="bottom1"></div><div class="bottom2"></div></div>\
				</div></div>');
			$(document).unbind('keyup').bind('keyup', function(e){if (e.keyCode == 27) {t.close();}});
		}

		if (html == 'loading') {
			$('#ed_popup_loading').show();
			$('#ed_popup_content').hide();
			$('#ed_popup_content_grey').hide();
			$('#ed_popup_error').hide();
			$('#ed_popup_bottom').attr('class', 'bottom_popup');
		} else if (html == 'error') {
			$('#ed_popup_loading').hide();
			$('#ed_popup_content').hide();
			$('#ed_popup_content_grey').hide();
			$('#ed_popup_error').show();
			$('#ed_popup_bottom').attr('class', 'bottom_popup');
		} else if (html) {
			$('#ed_popup_error').hide();
			$('#ed_popup_loading').hide();
			$('#ed_popup_content').html(html);
			$('.ed_popup_content').css('width', parseInt($('#ed_popup_content > div').css('width'))+30);

			// Если в html найден .content_grey, то перемещаем этот div
			if ($('.content_grey').length > 1) {
				$('#ed_popup_content_grey').html($('.content_grey:eq(0)').html()).show();
				$('.content_grey:eq(0)').remove();
				$('#ed_popup_bottom').attr('class', 'bottom_popup1');
			} else {
				$('#ed_popup_content_grey').hide();
				$('#ed_popup_bottom').attr('class', 'bottom_popup');
			}

			$('#ed_popup_content').show();
		}

		$('#ed_popup_wr').show();
	}
}

var wall = {
	set_events: function(){
		$('.block_wall .search_pager a').unbind('click');
		$('.block_wall a.wall_delete').unbind('click');
		$('.block_wall a.wall_restore').unbind('click');
		$('.block_wall a.wall_reply').unbind('click');
	
		$('.block_wall .search_pager a').click(function(){
			wall.get_list($(this));
			return false;
		});
		$('.block_wall a.wall_delete').click(function(){
			wall.delete_message($(this))
			return false;
		});
		$('.block_wall a.wall_restore').click(function(){
			wall.restore_message($(this))
			return false;
		});
		$('.block_wall a.wall_reply').click(function(){
			wall.show_reply();
			return false;
		});
	},
	ajax_loader : '<img class="wall_ajax_loader" style="height:15px;" src="/src/i/ajax-loader.gif" />',
	show_reply : function() {
		$('.block_wall div.wall_new_message').show();
		$('.block_wall div.wall_empty').hide();
		$('.block_wall a.wall_reply').hide();
		return false;
	},
	hide_reply : function() {
		$('.block_wall div.wall_new_message').hide();
		$('.block_wall a.wall_reply').show();
		return false;
	},
	get_list: function(obj, callback) {
		if (obj.attr('class') == 'page_active') return;
		$.ajax({type: 'GET', url: obj.attr('href'), dataType: 'json',
			success: function(data) {
				$('.block_wall .wall_list').html(data.entries);
				$('.block_wall .search_pager').html(data.paging);
				wall.set_events();
				wall.check_width();
				if (callback) callback(data);
			}
		});
	},
	delete_message : function (obj) {
		var parent = $(obj).parent('.small_grey_txt');
		parent.append(wall.ajax_loader);
		$.ajax({type: 'GET', url: obj.attr('href'), dataType: 'json',
			success: function(data) {
				$('.wall_ajax_loader',parent).remove();
				if('undefined' != typeof(data.error))
				{
					if(data.error) {
						alert(data.error);
					} else {
						var wall_message_node = $('#wall_message_' + data.message_id);
						$('.wall_message_content',wall_message_node).hide();
						$('div.wall_restore',wall_message_node).remove();
						if ('undefined'!=typeof(data.restore)) {
							wall_message_node.append('<div class="pro_item_wall_txt wall_restore">' + data.restore + '</div>');
						}
						wall.set_events();
						wall.check_width();
					}
				}
			},
			error : function(data, status, e) {
				$('.wall_ajax_loader',parent).remove();
			}
		});
	},
	restore_message : function (obj) {
		var parent = $(obj).parent('.small_grey_txt');
		parent.append(wall.ajax_loader);
		$.ajax({type: 'GET', url: obj.attr('href'), dataType: 'json',
			success: function(data) {
				$('.wall_ajax_loader',parent).remove();
				if('undefined' != typeof(data.error))
				{
					if(data.error) {
						alert(data.error);
					} else {
						var wall_message_node = $('#wall_message_' + data.message_id);
						$('.wall_message_content',wall_message_node).show();
						$('div.wall_restore',wall_message_node).remove();
						wall.set_events();
						wall.check_width();
					}
				}
			},
			error : function(data, status, e) {
				$('.wall_ajax_loader',parent).remove();
			}
		});
	},
	add_message : function(form, id) {
		var text = $.trim(tinyMCE.get(id).getContent().replace('<p>&nbsp;</p>',''));
		// Если текст пустой, выводим сообщение об ошибке
		if (''==text) {
			$('.error', $(form).parent('.wall_new_message')).show();
			return false;
		} // Иначе скрываем сообщение об ошибке
		else {
			$('.error', $(form).parent('.wall_new_message')).hide();
		}
		$('.btn',$(form)).attr('disabled', 'disabled');
		$('img.wall_reply_ajax',$(form)).show();
		tinyMCE.triggerSave();
		$.ajax({
			type: 'POST',
			url: form.action,
			data: $(form).serialize(),
			dataType: 'json',
			success: function(data){
				$('img.wall_reply_ajax',$(form)).hide();
				if('undefined' != typeof(data.error))
				{
					if(data.error) {
						alert(data.error);
					} else {
						var a = tinyMCE.get( id );
						a.setContent('');
						wall.hide_reply();
						$('.block_wall .wall_list').html(data.entries);
						$('.block_wall .wall_pager').html(data.paging);
						wall.set_events();
						wall.check_width();
					}
				}
				/*
				// обновление картинки с капчей, сброс значений полей формы
				var hash = $('#captcha_chat_code').val();
				$('#captcha_chat_img').attr('src', '/captchaimg.php?code='+hash+'&r='+new Date().getTime()) 
				$('#captcha_chat_text').val('');
				*/
				$('.btn').attr('disabled', '');
			},
			error: function(data, status, e) {
				//alert('Во время добавления произошла ошибка');
				//var a = tinyMCE.get( id );
				//a.setContent('');
				//wall.hide_reply();
				$('img.wall_reply_ajax',$(form)).hide();
				$('.btn',$(form)).attr('disabled', '');
			}
		});
	},

	check_width: function(){
		$('img', '.wall_list').each(function(i){
			if($(this).attr('width') > 212){
				$(this).attr('width', 212);
				$(this).removeAttr('height');
			}
		});
	}
}

/**
 * Загружает аудиоплеер 
 *
 * @param file - полный путь до прослушиваемого файла
 * @param title - Заголовок аудиотрека
 * @param current_url - url текущего пользователя или сети
 * @param div - див в который будет прогружен плеер
 *
 */
function audio_play(pid, did, use_pid_how_did){
	if (use_pid_how_did == true) {
		var divid = pid;
	} else {
		var divid = (did)?did:'audioplayer_u';
	}
	
	var item = $('#'+pid);
	var url = $('.apl_url', item).attr('value');
	
	$.ajax({
		type: 'GET',
		url: url,
		data: '',
		dataType: 'json',
		success: function(data){
			if(data.file) {
				vplay(data.file, data.title, divid, data.autoplay, pid)
			}
		},
		error: function(data, status, e) {}
	});
}


function vplay(url, title, divid, autoplay, idplayer){
	// hide another player
	$('.ajax_preloader_for_audio').find('object').remove();

	var ap = (autoplay && autoplay==1) ? "&form=onplay":""
	var flashvars = {comment:title,st:"/uppodplayer/settings/audio.xml?typeAJAX_=1"+ap,file:url,uid:idplayer};
	var params = {bgcolor:"#ffffff",allowFullScreen:"true",allowScriptAccess:"always",wmode:"transparent",play:"true"};
	var attributes = {id:divid+'_id', name:divid+'_name'};
	
	$('#'+divid).addClass('ajax_preloader_for_audio').html('<div id="audioplayer_replace">Необходимо <br /><a href="http://www.adobe.com/go/getflashplayer" target="_blank">обновить flash-плеер</a></div>');	
	swfobject.embedSWF("/src/ext/uppod/player.swf", "audioplayer_replace", "210", "80", "9.0.115.0", false, flashvars, params, attributes);
}

function uppodTheEnd(playerID) {
	info = $('#'+playerID).next('.audio_pl_item') 

	if(info.length == 0) {
		info = $($('#'+playerID).parent()).find('.audio_pl_item')
	}
	
	audio_play(info.attr('id'))
}

/**
 * Скругляет углы // id блока, радиус, тип, если надо скруглять контент
 */
function set_corner(block, size, type, is_content) {
	var bl = $('#'+block)
	$('#'+block).corner(type + ' ' + size + 'px')
	if('true' === is_content) {
		$('.bcontent', bl).corner(type + ' bottom ' + size + 'px')
	}
}

/**
 * Вычесляет является ли элемент дочерним, 
 * элементы в виде ссылок на объекты
 *
 * @param n - предполагаемый дочерний элемент
 * @param parent - родительский элемент
 */
function isChild(n, parent) {
	if((n) && (n != parent)) {
		list = $('*',$(parent))
		for(var i=0,e; e=list[i]; i++) {
			if(e==n)
				return true
		}
	}
	return false;
}

/**
 * Выбирает количественное существительное, исходя из указанных данных
 */
function pluralize($cnt, $form1, $form2, $form3) {
	if (1 == $cnt % 10 && 11 != $cnt) {
		return $form1
	} else if (5 <= $cnt && 20 >= $cnt) {
		return $form3
	} else if (2 == $cnt % 10 || 3 == $cnt % 10 || 4 == $cnt % 10) {
		return $form2
	}
	return $form3
}


function ShowHide(id, img){	
	if ( document.getElementById(id).style.display == "none" ){
		var left = document.getElementById(img).offsetLeft;
		var top = document.getElementById(img).offsetTop;
		document.getElementById(id).style.top = (top+25)+'px';
		document.getElementById(id).style.left = left+'px';
		document.getElementById(id).style.display = "block";
	} else{
		document.getElementById(id).style.display = "none";
	}
}

function DeleteBlock( name, message ) {
	window.parent.delete_block_from_child(name, message);  
}

function pr(obj, maxlev, lev){
	var cur_lev = lev || 0;
	maxlev = maxlev || 10;
	var nbsp = '';
	for (var j=0; j<cur_lev; j++){
		nbsp += '&nbsp;&nbsp;&nbsp;&nbsp;';
	}
	var hre = '<a href="#">отчистить</a>';
	var div = '<div id="debug_js">'+hre+'<br /></div>';
	
	if (!$('#debug_js').size()){
		$('body').append(div);
		$('#debug_js > a').live('click', function(){$(this).parent().html(hre + '<br />');return false;});
	}
	
	if (typeof(obj) == 'string' || typeof(obj) == 'number' ){
		$('#debug_js').append(nbsp + decodeURI(obj) + '<br />');
	} else {
		for (var i in obj){
			if (typeof(obj[i]) == 'string' || typeof(obj[i]) == 'number' ){
				try{
					$('#debug_js').append( nbsp + i + ' = ' + decodeURI(obj[i]) + '<br />');
				} catch (ex){
					$('#debug_js').append( nbsp + i + ' = ' + obj[i] + '<br />');
				}
				
			} else if (typeof(obj[i]) == 'boolean'){
				$('#debug_js').append( nbsp + i + ' = ' + (obj[i] ? 'true' : 'false') + '<br />');
			} else {
				$('#debug_js').append( nbsp + i + ' =&gt; <br />');
				if (cur_lev < maxlev){
					pr(obj[i], maxlev, cur_lev+1);
				}
			}
		}
	}
}

function get_notice_function_inaccessibly(){
	var user_notice = new notice();
	user_notice.add('Извините, но данная функция недоступна, т.к. ваш электронный адрес не подтвержден!<br><a href="'+logged_domain+'?idemail=send">Подтвердить e-mail!</a>','1', 0);				
	var arr_notice = [];
	arr_notice = user_notice.get();
	user_notice.del();
	for( var i in arr_notice ){
		if ( i != 'indexOf'){
			$('body').append(arr_notice[i]);	
		}
	}
}



/*** классы ***/

var stop_event = function(event) {
	event.preventDefault()
	event.stopPropagation()
	event.cancelBubble = true;
}

var proc_text = {
	script : function (val){
		val = val.replace(/<script/gi, '&lt;script');
		return val.replace(/<\/script/gi, '&lt;/script');
	},
	tag : function (val){
		val = val.replace(/</g, '&lt;');
		val = val.replace(/"/g, '&quot;');
		return val.replace(/>/g, '&gt;');
	}
}



/*** Выполняем действия непосредственно после инициализации дом дерева ***/

$(function () {
	$('.block_hide').click(function() {
	
		f = $(this).parents('.tblock') 
		$('.bcontent', f).toggle()
		
		if ($(this).html() == 'скрыть') {
			$(this).html('показать')
		} else {
			$(this).html('скрыть')
		}
		
	})
})

$(function () {
	$('.fl_menu').each(function () {
		var time = 150
		var hideDelay = 100

		var hideDelayTimer = null

		var beingShown = false
		var shown = false
		var fllink = $('.fl_link', this)
		var flpopup = $('.fl_popup', this).css('opacity', 0)

		$([fllink.get(0), flpopup.get(0)]).mouseover(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
			if (beingShown || shown) {
				return
			} else {
				beingShown = true
				flpopup.css({display: 'block'}).animate({opacity: 1}, time, 'swing', function() {
					beingShown = false
					shown = true
				});
			}
			return false
		}).mouseout(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer)
			hideDelayTimer = setTimeout(function () {
				hideDelayTimer = null
				flpopup.animate({opacity: 0}, time, 'swing', function () {
					shown = false
					flpopup.css('display', 'none')
				})

			}, hideDelay)
			return false
		})
		
	})
})

$(function () {
	$('.mainnotice').each(function () {
		var notices = $('.notice', this).css({
			'left': $(document).width()/2 - $('.notice').width()/2,
			'display': 'block'})
		var notice_close = $('.close', this)		
		
		$([notice_close.get(0)]).click(function() {
			var g = 1
			
			$.getJSON("/notice/del/"+$(notices).attr('id'), function() {
				notices.animate({opacity: 0}, 300, 'swing', function() {$(notices).remove();})
				return false
			})
		})
	})
})

function del_link_function(ev, mess, ajax){
	res = confirm('Вы уверены что хотите удалить '+mess+'?')
	if (res && ajax) {
		$.getJSON(ev.target.href, null, function(data){
			if (data.ok == true) {
				$(ev.target).parents('.content_panel').html('<small>удалено</small>').parent().find('.pro_img_icon').html('<img src="/src/i/noimage.png" alt="" />');
			} else {
				$.prompt('Произошла ошибка. Попробуйте повторить.');
			}
		});
		return false;
	} else {
		if(!res){stop_event(ev);} 
		return res;
	}
}

$(function() {
	$("a.delete").each(function(){
		a = $(this);
		if (!a.hasClass("js_dont")) {
			a.unbind('click', del_link_function )
			a.click(function(ev){return del_link_function( ev, $(this).attr('rel'), $(this).hasClass('ajax') );})
		}
	})
})

function rating_change( action, param, record, type ) {
	$('.rating_dec_'+record+'_'+type).removeClass('voteup').addClass('voteup_disable').attr('onclick', 'return false');
	$('.rating_inc_'+record+'_'+type).removeClass('votedown').addClass('votedown_disable').attr('onclick', 'return false');
		
	$.ajax({
		type: 'GET',
		url: '/rating/'+action+'/'+param,
		data: '',
		dataType: 'json',
		success: function(data){
			if ( data.rating>0 ){
				$('.rating_count_'+record+'_'+type).html( data.rating );
			} else {
				$('.rating_count_'+record+'_'+type).html( data.rating );
			}
		},
		error: function(data, status, e) {
	  
		}
	});
}

function disable_inputs(form){
	
	$('input[type="submit"],input[type="button"]', $(form)).each(function(ind, el){el.disabled="disabled"});
	return true;
}
		 
//*********************************** Хэлпер **********************************/
helper = {
	
	helpers: [],    //очередь сообщений
	debounceDelay: 1, //задержка в секундах для предотвращения многократного появления сообщения
	showDelay: 10,   //задержка сообщения в секундах по умолчанию
	showDelayTimer: 'timeHelper',   //метка таймера
	is_timer: null,  //если таймер установлен
	
	showBlock: null, //блокировка для анимации
	
	idHelper: 'helper', //идентификатор контейнера на странице
	
	push: function (text, time){
		var item = []
		item.text = text
		item.time = (time)?time:helper.show_delay
		return helper.helpers.push(item)
	},
	
	shift: function (index){
		return helper.helpers.shift()
	},
	
	showDebounced: function (text, timer) {
		
		if(!timer) timer = helper.showDelay; 
				
		helper.push(text, timer)
		
		if(helper.is_timer) {
			helper.stop()
		} else {
			helper.start()
		}
	},
	
	start_timer: function (item) {  
		var cnt =  item.time * 1000; 
		
		helper.is_timer = $(helper).oneTime(cnt, helper.showDelayTimer, function() {helper.stop()})
		helper.showBlock = null                    
		if(helper.helpers.length > 0) helper.stop();
	},
		
	start: function () {      
		if(helper.showBlock) return
		helper.showBlock = true
		var item = helper.shift()
		$('#'+helper.idHelper).children('.top_popup_text').html(item.text)
		$('#'+helper.idHelper).animate({top: "0px"}, 300, "linear", function() {helper.start_timer(item)})
	},
	
	stop: function () {
		$('#'+helper.idHelper).animate({top: "-57px"}, 300, helper.stop_timer );      
	},
	
	stop_timer: function () {
		if (helper.is_timer) {
			$(helper).stopTime(helper.showDelayTimer)
			helper.is_timer = null;
		}
		if(helper.helpers.length > 0) helper.start(); 
	}
}
			
$(document).ready( function() {
	helper.show = $.debounce(helper.showDebounced, helper.debounceDelay*1000 );
	$('body').append('<div id="helper"><div class="top_popup_opacity_block"></div><div class="top_popup_opacity_block_green"></div><div class="top_popup_text"></div></div>');
	$('#helper').click(helper.stop);
});
//*******************************************
/**
 * @author http://www.tigir.com/addbookmark.htm
 */
function addBookmark(url, title)
{
	if (!url) url = location.href;
	if (!title) title = document.title;

	if (navigator.appName == "Netscape" && (typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) { //Gecko
		window.sidebar.addPanel (title, url, "");
	} else if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) { //IE4+
		window.external.AddFavorite(url, title);
	} else if (window.opera && document.createElement) { //Opera7+
		var a = document.createElement('A');
		if (!a) return false; //IF Opera 6
		a.setAttribute('rel','sidebar');
		a.setAttribute('href',url);
		a.setAttribute('title',title);
		a.click();
	} else {
		alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
		return false;
	}
	return true;
}
//************ Панель юзера ******************
function class_UserPanel() {
	
	// инициализация панели. Основные эффекты
	this.init = function() {
		// сервисы
		var height = parseInt($("#top_services").height()) - parseInt($("#top_small_services").height());
		var show_panel = false;
		var in_panel = false;
		var in_tab_panel = false;
		$('#top_panel').mouseenter(function(){in_panel = true});
		$('#top_panel').mouseleave(function(){
			in_panel = false;
			setTimeout(function(){
				if (!in_panel && show_panel) {
					$('#top_services').animate({
						"top": "-="+height+"px"
					}, {
						complete: function() {
							$('#top_services').hide();
							$('#top_small_services').show();
						}, duration:400
					});
					show_panel = false;
				}
			}, 200);
		});

		$('#top_small_services .services_header').mouseleave(function(){
			in_tab_panel = false;
		});
		
		$('#top_small_services .services_header').mouseenter(function(){
			in_tab_panel = true;
			setTimeout(function(){
				if (in_tab_panel) {
					$('#top_small_services').hide();
					$('#top_services').show();
					$('#top_services').animate({
						"top": "+="+height

					}, 400);
					show_panel = true;
				}
			}, 300);
			return false;
		});

		// выпадающий юзер-список
		$(".user_login_wr", ".enter_block1").bind('mouseleave', function(){
			$(".user_login_wr").fadeOut('fast');
			return false;
		});
		$("a.user_link_open", "#user_link_open").bind('mouseover', function(){
		   $(".user_login_wr").fadeIn('fast');
		   return false;
		});
	}

	// функция для кнопки добавления страницы в избранное
	this.add_to_bookmarks = function(url, tittle) {
		if (navigator.appName == 'Netscape') {
			window.sidebar.addPanel(tittle, url, "");
		} else if(navigator.appName == 'Microsoft Internet Explorer') {
			window.external.AddFavorite(url, tittle);
		} else {
			$.prompt("К сожалению Ваш браузер не поддерживает данную функцию!\nПопробуйте сочетание клавиш [CTRL] + [D] ", { 
				buttons: {
					'Ок': true
				} 
			});
		}
	}

	// функции для кнопок входа и выхода из сети
	this.join_leave_button = function(community_name) {
		var leave_ok = false;
		$('.center_controls_button a.leave_us, .center_controls_button a.join_us').click(function(ev){
			var tar = $(this);
			function update_counter_community(type) {
				if (type == 'inc') {
					$(".scroller_avatar .profile_cnt").each(function(){
						$(this).text(parseInt($(this).text())+1);
					});
				} else if (type == 'dec') {
					$(".scroller_avatar .profile_cnt").each(function(){
						$(this).text(parseInt($(this).text())-1);
					});
				}
			}

			if ($(this).hasClass('leave_us') && leave_ok == false) {
				$.prompt('Вы точно хотите покинуть сеть «'+community_name+'»?',
					{
						buttons: {'Да': true, 'Нет': false},
						submit: function(res){
							if (res == true) {
							   leave_ok = true;
							   $('.center_controls_button a.leave_us').click();
							}
						}
					}
				);
				return false;
			}

			$.getJSON(tar.attr('href') + '?typeAJAX_=1&jsoncallback=?', function(data){
				if (data.quited){
					var new_href = tar.attr('href').replace(/delete_from_friend_list$/, 'join');
					update_counter_community('dec');
					tar.removeClass('leave_us').addClass('join_us').attr('href', new_href).text('Вступить в сеть');
					helper.show('Очень жаль, что вы нас покидаете!<br/>\
								 Надеемся, вы еще вернетесь в нашу сеть «'+community_name+'».\
							   ');
				} else if (data.joined){
					var new_href = tar.attr('href').replace(/join$/, 'delete_from_friend_list');
					update_counter_community('inc');
					tar.removeClass('join_us').addClass('leave_us').attr('href', new_href).text('Покинуть сеть');
					helper.show('Поздравляем, вы стали полноправным участником сети «'+community_name+'»!<br/>\
								 Теперь вы можете добавлять в сеть видео, аудио, текст, фото и многое другое, а также оставлять комментарии и общаться с другими участниками сети.\
							   ');
					$('.add').unbind('click');
				}
			});
			return false;
		});
	}

	// функция для кнопки Вступить в сеть если не авторизован
	this.dont_join_button = function(community_name, login_href, register_href) {
		/*$('.center_controls_button a.join_us').click(function(){
			var login_link = '<a href="'+login_href+'">авторизоваться</a>';
			var register_link = '<a href="'+register_href+'">зарегистрироваться</a>';
			$.prompt("Чтобы вступить в сеть «"+community_name+"», вам необходимо "+login_link+" или "+register_link, {
				buttons: {
					'Ок': true
				}
			});
			return false;   
		});                 */
	}

	this.moderate_content = function() {
		$('#moder_mess').hover(function() {
			$('#moderate_items').fadeIn('fast');
			moderate_over_link = true;
			moderate_over_menu = false;
		}, function() {
			moderate_over_link = false;
			setTimeout("moder_checkHover()", 400);
		});

		$('#moderate_items').hover(function() {
			moderate_over_menu = true;
			moderate_over_link = false;
		}, function() {
			moderate_over_menu = false;
			setTimeout("moder_checkHover()", 400);
		});
	}

	this.list_community = function() {
		$('#user_community').hover(function() {
			$('#user_community_list').fadeIn('fast');
			community_over_link = true;
			community_over_menu = false;
		}, function() {
			community_over_link = false;
			setTimeout("community_checkHover()", 400);
		});

		$('#user_community_list').hover(function() {
			community_over_menu = true;
			community_over_link = false;
		}, function() {
			community_over_menu = false;
			setTimeout("community_checkHover()", 400);
		});
	}

	// выделил метод для создания скрола панелей с сетями
	//   scroll_panel = #scroll_all_comm
	//   scroll_ul    = #scroll_all_comm .popup_row_fc
	//	 container    = #scroll_all_comm
	this.create_scroll = function(container, scroll_panel, scroll_ul) {
		if ($(scroll_panel).hasClass("on")) {
			$(container).show(); // показываем для того, чтобы правильно заполнились параметры типа высоты и тп
			var height_container = $(scroll_panel).height();
			var list_net = $(scroll_ul);
			var timer_scroll_net;
			var top;
			var min_top = height_container - list_net.height();
			var but_scroll_up = $(container+" .scroll_up_hidden");
			var but_scroll_down = $(container+" .scroll_down");
			$(container).hide(); // после вычислений скрываем

			function reset_scroll_moder_net($this) {
				if (top >= 0 && $this.hasClass("scroll_up")) { // список уехал вверх до предельного значения
					clearInterval(timer_scroll_net);
					but_scroll_up.addClass("scroll_up_hidden").removeClass("scroll_up");
					return true;
				} else if (top <= min_top && $this.hasClass("scroll_down")) { // список уехал вниз до предельного значения
					clearInterval(timer_scroll_net);
					but_scroll_down.addClass("scroll_down_hidden").removeClass("scroll_down");
					return true;
				} else if (!$this.hasClass("scroll_up") && !$this.hasClass("scroll_down")) {
					return true;
				} else {
					but_scroll_up.removeClass("scroll_up_hidden").addClass("scroll_up");
					but_scroll_down.removeClass("scroll_down_hidden").addClass("scroll_down");
					return false;
				}
			}
			$(container+" .but_scroll").mouseenter(function(){
				var $this = $(this);
				if ($this.hasClass("scroll_up_hidden") || $this.hasClass("scroll_down_hidden")) {
					return false;
				}
				timer_scroll_net = setInterval(function(){
					top = parseInt(list_net.css('top'));
					if (!top) { // в IE почему-то Nan для top сначала
						top = 0;
					}
					if (reset_scroll_moder_net($this)) {
						return true;
					}
					if ($this.hasClass("scroll_down")) {
						top -= 3;
					} else if ($this.hasClass("scroll_up")) {
						top += 3;
					}
					top += 'px';
					list_net.css('top', top);
				}, 10);
			});
			but_scroll_up.add(but_scroll_down).mouseleave(function(){
				clearInterval(timer_scroll_net);
			});
		}
	}

	// инициализируем скролинг в выпадающем списке конструктора
	this.list_construct = function() {
		$(".to_construct_net, .to_construct[href='#']").click(function(){
				if ($(".popup_moder_net").css("display") == "none") {
					$(".popup_moder_net").fadeIn("fast");
				} else {
					$(".popup_moder_net").hide();
				}
				return false;
		});
		if ($("#scroll_all_comm").hasClass("on")) {
			this.create_scroll(".popup_moder_net", "#scroll_all_comm", "#scroll_all_comm .popup_row_fc");
		}
	}

	// инициализация скролинга для модерируемых сетей в выпадающем меню ника
	this.list_moder_nets = function() {
		$('.user_login_wr').show();
		this.create_scroll("#user_community_list", "#scroll_comm", "#scroll_comm .panel_popup_row");
		$('.user_login_wr').hide();
	}
}

// закрываем все popup пользователя при клике на другую область
$(document).ready(function(){ 
	$('body').click(
		function(ev){
			if( $(ev.target).parents('.user_popup').size() < 1 ){
				$('.user_popup').hide();
			}
		}
		
	);
});


//************ Расширенная поисковая форма *****************
$(document).ready(function(){
	/**
	 * Скрываем простую поисковую форму при нажатии на неё.
	 */
	$("#panel_search").click(function(){
		$("#search_panel_full").show();
		$("#small_top_search_opacity").focus();
	});

	/**
	 * События для отображения выпадающих меню в поиске
	 */
	$("#but_popup_search_cat").click(function(){
		$("#popup_search_cat").slideToggle("fast");
	});
	$("#but_popup_search_field").click(function(){
		$("#popup_search_field").slideToggle("fast");
	});
	$("#small_top_search_opacity").click(function(){
		$("#popup_search_field").hide();
		$("#popup_search_cat").hide();
	});

	/**
	 * Выбирает где искать.
	 * Только в соц сети или по всему сайту.
	 * В случае наличия поискового запроса сразу переходит к поиску, иначе меняет action у формы.
	 */
	$('#popup_search_field_href a').click(function(){
		$('#popup_search_field').hide();
		advSearchCurrent = $(this).attr("href").split("_")[1] == "1" ? 1 : 0;

		// Изменяем правое меню.
		if (advSearchCurrent == 1) {
			$('#search_field_cat_all a').click();
			$("#search_field_cat_community, #search_field_cat_users").hide();
		} else {
			$("#search_field_cat_community, #search_field_cat_users").show();
		}

		$('#only_current').val(advSearchCurrent);
		$("#popup_search_field_href a").each(function(){
			$(this).parent().removeClass("active");
		});
		$(this).parent().addClass("active");
		$("#but_popup_search_field").attr("class", "but_popup_search_field" + $(this).attr("href").split("_")[1]);
		var url = advSearchCreateURL();
		if ($("#small_top_search_opacity").val().length == 0) {
			return false;
		}
		$(this).attr("href", url);
	});

	/**
	 * Выбирает категорию для поиска.
	 * В случае наличия поискового запроса сразу переходит к поиску, иначе меняет action у формы.
	 */
	$("#popup_search_field_cat a").click(function(){
		$('#popup_search_cat').hide();
		advSearchCat = $(this).attr("href").split("_")[1];
		$("#popup_search_field_cat a").each(function(){
			$(this).parent().removeClass("active");
		});
		$(this).parent().addClass("active");
		$("#but_popup_search_cat").text($(this).text());
		var url = advSearchCreateURL();
		if ($("#small_top_search_opacity").val().length == 0) {
			return false;
		}
		$(this).attr("href", url);
	});

	/**
	 * функция для генерации урла для поисковой формы
	 */
	function advSearchCreateURL() {
		var url = advSearchTemplate + advSearchCat;
		$("#top_search_header_form").attr('action', url);
		url += "?q=" + $("#small_top_search_opacity").val();
		if (advSearchCurrent == 1) {
			url += "&only_current=1";
		}	
		return url;
	}
});
//*******************************************

//************ Авторизация *****************

with(mylogin = function(val) {}){         
	prototype.sender = false
	
	prototype.toggle = function() {
		$('#inbox_login').toggle()    
	}
	
	prototype.send_start = function() {
		$('#inbox_login input.fsubmit').attr('disabled','disabled')
		$('#login_ajaxloader').show()
		this.sender = true
	}
	prototype.send_stop = function() {
		$('#inbox_login input.fsubmit').attr('disabled','')
		$('#login_ajaxloader').hide()
		this.sender = false 
	}
	
	prototype.send = function() {
		this.send_start();
		$.ajax({
			type: 'POST',
			url: '/login',
			data: $("#login_form_send").serialize(),
			dataType: 'json',
			myobj: this,
			success: function(data){
				if(typeof(data.aErrors) != 'undefined')
				{
					if(data.aErrors != '') {
						var mess = 'Невозможно авторизоваться! <ol>'
						for(var i in data.aErrors){
							mess += '<li>' + data.aErrors[i] + '</li>'
						}
						mess += '</ol>'
						this.myobj.send_stop()
						$.prompt(mess, {buttons: {'Закрыть': true}})
					} else {
						window.location.reload();
					}
				} else {
					$.prompt('Внутренняя ошибка сервера! Попробуйте, пожалуйста, позже.',{buttons: {'Закрыть': true}})
					this.myobj.send_stop()
				}
			},
			error: function(data, status, e) {
				$.prompt('Внутренняя ошибка клиента, возможно вы уже авторизованы! Обновите страницу и попробуйте войти ещё раз.',{buttons: {'Закрыть': true}})
				this.myobj.send_stop()   
			}
		});
	}    
}
//**************
/* obsolete  $(document).ready(toltip_init); */
function toltip_init(){
	$("a.popup_question").hover(function(){toltip1_show(this)}, function(){toltip1_hide(this)});
}
function toltip1_show(div){
	$(div).children(".popup_question_window").show();
}

function toltip1_hide(div){
	$(div).children(".popup_question_window").hide();
}            

// defaults values for validator
jQuery.validator.setDefaults({
	errorClass: "bad_but",
	errorElement: "div",
	
	highlight: function(element, errorClass){
		$(element).addClass("warn");
	},
	unhighlight: function(element, errorClass) {
		$(element).removeClass("warn");
	}
});

$.fn.clearForm = function() {
  return this.each(function() {
 var type = this.type, tag = this.tagName.toLowerCase();
 if (tag == 'form')
   return $(':input',this).clearForm();
 if (type == 'text' || type == 'password' || tag == 'textarea')
   this.value = '';
 else if (type == 'checkbox' || type == 'radio')
   this.checked = false;
 else if (tag == 'select')
   this.selectedIndex = 0;
  });
};

//*******************************************

//************ Форум *****************

$(document).ready(function(){
	// вкладки
	$('#new_group').click(function(){
		$('div.new_section_content').show();
		$('#new_section').removeClass('active');
		$('#new_group').addClass('active');
		$('#form_new_group').show();
		$('#form_new_part').hide();
		return false;
	});
	$('#new_section').click(function(){
		$('div.new_section_content').show();
		$('#new_group').removeClass('active');
		$('#new_section').addClass('active');
		$('#form_new_part').show();
		$('#form_new_group').hide();
		return false;
	});
	
	var forum_form_add;
	$('#form_new_part a.cancel_last').click(function(){

		forum_form_add = $(this).parents('form');

		$.prompt('Вы точно хотите отменить создание нового раздела форума?',
			{
				buttons: {'Да': true, 'Нет': false},
				submit: function(res){
					if (res == true) {
						close_form_group_add();
						forum_form_add.clearForm();
					}
				}
			}
		);
			
		return false;
	});

	$('#form_new_group a.cancel_last').click(function(){
		$(this).parents('form').clearForm();
		return close_form_group_add();
	});

	function close_form_group_add() {
		var f = function(){
			$('div.new_section_content').hide();
			$('#new_section').removeClass('active');
			$('#new_group').removeClass('active');
		}

		if ($('#form_new_part:visible').size()){
			f();
			$('#form_new_part').show();
		} else if ($('#form_new_group:visible').size()) {
			f();
			$('#form_new_group').show();
		}

		return false;
	}    

	// ------ Разделы
	// -- удаление
	var url_part_delete;
	$(".delete_part_link", ".part_panel").click(function(){
		url_part_delete = $(this).attr("href");
		$.prompt('Вы действительно хотите удалить раздел форума «'+$(this).attr('rel')+'»?',
			{
				buttons: {'Да': true, 'Нет': false},
				submit: function(res){
					if (res == true) {
						window.location.href = url_part_delete;
					}
				}
			}
		);
		return false;
	});
	// -- редактирование
	var dom_part_title;
	var dom_part_dsc;
	var val_part_group_id;
	$("#but_part_save").click(function(){
		var id = $(this).parents("#template_part_edit").prev(".part_panel").attr("id").split('part_')[1];
		var old_group_id = $(this).parents(".forum_list").attr('id').split('group_')[1];
		
		dom_part_title    = $("a.bl", $(this).parents("#template_part_edit").prev(".part_panel"));
		dom_part_dsc      = $("div.forum_announce", $(this).parents("#template_part_edit").prev(".part_panel"));
		val_part_group_id = $("#template_part_edit #input_part_group_id").val();

		$.ajax({
			type: 'POST',
			url: '/forum/part_edit',
			dataType: 'json',
			data: {
				id: id,
				title: $("#template_part_edit #input_part_name").val(),
				dsc:   $("#template_part_edit #input_part_dsc").val(),
				group_id: val_part_group_id
			},
			success: function(data) {
				if (data.result == true) {
					dom_part_title.text($("#template_part_edit #input_part_name").val());
					dom_part_dsc.text($("#template_part_edit #input_part_dsc").val());
					$("#template_part_edit").prependTo("#forum_form_template");
					// если не менял группу, то страницу не перезагружаем
					if ((val_part_group_id != old_group_id) && (val_part_group_id != undefined)) {
						window.location = window.location;
					}
				}
			},
			error: function(data) {
				$("#template_part_edit").prependTo("#forum_form_template");
			}
		});
	});
	$(".edit_group", ".forum_list .part_panel").click(function(){
		$("#template_part_edit").show();
		var group_id = $(this).parents(".forum_list").attr('id').split('group_')[1];
		$("#template_part_edit #input_part_name").val($("a.bl", $(this).parents(".part_panel")).text());
		if ($("div.forum_announce", $(this).parents(".part_panel")).size() == 1) {
			$("#template_part_edit #input_part_dsc").val($("div.forum_announce", $(this).parents(".part_panel")).text());
		} else {
			$("#template_part_edit #input_part_dsc").val('');
		}
		$("#template_part_edit #input_part_group_id").val(group_id);
		$("#template_part_edit").insertAfter($(this).parents(".part_panel"));
	});
	$("#template_part_edit .cancel_last").click(function(){
		$("#template_part_edit").prependTo("#forum_form_template");
	});
	// -- перемещение
	$(".up, .down", ".forum_list .part_panel").click(function(){
		$("#template_group_edit").hide();
		var tmp = $(this).attr("id").split("Part_");
		var action = tmp[0];
		var id     = tmp[1];
		if ($(this).hasClass(action+"_hidden")) { // кнопка неактивна
			return false;
		} else {
			var id2 = 0;
			if (action == 'up') {
				id2 = $("#f_part_"+id).prev(".part_panel").attr("id").split('part_')[1];
			} else {
				id2 = $("#f_part_"+id).next(".part_panel").attr("id").split('part_')[1];
			}

			$.ajax({
				type: 'POST',
				url: '/forum/part_move/',
				dataType: 'json',
				data: {
					id: id,
					id2: id2,
					action: action
				},
				success: function(data){
					if (data.result == true) {
						forum_part_move("#f_part_"+id, action);
					}
				}
			});
		}
	});
	function forum_part_move(id, action) {
		switch (action) {
			case 'up':
				var prev = $(id).prev(".part_panel");
				$(id).insertBefore(prev);
				reset_up_down(id);
				break;
			case 'down':
				var next = $(id).next(".part_panel");
				$(id).insertAfter(next);
				reset_up_down(id);
				break;
		}
		function reset_up_down(id) {
			var forum_list_id = $('#'+$(id).parents('.forum_list').attr('id'));
			$('.part_panel .up', forum_list_id).removeClass('up_hidden');
			$('.part_panel .down', forum_list_id).removeClass('down_hidden');
			$('.part_panel:firts .up:first', forum_list_id).addClass('up_hidden');
			$('.part_panel:last .down:last', forum_list_id).addClass('down_hidden');
		}
	}

	// ------ Группы
	// -- удаление
	var url_group_delete;
	$(".delete_group_link", ".forum_list").click(function(){
		url_group_delete = $(this).attr("href");
		$.prompt('Вы действительно хотите удалить группу форума «'+$(this).attr('rel')+'»?',
		{
			buttons: {'Да': true, 'Нет': false},
			submit: function(res){
				if (res == true) {
					window.location.href = url_group_delete;
				}
			}
		}
	);
		return false;
	});
	// -- переименовывание
	var dom_group_title;
	var group_title_id;
	$("#but_group_save").click(function(){
		var tmp = $(this).parents(".forum_list").attr("id").split('group_');
		var id  = tmp[1];
		group_title_id = id;
		dom_group_title = $(".group_header", $(this).parents(".forum_list"));
		$.ajax({
			type: 'POST',
			url: '/forum/group_edit',
			dataType: 'json',
			data: {
				id: id,
				title: $("#template_group_edit #input_group_name").val()
			},
			success: function(data) {
				if (data.result == true) {
					dom_group_title.text($("#template_group_edit #input_group_name").val());
					$("#template_group_edit").prependTo("#forum_form_template");
					$("#select_group_name_"+group_title_id).text(dom_group_title.text());
					$("#select_create_group_name_"+group_title_id).text(dom_group_title.text());
				}
			},
			error: function(data) {
				$("#template_group_edit").prependTo("#forum_form_template");
			}
		});
	});
	$(".edit_group", ".forum_list .group_panel").click(function(){
		$("#template_group_edit").show();
		$("#template_group_edit #input_group_name").val($(".group_header", $(this).parents(".forum_list")).text());
		$("#template_group_edit").insertAfter($(this).parents(".group_panel"));
	});
	$("#template_group_edit .cancel_last").click(function(){
		$.prompt('Вы действительно хотите отменить изменения в названии группы?',
		{
			buttons: {'Да': true, 'Нет': false},
			submit: function(res){
				if (res == true) {
					$("#template_group_edit").prependTo("#forum_form_template");
				}
			}
		});
	});
	// -- перемещение
	$(".up, .down", ".forum_list .first_green_td").click(function(){
		$("#template_group_edit").hide();
		var tmp = $(this).attr("id").split("Group_");
		var action = tmp[0];
		var id     = tmp[1];
		if ($(this).hasClass(action+"_hidden")) { // кнопка неактивна
			return false;
		} else {
			$.ajax({
				type: 'POST',
				url: '/forum/group_move/',
				dataType: 'json',
				data: {
					id: id,
					action: action
				},
				success: function(data){
					if (data.result == true) {
						forum_group_move("#f_group_"+id, action);
					}
				}
			});
		}
	});
	function forum_group_move(id, action) {
		var heigth_selected = $(id).height();
		heigth_selected = parseInt(heigth_selected)+12;
		switch (action) {
			case 'up':
				var prev = $(id).prev(".forum_list");
				var heigth_prev = prev.height();
				heigth_prev = parseInt(heigth_prev)+12;
				prev.animate({"top" : "+="+heigth_selected},	300, "swing");		
				$(id).animate(
				{"top" : "-="+heigth_prev},
				300,
				"swing",
				function(){
					$(id).insertBefore(prev);
					$(id).add(prev).css("top", "");
					reset_up_down();
				}
			);
				break;
			case 'down':
				var next = $(id).next(".forum_list");
				var heigth_next = next.height();
				heigth_next = parseInt(heigth_next)+12;
				next.animate({"top" : "-="+heigth_selected},	300, "swing");
				$(id).animate(
				{"top" : "+="+heigth_next},
				300,
				"swing",
				function(){
					$(id).insertAfter(next);
					$(id).add(next).css("top", "");
					reset_up_down();
				}
			);
				break;
		}
		function reset_up_down() {
			$('.forum_list:not(.forum_list_ungroup) .first_green_td .up').removeClass('up_hidden');
			$('.forum_list:not(.forum_list_ungroup) .first_green_td .down').removeClass('down_hidden');
			$('.forum_list:not(.forum_list_ungroup):first .first_green_td .up').addClass('up_hidden');
			$('.forum_list:last .first_green_td .down').addClass('down_hidden');
		}
	}
});

//*******************************************

/**
 * Панелька с текстом для старых браузеров
 * 
 * @param val.panel - селектор для панельки
 * @param val.close - селектор для кнопки скрывающей панельку
 * @param val.mainpanel - селектор для формы которая находится ниже панели (для сдвига)
 */
with(IsOldBrowser = function(val) {
	this.$panel = val.panel
	this.$mainpanel = val.mainpanel
}){    
	prototype.$panel = ''
	prototype.$mainpanel = '' 
	
	prototype.$cookie_name = 'close_panel_is_oldbrs'
	
	prototype.$browser = ''
	prototype.$version = ''      
	prototype.$is_old = false
	
	/**
	 * Определяет старый ли браузер
	 */
	prototype.is_old_browser = function() {
		var $versions = $.browser.version.split('.');
		var $v1 = $versions[0]
		var $v2 = $versions[0] + '.' + $versions[1]
		// Internet Explorer
		if($.browser.msie == true) {
			this.$browser = 'Internet Explorer'
			this.$version = $v1 
			if($v1 == '6') return true;
		}
		// Mozilla
		if($.browser.mozilla == true) {
			this.$browser = 'Mozilla Firefox'
			this.$version = ''   
			if($v2 == '1.7') return true;
			if($v2 == '1.8') return true;               
		}
		// Opera
		if($.browser.opera == true) {
			this.$browser = 'Opera'
			this.$version = $v1   
			if($v1 == '6') return true; 
			if($v1 == '7') return true;
			if($v1 == '8') return true;                     
		}   
		// Safari
		if($.browser.safari == true) {
			this.$browser = 'Safari'
			this.$version = ''   
			if($v1 == '412') return true; 
			if($v1 == '416') return true; 
			if($v1 == '419') return true;        
			if($v1 == '522') return true;
			if($v1 == '523') return true;
			if($v1 == '525') return true;                
		}       
		return false;
	}
	
	prototype.check = function() {
		this.$is_old = this.is_old_browser()
		if(this.$is_old == true) {
			var $is_coockie = $.cookie(this.$cookie_name);
			if($is_coockie === null) {
				$(this.$panel+' #text').html('Ваша версия браузера «'+this.$browser+'» устарела! Скачать новую версию браузера можно <a href="/info/browsers/" onclick="">здесь</a> ')
				this.show()  
			}
			return true
		}    
		return false
	}
	
	prototype.show = function() {
		$(this.$panel).addClass('zindex20') 
		$(this.$mainpanel).animate({top: 56}, 400, 'swing')
		$(this.$panel).animate({opacity: 1}, 1000, 'swing')
		$('#top_banner').animate({top: 20}, 200, 'swing')
	}

	prototype.hide = function() {
		$.cookie(this.$cookie_name, '1', {'expires': 365, 'path': '/', 'domain': main_domain}) 
		$(this.$panel).animate( {opacity: 0}, 400, 'swing')
		$(this.$mainpanel).animate({top: 36}, 1000, 'swing')
		$(this.$panel).removeClass('zindex20')
		$('#top_banner').animate({top: 0}, 850, 'swing')
	}
	
}

function log(v){
	if (console){
		console.log(v);
	} else {
		pr(v);
	}
}

/* online/offline user status */
/*function ping_user_status() {
	$.get('/ping');
	setTimeout("ping_user_status()", 1000 * 60 * 2); // 2 минуты
}*/

function trim(str) {
	return str.replace(/^[ ]+/g,'').replace(/[ ]+$/g,'');
}

function show_hide_password( class_name_fields, class_name_link ){
	
	if( $('.'+class_name_fields).css('display') == 'none' ){
		$('.'+class_name_fields).show();
	} else{
		$('.'+class_name_fields).hide();
		$('#user_password').val('');
		$('#user_password_confirm').val('');
	}
	
}

/// Audio player - Аудио плеер ///
function class_uppod(name) {
	this.data	= false;

	this.init = function(url, autoShow, jqElem, width, success) {
		var self = this;
		var width = width;
		var success = success;

		$.ajax({
			type	: 'get',
			dataType: 'json',
			url		: url,
			data	: '',
			success	: function(data){
				self.data = data;
				if (autoShow == true) {
					self.show(jqElem, width, success);
				}
			},
			error: function(data, status, e) {
				jqElem.html('<small>Произошла ошибка. Попробуйте повторить</small>');
				uppodTheEnd(jqElem.attr('id'));
				jqElem.parent().show();
			}
		});
	}

	this.show = function(jqElem, width, success) {
		if ((typeof this.data.file != undefined) && this.data.file) {

			var id = jqElem.attr('id');

			var flashvars = {uid:id, comment:this.data.title, st:"/uppodplayer/settings/audio.xml?form=catalog&typeAJAX_=1", file:this.data.file};
			var params = {bgcolor:"#ffffff",allowFullScreen:"true",allowScriptAccess:"always",wmode:"transparent"};
			var attributes = {id:id, name:id, 'class':'uppod_player', 'style':'width:100%; max-width:'+width+'px; height:26px;'};

			swfobject.embedSWF("/src/ext/uppod/player.swf", id, width, "26", "9.0.115.0", false, flashvars, params, attributes);

			success();
		} else {
			jqElem.html('<small>Произошла ошибка. Попробуйте повторить</small>');
			jqElem.parent().show();
			uppodTheEnd(jqElem.attr('id'));
		}
	}
}

//////// Каталог - Catalog ////////
$(function(){
	
	// 1 - что-то проигрывается
	// 2 - что-то на паузе
	// 0 - ничего не играет
	var status = 0;
	$('.uppod_ctrl.play').click(function(){		

		var panelPlayer = $(this).parents('div:first');
		var forPlayer = $(this).parents('div:first').find('.uppod_panel > .uppod_player');
		var idPlayer  = forPlayer.attr('id');
		var cssClass  = $(this).parents('div:first').attr('class');

		cssClass = cssClass.replace(/hidden/i, "");
		cssClass = cssClass.replace(/ /i, "");

		if (str_pos(cssClass, '_act', 0) != false) { // click to pause
			status = 2;
			uppodSend(idPlayer,'pause');
			$(this).parents('div:first').removeClass(cssClass).addClass(str_replace('_act', '', cssClass));
			return false;
		} else if (forPlayer.is('object') && status == 2 && (panelPlayer.hasClass('cat_item_audio_last') || panelPlayer.hasClass('cat_item_audio'))) { // return to play
			status = 1;
			$(this).parents('div:first').removeClass(cssClass).addClass(cssClass + '_act');
			uppodSend(idPlayer,'play');
			return false;
		} else {
			status = 1;
			uppodStopAll(); // stop all players
			$('.cat_item_audio_last_act').removeClass('cat_item_audio_last_act').addClass('cat_item_audio_last');
			$('.cat_item_audio_act').removeClass('cat_item_audio_act').addClass('cat_item_audio');
			$('.uppod_panel').hide(); // hide all players
		}

		var self = $(this);
		if (forPlayer.is('div')) { // if don't initialize time ago, then create
			var player = new class_uppod();
			
			player.init(self.attr('lang'), true, forPlayer, $(this).hasClass('popular') ? 200 : 300,
					function() {
						self.parents('div:first').removeClass(cssClass).addClass(cssClass + '_act');
						self.parents('div:first').find('.uppod_panel').show();
					});
		} else {
			self.parents('div:first').removeClass(cssClass).addClass(cssClass + '_act');
			self.parents('div:first').find('.uppod_panel').show();
		}
		
	});
});

function uppodTheEnd(playerId) {
	uppodStopAll(); // stop all players

	$('.cat_item_audio_last_act').removeClass('cat_item_audio_last_act').addClass('cat_item_audio_last');
	$('.cat_item_audio_act').removeClass('cat_item_audio_act').addClass('cat_item_audio');

	$('.uppod_panel').hide(); // hide all players

	var nextPlayer = $('#'+playerId).parents('.cat_item_audio, .cat_item_audio_last').next('.cat_item_audio, .cat_item_audio_last').find('.play.uppod_ctrl');
	if (nextPlayer.size() > 0) {
		nextPlayer.click();
	} else {
		var firstPlayer = $('#'+playerId).parents('.cat_item_audio, .cat_item_audio_last').prevAll('.cat_item_audio:last').find('.play.uppod_ctrl');
		if (firstPlayer) {
			firstPlayer.click();
		}
	}
}


/////////////////////// functions helper
function str_pos( haystack, needle, offset){
	var i = haystack.indexOf( needle, offset ); // returns -1
	return i >= 0 ? i : false;
}

function str_replace ( search, replace, subject ) {    // Replace all occurrences of the search string with the replacement string
	if(!(replace instanceof Array)){
		replace=new Array(replace);
		if(search instanceof Array){//If search    is an array and replace    is a string, then this replacement string is used for every value of search
			while(search.length>replace.length){
				replace[replace.length]=replace[0];
			}
		}
	}

	if(!(search instanceof Array))search=new Array(search);
	while(search.length>replace.length){//If replace    has fewer values than search , then an empty string is used for the rest of replacement values
		replace[replace.length]='';
	}

	if(subject instanceof Array){//If subject is an array, then the search and replace is performed with every entry of subject , and the return value is an array as well.
		for(k in subject){
			subject[k]=str_replace(search,replace,subject[k]);
		}
		return subject;
	}

	for(var k=0; k<search.length; k++){
		var i = subject.indexOf(search[k]);
		while(i>-1){
			subject = subject.replace(search[k], replace[k]);
			i = subject.indexOf(search[k],i);
		}
	}

	return subject;

}

function myrss_list_init(hiding) {
	$(".pro_item_rss").unbind('click').click(
		function() {
			if(hiding) {
				$('.pro_item_rss .rss_post').hide()
			}
			$('.pro_item_rss').removeClass('pro_item_rss_act')
			
			$('.rss_post', this).removeClass('not_vis').show()
			$(this).addClass('pro_item_rss_act')
			
			//если новое, делаем прочитаным
			tpost = $('.new_post1',this) 
			if(tpost.length > 0){
				tpost.remove()
				$.get($('.check_reading',this).get(0).href)
				var cnt = parseInt($('.rss_item_act .rss_count_items').html())
				if(cnt > 0) {
					$('.rss_item_act .rss_count_items').html(--cnt);
				}
			}
			
		}	
	)
	
	$('#rssch_list').unbind('click').click(
		function() {
			$('#rssch_list').addClass('show_user_list_active').removeClass('show_user_list')
			$('#rssch_advanced').addClass('show_user_list').removeClass('show_user_list_active')
			$('.pro_item_rss .rss_post').hide()
			$(".pro_item_rss").unbind('click').click(function() {myrss_list_init(true)})
			$.get(this.href)
			return false
		}
	)
	
	$('#rssch_advanced').unbind('click').click(
		function() {
			$('#rssch_advanced').addClass('show_user_list_active').removeClass('show_user_list')
			$('#rssch_list').addClass('show_user_list').removeClass('show_user_list_active')
			$('.pro_item_rss .rss_post').show()
			$(".pro_item_rss").unbind('click').click(function() {myrss_list_init(false)})
			$.get(this.href)
			return false
		}
	)
	
	$('.show_user_list_check').hide();
		
}

function getClientWidth()
{
	return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight()
{
	return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getFoldersUser( user_id, element, type ){
	$.ajax({
		type: 'GET',
		url: current_domain+'materials/get_folders/'+user_id+'/'+type,
		dataType: 'json',

		success: function(data) {

			if(data.error) {
				alert(data.error);
			} else {
				element.html(data.folders);
			}

		},
		error : function(data, status, e) {
			alert(data.error);
		}
	});
}

function join_community(community_name) {
	$.getJSON('/community/join?typeAJAX_=1&jsoncallback=?', function(data){
		if (data.joined){
			helper.show('Поздравляем, вы стали полноправным участником сети «' + community_name + '»!<br/>\
						 Теперь вы можете добавлять в сеть видео, аудио, текст, фото и многое другое, а также оставлять комментарии и общаться с другими участниками сети.\
					   ');
			$(".scroller_avatar .profile_cnt").each(function(){
				$(this).text(parseInt($(this).text())+1);
			});
			$('div.constructor_manage').hide();
			popup.close();
			window.location.reload();
		}
	});
}