/*  based on Ajax Web Poll from Julien Bottemanne (domlike.net) */

var ck = document.cookie;
var dbPath = document.forms[0].Path.value;
var polldbPath = "http://www.mechatronik.info/me/polls.nsf"
var pollid ='';
// Wichtig: Im CMS wird die PollID als Nummer geführt. Da divs nicht mit einer Ziffer beginnen dürfen
// wird automatisch die Zeichenfolge P_ vorangestellt. Bei der Formulierung der Abfragen muss aber die korrekte
// ID übergeben werden - also ohne das vorangestellte P_

function getPolls()
{
	var pollList = document.getElementsByClassName("Poll");

	for (var i = 0; i < pollList.length; i++) {
		var divWebPoll = $(pollList[i].id);
		divWebPoll.innerHTML='<center><img src="/images/pollindicator.gif"></center>'
		if(ck.indexOf(pollList[i].id) != -1){
			view(pollList[i].id.substring(2));
		}else{
			var url = dbPath+'/me.Poll?OpenPage&rdm='+Math.random();
			var params = 'ID=' + pollList[i].id.substring(2);
			var myAjax = new Ajax.Request( url, { method: 'get', parameters: params,onComplete: showPoll });
		}
	}
}

function showPoll(originalRequest)
{
		var xmldoc = originalRequest.responseXML;
		var root = xmldoc.documentElement;
		var pollid = "P_" + getInnerText (root.getElementsByTagName("Pollid")[0]);
		var divWebPoll = $(pollid);
		divWebPoll.innerHTML=getInnerText (root.getElementsByTagName("PollContents")[0]);
}

function SetCookie(cookieName,cookieValue,nDays)
{ 
	var today = new Date();
	var expire = new Date();
	if (nDays==null || nDays==0) nDays=100;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue)+ ";expires="+expire.toGMTString();
}

function vote(currentPoll)
{
	var currPoll = "P_" + currentPoll;
	if (getRB(document.forms[0],'PollOption_' + currentPoll).value) {}else{
		alert('Bitte klicken Sie eine Antwortoption an!');
		return;
	}
	SetCookie(currPoll, '', 180);
	var form= document.forms[0];
	var p = Form.Element.serialize('PollID_' + currentPoll) + '&' + Form.Element.serialize('PollTitle_' + currentPoll) +'&' + Form.getInputs(form,'radio','PollOption_' + currentPoll).find(function(radio) { return radio.checked; }).serialize();
	var params = p.replace(new RegExp("_"+currentPoll,"g"),'');
	var url = polldbPath+'/PollEntry?createdocument';
	pollid=currentPoll;
	var divWebPoll = $(currPoll);
	divWebPoll.innerHTML='<center><img src="/images/pollindicator.gif"></center>'
	var myAjax = new Ajax.Request( url, { method: 'post',parameters: params,requestHeaders: ['Accept-Charset','utf-8','Content-Type','text/html'],onComplete: viewResult });

} 

function viewResult(originalRequest)
{
	view(pollid);
}

function view(p_pollid)
{
	p_pollid = "P_" + p_pollid;
	var divWebPoll = $(p_pollid);
	divWebPoll.innerHTML='<center><img src="/images/pollindicator.gif"></center>'
	if (p_pollid=='undefined') p_pollid=pollid
	var url = dbPath+'/me.PollResult?OpenPage&rdm='+Math.random();
	var params = 'ID=' + p_pollid.substring(2);
	var myAjax = new Ajax.Request( url, { method: 'get', parameters: params,onComplete: showPoll });
}

function getRB(form,rbName) {
	rbFld=eval('form.'+rbName);
	for (var i = 0; i < rbFld.length; i++) {
		if (rbFld[i].checked == true) {
			return rbFld[i];
		}
	}
	return rbFld
}


function getInnerText (node) {
	if (typeof node.textContent != 'undefined') {
		return node.textContent;
	} else if (typeof node.innerText != 'undefined') {
		return node.innerText;
	} else if (typeof node.text != 'undefined') {
		return node.text;
	} else {
		switch (node.nodeType) {
			case 3:
			case 4:
				return node.nodeValue;
				break;
			case 1:
			case 11:
				var innerText = '';
				for (var i = 0; i < node.childNodes.length; i++) {
					innerText += getInnerText(node.childNodes[i]);
				}
				return innerText;
				break;
			default:
				return '';
		}
	}
}
