function setNumberOfColumns(){
	if(navigator.appName=="Netscape"){
		var WindowWidth = window.innerWidth;
	} else {
		var WindowWidth = document.body.offsetWidth;
	}
	var MaxCols = Math.floor(WindowWidth / 400);
	var ContentWidth = MaxCols * 400;
	try{
		document.getElementById('PageContentContainer').style.width = ContentWidth + 'px';
	} catch(err) {
		//alert(err);
	}
}

function setNumberOfHeadlines(NumObj){
	var Num = NumObj.options[NumObj.selectedIndex].value;
	NumObj.SelectedIndex = 0;
	if((Num < 3) || (Num > 15)){
		alert("TO INFINITY AND BEYOND!\n\nWhat do you think you're trying to do??\nSetting the number of items to "+ Num +" like that.\n\nGeeez...\n\nHere, take 7 and be happy with it.");
		createCookie('n', 7, 90);
	} else {
		createCookie('n', Num, 90);
	}
	window.location.reload();
}

function setLastVisit(){
	var d = new Date();
	var ds = d.toUTCString();
	createCookie('v', ds, 90);
}

function hideLoading(){
	document.getElementById('Loading').style.display = 'none';
}

function addEllipsis(NumToSkip){
	var itemSpans = document.getElementsByTagName("span");
	var spanCount = itemSpans.length;
	var maxWidth = 365;
	
	for(var i = NumToSkip; i <= spanCount; i ++){
		try{
			if(itemSpans[i].offsetWidth > maxWidth){
				var longSpanText = itemSpans[i].innerHTML;

				// Since we're looping through the string 1 character at a time
				// let's start at 40 characters to reduce the number of iterations...
				// We should be able to get at least 40 characters into 365 pixels, right?
				var s = 40;

				itemSpans[i].innerHTML = '';

				while((itemSpans[i].offsetWidth < maxWidth) && (s < longSpanText.length)){
					itemSpans[i].innerHTML = longSpanText.substr(0, s) + '...';
					s ++;
				}
			} 
		} catch(err) {
			//This is not the proper use of a catch statement, but fuck it.
			//alert(err);
			return;
		}
	}
}

function setTweetStatus(status){
	document.getElementById('TweetStatus').innerHTML = status;
}

function track(url){
	var d = false; // Debug

	try{
		pageTracker._trackPageview(url);
	} catch(err) {
		if(d){alert('Unable to track outbound link.\n\n' + err);}
		return false;
	}
}

function ajaxPost(url, query){
	var d = true; // Debug
	var r = false; // XMLHttpRequest

	if(window.XMLHttpRequest()){
		try{ r = new XMLHttpRequest(); } catch(err) { if(d){alert(err);} }
	} else if (window.ActiveXObject){
		try{ r = new ActiveXObject("Microsoft.XMLHTTP"); } catch(err) { if(d){alert(err);} }
	}

	if(r){
		r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		r.onreadystatechange = function(){
			if(r.readyState == 4){
				if(r.status == 200){
					if(d){alert(r.responseText);}
					return r.responseText;
				} else {
					if(d){alert(r.statusText);}
					return false;
				}
			}
		}
		r.open('POST', url, true);
		r.send(query);
	} else {
		return false;
	}
}


// Javascript Cookie Functions
// From: http://www.quirksmode.org/js/cookies.html
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
