;(function($) {
	$(function() {
		var lstEl = null;
		var cntr = -1;

		$(document).ready(function() {
			$('#searchTerm').on('keyup change', function(e) {
				var code = e.which;	// recommended to use e.which, it's normalized across browsers
				if (code == 13) {
					$('#btnNext').click();
				} else {
					lstEl = null;
					cntr = -1;
					var vl = document.getElementById('searchTerm').value;
					$("#content-scroll").removeHighlight();
					$("#content-scroll").highlight(vl);
					if (document.getElementById("counter")) {
						if ($(".searchHighlight").length == 0) {
							document.getElementById("counter").innerHTML = null;
							document.getElementById("total-count").innerHTML = null;
						} else {
							document.getElementById("counter").innerHTML = "(" + (cntr + 1);
							document.getElementById("total-count").innerHTML = " de " + $(".searchHighlight").length + ")";
						};
					};
				};
			});

			$('#btnNext').click(function() {
				if (lstEl === null) {
					lstEl = $('#content-scroll').find('span.searchHighlight');
					if (!lstEl || lstEl.length === 0) {
						lstEl = null;
						return;
					};
				};
				if (cntr < lstEl.length - 1) {
					cntr++;
					if (cntr > 0) {
						$(lstEl[cntr - 1]).removeClass('current');
					};
					var elm = lstEl[cntr];
					if (document.getElementById("counter"))
						document.getElementById("counter").innerHTML = "(" + (cntr + 1);
					$(elm).addClass('current');
					if ($('#content-scroll').jScrollPane) {
						var scroll = $('#content-scroll').jScrollPane({}).data('jsp');
						scroll.scrollToElement($(elm), false);
					} else {
						$('#content-scroll').animate({
							scrollTop : 0
						}, 0);
						$('#content-scroll').animate({
							scrollTop : $(elm).offset().top - 160
						}, 0);
					}
				} else {
					$(lstEl[cntr]).removeClass('current');
					cntr = 0;
					var elm = lstEl[cntr];
					if (document.getElementById("counter"))
						document.getElementById("counter").innerHTML = "(" + (cntr + 1);
					$(elm).addClass('current');
					if ($('#content-scroll').jScrollPane) {
						var scroll = $('#content-scroll').jScrollPane({}).data('jsp');
						scroll.scrollToElement($(elm), false);
					} else {
						$('#content-scroll').animate({
							scrollTop : 0
						}, 0);
						$('#content-scroll').animate({
							scrollTop : $(elm).offset().top - 160
						}, 0);
					}
				};
			});

			$('#btnPrev').click(function() {
				if (lstEl === null) {
					lstEl = $('#content-scroll').find('span.searchHighlight');
					if (!lstEl || lstEl.length === 0) {
						lstEl = null;
						return;
					};
				};
				if (cntr > 0) {
					cntr--;
					if (cntr < lstEl.length) {
						$(lstEl[cntr + 1]).removeClass('current');
					};
					var elm = lstEl[cntr];
					if (document.getElementById("counter"))
						document.getElementById("counter").innerHTML = "(" + (cntr + 1);
					$(elm).addClass('current');
					if ($('#content-scroll').jScrollPane) {
						var scroll = $('#content-scroll').jScrollPane({}).data('jsp');
						scroll.scrollToElement($(elm), false);
					} else {
						$('#content-scroll').animate({
							scrollTop : 0
						}, 0);
						$('#content-scroll').animate({
							scrollTop : $(elm).offset().top - 160
						}, 0);
					}
				} else {
					$(lstEl[cntr]).removeClass('current');
					cntr = lstEl.length - 1;
					var elm = lstEl[cntr];
					if (document.getElementById("counter"))
						document.getElementById("counter").innerHTML = "(" + (cntr + 1);
					$(elm).addClass('current');
					if ($('#content-scroll').jScrollPane) {
						var scroll = $('#content-scroll').jScrollPane({}).data('jsp');
						scroll.scrollToElement($(elm), false);
					} else {
						$('#content-scroll').animate({
							scrollTop : 0
						}, 0);
						$('#content-scroll').animate({
							scrollTop : $(elm).offset().top - 160
						}, 0);
					}
				};
			});
		});
	});
})(jQuery);
