var req = getRequestObject();
var loaded = false;

function startSurvey() {
	sendSurvey();	
}

function sendSurvey() {
	if(req.readyState == 4 || req.readyState == 0) {
		setFade(0);
		
		var s = '';
		var r = '';
		
		if(getObject("sid") != null) {
			if (arguments.length) {
				r='';
			} else { // called without args, try to determine r
				for(i=0;i<document.f.resp.length;i++) {
					if(document.f.resp[i].checked) r = document.f.resp[i].value;
				}
			}
			s = getObject('sid').value;
		}
		var url = "/survey/survey.php?s="+s+"&r="+r;
		
		req.open("GET",url,true);
		req.onreadystatechange = receiveSurvey;
		req.send(null);
	}
}

function receiveSurvey() {
		if(req.readyState == 4) {
			
			var output = '';
			
			var xml = req.responseXML;
			var typ = xml.documentElement.getAttribute('type');
			var clos = (xml.getElementsByTagName('closed')[0].childNodes[0]?xml.getElementsByTagName('closed')[0].childNodes[0].nodeValue:1);
			if(clos==1) { typ = 0; }
			var sid = xml.documentElement.getAttribute('id');
			
			var subj = (xml.getElementsByTagName('subj')[0].childNodes[0]?xml.getElementsByTagName('subj')[0].childNodes[0].nodeValue:'');
			var date = (xml.getElementsByTagName('date')[0].childNodes[0]?xml.getElementsByTagName('date')[0].childNodes[0].nodeValue:'');
			var ques = (xml.getElementsByTagName('ques')[0].childNodes[0]?xml.getElementsByTagName('ques')[0].childNodes[0].nodeValue:'');
			var resps = xml.getElementsByTagName('responses')[0].childNodes;
			var votes = xml.getElementsByTagName('votes')[0].childNodes[0].nodeValue;
			var msg = xml.getElementsByTagName('msg')[0].childNodes[0].nodeValue;
						
			output += "<div class=\"phead\">\n<div class=\"ptitle\"><span class=\"curcategory\">"+subj+"</span></div>\n<div class=\"pdate\">"+date+"</div>\n</div>\n<div class=\"pq\">"+ques+"</div>\n";
			if(typ == 1) {
				output += "<form name=\"f\"><input id=\"sid\" value=\""+sid+"\" type=\"hidden\" />";
			} else { // results
				output += "<div class=\"presults\">\n";
			}

			for(i=0;i<resps.length;i++) {
				if(resps[i].nodeType==1) {
					if(typ == 1) {
						// survey
						output += "<span class=\"ans\"><input name=\"resp\" value=\""+resps[i].getAttribute('id')+"\" type=\"radio\" />&nbsp;"+resps[i].childNodes[0].nodeValue+"</span>";
					} else {
						// results
						var percents;
						if (votes>0) {
							percents = Math.round(resps[i].getAttribute('votes')/votes*100);
						} else {
							percents = 0;
						}
						output += "<div class=\"presult\" title=\""+resps[i].getAttribute('votes')+" votes / "+percents+"%\"><div class=\"pa\">"+resps[i].childNodes[0].nodeValue+"</div>\n<div class=\"rcont\"><div class=\"rbar\" style=\"width:"+(votes>0?percents:'1')+"%\" ><div class=\"rperc\">"+resps[i].getAttribute('votes')+"&nbsp;/&nbsp;"+percents+"%</div></div><div class=\"rperc\" style=\"color:#E0E0E0; z-index:-5\">"+resps[i].getAttribute('votes')+"&nbsp;/&nbsp;"+percents+"%</div></div></div>\n";
					}
				}
			}
			
			if(typ == 1) {
				// survey 
				output += "</form>\n<div class=\"pbot\">\n<div class=\"pvote\">[&nbsp;<a href=\"javascript:void(0)\" onClick=\"sendSurvey()\">VOTE</a>&nbsp;]</div>\n<div class=\"pres\">[&nbsp;<a href=\"javascript:void(0)\" onClick=\"sendSurvey(0)\">Results</a>&nbsp;]</div>\n</div>\n";
			} else {
				// results
				output += "</div><div class=\"pbot\">\n";
				output += (clos==1)?"<div class=\"pvote\">[&nbsp;No&nbsp;voting&nbsp;]</div>\n</div>\n":"<div class=\"pvote\">[&nbsp;"+votes+"&nbsp;<a href=\"javascript:void(0)\" onClick=\"sendSurvey(0)\">votes</a>&nbsp;]</div>\n</div>\n";
			}
			
			
			getObject("surv_main").innerHTML = output;
			(loaded)? fade(0):setFade(100);
			loaded = true;
        }
}

function getObject(obj) {
	var o;
	
	if(document.getElementById) o = document.getElementById(obj);
	else if(document.all) o = document.all[obj];	
	else if(document.layers) o = document.layers[obj];
	
	return o;	
}

function getRequestObject() {
	// most browsers
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
		
	// IE
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function fade(amt) {
	if(amt <= 100) {
		setFade(amt);
		amt += 2;
		setTimeout("fade("+amt+")", 50);
    }
}

function setFade(amt) {
	var obj = getObject("survey");
	
	amt = ((amt == 100)?99.999:amt);
  
	// IE
	obj.style.filter = "alpha(opacity:"+amt+")";
  
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = amt/100;
  
	// Mozilla and Firefox
	obj.style.MozOpacity = amt/100;
  
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = amt/100;
}