function checkTagsQuantity() {
	var $tagLead = $('.tag-lead'),
		$tagsGroups = $('.tags-groups');

	$tagsGroups.each(function(i) {
		var $children = $(this).children().length;
		$tagLead.eq(i).children('.badge').text($children);
	})
}

function checkedLength() {
	var $tagsList = $('#tags-list'),
		$moduleTags,
		$defaultTags,
		$toDefault;
	function reload_links() {
		if($('.default-tags').length) {
			$moduleTags = $('.module-tags input[type="checkbox"]:checked');
			$defaultTags = $('.default-tags input[type="checkbox"]:checked');

			if($moduleTags.length > 1 || $moduleTags.length+$defaultTags.length > 1) {
				$('#mergerTags').removeClass('hide');
			} else {
				$('#mergerTags').addClass('hide');
			};

			if ($moduleTags.length > 0 || $defaultTags.length > 0) {
				$('#deselect').removeClass('hide');
				var ids = new Array();
				$defaultTags.each(function(i) {
					ids.push($defaultTags.eq(i).parent().siblings('.tag_id').val());
				});
				$moduleTags.each(function(i) {
					ids.push($moduleTags.eq(i).parent().siblings('.tag_id').val());
				});
				$('#deleteTags').attr('rel', "<%= Rails.application.routes.url_helpers.delete_tags_admin_tags_path %>" + "?ids=" + ids);
				$('#deleteTags').removeClass('hide');
				$('#deselect').on('click', deselect);
			} else {
				$('#deselect').addClass('hide');
				$('#deleteTags').attr('rel', "");
				$('#deleteTags').addClass('hide');
				$('#deselect').off('click', deselect);
			};

			if ($moduleTags.length > 0 && $defaultTags.length == 0) {
				var ids = new Array();
				$moduleTags.each(function(i) {
					ids.push($moduleTags.eq(i).parent().siblings('.tag_id').val());
				});
				$('#addDefault').attr('href', "<%= Rails.application.routes.url_helpers.add_to_default_admin_tags_path %>" + "?ids=" + ids);
				$('#addDefault').removeClass('hide');
			} else {
				$('#addDefault').attr('href', "");
				$('#addDefault').addClass('hide');
			};
		} else {
			$moduleTags = $('.module-tags li.module input[type="checkbox"]:checked');
			$defaultTags = $('.module-tags li.default input[type="checkbox"]:checked');
			if($defaultTags.length > 0 || $moduleTags.length > 0) {
				$('#deselect').removeClass('hide');
				$('#deselect').on('click', deselect);
				if($defaultTags.length > 0 && $moduleTags.length > 0) {
					$('#deleteTags').attr('rel', "");
					$('#deleteTags').addClass('hide');
					$('#removeDefaults').attr('rel', "");
					$('#removeDefaults').addClass('hide');
					$('#mergerTags').addClass('hide');
				} else if ($defaultTags.length > 0) {
					var ids = new Array();
					$defaultTags.each(function(i) {
						ids.push($defaultTags.eq(i).parent().siblings('.tag_id').val());
					});
					$('#removeDefaults').attr('rel', "<%= Rails.application.routes.url_helpers.remove_default_admin_module_tags_path %>" + "?module_app_id=" + $('#module_app_id').val() + "&ids=" + ids);
					$('#removeDefaults').removeClass('hide');
				} else {
					var ids = new Array();
					$moduleTags.each(function(i) {
						ids.push($moduleTags.eq(i).parent().siblings('.tag_id').val());
					});
					$('#deleteTags').attr('rel', "<%= Rails.application.routes.url_helpers.delete_tags_admin_module_tags_path %>" + "?module_app_id=" + $('#module_app_id').val() + "&ids=" + ids);
					$('#deleteTags').removeClass('hide');
					if($moduleTags.length > 1) {
						$('#mergerTags').removeClass('hide');
					} else {
						$('#mergerTags').addClass('hide');
					};
				};
			} else {
				$('#deselect').addClass('hide');
				$('#deleteTags').attr('rel', "");
				$('#deleteTags').addClass('hide');
				$('#removeDefaults').attr('rel', "");
				$('#removeDefaults').addClass('hide');
				$('#mergerTags').addClass('hide');
				$('#deselect').off('click', deselect);
			};
		};
	}
	$tagsList.delegate('.card', 'click', function() {
		reload_links();
	});
	$('#selectAllTags').on('click', function() {
		$('.filter-item:not(".mark") input[type="checkbox"]').attr('checked', true);
		$('.filter-item:not(".mark") .card').addClass('active');
		reload_links();
	});
	$('#deleteTags').on('click', function() {
		$('#delete_tags .tags-groups').empty();
    $('#delete_tags a.delete-tags').attr("href", $(this).attr("rel"));
    if($defaultTags) {
	    $defaultTags.each(function(i) {
				$defaultTags.eq(i).parents('.filter-item').clone().appendTo('#delete_tags .tags-groups');
				$('#delete_tags .tags-groups .filter-item').addClass('def');
			});
		}
		$moduleTags.each(function(i) {
			$moduleTags.eq(i).parents('.filter-item').clone().appendTo('#delete_tags .tags-groups');
		});
    $('#delete_tags').modal('show', cleanTagInputs());
    function cleanTagInputs(){
    	var $tagsDelete = $('#delete_tags'),
			$filterItem = $tagsDelete.find('.filter-item');
			$filterItem.find('.card, .amount').remove();
			$filterItem.find('a').removeAttr('class');
			$filterItem.find('a').removeAttr('href');
    }
	});
	$('#mergerTags').on('click', function() {
		if($moduleTags || $defaultTags) {
			if($moduleTags.length > 1 || $moduleTags.length+$defaultTags.length > 1) {
				$('#tags-merger form').attr("action", $(this).attr("rel"));
				mergerTags()
			}
		}
	});
	$('#removeDefaults').on('click', function() {
		$('#remove_defaults .tags-groups').empty();
    $('#remove_defaults a.remove-defaults').attr("href", $(this).attr("rel"));
		$defaultTags.each(function(i) {
			$defaultTags.eq(i).parents('.filter-item').clone().appendTo('#remove_defaults .tags-groups');
		});
    $('#remove_defaults').modal('show', cleanTagInputs());
    function cleanTagInputs(){
    	var $removeDefaults = $('#remove_defaults'),
			$filterItem = $removeDefaults.find('.filter-item');
			$filterItem.find('.card, .amount').remove();
			$filterItem.find('a').removeAttr('class');
			$filterItem.find('a').removeAttr('href');
    }
	});

	function deselect() {
		$('.tags input[type="checkbox"]').attr('checked', false);
		$('.card').removeClass('active');
		$('.bottomnav .toggable').not('.open-slide').addClass('hide');
		$('#deleteTags').attr('rel', "<%= Rails.application.routes.url_helpers.delete_tags_admin_tags_path %>");
		$('#addDefault').attr('href', "<%= Rails.application.routes.url_helpers.add_to_default_admin_tags_path %>");
	}
}


