var req = getRequestObject();
var loaded = false;
var session_id1;

function startsondage(sessionID) {
	session_id1 = sessionID;
	sendsondage();	
}

function sendsondage() {
	if(req.readyState == 4 || req.readyState == 0) {
		setFade(0);
		
		var s = '';
		var r = '';
		
		if(getObject("sid") != null) {
			var 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 = "/sondage_lib/sondage.phtml?s="+s+"&r="+r+"&sessionid="+session_id1;
		
		req.open("GET",url,true);
		req.onreadystatechange = receivesondage;
		req.send(null);
	}
}

function receivesondage() {
		if(req.readyState == 4) {
			var output = '';		
			var xml = req.responseXML;
			var typ = xml.documentElement.getAttribute('type');
			var sid = xml.documentElement.getAttribute('id');
			
			var subj = "";
			if (xml.getElementsByTagName('subj')[0].childNodes[0] != null) {
				subj = xml.getElementsByTagName('subj')[0].childNodes[0].nodeValue;
			} 
			
			var date = "";
			if (xml.getElementsByTagName('date')[0].childNodes[0] != null) {
				date = xml.getElementsByTagName('date')[0].childNodes[0].nodeValue;
			} 
			
			var ques = "";
			if (xml.getElementsByTagName('ques')[0].childNodes[0] != null) {
				ques = xml.getElementsByTagName('ques')[0].childNodes[0].nodeValue;
			} 
			
			var resps = "";
			if (xml.getElementsByTagName('responses')[0].childNodes != null) {
				resps = xml.getElementsByTagName('responses')[0].childNodes;
			} 
			
			var votes = 0;
			if (xml.getElementsByTagName('votes')[0].childNodes[0] != null) {
				votes = xml.getElementsByTagName('votes')[0].childNodes[0].nodeValue;
			} 
			
			var msg = "";
			if (xml.getElementsByTagName('msg')[0].childNodes[0] != null) {
				msg = xml.getElementsByTagName('msg')[0].childNodes[0].nodeValue;
			}
			
			if (subj == "" || ques == "" ) {
				output = "";
				//nothing to do, nothing to display
				//it's the end of the survey
			}
			else {
				var mod = subj.length;
				var iIndex = 0;
				var iIndex1 = 0;
				var modSubj = "";
				switch (true) {
					case (mod > 0 && mod < 30):
						modSubj = "<div class='subj'><span class='s'>"+subj+"</span></div>";
						break;
					case (mod > 29 && mod < 60):
						iIndex = (subj.substr(0,29)).lastIndexOf(' ');
						modSubj = "<div class='subj'><span class='s'>"+subj.substr(0, iIndex)+"</span></div><div class='subj'><span class='s'>"+subj.substr(iIndex+1)+"</span></div>";
						break;				
					case (mod > 59 && mod < 90):
						iIndex = (subj.substr(0,29)).lastIndexOf(' ');
						iIndex1 = (subj.substr(iIndex,iIndex + 30)).lastIndexOf(' ');
						modSubj = "<div class='subj'><span class='s'>"+subj.substr(0, iIndex)+"</span></div><div class='subj'><span class='s'>"+subj.substr(iIndex + 1,iIndex1)+"</span></div><div class='subj'><span class='s'>"+subj.substr(iIndex1 + 1)+"</span></div>";
						break;
					default:
				}
				output += "<a id='sondage_href'><div id='surv_main'>"+modSubj+"<div class='ques'><div class='q'>"+ques+"</div><div class='a'>";
				if(typ == 1) output += "<form name='f'><input type='hidden' id='sid' value='"+sid+"' />";
							
				for(i=0;i<resps.length;i++) {
					if(resps[i].nodeType==1) {
						if(typ == 1) {
							// sondage
							output += "<span class='ans'><input type='radio' name='resp' value='"+resps[i].getAttribute('id')+"' /> "+resps[i].childNodes[0].nodeValue+"</span>";
						} else {
							// results
							output += "<p style='line-height:12px'>"+resps[i].childNodes[0].nodeValue+"</p><div class='result'><div class='rbar' style='width:"+(Math.round(resps[i].getAttribute('votes')/votes*100))+"%' /></div> <div class='rperc'>"+resps[i].getAttribute('votes')+" votes / "+(Math.round(resps[i].getAttribute('votes')/votes*100))+"%</div></div>";						
						}
					}
				}
				
				if(typ == 1) {
					// sondage 
					output += "</form></div></div><div class='botm'><span class='left'><a href='#' onClick='sendsondage(" + '"' + session_id1 + '"' + ");return false;'><img src='/sondage_lib/vote_button.gif' style='border:none' border='0' /></a></span><span class='right'>[ <a href='#' onClick='sendsondage(" + '"' + session_id1 + '"' + ");return false;'>Results</a> ]</span></div></div>";
				} else {
					// results
					output += "</div></div><div class='botm'><span class='left'>"+msg+"</span><span class='right'>[ "+votes+" <a href='#' onClick='sendsondage(" + '"' + session_id1 + '"' + "); return false;'>votes</a> ]</span></div></div>";
				}
				
				getObject("sondage").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 += 20;
		setTimeout("fade("+amt+")", 5);
    }
}

function setFade(amt) {
	var obj = getObject("sondage");
	
	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;
}