function boldBlog() {
	var divBlogStyleBold = document.getElementById("divBlogStyleBold");
	var divBlogCurentStyle = document.getElementById("divBlogCurentStyle");
	var txtBlogEntry = document.getElementById("txtBlogEntry");
	var caretPos = txtBlogEntry.selectionEnd;
	//Check if bold is on or off
	if (divBlogCurentStyle.innerHTML.indexOf("b") < 0) {
		//Bold off, insert open bold tag, update current style, and set class
		if (txtBlogEntry.selectionEnd - txtBlogEntry.selectionStart > 0) {
			var startPos = txtBlogEntry.selectionStart;
			var endPos = txtBlogEntry.selectionEnd;
			var mlength = txtBlogEntry.textLength;
			var s1 = (txtBlogEntry.value).substring(0,startPos);
			var s2 = (txtBlogEntry.value).substring(startPos, endPos)
			var s3 = (txtBlogEntry.value).substring(endPos, mlength);
			txtBlogEntry.value = s1 + "<b>" + s2 + "</b>" + s3;
			caretPos += 7;
		} else {
			var mlength = txtBlogEntry.textLength;
			var s1 = (txtBlogEntry.value).substring(0,caretPos);
			var s2 = (txtBlogEntry.value).substring(caretPos, mlength);
			txtBlogEntry.value = s1 + "<b>" + s2;
			divBlogCurentStyle.innerHTML = divBlogCurentStyle.innerHTML + "b";
			divBlogStyleBold.className = "divBlogBtnStyleSelect";
			divBlogStyleBold.onmouseout= function() { this.className="divBlogBtnStyleSelect"; };
			caretPos += 3;
		}
	} else {
		//Bold on, insert close bold tag. update current style, and set class
		var mlength = txtBlogEntry.textLength;
		var s1 = (txtBlogEntry.value).substring(0,caretPos);
		var s2 = (txtBlogEntry.value).substring(caretPos, mlength);
		txtBlogEntry.value = s1 + "</b>" + s2;
		divBlogCurentStyle.innerHTML = divBlogCurentStyle.innerHTML.replace("b", "");
		divBlogStyleBold.className = "divBlogBtnStyleHover";
		divBlogStyleBold.onmouseout= function() { this.className="divBlogBtnStyle"; };
		caretPos += 4;
	}
	txtBlogEntry.focus();
	txtBlogEntry.selectionEnd = caretPos;
}

function italicBlog() {
	var divBlogStyleItalic = document.getElementById("divBlogStyleItalic");
	var divBlogCurentStyle = document.getElementById("divBlogCurentStyle");
	var txtBlogEntry = document.getElementById("txtBlogEntry");
	var caretPos = txtBlogEntry.selectionEnd;
	//Check if italic is on or off
	if (divBlogCurentStyle.innerHTML.indexOf("i") < 0) {
		//Italic off, insert open bold tag, update current style, and set class
		if (txtBlogEntry.selectionEnd - txtBlogEntry.selectionStart > 0) {
			var startPos = txtBlogEntry.selectionStart;
			var endPos = txtBlogEntry.selectionEnd;
			var mlength = txtBlogEntry.textLength;
			var s1 = (txtBlogEntry.value).substring(0,startPos);
			var s2 = (txtBlogEntry.value).substring(startPos, endPos)
			var s3 = (txtBlogEntry.value).substring(endPos, mlength);
			txtBlogEntry.value = s1 + "<i>" + s2 + "</i>" + s3;
			caretPos += 7;
		} else {
			var mlength = txtBlogEntry.textLength;
			var s1 = (txtBlogEntry.value).substring(0,caretPos);
			var s2 = (txtBlogEntry.value).substring(caretPos, mlength);
			txtBlogEntry.value = s1 + "<i>" + s2;
			divBlogCurentStyle.innerHTML = divBlogCurentStyle.innerHTML + "i";
			divBlogStyleItalic.className = "divBlogBtnStyleSelect";
			divBlogStyleItalic.onmouseout= function() { this.className="divBlogBtnStyleSelect"; };
			caretPos += 3;
		}
	} else {
		//Italic on, insert close bold tag. update current style, and set class
		var mlength = txtBlogEntry.textLength;
		var s1 = (txtBlogEntry.value).substring(0,caretPos);
		var s2 = (txtBlogEntry.value).substring(caretPos, mlength);
		txtBlogEntry.value = s1 + "</i>" + s2;
		divBlogCurentStyle.innerHTML = divBlogCurentStyle.innerHTML.replace("i", "");
		divBlogStyleItalic.className = "divBlogBtnStyleHover";
		divBlogStyleItalic.onmouseout= function() { this.className="divBlogBtnStyle"; };
		caretPos += 4;
	}
	txtBlogEntry.focus();
	txtBlogEntry.selectionEnd = caretPos;	
}

