var $jqm;
$(document).ready(function(){
	var isEdit = $( '#edit-profile-form' ).length > 0;

	// Делаем прелоад для IE6
	var imgs = new Array();
	imgs[0] = new Image();
	imgs[1] = new Image();
	imgs[2] = new Image();
	imgs[0].src = "/i/minus-b.jpg";
	imgs[1].src = "/i/submit.gif";
	imgs[2].src = "/i/users.png";

	/* Подсказки в полях "Логин" и "Пароль" */
	var login = $('#pass-input').prev();
	var pass1 = $('#pass-input input:password');
	var pass2 = $('#pass-input input:text');

	if( pass1.val() ){ pass2.hide();pass1.show(); } else {pass1.hide();pass2.show()}
	pass2.focus(function(){ pass2.hide(); pass1.show().focus(); });
	pass1.blur(function(){ if(!pass1.val()){ pass1.hide();pass2.show(); } });
	login.focus(function(){if(login.val()=='E-mail'){login.val('');}});
	login.blur(function(){if(!login.val()){login.val('E-mail');}});
	//$('#login-form').submit(function(){if(login.val()=='E-mail'){login.val('');}});

	/* Вызов формы авторизации */
   $("#login-form-link").click(function(){
		$("#login-popup").center().show();
      if( $('#login-form').is(':hidden') ) {
         $('#login-form').show();
         $("#pass-restore-form").hide();
      } // End if
	});

   $("#login-popup div.new-form-close").click(function(){
		$("#login-popup").hide();
	});


	var email_input = $("#pass-restore-form input:eq(0)");
   email_input.focus(function(){if(email_input.val()=='E-mail'){email_input.val('');}});
	email_input.blur(function(){if(!email_input.val()){email_input.val('E-mail');}});

   /* Вызов формы напоминания пароля */
   $("#forgot-pass-link").click(function(){
      $('#login-form').hide();
		$("#pass-restore-form").show();
	});


   /*
	$("#forgot-pass-link").click(function(){
		$("#forgot-pass").show();
		actClose();
	});

	$("#forgot-pass div.answer-d").click(function(){
		$("#forgot-pass").hide();
	});

	if( $("#forgot-pass").is(':visible') ){
		actClose();
	}

	function actClose(){
		$('body').bind( 'mousedown', function(e){
			var target = e.target || e.srcElement;
			if( $.inArray( $("#forgot-pass").get(0), $(target).parents().add(target) ) < 0 ){
				$("#forgot-pass").hide();
				$('body').unbind( 'mousedown' );
			}
		});
	}
   */

	/* Вызов формы поиска человека */
	$("a.search-men-link").click(function(){
		$("div.block-sore").toggle();
	});


	/* Работа со списком оборудования */
	if( $('#select-equipment-type').length>0 ){
		$('#select-equipment-type').val(-1);
		$('#select-equipment-producer,#select-equipment-model,#add-equipment-btn').attr('disabled',1);

		$('#select-equipment-type').change( function(e){
			$('#select-equipment-model').html('<option value="0">--- Выберите оборудование ---</option>').attr('disabled',1);
			var prdcr = $('#select-equipment-producer').html('<option value="0">Загрузка списка...</option>').attr('disabled',1);
			$.post(".", {
					tid:  $(this).val(),
					data: "Equipment:get_producers::TJson"
				},
				function(data){
					if( typeof data.result == 'object' || typeof data.result == 'array' ){
						if( data.result.length>0 ){
							prdcr.html('<option value="0">--- Выберите производителя ---</option>').removeAttr('disabled');;
							$.each(data.result, function(){
								$('<option value="' + this['producer.id'] + '">' + this['producer.name'] + '</option>').appendTo(prdcr);
							});
						} else {
							prdcr.html('<option value="0">Список пуст.</option>');
						}
					} else {
						$jqm.show( 'Не удалось отправить запрос!' );
						setTimeout("$jqm.hide(1000)", 1500);
						prdcr.html('<option value="0">Список пуст.</option>');
					}
				},
				"json"
			);
		});

		$('#select-equipment-producer').change( function(e){
			var model = $('#select-equipment-model').html('<option value="0">Загрузка списка</option>').attr('disabled',1);
			$.post(".", {
					tid:  $('#select-equipment-type').val(),
					pid:  $(this).val(),
					data: "Equipment:get_models::TJson"
				},
				function(data){
					if( typeof data.result == 'object' || typeof data.result == 'array' ){
						if( data.result.length>0 ){
							model.html('<option value="0">--- Выберите оборудование ---</option>').removeAttr('disabled');;
							$.each(data.result, function(){
								$('<option value="' + this.id + '">' + this.name + '</option>').appendTo(model);
							});
						} else {
							model.html('<option value="0">Список пуст.</option>');
						}
					} else {
						$jqm.show( 'Не удалось отправить запрос!' );
						setTimeout("$jqm.hide(1000)", 1500);
						model.html('<option value="0">Список пуст.</option>');
					}
				},
				"json"
			);
		});

		$('#select-equipment-model').change( function(e){
			if($(this).val()!=0) $('#add-equipment-btn').removeAttr('disabled')
			else $('#add-equipment-btn').attr('disabled',1);
		});


		$('#add-equipment-btn').live( 'click', function(e){
			e = new $.Event(e);
			$('#empty-eqip').remove();
			$('<tr>').appendTo('#equipment-list')
				.append('<td>' + $('#select-equipment-type option:selected').text() + '</td>')
				.append('<td>' + $('#select-equipment-producer option:selected').text() + '</td>')
				.append('<td>' + $('#select-equipment-model option:selected').text() + '</td>')
				.append('<td><input type="hidden" name="equipment[]" value="' + $('#select-equipment-model').val() + '"><input type="image" src="/i/minus-b.jpg" class="plus-bd rem-equipment-btn"></td>');
			$('#select-equipment-type').val(-1);
			$('#select-equipment-producer').html('<option value="0">--- Выберите производителя ---</option>').attr('disabled',1);
			$('#select-equipment-model').html('<option value="0">--- Выберите оборудование ---</option>').attr('disabled',1);
			return false;
		});

		$('input.rem-equipment-btn').live( 'click', function(e){
			$(this).parent().parent().remove();
			return false;
		});

	}

	/* Работа со списком карьеры */
	$('#add-career-btn').click(function(e){
		e = new $.Event(e);
		var input = $('#company-cont input:last').clone().val('')
			.appendTo( $('#company-cont').append('<div class="cl">&nbsp;</div>'));
		$(this).prev().clone().val('')
			.insertBefore($(this).before('<input type="image" class="plus-b rem-career-btn" src="/i/minus-b.jpg">').before('<div class="cl">&nbsp;</div>'));
		set_autocomplete( input, "Auth:ac_company::TJson" );

		return false;
	});

	$('input.rem-career-btn').live( 'click', function(e){
		var i = $.inArray($(this).prev().get(0), $('#post-cont input[name="post[]"]') );
		$('#company-cont input').eq(i).prev().remove().end().remove();
		$(this).prev().prev().remove().end().remove().end().remove();
		return false;
	});


	/* Валидация формы регистрации */
	if( jQuery.validator ){
		jQuery.validator.messages.required	  = "";
		jQuery.validator.messages.email		  = "";
		jQuery.validator.defaults.errorElement = ""

		var errorList = Array();
		jQuery.validator.defaults.invalidHandler = function(e, validator) {
			/*var errors = validator.numberOfInvalids();
			if (validator.errorList.length) {
				var message = $(validator.errorList).map(function(){return this.message;}).get().join('<br>');
				$("#err span").html(message);
				$("#err").show();
			} else {
				$("#err").hide();
			}

			errorList = Array();*/

		};

		jQuery.validator.defaults.beforeSubmitHandler = jQuery.validator.defaults.createHandler = function( form ){ // Прости, Господи...
			var validator = this;
			this.elements().each(function(){
				var message = validator.settings.messages[this.name]
				if( message && ( $(this).val() == message || $(this).val() == message.required ) ){
					$(this).val('');
				}
			});
		};

		jQuery.validator.defaults.showErrors = function( messages, errorList ){
			$(errorList).each(function(){
				$(this.element).css( 'color', '#ff4e1d' );
				if( this.element.nodeName.toLowerCase() != 'select' ){
					$(this.element).css( 'border-color', '#ff4e1d' );
				}
				if( !$(this.element).val() && this.element != document.activeElement ){
					if( ( this.element.nodeName.toLowerCase() == 'input' || this.element.nodeName.toLowerCase() == 'textarea' )
							&& this.element.type != 'password' ){
						$(this.element).val( messages[ this.element.name ] ).unbind( 'focus' )
						.one( 'focus', function(){ $(this).val(''); } );
					}
				}
			});
			$(this.successList).each(function(){
				$(this).css( 'color', '#12bbb2' );
				if( this.nodeName.toLowerCase() != 'select' ){
					$(this).css( 'border-color', '#12bbb2' );
				}
			});
		};

		jQuery.validator.addMethod("email_unique", function( value, element ) {
			if ( this.optional(element) )
				return "dependency-mismatch";

			var previous = this.previousValue(element);
			if ( previous.old !== value ) {
				previous.old = value;
				var validator = this;
				this.startRequest(element);
				$.ajax({
					url: ".",
					type: "post",
					dataType: "json",
					data: {
						data: "Auth:check_email::TJson",
						email: value
					},
					success: function(response) {
						var result = response && response.result || false;
						if ( result ) {
							var submitted = validator.formSubmitted;
							validator.prepareElement(element);
							validator.formSubmitted = submitted;
							validator.successList.push(element);
							validator.showErrors();
						} else {
							var errors = {};
							errors[element.name] =  validator.defaultMessage( element, "email_unique" );
							validator.showErrors(errors);
						}
						previous.valid = result;
						validator.stopRequest(element, result);
						//$(validator.currentForm).triggerHandler("invalid-form", [validator]);
						//validator.settings.invalidHandler(false, validator);
					}
				});
				return "pending";
			} else if( this.pending[element.name] ) {
				return "pending";
			}
			return previous.valid;

		}, "Пользователь с таким адресом уже зарегистриррован.");

		jQuery.validator.addMethod("not_equal", function( value, element, param ) {
			return value != param;
		}, "");

	}

	// Запуск процесса проверки количества сообщений
	if( $('#msg-cnt').length > 0 ){
		var foo = function(){
			$.post(".", {
					data: "Auth:get_new_message_count::TJson"
				},
				function(data){
					var cnt = parseInt( data.result );
					$('#msg-cnt').text( cnt );
					var dig1 = cnt % 10;
					var dig2 = Math.floor( ( cnt % 100 ) / 10 );
					if( dig1 == 1 && dig2 != 1 ){
						$('#msg-cnt-txt').text('новое сообщение');
					} else if( dig1 > 1 && dig1 < 5 && dig2 != 1 ){
						$('#msg-cnt-txt').text('новых сообщения');
					} else {
						$('#msg-cnt-txt').text('новых сообщений');
					}
				},
				"json"
			);
		};
		foo();
		setInterval( foo, 60000);
	}


	// Обработка нажатия кнопки "Дружить"
	$('#add-friend-btn').live('click', function(){
		var btn = $(this);
		$.post(".", {
				uid:  $('#uid').val(),
				data: "Auth:add_friend::TJson"
			},
			function(data){
				if( data.result == '0' ){
					$jqm.show( 'Предложение о дружбе отправлено пользователю' );
				} else if( data.result == '1' ){
					$jqm.show( 'Теперь вы друзья!' );
					btn.find('img').attr({src:'/i/user0.jpg'}).end().attr('id', 'rem-friend-btn');
				} else if( data.result == '-1' ){
					$jqm.show( 'Вы уже давно дружите!' );
					btn.find('img').attr({src:'/i/user0.jpg'}).end().attr('id', 'rem-friend-btn');
				} else {
					$jqm.show( 'Не удалось отправить запрос' );
				}
				setTimeout("$jqm.hide(1000)", 1800);
			},
			"json"
		);
		return false;
	});


	// Обработка нажатия кнопки "Не дружить"
	$('#rem-friend-btn').live('click', function(){
		if( confirm( 'Вы действительно хотите прекратить дружбу?' ) ){
			var btn = $(this);
			$.post(".", {
					uid:  $('#uid').val(),
					data: "Auth:rem_friend::TJson"
				},
				function(data){
					if( data.result == '1' ){
						$jqm.show( 'Ваша дружба расторгнута' );
						btn.find('img').attr({src:'/i/user1.jpg'}).end().attr('id', 'add-friend-btn');
					} else if( data.result == '0' ){
						$jqm.show( 'Вы и так не дружите!' );
						btn.find('img').attr({src:'/i/user1.jpg'}).end().attr('id', 'add-friend-btn');
					} else {
						$jqm.show( 'Не удалось отправить запрос' );
					}
					setTimeout("$jqm.hide(1000)", 1800);
				},
				"json"
			);
		}
		return false;
	});


	// Обработка нажатия кнопки "Рекомендовать"
	$('#give-recommend-btn').live('click', function(){
		var btn = $(this);
		$.post(".", {
				uid:  $('#uid').val(),
				data: "Auth:give_recommend::TJson"
			},
			function(data){
				if( data.result == 'success' ){
					$jqm.show( 'Спасибо, ваша рекомендация добавлена пользователю ' + $('.prof-name').text().replace( /^[\s\n]+/, '' ).replace( /[\s\n]+$/, '' ) );
					btn.remove();
				} else if( data.result == 'already' ){
					$jqm.show( 'Вы уже рекомндовали этого пользователя!' );
					btn.remove();
				} else {
					$jqm.show( 'Не удалось отправить запрос' );
				}
				setTimeout("$jqm.hide(1000)", 1800);
			},
			"json"
		);
		return false;
	});


	// Обработка нажатия кнопки "Присоединиться к сообществу"
	$('#join-community-btn').live('click', function(){
		var btn = $(this);
		$.post(".", {
				cid:  $('#cid').val(),
				data: "Society:join_community::TJson"
			},
			function(data){
				if( data.result == 'success' ){
					$jqm.show( 'Теперь Вы с нами!' );
					btn.find('img').attr({src:'/i/otpris-b.jpg'}).end().attr('id', 'leave-community-btn');
				} else if( data.result == 'already' ){
					$jqm.show( 'Вы уже состоите в данном сообществе!' );
					btn.find('img').attr({src:'/i/otpris-b.jpg'}).end().attr('id', 'leave-community-btn');
				} else {
					$jqm.show( 'Не удалось отправить запрос' );
				}
				setTimeout("$jqm.hide(1000)", 1800);
			},
			"json"
		);
		return false;
	});


	// Обработка нажатия кнопки "Покинуть сообщество"
	$('#leave-community-btn').live('click', function(){
		if( confirm( 'Вы действительно хотите покинуть сообщество?' ) ){
			var btn = $(this);
			$.post(".", {
					cid:  $('#cid').val(),
					data: "Society:leave_community::TJson"
				},
				function(data){
					if( data.result == 'success' ){
						$jqm.show( 'Вы покинули сообщество!' );
						btn.find('img').attr({src:'/i/pris-b.jpg'}).end().attr('id', 'join-community-btn');
					} else if( data.result == 'already' ){
						$jqm.show( 'Вы не состоите в данном сообществе!' );
						btn.find('img').attr({src:'/i/pris-b.jpg'}).end().attr('id', 'join-community-btn');
					} else {
						$jqm.show( 'Не удалось отправить запрос' );
					}
					setTimeout("$jqm.hide(1000)", 1800);
				},
				"json"
			);
		}
		return false;
	});


   // Обработка чекбокса "Подписаться на рассылку"
   $('#subscribe-check').live('click', function(){
      var check = $(this);
      if( check.is(':checked') || confirm( 'Вы действительно хотите отписаться от рассылки новых статей?' ) ) {
         $.post(".", {
               cid:  $('#cid').val(),
               status: check.is(':checked') ? 1 : 0,
               data: "Society:subscribe_community::TJson"
            },
            function(data){
               if( data.result == 'subscribed' ){
                  $jqm.show( 'Вы подписались на рассылку!' );

               } else if( data.result == 'unsubscribed' ){
                  $jqm.show( 'Вы отписались от рассылки!' );

               } else {
                  $jqm.show( 'Не удалось отправить запрос' );
               }
               setTimeout("$jqm.hide(1000)", 1800);
            },
            "json"
         );

         return true;

      } else {
         check.attr( 'checked', true );
         return false;

      } // End if

   });



	// Обработка чекбоксов в списке сообщений
	$('.rem-msg-check').live('click', function(){
		if( $('.rem-msg-check:checked').length > 0 ){
			$('#remove-messages-btn').attr('src','/i/delete-b-active.jpg');
		} else {
			$('#remove-messages-btn').attr('src','/i/delete-b.jpg');
		}
	});


	// Обработка нажатия кнопки "Удалить" в списке сообщений
	$('#remove-messages-btn').live('click', function(e){
		if( $('.rem-msg-check:checked').length > 0 ){
			if( confirm( 'Вы действительно хотите удалить выбранные сообщения?' ) ){
				return true;
			}
		}
		return false;
	});


	// Обработка блокировки комментариев ( только для модератора )
	$( 'a.block-comment' ).live( 'click', function(){
		var t = $(this),
			 cid = t.parent().find( 'input[name="cid"]' ).val();
		$.post(".", {
				'cid':  cid,
				'data': "Society:block_comment::TJson"
			},
			function(data){
				if( data.result == 'success' ){
					$jqm.show( 'Комментарий заблокирован!' );
					t.html('Разблокировать').removeClass('block-comment').addClass('unblock-comment');
					t.parents('tr:eq(1)').addClass('x');
				} else if( data.result == 'already' ){
					$jqm.show( 'Комментарий уже заблокирован!' );
					t.html('Разблокировать').removeClass('block-comment').addClass('unblock-comment');
					t.parents('tr:eq(1)').addClass('x');
				} else {
					$jqm.show( 'Не удалось отправить запрос' );
				}
				setTimeout("$jqm.hide(700)", 500);
			},
			"json"
		);
	});


	// Обработка разблокировки комментариев ( только для модератора )
	$( 'a.unblock-comment' ).live( 'click', function(){
		var t = $(this),
			 cid = t.parent().find( 'input[name="cid"]' ).val();
		$.post(".", {
				'cid':  cid,
				'data': "Society:unblock_comment::TJson"
			},
			function(data){
				if( data.result == 'success' ){
					$jqm.show( 'Комментарий разблокирован!' );
					t.html('Заблокировать').removeClass('unblock-comment').addClass('block-comment');
					t.parents('tr:eq(1)').removeClass('x');
				} else if( data.result == 'already' ){
					$jqm.show( 'Комментарий уже разблокирован!' );
					t.html('Заблокировать').removeClass('unblock-comment').addClass('block-comment');
					t.parents('tr:eq(1)').removeClass('x');
				} else {
					$jqm.show( 'Не удалось отправить запрос' );
				}
				setTimeout("$jqm.hide(700)", 500);
			},
			"json"
		);
	});


   // Обработка чекбокса "Подписаться на рассылку"
   $('.button-to-rassilko').live('click', function(){
      $.post(".", {
            data: "Auth:subscribe_digest::TJson"
         },
         function(data){
            if( data.result == 'success' ){
               $jqm.show( 'Вы подписались на рассылку дайджеста лучших статей!' );
               $('.button-to-rassilko').remove();

            } else if( data.result == 'noaccess' ){
               megacacopopup1($('.button-to-rassilko'));
            } else {
               $jqm.show( 'Не удалось отправить запрос' );
            }
            setTimeout("$jqm.hide(1000)", 1800);
         },
         "json"
      );

      return false;

   });

	//Инициализация автозаполнения
	set_autocomplete( $( 'input.ac_company' ), "Auth:ac_company::TJson" );
	set_autocomplete( $( '#country' ), "Geography:ac_country::TJson" );

	// Инициализация окошка сообщений
	$jqm = new $.jqm();

	// Инициализация подсказок
	$('.quest').jtip();

	// Инициализация кнопок вставки ссылок и картинок
	if( $('.visual').length ){
		$('#cbe-insert-link').cbDialog({action: 'insLink'})
		$('#cbe-insert-image').cbDialog({action: 'insImage'})
	}
	
	$("#cptchlink").click(function () {
      $('#img').attr("src", "/_indy/sys/core/get_captcha/?opt[width]=120&opt[height]=50&opt[background]=%23FFFFFF&opt[font]=%235E5E5E&" + Math.random());
      return false;
   });

});


