$(function(){
	
	var compareUrl = shop2.uri + "/compare", ajax;
	
	$(document).on('click', '.gr-compare-btn', function(e){
		e.preventDefault();
		getCompare();
	});
	
	function getCompare () {
		var compareFlag = 0;
		
        if (ajax) ajax.abort();
        
        if ($('.shop2-compare-table').data('compare-count') == '1') {
    		$('.compare-remodal .remodal-close-btn').click();
        	$('.gr-compare-btn').removeClass('active');
        	$('.gr-compare-btn .gr-compare-btn-amount').html('0');
        	
        	compareFlag = 1;
        	
        	$('.shop2-compare-table').remove();
        	setTimeout(function(){
        		$('#shop2-msg').remove();	
        	}, 170);
    	};
    	
        if (!compareFlag) {
	        ajax = $.ajax({
	            url: compareUrl,
	            async: false,
	            success: function (data) {
	            	var data = $(data).filter('.shop2-compare-container').html();
	            	$('.compare-remodal__body').html(data);
	            	
	            	initCompare();
	            }
	        });
        };
    };
    
    function initCompare(){
    	
    	$('.compare-remodal .shop2-compare-product-image').lightGallery({
			thumbnail: false,
		    download: true,
		    loop: false,
		    counter: false,
		    share: false,
		    getCaptionFromTitleOrAlt: true,
			selector: 'a'
	    });
    	
    	$('.shop2-compare-table').each(function() {
		    var $this = $(this),
		    	compareFlag = 0;
		        relay = $this.find('.shop2-compare-switch a'),
		        options = $this.find('.shop2-compare-data');
		        
		    $this.find('.shop2-compare-delete').on('click', function(e) {
		        var $this = $(this),
		            kind_id = $this.data().id;
		            
		        if ($('.shop2-compare-table').data('compare-count') == '1') {
		        	e.preventDefault();
		        	
		        	compareFlag = 1;
		        };
		
		        shop2.compare.remove(kind_id, function() {
		            getCompare();
		            var compareCount = $('.shop2-compare-table').data('compare-count');
		            
		            if (!compareFlag) {
		        		$('.gr-compare-btn .gr-compare-btn-amount').html(compareCount);
		            };
		            
		            $('.product-compare').each(function(){
		            	var $input = $(this).find('input');
		            	var inputVal = $input.val();
		            	
		            	if (inputVal == kind_id) {
		            		$input.click();
		            	}
		            });
		            
		            if (+$('.gr-compare-btn .gr-compare-btn-amount').text() == '0') {
					    $('.gr-compare-btn').removeClass('active');
					} else {
					    $('.gr-compare-btn').addClass('active');
					};
		        });
		
		        return false;
		    });
		
		    function compareTd(tr) {
		        var td = tr.find('td'),
		            val = td.eq(1).html(),
		            differ = false,
		            i = 2,
		            len = td.length;
		
		        if (len <= 2) {
		            return false;
		        }
		
		        for (; i < len; i += 1) {
		            if (val != td.eq(i).html()) {
		                differ = true;
		                break;
		            }
		            val = td.eq(i).html();
		        }
		
		        return differ;
		    }
		
		    relay.on('click', function() {
		
		        var $this = $(this);
		
		        relay.removeClass('shop2-compare-switch-active');
		        $this.addClass('shop2-compare-switch-active');
		
		        if ($this.index() === 0) {
		            options.show();
		        } else {
		            options.each(function() {
		                var $this = $(this),
		                    differ = compareTd($this);
		
		                if (differ) {
		                    $this.show();
		                } else {
		                    $this.hide();
		                }
		            });
		        }
		
		        return false;
		
		    }).eq(1).trigger('click');
		
		
		});	
    };
});