function AddClass(oElement, sClass) {
	if (!new RegExp('\\b' + sClass + '\\b').test(oElement.className)) {
		if (oElement.className) {
			oElement.className += ' ' + sClass;
		} else {
			oElement.className += sClass;
		}
	}
}

function RemoveClass(oElement, sClass) {
	var str;
	if (oElement.className.match(' ' + sClass)) {
		str = ' ' + sClass;
	} else {
		str = sClass;
	}
	oElement.className = oElement.className.replace(str, '');
}

function AjaxContentUpdate(sAction, sId) {
	AjaxContentUpdate(sAction, sId, null);
}

function AjaxContentUpdate(sAction, sId, sParam1) {
	var sUrl = "http://yanthor.net/ajax.html";
	var xmlHttpReq = false;
	var self = this;
	sUrl += "?Action=" + escape(sAction);
	if (sParam1 != null) {
		sUrl += "&Param1=" + encodeURI(sParam1);
	}

	if (window.XMLHttpRequest) {
		// Mozilla/Safari
		self.xmlHttpReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// IE
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}

	self.xmlHttpReq.open('GET', sUrl, true);
	self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	self.xmlHttpReq.onreadystatechange = function() {
		if (self.xmlHttpReq.readyState == 4) {
			if (sId != null) {
				UpdatePage(sId, self.xmlHttpReq.responseText);
			} else {
				var aResponse = self.xmlHttpReq.responseText.split('|^#~/|');
				for (i = 0; i < aResponse.length; i += 2) {
					UpdatePage(aResponse[i], aResponse[i + 1]);
				}
			}
		}
	}

	self.xmlHttpReq.send("");
}

function UpdatePage(sId, strNewContent){
	document.getElementById(sId).innerHTML = strNewContent;
}

function UpdateDraftsHtml() {
	AjaxContentUpdate("GetDrafts", "DraftsContent");
}

function FlagContent(oButton) {
	//AjaxContentUpdate('FlagContent', 'FlaggedContent');
	AjaxContentUpdate('FlagContent', null);
	oButton.value = " Clear Flag ";
	oButton.onclick = function() {
		UnflagContent(this);
	};
}

function UnflagContent(oButton) {
	//AjaxContentUpdate('UnflagContent', 'FlaggedContent');
	AjaxContentUpdate('UnflagContent', null);
	oButton.value = " Flag ";
	oButton.onclick = function() {
		FlagContent(this);
	};
}

function LikeContent(oButton) {
	AjaxContentUpdate('SetReaction', 'Readers', 'LIKE');
	oButton.value = " Unlike ";
	oButton.onclick = function() {
		UnlikeContent(this);
	};
	oLoveButton = document.getElementById('LoveButton');
	oLoveButton.value = " Love It! ";
	oLoveButton.onclick = function() {
		LoveContent(this);
	};
}

function UnlikeContent(oButton) {
	AjaxContentUpdate('SetReaction', 'Readers');
	oButton.value = " Like It. ";
	oButton.onclick = function() {
		LikeContent(this);
	};
}

function LoveContent(oButton) {
	AjaxContentUpdate('SetReaction', 'Readers', 'LOVE');
	oButton.value = " Unlove ";
	oButton.onclick = function() {
		UnloveContent(this);
	};
	oLikeButton = document.getElementById('LikeButton');
	oLikeButton.value = " Like It. ";
	oLikeButton.onclick = function() {
		LikeContent(this);
	};
}

function UnloveContent(oButton) {
	AjaxContentUpdate('SetReaction', 'Readers');
	oButton.value = " Love It! ";
	oButton.onclick = function() {
		LoveContent(this);
	};
}