// Авторизация
var authorization = function(){
	var t = $('#login-form'),
       loader = t.find('.loader').html(''),
		 email  = t.find( 'input[name="email"]' ).val(),
		 pass   = t.find( 'input[name="password"]' ).val();
	if( email=="E-mail" ) {
      loader.addClass( 'bad' ).html('Укажите e-mail');
   } else if( !pass ) {
      loader.addClass( 'bad' ).html('Укажите пароль');
   } else if( !/^([a-z0-9\-_]+(\.[a-z0-9\-_]+)*)@([a-z0-9\-_]+\.)+[a-z]+$/i.test(email) ) {
      loader.addClass( 'bad' ).html('Не верный формат e-mail');
   } else {
      loader.html('<img src="/i/ajax-loader.gif">');
      $.post(".", {
            'email':  email,
            'password':  pass,
            'logon':  true,
            'data': "Auth:logon::TJson"
         },
         function(data){
            if( data.status == 'success' ) {
               loader.removeClass('bad').addClass('good').html('Авторизация прошла успешно');
               location.reload();
            } else {
               if( data.error_list ) {
                  loader.addClass( 'bad' ).html(data.error_list.join("\n"));
               } else {
                  loader.addClass( 'bad' ).html('Ошибка авторизации');
               }
            }
         },
         "json"
      );

   }
	return false;
};

