/* Load fancy fonts for some elements */
Cufon.replace("#navigation li a")
    .replace("h1, h2, h3")
    .replace(".decorate", { hover: true })
    .replace(".listing li a", { hover: true })
    .replace(".smallisting li a", { hover: true })
    .replace("label, button")
    .replace(".date");

$(document).ready(function(){
	utils.decorate_listing();
})

var utils = {
	decorate_listing: function () {
		/**
		 * Split text inside the given selector into a number of span tags
		 * where each of the words are at least a minimum length. This makes
		 * it possible to style each segment with i.e. different colors
		 *
		 * @param {String} selector CSS selector used to fetch the text to split
		 * @param {Integer} max_segments Maximim number of segments to split
		 * the words into
		 * @param {Integer} min_wordlen Each segment has at least one word of
		 * this length, else keep adding words to this segment until you find
		 * one
		 */
		var selector = ".listing li a .title";
		var max_segments = 3;
		var min_wordlen = 3;
		$(selector).each(function() {
			var words = $(this).text().split(" ");
			var segments = [];
			var count = 0, pos = 0;
			for (var i = 0; i < words.length; i++) {
				word_too_short = words[i].length < min_wordlen
				if (!word_too_short) {
					pos = count;
					count += 1;
				}
				else if (word_too_short && i == 0) {
					pos = 0;
				}
				else {
					pos = count-1;
				}
				segments[pos] = segments[pos]? segments[pos] + " ": "";
				segments[pos] += words[i];

				/* We are done, add all subsequent words to the last segment */
				if (pos == max_segments-1) {
					for (var j = i+1; j < words.length; j++) {
						segments[max_segments-1] += " " + words[j]
					}
					break;
				}
			}
			$(this).text("");
			for (var i = 0; i < segments.length; i++) {
				var segment = $("<span>").addClass("sep" + i).text(segments[i]);
				$(this).append(segment).append(" ");
			}
		})
        
		Cufon.refresh(".listing li a");
	}
}

