$(document).ready(function(){
	
	//var server_file = '/ajax/';
	var server_file = '/comments_ajax/';
	
	jQuery.listen( 'click', '.comment_spam', function(){

			var link = $(this);
			var id = $(this).attr('id');
			
			$.ajax({
				async: true,
				type: 'post',
				data: {
					comment_spam: true,
					id: id
					},
				url: server_file,
				success: function() {
						link.parent().html('<span class="comment_spam gr">Пожаловаться на спам</span>');
					}
			});
			
			return false;
	});
	
	jQuery.listen( 'click', '.reply', function(){
		var comment_form = $("#comment_form");
		comment_form.hide();
		comment_form.appendTo($(this).parents().eq(4)).slideDown(200);
		$('#cancel_reply').show();
		$('#add_comment').hide();
		$('#add_comment_reply').show();
		return false;
	});
	
	jQuery.listen( 'click', '#cancel_reply_button', function(){
		cancel_reply_button ();
		return false;	
	});
	
	jQuery.listen( 'click', '#add_comment', function(){
		add_comment ($(this), 'new');
		return false;
	});	
	
	jQuery.listen( 'click', '#close_window', function(){
		close_window ();
		return false;
	});
	
	$('#add_comment_reply').click( function() {
		var comment_reply_id = $('#comment_form').prev().attr('id');
		add_comment ($(this), 'reply', comment_reply_id);
		return false;
	});
	
	jQuery.listen( 'click', '.delete_comment_ajax', function(){

		delete_comment (this);
		return false;
		
	});
	
	function cancel_reply_button () {
		var comment_form = $("#comment_form");
		$(comment_form).hide();		
		$("#comments_list").after(comment_form.slideDown(200));
		$('#cancel_reply').hide();
		$('#add_comment_reply').hide();
		$('#add_comment').show();
	}
	
	function add_comment (but, type, comment_reply_id) {

		var type = type;
		var comment_reply_id = comment_reply_id;
		
	
		var vars_arr = check_form ('comment_var');
		
		var vars = vars_arr['vars'];
		var objects = vars_arr['objects'];
		var error = vars_arr['error'];
		
		vars['parent_comment'] = comment_reply_id;
		
		if (error == 0) {
			
			loading_textarea ('show', objects['mess'].parent());
			
			$('.comment_var').attr("disabled",true);
			but.attr("disabled",true);
			
			$.ajax({
				async: true,
				type: 'post',
				data: {
					vars: vars
					},
				url: server_file,
				dataType: 'json',
				success: function(data) {

					clear_error_fields (objects);
					
					if (data['error'] == false) {
							
						var s = $(data['msg']).appendTo('#comments_list').fadeIn(400);
						
						if (!data['timeout']) {

						if (data['capcha']) {
							$('.capcha_block').show();
							$('#comments_capcha').html(data['capcha']);
							$('#scode').addClass('comment_var');						
						}						
						
						objects['mess'].addClass('gr');
						objects['mess'].val(objects['mess'].next().val());
						objects['mess'].height('');
						
						if (objects['scode']) {
							objects['scode'].val('');
						}
						
						} else {
							$('#comment_form').html(data['timeout']);
						}
						
						if (type == 'reply') {
							cancel_reply_button ();							
						}
						
						objects['count_comments'].val(data['count_comments']);
						
					} else {
															
						set_error_fields (data['error_field']);
						
						if (data['capcha']) {
							$('.capcha_block').show();
							$('#comments_capcha').html(data['capcha']);
							$('#scode').addClass('comment_var');
						}						
					
					}
					
					$('.comment_var').attr("disabled",false);
					but.attr("disabled",false);						
					loading_textarea ('hide');					
					
				}
			});
			
		}
		
	}
	
	function delete_comment (obj) {
		var obj = obj;
		var comment_id = $(obj).attr('id');
		var atype = $('#atype').val();
		
		$.ajax({
				async: true,
				type: 'post',
				data: {
					delete_comment_id: comment_id,
					atype: atype
					},
				url: server_file,
				success: function(data) {

					if (data == true) {
					
						close_window ();
						
						var id_only = comment_id.replace("delete_comment_", "");
						$('#comment_'+id_only).fadeOut('slow');
						
					}
					
				}
			});
		
	
	}	
	
});

	function modal_window_delete (id) {
		var id = id;	
		var modal_window_block = document.getElementById('modal_window_block');
		var wind = '<div class="modal_window" id="modal_window"><div class="window_bg"></div><div class="window"><div class="window_content_block">Вы уверены что хотите удалить этот комментарий?<br><div style="padding-left: 90px; text-align: center; padding-top: 2em;"> <div class="button_v2"><div class="button_resize_v2 button_options_v2"><a href="http://okna.ua/calc.php?id_price=610" class="delete_comment_ajax" id="delete_comment_'+id+'">Удалить</a></div><div class="cross_white_bg_v2 button_t_l_v2"></div> <div class="cross_white_bg_v2 button_t_r_v2"></div> <div class="cross_white_bg_v2 button_b_r_v2"></div> <div class="cross_white_bg_v2 button_b_l_v2"></div> </div><div class="button_v2" style="margin-left: 1.4em"><div class="button_resize_v2 button_options_v2"><a href="http://okna.ua/calc.php?id_price=610" onClick="close_window (); return false;">Отмена</a></div><div class="cross_white_bg_v2 button_t_l_v2"></div> <div class="cross_white_bg_v2 button_t_r_v2"></div> <div class="cross_white_bg_v2 button_b_r_v2"></div> <div class="cross_white_bg_v2 button_b_l_v2"></div> </div></div></div></div></div>';
		modal_window_block.innerHTML = wind;
		return false;
	}

	function close_window () {
		var d = document.getElementById('modal_window');
		d.parentNode.removeChild(d);
	}


(function($) {

    $.fn.autogrow = function(options) {
        
        this.filter('.autogrow').each(function() {
            
            var $this       = $(this),
                minHeight   = $this.height(),
                lineHeight  = $this.css('lineHeight');
            
            var shadow = $('<div></div>').css({
                position:   'absolute',
                top:        -10000,
                left:       -10000,
                width:      $(this).width() - parseInt($this.css('paddingLeft')) - parseInt($this.css('paddingRight')),
                fontSize:   $this.css('fontSize'),
                fontFamily: $this.css('fontFamily'),
                lineHeight: $this.css('lineHeight'),
                resize:     'none'
            }).appendTo(document.body);
            
            var update = function() {
    
                var times = function(string, number) {
                    for (var i = 0, r = ''; i < number; i ++) r += string;
                    return r;
                };
                
                var val = this.value.replace(/</g, '&lt;')
                                    .replace(/>/g, '&gt;')
                                    .replace(/&/g, '&amp;')
                                    .replace(/\n$/, '<br/>&nbsp;')
                                    .replace(/\n/g, '<br/>')
                                    .replace(/ {2,}/g, function(space) { return times('&nbsp;', space.length -1) + ' ' });
                
                shadow.html(val);
                $(this).css('height', Math.max(shadow.height() + 20, minHeight));
            
            }
            
            $(this).change(update).keyup(update).keydown(update);

            update.apply(this);
            
        });
        
        return this;
        
    }
    
})(jQuery);