// Обработка восстановления пароля
var pass_recovery = function(){
	var t = $('#pass-restore-form'),
       div = t.find('div').html(''),
       loader = t.find('.loader').html(''),
		 email = t.find( 'input[name="email"]' ).val();
	if( email!="E-mail" ) {
      if( /^([a-z0-9\-_]+(\.[a-z0-9\-_]+)*)@([a-z0-9\-_]+\.)+[a-z]+$/i.test(email) ){
         loader.html('<img src="/i/ajax-loader.gif">');
         $.post(".", {
               'email':  email,
               'data': "Auth:password_restore::TJson"
            },
            function(data){
               if( data.result ){
                  div.removeClass('bad').addClass('good').html('Новый пароль выслан на Вашу почту');
               } else {
                  div.addClass( 'bad' ).html('Пользователь с таким адресом не найден');
               }
               loader.html('');
            },
            "json"
         );

      } else {
         div.addClass( 'bad' ).html('Не верный формат e-mail');
      }

   } else {
      div.addClass( 'bad' ).html('Укажите e-mail');
   }
	return false;
};


(function($){
	$.fn.center = function(options) {
		var pos = {
			sTop : function() {
				return window.pageYOffset
				|| document.documentElement && document.documentElement.scrollTop
				|| document.body.scrollTop;
			},
			wHeight : function() {
				return window.innerHeight
				|| document.documentElement && document.documentElement.clientHeight
				|| document.body.clientHeight;
			},
			sLeft : function() {
				return window.pageXOffset
				|| document.documentElement && document.documentElement.scrollLeft
				|| document.body.scrollLeft;
			},
			wWidth : function() {
				return window.innerWidth
				|| document.documentElement && document.documentElement.clientWidth
				|| document.body.clientWidth;
			}
		};
	 return this.each(function(index) {
		if (index == 0) {
		  var $this = $(this);
		  var elHeight = $this.height();
		  var elTop = pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2);
		  var elWidth = $this.width();
		  var elLeft = pos.sLeft() + (pos.wWidth() / 2) - (elWidth / 2);
		  $this.css({
			 position: 'absolute',
			 marginTop: '0',
			 top: elTop,
			 left: elLeft
		  });
		}
	 });
	};
})(jQuery);