function linkBlog() {
	var divBlogStyleLink = document.getElementById("divBlogStyleLink");
	var divBlogCurentStyle = document.getElementById("divBlogCurentStyle");
	var txtBlogEntry = document.getElementById("txtBlogEntry");
	var caretPos = txtBlogEntry.selectionEnd;
	//Check if bold is on or off
	if (divBlogCurentStyle.innerHTML.indexOf("a") < 0) {
		//Link off, insert open bold tag, update current style, and set class
		if (txtBlogEntry.selectionEnd - txtBlogEntry.selectionStart > 0) {
			var startPos = txtBlogEntry.selectionStart;
			var endPos = txtBlogEntry.selectionEnd;
			var mlength = txtBlogEntry.textLength;
			var s1 = (txtBlogEntry.value).substring(0,startPos);
			var s2 = (txtBlogEntry.value).substring(startPos, endPos)
			var s3 = (txtBlogEntry.value).substring(endPos, mlength);
			txtBlogEntry.value = s1 + "<a target='_blank' href=''>" + s2 + "</a>" + s3;
			caretPos += 21;
		} else {
			var mlength = txtBlogEntry.textLength;
			var s1 = (txtBlogEntry.value).substring(0,caretPos);
			var s2 = (txtBlogEntry.value).substring(caretPos, mlength);
			txtBlogEntry.value = s1 + "<a target='_blank' href=''>" + s2;
			divBlogCurentStyle.innerHTML = divBlogCurentStyle.innerHTML + "a";
			divBlogStyleLink.className = "divBlogBtnStyleSelect";
			divBlogStyleLink.onmouseout= function() { this.className="divBlogBtnStyleSelect"; };
			caretPos += 25;
		}
	} else {
		//Link on, insert close bold tag. update current style, and set class
		var mlength = txtBlogEntry.textLength;
		var s1 = (txtBlogEntry.value).substring(0,caretPos);
		var s2 = (txtBlogEntry.value).substring(caretPos, mlength);
		txtBlogEntry.value = s1 + "</a>" + s2;
		divBlogCurentStyle.innerHTML = divBlogCurentStyle.innerHTML.replace("a", "");
		divBlogStyleLink.className = "divBlogBtnStyleHover";
		divBlogStyleLink.onmouseout= function() { this.className="divBlogBtnStyle"; };
		caretPos += 4;
	}
	txtBlogEntry.focus();
	txtBlogEntry.selectionEnd = caretPos;
}

function previewBlog() {
	var divBlogContainer = document.getElementById("divBlogContainer");
	
	var divBlogTitle = document.createElement("div");
	divBlogTitle.className = "divBlogTitle";
	divBlogTitle.innerHTML = document.getElementById("txtBlogTitle").value;
	divBlogContainer.appendChild(divBlogTitle);

	var divBlogTags = document.createElement("div");
	divBlogTags.className = "divBlogTags";
	divBlogTags.innerHTML = document.getElementById("txtBlogTags").value;
	divBlogContainer.appendChild(divBlogTags);

	var divBlogEntry = document.createElement("div");
	divBlogEntry.className = "divBlogEntry";
	divBlogEntry.innerHTML = document.getElementById("txtBlogEntry").value;
	divBlogContainer.appendChild(divBlogEntry);	
}

function submitBlog() {
	var divMsg = document.getElementById("divMsg");
	
	var oXHR = createXHR();
	oXHR.open("post", "/blog/blogCreate.php", true);
	var sBody = "";
	sBody += "Title=" + encodeURIComponent(document.getElementById("txtBlogTitle").value);
	sBody += "&Entry=" + encodeURIComponent(document.getElementById("txtBlogEntry").value);
	if (document.getElementById("txtBlogTags").value > "")
		sBody += "&Tags=" + encodeURIComponent(document.getElementById("txtBlogTags").value);
	if (document.getElementById("chkBlogHidden").checked)
		sBody += "&Hidden=1";
	else
		sBody += "&Hidden=0";
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	oXHR.setRequestHeader("Content-length", sBody.length);
	oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if (oXHR.readyState < 4)
			divMsg.innerHTML = "loading...";
		else if (oXHR.readyState == 4) {
			if (oXHR.status == 200) {
				divMsg.innerHTML= "";
				displayBlogs(oXHR.responseXML);
			} else {
				divMsg.innerHTML= "Error with php page call. status: "+oXHR.status+ " <BR />";
			}
		}
	};
	//Send the request
	oXHR.send(sBody);

}//end submitBlog()

