var Polls = {
	/**
	 * getts nette ajax response for "view" poll action
	 * e.g. gets HTML with poll result of vote options
	 * @param {Object} anchor anchor DOM object
	 */
	updateForAction : function(anchor) {
		//ajax request, result is json for nette component
		$.ajax({
			type: "GET",
			url: anchor.href,
			success: function(msg) {
				var result = null;
				eval('var result = ' + msg);
				nette.result = result;
				nette.onSuccess();
				return false;
			}
		});

		return false;
	}
};


$(document).ready(function() {
	/**
	 * Handle submittion for poll form.
	 * We need to use .live method, because ".poll-form" elements can be added
	 * dynamically.
	 */
	$('.poll-form').live("submit",function() {

		var postData = "";

		// iterate the elements within the form in 'this' is our form
		for (var i=0;i<this.elements.length;i++) {
			var e = this.elements[i];
			if (e.disabled) {
				continue;
			}
			if (this.multi.value == 1) {
				if ( (/^answer-[0-9]+$/).test(e.name) && (e.type=='checkbox') && (e.checked == true)) {
					if (postData != "") {
						postData += '&';
					}
					postData += e.name + '=' + escape(e.value);
					continue;
				}
			}	else if (this.multi.value == 0) {
				if ( (e.name == "answer") && (e.type=='radio') && (e.checked == true)) {
					postData += e.name + '=' + escape(e.value);
					break;
				}
			}
		}

		if (postData == "") {
			alert("Není vybrána žádná možnost.");
			return false;
		}

		//add pollId
		if (this.pollId.value) {
			postData += '&pollId=' + escape(this.pollId.value);
		} else {
			return false;
		}

		//add info about mutli poll (1/0 values)
		postData += '&multi=' + escape(this.multi.value);

		//ajax request for a poll result
		$.ajax({
			type: "POST",
			url: this.action,
			data: postData,
			/*
			 must be commented doesn't work for opera 9.x
			 beforeSend: function(xhr) {
				xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
			},
			*/
			success: function(msg) {
				var result = null;
				eval('var result = ' + msg);
				nette.result = result;
				nette.onSuccess();
				return false;
			}
		});

		return false;
	});
})
