(function($) {

	var preLoadImageCache = [];

	// Generic function to pre-load specified images
	$.preLoadImages = function() {
		for (var index = arguments.length; index--; ) {
			var cachedImage = document.createElement('img');
			cachedImage.src = arguments[index];
			preLoadImageCache.push(cachedImage);
		}
	}
	
	// Pre-loads vote button hover images
	$.preLoadVoteBoxButtonImages = function() {
		$.preLoadImages('/Content/Images/VoteUpHot.png', '/Content/Images/VoteUpHotLarge.png', '/Content/Images/VoteDownHot.png', '/Content/Images/VoteDownHotLarge.png', '/Content/Images/VoteWarningHot.png');
	}
	
	// Updates a character count label
	$.updateCharCount = function(textAreaControl, charsCountLabel) {
		var charCount = textAreaControl.val().length;
		charsCountLabel.text(charCount.toString() + ' chars');
	}
	
	// Updates a characters remaining label
	$.updateCharsRemaining = function(textAreaControl, charsRemainingLabel) {
		var maxCharCount = textAreaControl.attr('maxlength');
		var charCount = textAreaControl.val().length;
		charsRemainingLabel.text((maxCharCount - charCount).toString() + ' remaining');
	}
	
})(jQuery)

