// JavaScript Document
// === Initialize and returns AJAX XML Object
var zsurvey_Main_Send = false;
var zsurvey_Main_Prev = false;
var zsurvey_Main_Next = false;

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

function InitAjax() {
	var XMLHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		XMLHttp = new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer
		try {
			XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	
	return XMLHttp;
}

// A direct post of variables to the AJAX page.
function sendAJAX(vals, sPage, objID, fun, showload) {
	if(fun != null)
	{ var addFun = "&fun=" + fun; }
	else
	{ var addFun = ""; }
	
	var obj = document.getElementById(objID);
	var xmlhttp = InitAjax();
	
	xmlhttp.open("POST", sPage + "?" + addFun, true);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	if(showload)
	{ obj.innerHTML = '<div align="center"><img src="images/loader.gif" border="0" width="220" height="19"></div>'; }
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {
			obj.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(vals);
}

// === Submits a form to an AJAX form via POST.
function submitForm(form, sPage, objID, fun, showload) {
	var str = "";
	for(var i = 0; i < form.elements.length; i++) {
		if(form.elements[i].type == "radio") {
			if(form.elements[i].checked == true)
			{ str += form.elements[i].name + "=" + escape(form.elements[i].value) + "&"; }
		} else if(form.elements[i].type == "checkbox") {
			if(form.elements[i].checked == true)
			{ str += form.elements[i].name + "=" + escape(form.elements[i].value) + "&"; }
		} else if(form.elements[i].type == "select-multiple") {
			for(var ii = 0; ii < form.elements[i].length; ii++) {
				var opt = form.elements[i].options[ii];
				if(opt.selected) 
				{ str+= form.elements[i].name + "[]=" + escape(opt.value) + "&"; }
			}
		} else
		{ str += form.elements[i].name + "=" + escape(form.elements[i].value) + "&"; }
	}
	
	if(fun != null)
	{ var addFun = "&fun=" + fun; }
	else
	{ var addFun = ""; }
	
	var obj = document.getElementById(objID);
	var xmlhttp = InitAjax();
	
	xmlhttp.open("POST", sPage + "?" + addFun, true);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	if(showload)
	{ obj.innerHTML = '<div align="center"><img src="images/loader.gif" border="0" width="220" height="19"></div>'; }
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {
			obj.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(str);
}

function checkSurvey(form, vals, root){
	var error = false;
	var check_first = new Array();
	var check_error = new Array();
	if(zsurvey_Main_Prev){
		return true;
	}

	for(var i = 0; i < form.elements.length; i++) {
		var tempname = form.elements[i].name;
		elemname = tempname.replace('[]', "");
		switch(form.elements[i].type){
			case "text":
			case "textarea":
				if(vals.indexOf(elemname) != -1){
					if(form.elements[i].value == ""){
						document.getElementById("text"+tempname).style.color = "#FF3333";
						error = true;
					}
				}
			break;
			case "checkbox":
				if(vals.indexOf(elemname) != -1){
					if(check_first[form.elements[i].name]){
						if(form.elements[i].checked){
							check_error[form.elements[i].name] = true;
						}
					} else {
						if(form.elements[i].checked){
							check_error[form.elements[i].name] = true;
						} else {
							check_error[form.elements[i].name] = false;
						}
						check_first[form.elements[i].name] = true;
					}
				}
			break;
		}
	}
	for(var c in check_error){
		if(!check_error[c]){
			var temp = c.replace('[]',"");
			document.getElementById("text"+temp).style.color = "#FF3333";
			error = true;
		}
	}
	if(error){
		alert("Please answer the questions in red.");
		return false;
	}
	if(zsurvey_Main_Send){
		
		submitForm(form, root + 'modules/zsurvey/ajax.php', 'main', 'surveyResponse', false);
		return false;
	}
}