(function($){

	$.jqm = function( message ){
		this.message = message;
		this.init();
	};

	$.extend( $.jqm, {
		mBox: null,
		overlay: null,
		prototype: {
			init: function(){
				this.mBox = $( '#simple-jqm' );
				if( !this.mBox.length ){
					this.mBox = $('<div id="simple-jqm" class="new-pride"/>')
						.append('<div class="new-pride-bg"><div class="new-pride-txt"></div></div>')
						.append('<div class="new-prider"><a class="new-pride-link" href="javascript:void(0);"></a></div>')
						.hide()
						.appendTo(document.body);
					this.mBox.find('.new-pride-link').click(function(){
						$jqm.hide();
					});
				}
			},
			show: function( message, speed, modal, hideClose ){
				this.mBox.center().find('.new-pride-txt').html( message );
				speed && this.mBox.fadeIn(speed) || this.mBox.show();
				return this;
			},
			hide: function( speed ){
				speed && this.mBox.fadeOut(speed) || this.mBox.hide();
				return this
			}
		}
	});

})(jQuery);


function voteBlog( link, bid, vote ){
	if( !bid ) return false;
   var value = 0;
   switch( vote ) {
      case "plus":  value = 1; break;
      case "minus": value = -1; break;
   }
   var rateBlock = $(link).parent().find('.rate:eq(0)');
   if( value ) {
      $.post(".", {
				'blog_id':  bid,
				'value':  value,
				'data': "Society:blog_vote::TJson"
			},
			function(data){
				if( data.result == 'success' ){
               rateBlock.removeClass( 'negative' );
               rateBlock.removeClass( 'positive' );
               var rate = parseInt( rateBlock.text() ) + value;
               rateBlock.text( rate );
               if( rate > 0 ) {
                  rateBlock.addClass( 'positive' );
               } else if( rate < 0 ) {
                  rateBlock.addClass( 'negative' );
               } // End if

					$jqm.show( 'Ваш голос принят!' );

				} else if( data.result == 'own' ){
					$jqm.show( 'Нельзя голосовать за свою же статью!' );
				} else if( data.result == 'already' ){
					$jqm.show( 'Вы уже голосовали!' );
				} else if( data.result == 'noaccess' ){
					$jqm.show( 'Голосовать могут только авторизованные пользователи!' );
				} else {
					$jqm.show( 'Не удалось отправить запрос' );
				}
				setTimeout("$jqm.hide(700)", 800);
			},
			"json"
		);
   }
}


