var maxvotes = 5;
var votes = 0;

//Our generic handler
var debug = false;

function handler(e) {
	var caller;
	if(!e) var e = window.event;
	if(e.target) 			caller = e.target;
	else if(e.srcElement)	caller = e.srcElement;
	if (caller.nodeType == 3)	// Safari bug
		caller = caller.parentNode;
	if(debug) alert("Caller: "+caller+"\nE: "+e);
	vote(caller.checked);	//If a local handler is defined, pass the checked status to it
}

window.onload = function() {
	var checkboxes = document.getElementById('poll').getElementsByTagName('input');
	for(var i=0; i<checkboxes.length; i++) {
		if(checkboxes[i].type != 'submit') {
			checkboxes[i].onclick = handler;
		}
	}
}

function vote(checked) {
	if(checked == true) {
		if(++votes >= maxvotes) {
			disable();
		}
	} else {
		if(--votes < maxvotes) {
			enable();
		}
	}
}

function disable() {
	var checkboxes = document.getElementById('poll').getElementsByTagName('input');
	for(var i=0; i<checkboxes.length; i++) {
		if(checkboxes[i].checked == false && checkboxes[i].type != 'submit') {
			checkboxes[i].disabled = 'disabled';
		}
	}
}

function enable() {
	var checkboxes = document.getElementById('poll').getElementsByTagName('input');
	for(var i=0; i<checkboxes.length; i++) {
		if(checkboxes[i].disabled) {
			checkboxes[i].removeAttribute('disabled');
		}
	}
}