var BUDDIES = new Array();
var totalWords = 0;

$(document).ready(initPage);

function initPage() {
	var testing = false;
	$.tablesorter.defaults.widgets = ['zebra'];
	
	var today = new Date();
	document.getElementById('date').innerHTML = today.toLocaleDateString();
	loadBuddies();
	displayBuddies();
	if (testing) {
		BUDDIES[547445] = {
		'user' : 'DanyelleFerguson',
		'id' : 547445,
		'wordcount' : 30000,
		'name' : 'Danyelle Ferguson'};
		updateBuddy(547445,true);
	} else {
		for (x in BUDDIES) {
			getWordCount(x);
		}
	}
}

function displayBuddies() {
	for (x in BUDDIES) {
		if (document.getElementById(x) == null) {
			addBuddy(x);
		} else {
			updateBuddy(x,false);
		}
	}
	$("#results").tablesorter();
	$('#results').trigger('update');

}

function loadBuddies() {
	BUDDIES[544957] = {'name' : 'Ali Cross','wordcount' : 'Unknown'}; 
	BUDDIES[461558] = {'name' : 'Alison Palmer','wordcount' : 'Unknown'}; 
	BUDDIES[560339] = {'name' : 'Candace Salima','wordcount' : 'Unknown'}; 
	BUDDIES[547049] = {'name' : 'Carolyn Frank','wordcount' : 'Unknown'}; 
	BUDDIES[558855] = {'name' : 'Cathy Witbeck','wordcount' : 'Unknown'}; 
	BUDDIES[422753] = {'name' : 'Cheri Chesley','wordcount' : 'Unknown'}; 
	BUDDIES[545014] = {'name' : 'Christine Bryant','wordcount' : 'Unknown'}; 
	BUDDIES[538815] = {'name' : 'Connie Hall','wordcount' : 'Unknown'}; 
	BUDDIES[547445] = {'name' : 'Danyelle Ferguson','wordcount' : 'Unknown'}; 
	BUDDIES[537104] = {'name' : 'Daron Fraley','wordcount' : 'Unknown'}; 
	BUDDIES[567375] = {'name' : 'Darvell Hunt','wordcount' : 'Unknown'}; 
	BUDDIES[580086] = {'name' : 'Doug Johnston','wordcount' : 'Unknown'}; 
	BUDDIES[415005] = {'name' : 'Elana Johnson','wordcount' : 'Unknown'}; 
	BUDDIES[564221] = {'name' : 'Elizabeth Mueller', 'wordcount' : 'Unknown'};
	BUDDIES[44770]  = {'name' : 'Gaynell Parker','wordcount' : 'Unknown'}; 
	BUDDIES[545673] = {'name' : 'Heather Justesen','wordcount' : 'Unknown'}; 
	BUDDIES[250106] = {'name' : 'Jennifer Wilks','wordcount' : 'Unknown'}; 
	BUDDIES[563482] = {'name' : 'Jolyn Brown','wordcount' : 'Unknown'}; 
	BUDDIES[549189] = {'name' : 'Josh Perkey','wordcount' : 'Unknown'}; 
	BUDDIES[133848] = {'name' : 'Karen Hoover','wordcount' : 'Unknown'}; 
	BUDDIES[546414] = {'name' : 'Karlene Browning','wordcount' : 'Unknown'}; 
	BUDDIES[535256] = {'name' : 'Laura Elliot','wordcount' : 'Unknown'}; 
	BUDDIES[548482] = {'name' : 'Marta Smith','wordcount' : 'Unknown'}; 
	BUDDIES[551640] = {'name' : 'Michelle Jefferies','wordcount' : 'Unknown'}; 
	BUDDIES[539204] = {'name' : 'Nichole Giles','wordcount' : 'Unknown'}; 
	BUDDIES[136204] = {'name' : 'Stephanie Humphreys','wordcount' : 'Unknown'}; 
	BUDDIES[457050] = {'name' : 'Taffy Lovell','wordcount' : 'Unknown'}; 
	BUDDIES[545496] = {'name' : 'Tobyn Degraw','wordcount' : 'Unknown'}; 
	BUDDIES[567284] = {'name' : 'Tristi Pinkston','wordcount' : 'Unknown'}; 
	BUDDIES[530871] = {'name' : 'Wendy Elliot','wordcount' : 'Unknown'}; 
}

function getWordCount(id) {
	var xmlhttp;
	if (window.XMLHttpRequest) {
		xmlhttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		grayOut(true,{'bgcolor':'#FF0000'});
		displayMessage('<h3>ERROR</h3><p>Your browser is not supported. Sorry.</p><p><a href="#" onclick="closeMessage();return false;">Close</a></p>');
	}
	xmlhttp.onreadystatechange=function() {
		switch (xmlhttp.readyState) {
			case 0: //Request not initialized
				break;
			case 1: //Request setup
				break;
			case 2: //Request sent
				break;
			case 3: //Request in process
				break;
			case 4: //Request complete
				var response = xmlhttp.responseText;
				var id = parseResponse('uid',response);
				var user = parseResponse('uname',response);
				var wc = parseResponse('user_wordcount',response);
				var name = BUDDIES[id]['name'];
				BUDDIES[id] = {
						'user' : user,
						'id' : id,
						'wordcount' : wc,
						'name' : name};
				updateBuddy(id,true);
				break;
		}
	}
	var url = "GetCount.php?id="+id;
	//var url = 'http://jndservices.com/authorsincognito/GetCount.php?id='+id; 
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function addBuddy(id) {
	$('#results tbody').append('<tr id="'+x+'"><td>'+BUDDIES[x]['name']+'</td><td></td><td>'+BUDDIES[x]['wordcount']+'</td><td><img src="images/bar_blue.jpg" id="bar_'+x+'"/></td></tr>');
}

function updateBuddy(id,recalculateTotal) {
	$('#'+id).find('td').remove();
	$('#'+id).append('<td>'+BUDDIES[id]['name']+'</td><td>'+BUDDIES[id]['user']+'</td><td>'+BUDDIES[id]['wordcount']+'</td><td><img src="images/bar_blue.jpg" id="bar_'+id+'"/></td>');
	setBarLength('bar_'+id,Number(BUDDIES[id]['wordcount']));
	if (recalculateTotal) {
		totalWords += Number(BUDDIES[id]['wordcount']);
		$('#total').text(String(totalWords));
	}
	$('#results').trigger('update');
}

function setBarLength(id,amount) {
	var length = (amount / 60000) * 300;
	var height = 15;
	var img = document.getElementById(id);
	img.style.height = height + 'px';
	img.style.width = length + 'px';
}

function parseResponse(token, response) {
	var beginIndex = response.indexOf('<'+token+'>');
	var endIndex = response.indexOf('</'+token+'>');
	if (beginIndex > 0 && endIndex > 0) {
		return response.substring(beginIndex+2+token.length,endIndex);
	} else {
		alert('There was a problem finding '+token);
		return '';
	}
}