function blog_publication( bid ){
	if( bid ) {
      $.post(".", {
				'blog_id':  bid,
				'data': "Society:blog_publication::TJson"
			},
			function(data){
				if( data.result == 'success' ){
               $jqm.show( 'Опубликовано!' );
               setTimeout("location.reload();", 500 );

				} else if( data.result == 'noaccess' ){
					$jqm.show( 'Это не ваша статья!' );
				} else if( data.result == 'too_often' ) {
					$jqm.show( 'Публиковать статьи можно не чаще чем 1 раз в час' );
				} else {
					$jqm.show( 'Не удалось отправить запрос' );
				}
				setTimeout("$jqm.hide(700)", 1000);
			},
			"json"
		);

   } else {
      return false;
   }

}



function addComment( t, parent ){
	var c = $(t).parents('table.comm');
	var e = $( '<tr><td colspan="2"><div class="reduct-comment"><form method="post" action="" class="add-comment-form"><input type="hidden" name="data" value="Society:add_comment::TRedirect"><input type="hidden" name="parent" value="' + parent + '"><textarea class="required" name="comment" /><input type="image" name="add_comment[]" src="/i/submit.gif" /></form></div></td></tr>' ).appendTo(c);
	e.find('form').validate({rules: { content: "required" }, messages: { content: "Введите текст комментария!" }});
	$(t).hide();
}


