var fV = {
	addEvent: function(elm, evType, fn, useCapture) {
		// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
		// By Scott Andrew
		if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
		} else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
		} else {
		elm['on' + evType] = fn;
		}
},

createAjax: function() {
	try { //firefox, safari, ie7
		httpxml = new XMLHttpRequest();
	}
	catch(e) {
		try {
			//later versions of ie
			httpxml = new ActiveXObject('MSXML2.XMLHTTP');
		}
		catch(e) {
			try {
				//older versions of ie
				httpxml = new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch(e) {
				//not able to create object
				return false;
			}
		}
	}
//httpxml.readyState = null;
//httpxml.responseText = null;
//httpxml.responseXML = null;
//httpxml.responseFormat = 'text';
//httpxml.mimeType = null;
return httpxml;
},

init: function() {
	var storySelect = document.getElementById("storyType");
	if (storySelect) {
		fV.addEvent(storySelect, 'change', fV.getStoryType, false);
	}

	var btnVote = document.getElementById("showVote");
	if (btnVote) {
		fV.addEvent(btnVote, 'click', fV.showVoteButtons, false);
	}

	var comDiv = document.getElementById("commentDiv");
	if (comDiv) {
		var votingButtons = comDiv.getElementsByTagName("input");
		for (var i=0;i < votingButtons.length;i++) {
			fV.addEvent(votingButtons[i], 'click', fV.submitVote, false);
		}
	}
},

submitVote: function(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;

	var ax = fV.createAjax();
	var method = "GET";
	var url = "submitTallyVote.php";
	var fullurl = url + '?vID=' + target.name;

	ax.open(method,fullurl,true);

	ax.send(null); //null since GET request

	ax.onreadystatechange = function() {
		if (ax.readyState == 4) {
			var data = ax.responseText;
			//var theInput = document.getElementById(target.name);
			//var theSpan = theInput.nextSibling;
			//theSpan.innerHTML = "";
			//theSpan.innerHTML = data;
				if (data == 'ok') {
					var comDiv = document.getElementById("commentDiv");
					if (comDiv) {
						var votingButtons = comDiv.getElementsByTagName("input");
						for (var i=0;i < votingButtons.length;i++) {
							fV.tallyVote(votingButtons[i]);
						}
					}
				} else {
					alert("Insert must have failed.");
					return false;
				}
		}
	};

	fV.disableVoteButtons();
	
},

tallyVote: function(target) {
	var inputID = target.name;
	var ax = fV.createAjax();
	var method = "GET";
	var url = "tallyVote.php";
	var fullurl = url + '?vID=' + target.name;

	ax.open(method,fullurl,true);

	ax.onreadystatechange = function() {
		if (ax.readyState == 4) {
			var data = ax.responseText;
			var theInput = document.getElementById(inputID);
			var theSpan = theInput.nextSibling;
			theSpan.innerHTML = "";
			theSpan.innerHTML = data;
		}
	};

	ax.send(null); //null since GET request
},

showVoteButtons: function(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;

		var comDiv = document.getElementById("commentDiv");
		var votingButtons = comDiv.getElementsByTagName("input");
		for (var i=0;i < votingButtons.length;i++) {
			votingButtons[i].style.display = "inline";
		}
		target.disabled = true;
		target.style.display = "none";
		var txt = document.getElementById("showVoteText");
		txt.innerHTML = "Vote using buttons below.";
},

disableVoteButtons: function(e) {
	var comDiv = document.getElementById("commentDiv");
	if (comDiv) {
		var votingButtons = comDiv.getElementsByTagName("input");
		for (var i=0;i < votingButtons.length;i++) {
			votingButtons[i].style.backgroundColor = "#666666";
			votingButtons[i].value = "Thanks";
			votingButtons[i].disabled = "true";
			votingButtons[i].style.display = "none";

			var txt = document.getElementById("showVoteText");
			txt.innerHTML = "Thanks!";

			var txtVote = document.getElementById("totalVotesSpan");
			txtVote.style.display = "inline";
		}
	}
},

getStoryType: function(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;

	var ax = fV.createAjax();
	var method = "GET";
	var url = "getStoryType.php";
	var fullurl = url + '?sID=' + target.value;

	ax.open(method,fullurl,true);

	var self = ax; //fix loss of scope problem

ax.send(null); //null since GET request

	ax.onreadystatechange = function() {
		if (ax.readyState == 4) {
			var data = ax.responseText;
			var content = document.getElementById("divStoryWrapper");
			content.innerHTML = "";
			content.innerHTML = data;
		}
	};
	
}

} /*close fV object*/

fV.addEvent(window, 'load', fV.init, false);