var checkboxStates = new Array();
var images = new Array();

images['unfall1'] = [
    '/images/unfall_1.gif',
    '/images/unfall_2.gif',
    '/images/unfall_3.gif'
];


function getElementsByClassName(className) {
	var elementsArray = []
	var myClass = new RegExp('\\b'+className+'\\b')
	var elements = document.getElementsByTagName('*');
	
	for (var i=0; i<elements.length; i++) {
		var classes = elements[i].className;
		if (myClass.test(classes)) elementsArray.push(elements[i]);
	}
	return elementsArray;
} 

function cycleCheckbox(el) {
    var value_field = document.getElementById('val-' + el.id);
    var current_value = value_field.value;
    var new_value = parseInt(current_value) + 1;
    var max_image_value = images[el.id].length;
    
    if(new_value >= max_image_value) {
        new_value = new_value - max_image_value;
    }
    
    checkboxStates[el.id] = new_value;
    
    el.src = images[el.id][new_value];
    value_field.value = new_value;
}

function multiStateCheckboxInit(state) {
	var multiStateCheckboxes = getElementsByClassName('multi-state-checkbox');
	
	for(var i = 0; i < multiStateCheckboxes.length; i++) {
	    
		multiStateCheckboxes[i].onclick = function(evt) {
		    
			cycleCheckbox(this);
			var evt = (evt) ? evt: window.event;
			if (evt.stopPropogation){
				evt.stopPropogation();
			} else{
				evt.cancelBubble = true;
			}
		};
		checkboxStates[multiStateCheckboxes[i].id] = state;
	}
}

function startUp(state) {
    
    if(!state) {
        state = 0;
    }
   
	multiStateCheckboxInit(state);
}

window.onload = startUp;