function loadBlogs(blogID, userID) {
	logUsage("LOAD BLOG", blogID);
	var divMsg = document.getElementById("divMsg");
	
	var oXHR = createXHR();
	oXHR.open("post", "/blog/blogRead.php", true);
	var sBody = null;
	if ((blogID != null) && (blogID > 0))
		sBody = "Blog_ID="+encodeURIComponent(blogID);
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	if (sBody != null)
		oXHR.setRequestHeader("Content-length", sBody.length);
	else
			oXHR.setRequestHeader("Content-length", 0);
	oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if (oXHR.readyState < 4)
			divMsg.innerHTML = "loading...";
		else if (oXHR.readyState == 4) {
			if (oXHR.status == 200) {
				divMsg.innerHTML= "";
				displayBlogs(oXHR.responseXML, userID);
			} else {
				divMsg.innerHTML= "Error with php page call. status: "+oXHR.status+ " <BR />";
			}
		}
	};
	//Send the request
	oXHR.send(sBody);
}//end loadBlogs()


function loadBlogList() {
	logUsage("LOAD BLOGLIST");
	var divMsg = document.getElementById("divMsg");
	
	var oXHR = createXHR();
	oXHR.open("post", "/blog/blogRead.php", true);
	var sBody = null;
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	if (sBody != null)
		oXHR.setRequestHeader("Content-length", sBody.length);
	else
			oXHR.setRequestHeader("Content-length", 0);
	oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if (oXHR.readyState < 4)
			divMsg.innerHTML = "loading...";
		else if (oXHR.readyState == 4) {
			if (oXHR.status == 200) {
				divMsg.innerHTML = "";
				listBlogs(oXHR.responseXML);
			} else {
				divMsg.innerHTML= "Error with php page call. status: "+oXHR.status+ " <BR />";
			}
		}
	};
	//Send the request
	oXHR.send(sBody);
}//end loadBlogs()

function listBlogs(xmlDoc) {
	var divMsg = document.getElementById("divMsg");
	var divBlogContainer = document.getElementById("divBlogContainer");
	divBlogContainer.innerHTML = "";
	
	//Check for errors
	if (xmlDoc == null) {
		divMsg.innerHTML = "No blogs found";
		return;	
	}

	var xmlrows = xmlDoc.getElementsByTagName("Error");
	if (xmlrows.length > 0) {
		var xmlcells = xmlrows[0].getElementsByTagName("Message");
		var strMessage = "";
		for (var i=0; i<xmlcells.length; i++) {
			if (xmlcells[i].firstChild == null) {
				strMessage = "An error occurred when reading blog. <br />";
			} else {
				strMessage = xmlcells[i].firstChild.data;
			}
		}
		divMsg.innerHTML = strMessage;
	} else {
		//Display the last 5 blogs
		xmlBlogs = xmlDoc.getElementsByTagName("Blog");
		for (var i=0; i<xmlBlogs.length; i++) {
			//Get Blog ID, if none break
			xmlBlogID = xmlBlogs[i].getElementsByTagName("Blog_ID");
			if ((xmlBlogID.length == 0) || (xmlBlogID[0].firstChild == null))
				break;
			blogID = xmlBlogID[0].firstChild.data;
				
			var divBlogRow = document.createElement("div");
			divBlogRow.id = "divBlogRow" + blogID;
			divBlogRow.className = "divBlogRow";
			divBlogContainer.appendChild(divBlogRow);
			
			//Store Blog ID
			var hidBlogID = document.createElement("input");
			hidBlogID.id = "hidBlogID" + i;
			hidBlogID.type = "hidden";	
			hidBlogID.value = blogID;
			divBlogRow.appendChild(hidBlogID);
			
			//Blog Title
			var divBlogTitle = document.createElement("div");
			divBlogTitle.id = "divBlogTitle" + i;
			divBlogTitle.className = "divBlogTitle";
			divBlogTitle.onclick = function() {
				row = this.id.substr(12, (this.id.length)-12);
				location= "/blog/display.php?entry=" + document.getElementById("hidBlogID" + row).value;
			};
			divBlogRow.appendChild(divBlogTitle);
			xmlBlogTitle = xmlBlogs[i].getElementsByTagName("Title");
			if ((xmlBlogTitle.length > 0) && (xmlBlogTitle[0].firstChild != null))
				divBlogTitle.innerHTML = xmlBlogTitle[0].firstChild.data;

			//Blog DateTime
			var divBlogDateTime = document.createElement("div");
			divBlogDateTime.id = "divBlogDateTime" + i;
			divBlogDateTime.className = "divBlogDateTime";
			divBlogRow.appendChild(divBlogDateTime);
			xmlBlogDateTime = xmlBlogs[i].getElementsByTagName("DateCreated");
			if ((xmlBlogDateTime.length > 0) && (xmlBlogDateTime[0].firstChild != null))
				divBlogDateTime.innerHTML = xmlBlogDateTime[0].firstChild.data;

			//Blog Tags
			var divBlogTags = document.createElement("div");
			divBlogTags.id = "divBlogTags" + i;
			divBlogTags.className = "divBlogTags";
			divBlogRow.appendChild(divBlogTags);
			xmlBlogTags = xmlBlogs[i].getElementsByTagName("Tags");
			if ((xmlBlogTags.length > 0) && (xmlBlogTags[0].firstChild != null))
				divBlogTags.innerHTML = xmlBlogTags[0].firstChild.data;

			//Spacer
			var divSpace = document.createElement("div");
			divSpace.className = "spacer";
			divBlogRow.appendChild(divSpace);

 			//Display Number of Comments
			var xmlBlogComments = xmlBlogs[i].getElementsByTagName("Comment");
			var divBlogCommentCount = document.createElement("div");
			divBlogCommentCount.id = "divBlogCommentCount" + blogID;
			if (xmlBlogComments.length == 0)
				divBlogCommentCount.innerHTML = "No Comments";
			else if (xmlBlogComments.length == 1)
				divBlogCommentCount.innerHTML = "1 Comment";
			else
				divBlogCommentCount.innerHTML = xmlBlogComments.length + " Comments";
			divBlogRow.appendChild(divBlogCommentCount);

		}//end for each blog
	}//end no errors
}

