(
	function()
	{
		var i, c, n, ns, t, tgt, m;
		
		var truncate = function(str, pos, append)
		{
			var len, posOrig = pos;
			
			str = str.replace(/<[^>]+>/g, " ");
			str = str.replace(/\&nbsp;/g, " ");
			
			len = str.length;
	
			if (pos >= len)
			{
				return str;
			}
			pos--;
			len--;
			
			while ((pos > 0) &&
						 !str.substr(pos, 1).match(/\s/))
			{
				pos--;
			}
			
			if (pos != 0)
			{
				return str.substr(0, pos)+append;
			}
			else
			{
				return str.substr(0, posOrig)+append;
			}
		}

		/* Move fw_header inside the main container */
		jQuery("#ka_mainContainer").prepend(jQuery("#fw_header"));
		
		/* Move fw_header inside the main container and the main container inside a wrapper */
		n = document.createElement("div");
		n.setAttribute("id", "ka_mainContainer_outer");
		m = jQuery("#ka_mainContainer").before(n);
		
		m = document.getElementById("ka_mainContainer_outer");
		n = document.getElementById("ka_mainContainer");
		m.appendChild(n);
		
		/* Add clearfix + rollover to primary nav */
		jQuery("#ka_headerSubNav").addClass("clearfix");
		ns = jQuery("li", jQuery("#ka_headerTopNav_ul").addClass("clearfix")).addClass("clearfix").
			mouseover
			(
				function()
				{
					jQuery(this).addClass("over");
				}
			).
			mouseout
			(
				function()
				{
					jQuery(this).removeClass("over");
				}
			);			
		
		/* Reverse order the primary nav items */
		t = [];
		for (i = 0, c = ns.length; i < c; i++)
		{
			t.push(ns.eq(i));
		}

		tgt = jQuery("#ka_headerTopNav_ul");
		for (i = 0, c = t.length; i < c; i++)
		{
			tgt.prepend(t[i]);
		}

		/* Move the login/logout links, subnav and search */
		jQuery("#fw_header").append(jQuery("#ka_headerLogin"));
		jQuery("#ka_headerBtmNav").prepend(jQuery("#ka_headerSubNav_list").addClass("clearfix"));
		jQuery("#ka_headerSubNav").append(jQuery("#ka_headerSearch"));
		
		/* Re-format login/logout linx */
		ns = jQuery("#ka_headerLogin");
		tgt = jQuery("#fw_header_user");
		if ((n = jQuery("li.ka_username_welcome", ns)).length)
		{
			m = n.html().match(/\(([0-9]+)\s+points\)/i);
			if (!m)
			{
				m = [0, 0];
			}
			jQuery(".val_user_points", tgt).html(m[1]);
			jQuery(".val_user_name", tgt).html(jQuery(".ka_nomarginLogin", n).html());
			jQuery(".auth_action_login", tgt).append(jQuery(".ka_signout_auth a", ns).html("Logout &gt;"));
		}
		else
		{
			jQuery(".user_logged_not", tgt).removeClass("hidden");
			jQuery(".user_logged", tgt).addClass("hidden");
			jQuery(".lnk_login", tgt).append(jQuery(".ka_login_auth a", ns).append(" &gt;"));
			jQuery(".lnk_join", tgt).append(jQuery(".ka_join_auth a", ns));
			jQuery(".lnk_forgot", tgt).append(jQuery(".ka_forgot_pass a", ns));
		}

		/* Add the tweet */
		jQuery(document).ready
		(
			function()
			{
				var twit = "fair_debate";
				jQuery.get
				(
					"http://twitter.com/statuses/user_timeline/"+twit+".json?count=1&callback=?",
					{},
					function(data, textStatus)
					{
						var tweet;
						if (data && data[0] && data[0].text)
						{
							tweet = truncate(data[0].text, 72, "...");
						}
						else
						{
							tweet = "no tweets available from "+twit;
						}
						jQuery("#ka_headerSubNav").prepend
						(
							'<div id="fw_hdr_tweet">'+
								'<span class="twitter_name">@Fair_Debate:<'+'/span>&nbsp;'+
								'<a class="twitter_stat" href="http://twitter.com/'+twit+'" target="_blank">'+tweet+'<'+'/a>'+
							'<'+'/div>'
						);
					},
					"json"
				);
			}
		);

		/* Anchor comments */
		if ((n = jQuery("h3.ka_comments")).length)
		{
			n.before('<a name="ka_comment_anchor"> <'+'/a>');
		}
	}
)();