function addTagsTab() {
	$('a[data-toggle="tab"]').click(function (e) {
	  e.preventDefault();
	  $(this).tab('show');
	})
}


function mergerTags() {
	var $moduleTags = $('.module-tags input[type="checkbox"]:checked'),
		$defaultTags = $('.default-tags input[type="checkbox"]:checked');

		$defaultTags.each(function(i) {
			$defaultTags.eq(i).parents('.filter-item').clone().appendTo('#tags-merger .tags-groups');
			$('#tags-merger .tags-groups .filter-item').addClass('def');
		});
		$moduleTags.each(function(i) {
			$moduleTags.eq(i).parents('.filter-item').clone().appendTo('#tags-merger .tags-groups');
		});

		$('#tags-merger').modal('show', changeTagName());
	function changeTagName() {
		var $tagsMerger = $('#tags-merger'),
			$newTagsName = $('.new-tags-name'),
			$filterItem = $tagsMerger.find('.filter-item');
		$filterItem.find('.card, .amount').remove();
		$filterItem.find('a').removeAttr('class');
		$filterItem.find('a').removeAttr('href');
		$filterItem.on('click', function() {
			$(this).find('.tag').each(function(i) {
				$newTagsName.eq(i).val($(this).text())
			});
		});
	}
}
$(function() {
	if($('.default-tags').length) {
		checkedLength();
		$('#tags-merger').on('hidden', function () {
			$(this).find('.filter-item').remove();
		});
	} else {
		checkedLength();
	};
});