function displayBlogs(xmlDoc, userID) {
	var divMsg = document.getElementById("divMsg");
	var divBlogContainer = document.getElementById("divBlogContainer");
	divBlogContainer.innerHTML = "";
	
	//Check for errors
	if (xmlDoc == null) {
		divMsg.innerHTML = "No blogs found";
		return;	
	}

	var xmlrows = xmlDoc.getElementsByTagName("Error");
	if (xmlrows.length > 0) {
		var xmlcells = xmlrows[0].getElementsByTagName("Message");
		var strMessage = "";
		for (var i=0; i<xmlcells.length; i++) {
			if (xmlcells[i].firstChild == null) {
				strMessage = "An error occurred when reading blog. <br />";
			} else {
				strMessage = xmlcells[i].firstChild.data;
			}
		}
		divMsg.innerHTML = strMessage;
	} else {
		//Display the last 5 blogs
		xmlBlogs = xmlDoc.getElementsByTagName("Blog");
		for (var i=0; i<xmlBlogs.length; i++) {
			if (i==4)
				break;

			//Get Blog ID, if none break
			xmlBlogID = xmlBlogs[i].getElementsByTagName("Blog_ID");
			if ((xmlBlogID.length == 0) || (xmlBlogID[0].firstChild == null))
				break;
			blogID = xmlBlogID[0].firstChild.data;
				
			var divBlogRow = document.createElement("div");
			divBlogRow.id = "divBlogRow" + blogID;
			divBlogRow.className = "divBlogRow";
			divBlogContainer.appendChild(divBlogRow);
			
			//Store Blog ID
			var hidBlogID = document.createElement("input");
			hidBlogID.id = "hidBlogID" + i;
			hidBlogID.type = "hidden";	
			hidBlogID.value = blogID;
			divBlogRow.appendChild(hidBlogID);
			
			//Blog Title
			var divBlogTitle = document.createElement("div");
			divBlogTitle.id = "divBlogTitle" + i;
			divBlogTitle.className = "divBlogTitle";
			divBlogTitle.onclick = function() {
				row = this.id.substr(12, (this.id.length)-12);
				location= "/blog/display.php?entry=" + document.getElementById("hidBlogID" + row).value;
			};
			divBlogRow.appendChild(divBlogTitle);
			xmlBlogTitle = xmlBlogs[i].getElementsByTagName("Title");
			if ((xmlBlogTitle.length > 0) && (xmlBlogTitle[0].firstChild != null))
				divBlogTitle.innerHTML = xmlBlogTitle[0].firstChild.data;

			//Blog DateTime
			var divBlogDateTime = document.createElement("div");
			divBlogDateTime.id = "divBlogDateTime" + i;
			divBlogDateTime.className = "divBlogDateTime";
			divBlogRow.appendChild(divBlogDateTime);
			xmlBlogDateTime = xmlBlogs[i].getElementsByTagName("DateCreated");
			if ((xmlBlogDateTime.length > 0) && (xmlBlogDateTime[0].firstChild != null))
				divBlogDateTime.innerHTML = xmlBlogDateTime[0].firstChild.data;

			//Blog Tags
			var divBlogTags = document.createElement("div");
			divBlogTags.id = "divBlogTags" + i;
			divBlogTags.className = "divBlogTags";
			divBlogRow.appendChild(divBlogTags);
			xmlBlogTags = xmlBlogs[i].getElementsByTagName("Tags");
			if ((xmlBlogTags.length > 0) && (xmlBlogTags[0].firstChild != null))
				divBlogTags.innerHTML = xmlBlogTags[0].firstChild.data;

			//Blog Entry
			var divBlogEntry = document.createElement("div");
			divBlogEntry.id = "divBlogEntry" + i;
			divBlogEntry.className = "divBlogEntry";
			divBlogRow.appendChild(divBlogEntry);
			xmlBlogEntry = xmlBlogs[i].getElementsByTagName("Entry");
			if (xmlBlogEntry.length > 0) {
				var strEntry = "";
				for (var j=0; j<xmlBlogEntry[0].childNodes.length; j++) {
					strEntry += xmlBlogEntry[0].childNodes[j].data;
				}
				divBlogEntry.innerHTML = strEntry;
			}
				
			//Spacer
			var divSpace = document.createElement("div");
			divSpace.className = "spacer";
			divBlogRow.appendChild(divSpace);

 			//Load Comments
    		//loadBlogComments(blogID, userID);

 			//Display Comments
 			var divBlogCommentErrorMessage = document.createElement("div");
 			divBlogCommentErrorMessage.id = "divBlogCommentErrorMessage" + blogID;
 			divBlogRow.appendChild(divBlogCommentErrorMessage);
 			xmlComments = xmlBlogs[i].getElementsByTagName("Comments");
 			if (xmlComments.length > 0)
	    		displayBlogComments(xmlBlogs[i], userID, blogID);
						
		}//end for each blog
	}//end no errors
}//end displayBlogs()