function editComment( t, cid ){
	var p = $(t).parents('td.cmm').find('div.cm-content p');
   if(p.is(':hidden')) return false;
   var ta = $('<textarea class="cm-content" style="width:100%;"></textarea>').height(p.height()>80?p.height():80).val(p.html().replace(/\n\r?/,'').replace(/<br> ?/, "\n")),
       tbl = $('<table><tr><td><input type="image" src="/i/submit.gif"></td><td class="loader" style="padding-top:9px;">&nbsp;</td></tr></table>'),
       btn = tbl.find('input'),
       loader = tbl.find('td.loader');
   
   p.hide().after(ta);
   ta.after(tbl);
   
   btn.click( function(){
      if( !/^\s*$/.test(ta.val()) ) {
         ta.css('border', '1px solid #12bbb2');
         loader.html('<img src="/i/ajax-loader.gif">');
         $.post(".", {
               'cid':  cid,
               'comment': ta.val(),
               'data': "Society:save_comment::TJson"
            },
            function(data){
               loader.html('');
               if( data.status == 'success' ) {
                  p.html( data.html );
               } else {
                  if( data.error_list ) {
                     $jqm.show( data.error_list );
                  } else {
                     $jqm.show( 'Ошибка сохранения!' );
                  }
                  setTimeout("$jqm.hide(1000)", 1800);
               }
               ta.remove();
               tbl.remove();
               p.show();
            },
            "json"
         );
      } else {
         ta.css('border', '1px solid #ff4e1d');
      }
   });
   
   
	return false;
}


