var arrowNavigationEnabled = true;

function setFocus(fieldId) {
	var field = document.getElementById(fieldId);
	field.focus();
}

function urlencode (str) {
	str = escape(str);
	return str.replace(/[*+\/@]|%20/g,
		function (s) {
			switch (s) {
			case "*": s = "%2A"; break;
			case "+": s = "%2B"; break;
			case "/": s = "%2F"; break;
			case "@": s = "%40"; break;
			case "%20": s = "+"; break;
			}
			return s;
		}
	);
}

function stripQuotes(text) {
	var re = /\[quote[^\[]+(?:(?!\[\/?quote\b)\[[^\[]*)*\[\/quote\]\n*/ig;
	while (text.search(re) !== -1) {
		text = text.replace(re, "");
	}
	return text;
}

function stripHtml(text) {
	return text.replace(/(<([^>]+)>)/ig, '');
}

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function ajaxRemoveNotification(id) {
	$.ajax({
		url: '/ajax_remove_notification.php?id=' + urlencode(id)
	});
}

function refreshTwitter(validConnection) {
	if (validConnection) {
		$('#twitterAuthorize').hide();
		$('#twitterConnect').show();
	} else {
		$('#twitterConnect').hide();
		$('#twitterAuthorize').show();
	}
}

function changeCreditCol(colNr, numbersToScroll) {
	if (numbersToScroll != 0) {
		if ($("ul.counter ul#col" + colNr).length != 0) {
			var height = parseInt($("ul.counter ul#col" + colNr).css("top"), 10);
			var number = parseInt($("ul.counter ul#col" + colNr).attr("class").substr(6,1), 10);

			if (numbersToScroll > 0) {
				height--;
				if (number == 9 && height % 14 == -1) {
					changeCreditCol(colNr + 1, +1);
				}
			} else {
				height++;
				if (number == 0 && height % 14 == -13) {
					changeCreditCol(colNr + 1, -1);
				}
			}

			$("ul.counter ul#col" + colNr).css("top", height);

			if (height % 14 == 0) {
				if (numbersToScroll > 0) {
					numbersToScroll=numbersToScroll-1;
					number=number+1;
					if (number > 9) number = 0;
				} else {
					numbersToScroll=numbersToScroll+1;
					number=number-1;
					if (number < 0) number = 9;
				}

				$("ul.counter ul#col" + colNr).removeClass().addClass("credit" + number);
				$("ul.counter ul#col" + colNr).css("top", '');
				var height = parseInt($("ul.counter ul#col" + colNr).css("top"), 10);
			}

			if (numbersToScroll != 0) {
				var scrollSpeed = 50-Math.abs(numbersToScroll)*5;
				if (scrollSpeed < 0) scrollSpeed = 0;

				setTimeout(function() {
					changeCreditCol(colNr, numbersToScroll);
				}, scrollSpeed);
			}
		}
	}
}

function changeCredits(newCredits) {
	setTimeout(function() {
		changeCreditCol(1, Number(newCredits));
	}, 1000);
}

function hideDialog(div_id, timerID) {
	if (timerID) {
		clearTimeout(timerID);
	}

	$('#' + div_id + ' ul.dialog').slideUp(0, function() {
		$('#' + div_id + ' ul.moderate').slideDown(0);
	});
}

function showDialog(div_id, id, text, showButtons, yes_function, noTimer) {
	$('#' + div_id + ' ul.moderate').stop(true,true).slideUp(0, function() {
		$('#' + div_id + ' ul.dialog').stop(true,true).slideDown(0);

		if (!noTimer) {
			var timerID = setTimeout(function() {
				hideDialog(div_id);
			}, 5000);
		}

		$('#' + div_id + ' .dialogInfo').html(text);

		if (showButtons) {
			$('#' + div_id + ' .dialogYes').show();
			$('#' + div_id + ' .dialogNo').show();

			$('#' + div_id + ' .dialogNo').unbind('click').click(function() {
				hideDialog(div_id, timerID);
			});

			if (yes_function) {
				$('#' + div_id + ' .dialogYes').unbind('click').click(function() {
					eval(yes_function + "('" + div_id + "', '" + id + "', " + timerID + ")");
					//yes_function(div_id, id, timerID);
				});
			}
		} else {
			$('#' + div_id + ' .dialogYes').hide();
			$('#' + div_id + ' .dialogNo').hide();
		}
	});
}

function getArrowNavigationEnabled() {
	return arrowNavigationEnabled;
}

function disableArrowNavigation() {
	arrowNavigationEnabled = false;
}

function enableArrowNavigation() {
	arrowNavigationEnabled = true;
}

function growTextArea(field, newHeight) {
	$(field).animate({
		height: newHeight + 'px'
	}, 'fast', function() {
		// finished
	});
}

function shrinkTextArea(field, newHeight) {
	if ($(field).val() == '') {
		$(field).delay(150).animate({
			height: newHeight + 'px'
		}, 'fast', function() {
			// finished
		});
	}
}