function addBlogComment(blogID) {
	var divMsg = document.getElementById("divBlogCommentErrorMessage" + blogID);
	
	var oXHR = createXHR();
	oXHR.open("post", "/blog/blogCommentCreate.php", true);
	var sBody = "Blog_ID="+encodeURIComponent(blogID);
	sBody += "&Message="+encodeURIComponent(document.getElementById("txtBlogCommentMessage" + blogID).value);
	
	if (document.getElementById("txtBlogCommentGuestName" + blogID).value != "")
		sBody += "&GuestName="+encodeURIComponent(document.getElementById("txtBlogCommentGuestName" + blogID).value);
	if (document.getElementById("txtBlogCommentGuestEmail" + blogID).value != "")
		sBody += "&GuestEmail="+encodeURIComponent(document.getElementById("txtBlogCommentGuestEmail" + blogID).value);
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	if (sBody != null)
		oXHR.setRequestHeader("Content-length", sBody.length);
	else
			oXHR.setRequestHeader("Content-length", 0);
	oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if (oXHR.readyState < 4)
			divMsg.innerHTML = "loading...";
		else if (oXHR.readyState == 4) {
			if (oXHR.status == 200) {
				if (oXHR.responseXML == null)
					divMsg.innerHTML = "Error Saving Comment";
				else {
					var xmlError = oXHR.responseXML.getElementsByTagName("Error");
					if (xmlError.length > 0) {
						var xmlcells = xmlError[0].getElementsByTagName("Message");
						var strMessage = "";
						for (var i=0; i<xmlcells.length; i++) {
							if (xmlcells[i].firstChild == null) {
								strMessage = "An error occurred when reading comments. <br />";
							} else {
								strMessage = xmlcells[i].firstChild.data;
							}
						}
						divMsg.innerHTML = strMessage;
						logUsage("ERROR", strMessage);
					} else {
						xmlBlogComment = oXHR.responseXML.getElementsByTagName("Comment");
						if ((xmlBlogComment == null) || (xmlBlogComment.length == 0))
							divMsg.innerHTML = "Error Saving Comment";
						else {
							divMsg.innerHTML = "";							
							addBlogCommentRow(xmlBlogComment[0], blogID);
							var divBlogCommentCount = document.getElementById("divBlogCommentCount" + blogID);
							var intBlogCommentCounter = parseInt(document.getElementById("divBlogCommentCounter" + blogID).innerHTML);
							if (intBlogCommentCounter == 0)
								divBlogCommentCount.innerHTML = "No Comments";
							else if (intBlogCommentCounter == 1)
								divBlogCommentCount.innerHTML = "1 Comment (click to view)";
							else
								divBlogCommentCount.innerHTML = intBlogCommentCounter + " Comments (click to view)";
							document.getElementById("txtBlogCommentGuestName" + blogID).value = "";
							document.getElementById("txtBlogCommentGuestEmail" + blogID).value = "";
							document.getElementById("txtBlogCommentMessage" + blogID).value = "";
						}//end comment
					}//end no error
				}//end response
			} else {
				divMsg.innerHTML= "Error with php page call. status: "+oXHR.status+ " <BR />";
			}
		}
	};
	//Send the request
	oXHR.send(sBody);	    	
 }//addBlogComment()
  	