function remComment( t, cid ){
	if( confirm( 'Вы действительно хотите удалить данный комментарий?' ) ){
		return true;
	}
	return false;
}


function change_subscribe( check, bid ) {
   var check = $(check);
   if( check.is(':checked') || confirm( 'Вы действительно хотите отписаться от уведомлений о новых комментариях?' ) ) {
      $.post(".", {
            bid:  bid,
            status: check.is(':checked') ? 1 : 0,
            data: "Society:subscribe_comments::TJson"
         },
         function(data){
            if( data.result == 'subscribed' ){
               $jqm.show( 'Вы подписались на уведомления!' );

            } else if( data.result == 'unsubscribed' ){
               $jqm.show( 'Вы отписались от уведомлений!' );

            } else {
               $jqm.show( 'Не удалось отправить запрос' );
            }
            setTimeout("$jqm.hide(1000)", 1800);
         },
         "json"
      );

      return true;

   } else {
      check.attr( 'checked', true );
      return false;

   } // End if

}


function remBlog( t, bid ){
	if( confirm( 'Вы действительно хотите удалить данную запись?' ) ){
		return true;
	}
	return false;
}


function toogleMain( t, bid ){
   var t = t;
	$.post(".", {
         bid:  bid,
         data: "Society:toogle_main::TJson"
      },
      function(data){
         if( data.result ) {
            t.innerHTML = 'убрать с главной';
         } else {
            t.innerHTML = 'на главную';
         }

      },
      "json"
   );

	return false;
}



