<!--
var dwsresponse;
var dwsresponsetext;
var dwsobjXMLDOM;
var requiredq = 0;

function dwsLoadXMLDoc(url) {
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
	   	try {
			req = new XMLHttpRequest();
	        }
		catch(e) {
			req = false;
       		}

	// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject) {
	      	try {
        		req = new ActiveXObject("Msxml2.XMLHTTP");
	      	}
		catch(e) {
        		try {
          			req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
          			req = false;
			}
		}

	}
	if(req) {
		req.onreadystatechange = dwsProcessReqChange;
		req.open("GET", url, true);
		req.send("");
	}
}

function dwsSubmitXMLDoc(url) {
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
	   	try {
			req = new XMLHttpRequest();
	        }
		catch(e) {
			req = false;
       		}

	// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject) {
	      	try {
        		req = new ActiveXObject("Msxml2.XMLHTTP");
	      	}
		catch(e) {
        		try {
          			req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
          			req = false;
			}
		}

	}
	if(req) {
		var str = "";
		for(i=0; i<document.forms.dwsajaxform.elements.length; i++) {
			str += document.forms.dwsajaxform.elements[i].name + '=' + document.forms.dwsajaxform.elements[i].value;
			if (i < (document.forms.dwsajaxform.elements.length - 1)) { 
				str += '&';
			}
		}
		req.onreadystatechange = dwsProcessPostChange;
		req.open("POST", url, true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
		req.send(str);
	}
}

function dwsProcessPostChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			dwsresponsetext  = req.responseText;
			dwsresponse = req.responseXML.documentElement;
			document.getElementById('questionfinal').innerHTML = dwsresponse.getElementsByTagName("status")[0].firstChild.data;
		}
	}
}
 
function dwsProcessReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			dwsresponsetext  = req.responseText;
			dwsresponse = req.responseXML.documentElement;
			var final = 0;

			propertiesNodeList = dwsresponse.getElementsByTagName("properties");

			// Deal with properties
			for (var i = 0; i < propertiesNodeList.length; i++) {
				var dataNodes = propertiesNodeList.item(i);
				var stitle = dataNodes.getElementsByTagName("title")[0].firstChild.data;
				var sdescription = dataNodes.getElementsByTagName("description")[0].firstChild.data;
				var stype = dataNodes.getElementsByTagName("type")[0].firstChild.data;
				var srequired = dataNodes.getElementsByTagName("required")[0].firstChild.data;
			}

			// Deal with question
			questionNodeList = dwsresponse.getElementsByTagName("question");
			for (var i = 0; i < questionNodeList.length; i++) {
				var dataNodes = questionNodeList.item(i);
				try {
					var qid = dataNodes.getElementsByTagName("id")[0].firstChild.data;
					var qtitle = dataNodes.getElementsByTagName("title")[0].firstChild.data;
					var qdescription = dataNodes.getElementsByTagName("description")[0].firstChild.data;
					var qtype = dataNodes.getElementsByTagName("type")[0].firstChild.data;
					var qrequired = dataNodes.getElementsByTagName("required")[0].firstChild.data;
					document.getElementById('questiontitle').innerHTML = '<strong>' + qtitle + '</strong>';
					document.getElementById('questiondesc').innerHTML = qdescription;
					optionNodeList = dataNodes.getElementsByTagName("responses");
					imageNodeList = dataNodes.getElementsByTagName("image");
					if (document.getElementById('allrequired').value == 1 || stype == 4) {
						document.getElementById('questionrequired').style.display = "block";
						requiredq = 1;
					}
					else if (document.getElementById('allrequired').value == 0 && qrequired == 1) {
						document.getElementById('questionrequired').style.display = "block";
						requiredq = 1;
					}
					else {
						document.getElementById('questionrequired').style.display = "none";
						requiredq = 0;
					}
				}
				catch(err) {
					final = 1;	
				}
				try {
					for (var j = 0; j < questionNodeList.length; j++) {
						var dataNode = imageNodeList.item(j);
						var imlink = dataNode.getElementsByTagName("link")[0].firstChild.data;
						document.getElementById('questionimage').innerHTML = "<img src=\"" + imlink + "\" />";
						document.getElementById('questionimage').style.display = "block";
					}
				}
				catch (err) {
					document.getElementById('questionimage').innerHTML = "";
					document.getElementById('questionimage').style.display = "none";
				}
			}


			document.getElementById('nextq').disabled = false;
			document.getElementById('nextq').value = "Next Question";

			document.getElementById('qtype').value = qtype;
			document.getElementById('question').value = qid;
			document.getElementById('order').value++;

			var optionslist = '';

			if (qtype == 2 || qtype == 3) {
				var seltype = "radio";
				if (qtype == 2) {
					seltype = "radio";
				}
				else {
					seltype = "checkbox";
				}
				// Deal with options
				for (var i = 0; i < optionNodeList.length; i++) {
					var dataNodes = optionNodeList.item(i);
					responseNodeList = dataNodes.getElementsByTagName("response");
					for (var j = 0; j < responseNodeList.length; j++) {
						var dataNode = responseNodeList.item(j);
						var oid = dataNode.getElementsByTagName("id")[0].firstChild.data;
						var oname = dataNode.getElementsByTagName("title")[0].firstChild.data;
						imageopNodeList = dataNode.getElementsByTagName("image");
						var oselected = dataNode.getElementsByTagName("selected")[0].firstChild.data;
						try {
							for (var k = 0; k < imageopNodeList.length; k++) {
								var dataNodea = imageopNodeList.item(k);
								var imlink = dataNodea.getElementsByTagName("link")[0].firstChild.data;
								var imhtml = "<img src=\"" + imlink + "\" />";
							}
						}
						catch (err) {
							var imhtml = "";
						}
						optionslist += '<span style="white-space: nowrap;"><input name="answer" type="' + seltype + '"';
						if (oselected == 1) {
							optionslist += ' checked="checked"';
						}
						optionslist += ' value="' + oid + '" id="surveyopt' + oid + '" /><label for="surveyopt' + oid + '">' + oname + ' ' + imhtml + '</label></span>' + document.getElementById('optionseperator').innerHTML;
					}

				}
			}
			else if (qtype == 6) {
				optionslist += '<select name="answer" id="answer"><option value="">-- Select an answer --</option>';
				for (var i = 0; i < optionNodeList.length; i++) {
					var dataNodes = optionNodeList.item(i);
					responseNodeList = dataNodes.getElementsByTagName("response");
					for (var j = 0; j < responseNodeList.length; j++) {
						var dataNode = responseNodeList.item(j);
						var oid = dataNode.getElementsByTagName("id")[0].firstChild.data;
						var oname = dataNode.getElementsByTagName("title")[0].firstChild.data;
						var oselected = dataNode.getElementsByTagName("selected")[0].firstChild.data;
						optionslist += '<option value="' + oid + '"';
						if (oselected == 1) {
							optionslist += ' selected="selected"';
						}
						optionslist += '>' + oname + '</option>';
					}
				}
				optionslist += '</select>';

			}
			else if (qtype == 7) {
				optionslist +=  "<select id=\"answer_dd\" name=\"answer_dd\"><option value=\"dd\">-- day --</option>";
				for (var i = 1; i <= 31; i++) {
					var dd = i;
					if (dd <= 9) {
						dd = "0" + i;
					}
					optionslist += "<option value=\"" + dd + "\">" + dd + "</option>";
				}
				optionslist +=  "</select>";

				optionslist +=  "<select id=\"answer_mm\" name=\"answer_mm\"><option value=\"mm\">-- month --</option>";
				for (var i = 1; i <= 12; i++) {
					var mm = i;
					if (mm <= 9) {
						mm = "0" + i;
					}
					optionslist += "<option value=\"" + mm + "\">" + mm + "</option>";
				}
				optionslist +=  "</select>";

	
				optionslist += " <input type=\"text\" class=\"datebox\" name=\"answer_yyyy\" value=\"yyyy\" size=\"5\" maxsize=\"4\" />";

			}
			else if (qtype == 8) {
				optionslist +=  "<select id=\"answer_dd\" name=\"answer_dd\"><option value=\"dd\">-- day --</option>";
				for (var i = 1; i <= 31; i++) {
					var dd = i;
					if (dd <= 9) {
						dd = "0" + i;
					}
					optionslist += "<option value=\"" + dd + "\">" + dd + "</option>";
				}
				optionslist +=  "</select>";

				optionslist +=  "<select id=\"answer_mm\" name=\"answer_mm\"><option value=\"mm\">-- month --</option>";
				for (var i = 1; i <= 12; i++) {
					var mm = i;
					if (mm <= 9) {
						mm = "0" + i;
					}
					optionslist += "<option value=\"" + mm + "\">" + mm + "</option>";
				}
				optionslist +=  "</select>";

				optionslist += " <input type=\"text\" class=\"datebox\" name=\"answer_yyyy\" value=\"yyyy\" size=\"5\" maxsize=\"4\" />";

				optionslist +=  "<select id=\"answer_hh\" name=\"answer_hh\"><option value=\"hh\">-- hour --</option>";
				for (var i = 0; i <= 23; i++) {
					var hh = i;
					if (hh <= 9) {
						hh = "0" + i;
					}
					optionslist += "<option value=\"" + hh + "\">" + hh + "</option>";
				}
				optionslist +=  "</select>";

				optionslist +=  "<select id=\"answer_ii\" name=\"answer_ii\"><option value=\"ii\">-- minutes --</option>";
				for (var i = 0; i <= 59; i++) {
					var ii = i;
					if (ii <= 9) {
						ii = "0" + i;
					}
					optionslist += "<option value=\"" + ii + "\">" + ii + "</option>";
				}
				optionslist +=  "</select>";

			}
			else if (qtype == 11) {
				optionslist += '<div id="ratingid"></div>';

			}
			else if (qtype == 4) {
				optionslist = '<textarea name="answer"></textarea>';
			}
			else {
				optionslist = '<input type="text" name="answer" />';
			}
			document.getElementById('questionresponse').innerHTML = optionslist;
			if (qtype == 11) {
				new Starry('ratingid', {name:"ratinganswer"});
			}
			if (final == 1) {
				document.getElementById('questionfinal').style.display = "block";
			}
			else {
				document.getElementById('questiondetails').style.display = "block";
			}
			document.getElementById('questionprogress').style.display = "none";
			iFrameHeight('embeddedsurvey');

		}
		else {
			top.window.status='Error getting survey question';
		}
	}
}