function loadBlogComments(blogID, userID) {
	var divBlogRow = document.getElementById("divBlogRow" + blogID);
	var divMsg = document.createElement("div");
	divMsg.id = "divBlogCommentErrorMessage" + blogID;
	divBlogRow.appendChild(divMsg);
	
	var oXHR = createXHR();
	oXHR.open("post", "/blog/blogCommentRead.php", true);
	var sBody = "Blog_ID="+encodeURIComponent(blogID);
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	if (sBody != null)
		oXHR.setRequestHeader("Content-length", sBody.length);
	else
			oXHR.setRequestHeader("Content-length", 0);
	oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if (oXHR.readyState < 4)
			divMsg.innerHTML = "loading...";
		else if (oXHR.readyState == 4) {
			if (oXHR.status == 200) {
				divMsg.innerHTML = "";							
				displayBlogComments(oXHR.responseXML, userID, blogID);
			} else {
				divMsg.innerHTML= "Error with php page call. status: "+oXHR.status+ " <BR />";
			}
		}
	};
	//Send the request
	oXHR.send(sBody);
}//end addBlogComment()

function displayBlogComments(xmlDoc, userID, blogID) {
	var divBlogRow = document.getElementById("divBlogRow" + blogID);
	
	var divBlogCommentContainer = document.createElement("div");
	divBlogCommentContainer.className = "divBlogCommentContainer";
	divBlogRow.appendChild(divBlogCommentContainer);
	
	var divBlogCommentMessage = document.createElement("div");
	divBlogCommentMessage.id = "divBlogCommentMessage" + blogID;
	divBlogCommentContainer.appendChild(divBlogCommentMessage);

	//Check for errors
	if (xmlDoc == null) {
		divBlogCommentMessage.innerHTML = "No comments found";
		return;	
	}

	var xmlrows = xmlDoc.getElementsByTagName("Error");
	if (xmlrows.length > 0) {
		var xmlcells = xmlrows[0].getElementsByTagName("Message");
		var strMessage = "";
		for (var i=0; i<xmlcells.length; i++) {
			if (xmlcells[i].firstChild == null) {
				strMessage = "An error occurred when reading comments. <br />";
			} else {
				strMessage = xmlcells[i].firstChild.data;
			}
		}
		divBlogCommentMessage.innerHTML = strMessage;
	} else {
		//Get Comments
		xmlBlogComments = xmlDoc.getElementsByTagName("Comment");

		//Comment Count Link
		var divBlogCommentCount = document.createElement("div");
		divBlogCommentCount.id = "divBlogCommentCount" + blogID;
		divBlogCommentCount.className = "divBlogCommentCount";
		if (xmlBlogComments.length == 0)
			divBlogCommentCount.innerHTML = "No Comments";
		else if (xmlBlogComments.length == 1)
			divBlogCommentCount.innerHTML = "1 Comment (click to view)";
		else
			divBlogCommentCount.innerHTML = xmlBlogComments.length + " Comments (click to view)";
		divBlogCommentCount.onclick = function() {
			thisBlogID = this.id.substr(19);
			toggleDisplayComments(thisBlogID);
		};
		divBlogCommentContainer.appendChild(divBlogCommentCount);
		
		//Comment Display Container
		var divBlogCommentsBox = document.createElement("div");
		divBlogCommentsBox.id = "divBlogCommentsBox" + blogID;
		divBlogCommentsBox.className = "divBlogCommentsBox";
		divBlogCommentsBox.style.display = "None";
		divBlogCommentContainer.appendChild(divBlogCommentsBox);					

		//Comment Counter
		var divBlogCommentCounter = document.createElement("div");
		divBlogCommentCounter.id = "divBlogCommentCounter" + blogID;
		divBlogCommentCounter.style.display = "none";
		divBlogCommentCounter.innerHTML = "0";
		divBlogCommentContainer.appendChild(divBlogCommentCounter);
		
		//Add each comment to display container
		for (var i=0; i<xmlBlogComments.length; i++) {
			addBlogCommentRow(xmlBlogComments[i], blogID);
		}//end for each comment
		
		//Comment Add Container
		var divBlogCommentAddBox = document.createElement("div");
		divBlogCommentAddBox.id = "divBlogCommentAddBox" + blogID;
		divBlogCommentAddBox.className = "divBlogCommentAddBox";
		divBlogCommentContainer.appendChild(divBlogCommentAddBox);
		
		//If not logged in display guest boxes
		var divBlogCommentGuestRow = document.createElement("div");
		divBlogCommentGuestRow.className = "divBlogCommentGuestRow";
		divBlogCommentGuestRow.innerHTML = "Please login or provide name and email if desired.";
		if ((userID != null) && (userID > 0))
			divBlogCommentGuestRow.style.display = "none";
		divBlogCommentAddBox.appendChild(divBlogCommentGuestRow);

		var divBlogCommentGuestNameRow = document.createElement("div");
		divBlogCommentGuestNameRow.className = "divBlogCommentGuestRow";
		if ((userID != null) && (userID > 0))
			divBlogCommentGuestNameRow.style.display = "none";
		divBlogCommentAddBox.appendChild(divBlogCommentGuestNameRow);
		
		var divBlogCommentGuestNameLabel = document.createElement("div");
		divBlogCommentGuestNameLabel.className = "divBlogCommentGuestLabel";
		divBlogCommentGuestNameLabel.innerHTML = "Name:";
		divBlogCommentGuestNameRow.appendChild(divBlogCommentGuestNameLabel);
		
		var txtBlogCommentGuestName = document.createElement("input");
		txtBlogCommentGuestName.id = "txtBlogCommentGuestName" + blogID;
		txtBlogCommentGuestName.type = "text";
		txtBlogCommentGuestName.className = "txtBlogCommentGuestName";
		divBlogCommentGuestNameRow.appendChild(txtBlogCommentGuestName);

		var divBlogCommentGuestEmailRow = document.createElement("div");
		divBlogCommentGuestEmailRow.className = "divBlogCommentGuestRow";
		if ((userID != null) && (userID > 0))
			divBlogCommentGuestEmailRow.style.display = "none";
		divBlogCommentAddBox.appendChild(divBlogCommentGuestEmailRow);
		
		var divBlogCommentGuestEmailLabel = document.createElement("div");
		divBlogCommentGuestEmailLabel.className = "divBlogCommentGuestLabel";
		divBlogCommentGuestEmailLabel.innerHTML = "Email:";
		divBlogCommentGuestEmailRow.appendChild(divBlogCommentGuestEmailLabel);
		
		var txtBlogCommentGuestEmail = document.createElement("input");
		txtBlogCommentGuestEmail.id = "txtBlogCommentGuestEmail" + blogID;
		txtBlogCommentGuestEmail.type = "text";
		txtBlogCommentGuestEmail.className = "txtBlogCommentGuestEmail";
		divBlogCommentGuestEmailRow.appendChild(txtBlogCommentGuestEmail);
		
		var divBlogCommentMessage = document.createElement("div");
		divBlogCommentMessage.id = "divBlogCommentMessage" + blogID;
		divBlogCommentMessage.className = "divBlogCommentMessage";
		divBlogCommentAddBox.appendChild(divBlogCommentMessage);
	
		var txtBlogCommentMessage = document.createElement("textarea");
		txtBlogCommentMessage.id = "txtBlogCommentMessage" + blogID;
		txtBlogCommentMessage.cols = "40";
		txtBlogCommentMessage.rows = "5";
		txtBlogCommentMessage.className = "txtBlogCommentMessage";
		divBlogCommentAddBox.appendChild(txtBlogCommentMessage);
		
		var divBlogCommentSubmit = document.createElement("div");
		divBlogCommentSubmit.className = "divBlogCommentSubmit";
		divBlogCommentSubmit.innerHTML = "Add Comment";
		divBlogCommentSubmit.onclick = function() {
			addBlogComment(blogID);
		};
		divBlogCommentAddBox.appendChild(divBlogCommentSubmit);
	
		
	}//end display comments
}//end displayBlogComments()

