	$(document).ready(function () {
	
	// навесим на аякс функции параметры
	$.ajaxSetup({
		beforeSend: function (request) {
			request.setRequestHeader('Accept', 'application/html+ajax');
		}
	});
	
	/*********************************
	 * Таблица записей
	 *********************************/
		$('#tbl').tablesorter({
			sortList:[[0,1]],
			// sorter: 'text', 'digit', 'currency', 'ipAddress', 'url', 'isoDate', 'percent', 'usLongDate', 'shortDate', 'time', 'metadata'
			headers: { 0: { sorter: 'isoDate' },
					   1: { sorter: 'isoDate' }}
		});
		
		$('#tbl tbody tr').mouseover(function () {
			$(this).addClass('color_over');
		}).mouseout(function () {
			$(this).removeClass('color_over');
		});
	
	/*********************************
	 *  Filters
	 *********************************/
		// выделение ссылок и счетчик в подписку
		$('#f_cat .f_cat').click(function () {
			var count_cat = $('#count_cat').text()==='все' ? 0 : ~~$('#count_cat').text();
			if ($(this).attr('class').indexOf('tr_cat')+1) {
				$(this).removeClass('tr_cat').prev('img').remove();
				//alert($(this).prev('img').attr('src'));
				count_cat = count_cat-1;
			} else {
				str = $('#check').clone().attr('id','');
				$(this).addClass('tr_cat').before(str);
				count_cat = count_cat+1;
			}
			$('#count_cat').text(count_cat<=0 ? 'все' : count_cat );
			return false;
		});
		// отметка chechbox-ами изначально выделеных пунктов
		$('#f_cat .f_cat').each(function () {
			if ($(this).attr('class').indexOf('tr_cat')+1) {
				str = $('#check').clone().attr('id','');
				$(this).addClass('tr_cat').before(str);
			}
		});
		// обработка формы фильтра
		$('#f_frm').submit(function () {
			var val = '';
			$('#f_cat a.tr_cat').each(function () {
				nval = $(this).attr('rel');
				if (val.length>0)	val = val+':'+nval;
					else	val = nval;
			});
			$(this).attr('action',$(this).attr('action')+ (val ? val+'/' : ''));
			return true;
		});
	
	/*********************************
	 *  Subscribe
	 *********************************/
		/*$('#t_mail').toggle(function () {
			//$('#sub_form').removeClass('sub_hide');
			$('#sub_form').show("fast");
		}, function () {
			$('#sub_form').hide("fast");
		});*/
		
		var vis_sub_form = function (data) {
			dur = data || 10;
			$('#sub_form:visible').oneTime(dur, function () {
				$(this).hide("fast");
			});
			
			$('#sub_form:hidden').oneTime(dur, function () {
				$(this).show("fast");
			});
		};
		
		$('#t_mail').click(function () {
			vis_sub_form();
			return false;
		});
		
		
	// jgrow - увеличение textarea при вводе
	$('#pr_desr').jGrow({
		max_height: "350px"
	});
	
	// ФОТО
	var i = 0
	$('#add_pr_file').click(function () {
		i++;
		// вставим форму ввода и выбора типа файла
		/*$('#pr_file').clone().attr({ 'class' : 'add_pr_file', 'name' : 'pr_file['+i+']', 'id' : '' }).insertAfter(this); */
		$(this).after('<input class="add_pr_file" type="file" name="pr_file[' + i + ']" />');
		//alert($('#frm_f').html());
		return false;
	});

	/*********************************
	 *  МЕТКИ и ФОРМА
	 *********************************/
		var form = function (data) {
			if ($(data).length) {
				$(data+' label').each(function () {
					var label = $(this).hide().text();			// начальное значение
					var pole  = $('#'+$(this).attr('for')); 	// имя поля

					// навесим стиль на инпут и добавим в инпут текст
					if (/*pole.val()=='' && */pole!='pr_file') {
						pole.addClass('place').val(label)
							.focus(function () {
								$(this).removeClass('place').removeClass('placered');
								if (pole.val()==label)
									$(this).val('');
							}).blur(function () {
								if (this.value == '')
									$(this).addClass('place').val(label);
							});
					}
				});
				// если заблокированна кнопка - скинем
				$('#frm_f :submit').attr('disabled', false);
				
				// если собщений нет - уберем поле
				if (~~$('#er').html().length===null)
					$('#er').hide();
			}
		};

		/*********************************
		 *  КОМЕРЧЕСКОЕ и FEEDBACK
		 *********************************/
		 form('#frm_f');
		
		$('#frm_f').submit(function () {
			var err = 0;
			
			$('#frm_f label').each(function () {
				var label  = $(this).text();					// начальное значение
				var pole_n = $(this).attr('for');				// имя поля
				var pole   = $('#'+$(this).attr('for')); 		// идентификатор поля
				var tpl_email = /^([a-zA-Z0-9\_\.\-]+)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]+)$/;

				if (pole.val()==label&&$(this).attr('class')=='valid') {	// если поле не заполено то выделим красным
					pole.addClass('placered');
					err++;
				}
				if (((pole_n=='mes-post'||pole_n=='pr_mail'||pole_n=='sub_mail')&&$(this).attr('class')=='valid') && !tpl_email.test(pole.val())) {
					pole.addClass('placered');
					err++;
				}
			});
			
			if (err==0) {
				// блокируем сабмит
				$('#frm_f :submit').attr('disabled', true);
				
				// FEEDBACK				
				if ($(this).attr('class')=='feedback') {
					$.post($(this).attr('action'),{'name':$('#mes_name').val(),'post':$('#mes_post').val(),'mes':$('#mes_mes').val()},function(data){
							$('#er').html(data).show();
							form('#frm_f');
				});}
			
				// COM_PRED
				if ($(this).attr('class')=='pr_com') {
					$('#er').hide();
					return true;
				}
				
				// SUBSCRIBE
				if ($(this).attr('class')=='subscribe') {					
					var val = '';
					$('#f_cat a.tr_cat').each(function () {
						nval = $(this).attr('rel');
						if (val.length>0)	val = val+':'+nval;
							else	val = nval;
					});
					
					$.ajax({
						url      : $(this).attr('action'), 
						data     : { 'sub_mail' : $('#sub_mail').val(), 'cat' : (val ? val : '')},
						dataType : 'json', type : 'post',
						success  : function (data) {
							data['data'] ? $('#er').html(data['data']).show() : '';
							// если ошибка - то расдисаблим и пусть пробуют снова
							if (data['error']) {
								$('#frm_f :submit').attr('disabled', false);
							// если все хорошо - очистим форму и закроем через 5 сек
							} else {
								vis_sub_form('5s');
								form('#frm_f');
							}
						}
					});
				}
			} else $('#er').html('Не заполненые или неверно заполненые обязательные поля!').show();
				
			return false;
		});
		
	});