//define for all browsers
var gotoURL = function (url){
  location.href = url;
}

//re-define for IE
if($.browser.msie){
	// var form = document.createElement('FORM');
	// form.method = "POST";
	// document.body.appendChild(form);

	gotoURL = function(url){
		// form.action = url;
		// form.submit();


		var referLink = document.createElement('A');
		referLink.href = url;
		referLink.innerHTML = 'url';
		document.body.appendChild(referLink);
		alert(referLink.outerHTML);
		referLink.click();
	}
}


function showMessage( text, modal ){
	var overlay;
	if( modal ){
		overlay=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':2999,opacity:0.5,backgroundColor:black});
	}
	var mess = $('<div class="message"/>').css({ border: '1px solid red', width: '300px', backgroundColor: 'white', 'z-index': 3000 })
	.append('<div class="error-d"><span>' + text + '</span></div>');
	return mess.appendTo(document.body).center();

}


function set_autocomplete( element, script ){
	if( !$.Autocompleter ) return false;
	$( element ).autocomplete(".", {
		extraParams: {
			data: script
		},
		dataType: 'json',
		parse: function(data) {
			return $.map(data.result, function(row){
				return {
					data: row,
					value: row,
					result: row
				}
			});
		},
		formatItem: function(row){ return row; },
		width: 200
	});
}



function cb_unique( array ){
	var ret = [], done = {};
		try {
			for ( var i = 0, length = array.length; i < length; i++ ) {
				if ( !done[ array[ i ] ] ) {
					done[ array[ i ] ] = true;
					ret.push( array[ i ] );
				}
			}
		} catch( e ) {
			ret = array;
		}
		return ret;
}


function _getPageSize() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
}

function megacacopopup1(btn) {
   var btn_pos = $(btn).position(),
       div = $('.megacacopopup1');
   
   div.css({left: btn_pos.left-170, top: btn_pos.top-70}).show();
   
   var click_listener;
   click_listener = function(e){
      var target = $(e.target);
      if( !target.parents('.megacacopopup1').length ) {
         div.hide();
         $(window).unbind('click', click_listener);
      }
   };
   setTimeout(function(){
      $(window).bind('click', click_listener);
   }, 1);
   
}

function megacacopopup2(btn) {
   var btn_pos = $(btn).position(),
       div = $('.megacacopopup2');
   
   div.css({left: btn_pos.left, top: btn_pos.top - 70}).show();
   
   var click_listener;
   click_listener = function(e){
      var target = $(e.target);
      if( !target.parents('.megacacopopup2').length ) {
         div.hide();
         $(window).unbind('click', click_listener);
      }
   };
   setTimeout(function(){
      $(window).bind('click', click_listener);
   }, 1);
   
}