function addBlogCommentRow(xmlNode, blogID) {
	if (xmlNode == null)
		return;
	var intRowNum = parseInt(document.getElementById("divBlogCommentCounter" + blogID).innerHTML);
	var divBlogCommentsBox = document.getElementById("divBlogCommentsBox" + blogID);
	var divBlogCommentRow = document.createElement("div");
	divBlogCommentRow.className = "divBlogCommentRow";
	divBlogCommentsBox.appendChild(divBlogCommentRow);
	
	//Store Blog ID and Comment ID
	var hidBlogCommentID = document.createElement("input");
	hidBlogCommentID.id = "hidBlog" + blogID + "CommentID" + intRowNum;
	hidBlogCommentID.type = "hidden";	
	divBlogCommentRow.appendChild(hidBlogCommentID);
	xmlBlogCommentID = xmlNode.getElementsByTagName("Blog_Comment_ID");
	if ((xmlBlogCommentID.length > 0) && (xmlBlogCommentID[0].firstChild != null))
		hidBlogCommentID.value = xmlBlogCommentID[0].firstChild.data;
					
	//Comment DateTime
	var divBlogCommentDateTime = document.createElement("div");
	divBlogCommentDateTime.id = "divBlog" + blogID + "CommentDateTime" + intRowNum;
	divBlogCommentDateTime.className = "divBlogCommentDateTime";
	divBlogCommentRow.appendChild(divBlogCommentDateTime);
	xmlBlogCommentDateTime = xmlNode.getElementsByTagName("DateCreated");
	if ((xmlBlogCommentDateTime.length > 0) && (xmlBlogCommentDateTime[0].firstChild != null))
		divBlogCommentDateTime.innerHTML = xmlBlogCommentDateTime[0].firstChild.data;

	//Comment User Name
	var divBlogCommentUserName = document.createElement("div");
	divBlogCommentUserName.id = "divBlog" + blogID + "CommentUserName" + intRowNum;
	divBlogCommentUserName.className = "divBlogCommentUserName";
	divBlogCommentRow.appendChild(divBlogCommentUserName);
	xmlBlogCommentFirstName = xmlNode.getElementsByTagName("FirstName");
	xmlBlogCommentLastName = xmlNode.getElementsByTagName("LastName");
	xmlBlogCommentGuestName = xmlNode.getElementsByTagName("GuestName");
	if ((xmlBlogCommentFirstName.length > 0) && (xmlBlogCommentFirstName[0].firstChild != null) &&
		(xmlBlogCommentLastName.length > 0) && (xmlBlogCommentLastName[0].firstChild != null))
		divBlogCommentUserName.innerHTML = xmlBlogCommentFirstName[0].firstChild.data 
										 + " " + xmlBlogCommentLastName[0].firstChild.data;
	else if ((xmlBlogCommentGuestName.length > 0) && (xmlBlogCommentGuestName[0].firstChild != null))
		divBlogCommentUserName.innerHTML = xmlBlogCommentGuestName[0].firstChild.data 
	else
		divBlogCommentUserName.innerHTML = "Anonymous";

	//Comment Message
	var divBlogCommentMessage = document.createElement("div");
	divBlogCommentMessage.id = "divBlog" + blogID + "CommentMessage" + intRowNum;
	divBlogCommentMessage.className = "divBlogCommentMessage";
	divBlogCommentRow.appendChild(divBlogCommentMessage);
	xmlBlogCommentMessage = xmlNode.getElementsByTagName("Message");
	if ((xmlBlogCommentMessage.length > 0) && (xmlBlogCommentMessage[0].firstChild != null))
		divBlogCommentMessage.innerHTML = xmlBlogCommentMessage[0].firstChild.data;

	//Increment Comment COunter
	document.getElementById("divBlogCommentCounter" + blogID).innerHTML = intRowNum+1;
}//end addBlogCommentRow()

function toggleDisplayComments(blogID) {
	document.getElementById("divBlogCommentsBox" + blogID).style.display = "";
}