function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

 
function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function


function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function getSelectedCheckboxValue(buttonGroup) {
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function



function dwsAjaxLoad(questionid, initialload) {
	var proceed = 1;
	var answer = "";
	if (questionid != 0) {
		// 2 = radio, 3 = checkbox, 6 = select
		if (document.getElementById('qtype').value == 2) {
			var radioBoxArr = getSelectedRadioValue(document.forms.dwsajaxform.answer);
			document.getElementById('qh' + questionid).value = radioBoxArr;
			answer = radioBoxArr;
		}
		else if (document.getElementById('qtype').value == 3) {
			var checkBoxArr = getSelectedCheckboxValue(document.forms.dwsajaxform.answer);
			document.getElementById('qh' + questionid).value = checkBoxArr;
			answer = checkBoxArr;
		}
		else if (document.getElementById('qtype').value == 6) {
			var selectBoxArr = document.forms.dwsajaxform.answer.options[document.forms.dwsajaxform.answer.options.selectedIndex].value;
			document.getElementById('qh' + questionid).value = selectBoxArr;
			answer = selectBoxArr;
		}
		else if (document.getElementById('qtype').value == 7) {
			var dayanswer = document.forms.dwsajaxform.answer_dd.options[document.forms.dwsajaxform.answer_dd.options.selectedIndex].value;
			var monthanswer = document.forms.dwsajaxform.answer_mm.options[document.forms.dwsajaxform.answer_mm.options.selectedIndex].value;
			var yearanswer = document.forms.dwsajaxform.answer_yyyy.value;
			document.getElementById('qh' + questionid).value = yearanswer + "-" + monthanswer + "-" + dayanswer;
			answer = yearanswer + "-" + monthanswer + "-" + dayanswer;
		}
		else if (document.getElementById('qtype').value == 8) {
			var dayanswer = document.forms.dwsajaxform.answer_dd.options[document.forms.dwsajaxform.answer_dd.options.selectedIndex].value;
			var monthanswer = document.forms.dwsajaxform.answer_mm.options[document.forms.dwsajaxform.answer_mm.options.selectedIndex].value;
			var yearanswer = document.forms.dwsajaxform.answer_yyyy.value;
			var houranswer = document.forms.dwsajaxform.answer_hh.options[document.forms.dwsajaxform.answer_hh.options.selectedIndex].value;
			var minuteanswer = document.forms.dwsajaxform.answer_ii.options[document.forms.dwsajaxform.answer_ii.options.selectedIndex].value;
			document.getElementById('qh' + questionid).value = yearanswer + "-" + monthanswer + "-" + dayanswer + " " + houranswer + ":" + minuteanswer + ":00";
			answer = yearanswer + "-" + monthanswer + "-" + dayanswer + " " + houranswer + ":" + minuteanswer + ":00";
		}
		else if (document.getElementById('qtype').value == 11) {
			for(i=0; i<document.dwsajaxform.elements.length; i++) {
				if (document.dwsajaxform.elements[i].name == "ratinganswer") {
					document.getElementById('qh' + questionid).value = document.dwsajaxform.elements[i].value;
					answer = document.dwsajaxform.elements[i].value;
				}
			}
		}
		else {
			document.getElementById('qh' + questionid).value = document.forms.dwsajaxform.answer.value;
			answer = document.forms.dwsajaxform.answer.value;
		}
		if (document.getElementById('qh' + questionid).value == '' && requiredq == 1) {
			alert ("You must select or enter an answer to this question");
			proceed = 0;
		}
		else {
			document.getElementById('nextq').disabled = true;
			document.getElementById('nextq').value = "Please wait...";
		}
	}
	if (proceed == 1) {
		document.getElementById('questiondetails').style.display = "none";
		document.getElementById('questionprogress').style.display = "block";
		if (initialload != 0) {
			questionid = initialload;
			dwsLoadXMLDoc('scripts/ajax_question.xml.php?qid=' + questionid + '&surveyid=' + document.getElementById('survey_id').value);
		}
		else {
			dwsLoadXMLDoc('scripts/ajax_question.xml.php?prevqid=' + questionid + '&answer=' + answer + '&surveyid=' + document.getElementById('survey_id').value);
		}
	}
}

function detectAjaxSupport() {
	if (window.XMLHttpRequest || window.ActiveXObject) {
		document.getElementById('nonajaxlink').style.display = "none";
		document.getElementById('mainajaxpage').style.display = "block";
	}
	else {
		document.getElementById('nonajaxlink').style.display = "block";
		document.getElementById('mainajaxpage').style.display = "none";
	}
}

function finalsubmit() {
	document.getElementById('submitbutton').disabled = true;
	document.getElementById('submitbutton').value = "Please wait...";
	dwsSubmitXMLDoc('scripts/ajax_submit.xml.php');
}
//-->