			var sendReq = getXmlHttpRequestObject();		
			var receiveReq = getXmlHttpRequestObject();
			var lastQandA = 0;
			var mTimer;
			var mode;

			//Function for initializating the page.
			function startQandA(inMode) {
				//Start Recieving Messages.
				mode = inMode;
				getQandAText();
			}		

			//Gets the browser specific XmlHttpRequest Object
			function getXmlHttpRequestObject() {
				if (window.XMLHttpRequest) {
					return new XMLHttpRequest();
				} else if(window.ActiveXObject) {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} else {
					document.getElementById('div_QandA').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
				}
			}
			
			//Gets the current messages from the server
			function getQandAText() {
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
					receiveReq.open("GET", 'QandA/getData.php?mode='+mode+'&last='+lastQandA, true);
					receiveReq.onreadystatechange = handleReceiveQandA; 
					receiveReq.send(null);
				}	
			}

			//Function for handling the return of QandA text
			function handleReceiveQandA() {
				if (receiveReq.readyState == 4) {
					
					var qanda_div = document.getElementById('div_QandA');
					var xmldoc = receiveReq.responseXML;					

					var QandA_nodes = xmldoc.getElementsByTagName("qanda"); 
					var n_QandA = QandA_nodes.length
					for (i = 0; i < n_QandA; i++) {
							var timestamp_node = QandA_nodes[i].getElementsByTagName("timestamp");
							var time_node = QandA_nodes[i].getElementsByTagName("time");							
							var username_node = QandA_nodes[i].getElementsByTagName("username");
							var answer_node = QandA_nodes[i].getElementsByTagName("answer");
							qanda_div.innerHTML += '<div class="QandA-output-answer">'+answer_node[0].firstChild.nodeValue+'</div>';
							lastQandA = (timestamp_node[0].firstChild.nodeValue);							
							qanda_div.scrollTop = qanda_div.scrollHeight;
					}
					if (mode == "user") {
						mTimer = setTimeout('getQandAText();',180000); //Refresh our QandA in 3 minutes
					} else if (mode == "admin") {
						mTimer = setTimeout('getQandAText();',10000); //Refresh our QandA in 10 seconds
					}
				}
			}
			
			//When our question has been sent, update our page.
			function handleSendQandA() {
				//Clear out the existing timer so we don't have 
				//multiple timer instances running.
				clearInterval(mTimer);
				getQandAText();
			}			
			
			//Add a question to the posted questions XML.
			function sendQandAText() {
				if(document.getElementById('form-answer').value == '') {
					alert("You have not entered an answer");
					return;				
				}
				if (sendReq.readyState == 4 || sendReq.readyState == 0) {
					sendReq.open("POST", 'QandA/putData.php?mode='+mode, true);
					sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					sendReq.onreadystatechange = handleSendQandA; 
					var param = 'action=' + document.getElementById('form-action').value;
					param += '&answer=' + document.getElementById('form-answer').value;
					sendReq.send(param);
					document.getElementById('form-answer').value = '';					
				}				
			}			
			
