(function($) {
	/**
	 * private functions
	 */
	var catMenuSetup;

	function setCatMenuSetup(setup) {
		catMenuSetup = setup;
	}

	function initCatMenu() {
		catAllCount = jQuery('.contact').length;
		catMenuSetup.$catMenu.append('<div class="categories"><ul></ul></div>');
		jQuery('<li><a href="javascript:void(0)" class="active" id="catSelect-all" onclick="jQuery.op_contact_filter.changeCat(\'all\')"><span class="category">' + catMenuSetup.llAll + '</span><span class="count">' + catAllCount + '</span></a></li>').appendTo('.categories ul');

		catMenuSetup.$items.each(function() {
			if(jQuery(this).find('h2').length > 0) {
				var catCount = jQuery(this).find('.contact').length;
				var catName = jQuery(this).find('h2').html();
				var ttContentUid = jQuery(this).attr('id').substring(2);
				jQuery('<li><a href="javascript:void(0)" id="catSelect-' + ttContentUid + '" onclick="jQuery.op_contact_filter.changeCat(\'' + ttContentUid + '\')"><span class="category">' + catName + '</span><span class="count">' + catCount + '</span></a>').appendTo('.categories ul');
			}
		});
	}

	function changeCat(catName) {
		jQuery('.categories ul li a').removeClass('active');
		jQuery('a#catSelect-' + catName).addClass('active');

		catMenuSetup.$items.show();
		tryLog(catMenuSetup.$items);
		if(catName != 'all') {
			catMenuSetup.$items.not('#ce' + catName).hide();
		}
	}

	/**
	 * public functions
	 */
	jQuery.op_contact_filter = {
		setCatMenuSetup : function (setup) {
			setCatMenuSetup(setup);
		},
		initCatMenu : function () {
			initCatMenu();
		},
		changeCat : function (catClass) {
			changeCat(catClass);
		}
	}
})(jQuery);


jQuery(document).ready(function(){
	if(jQuery('.contact').length > 0) {
		jQuery.op_contact_filter.setCatMenuSetup({
			'$items': jQuery('.contactList'),
			'$catMenu': jQuery('.contactFilter'),
			'llAll': jsLabels.newsFilterAll
		});
		jQuery.op_contact_filter.initCatMenu();
	}
});
