//global variables that can be used by ALL the function son this page.
var inputs;
var imgFalse = '/UI_images/checkboxes/%s/false.gif';
var imgTrue =  '/UI_images/checkboxes/%s/true.gif';

var cb_ValidClasses = new Array('searchlist_edit', 'searchlist_add', 'default')

//this function runs when the page is loaded, put all your other onload stuff in here too.
function init() {
	replaceChecks();
}

function replaceChecks() {
	
	//get all the input and label fields on the page
	inputs = document.getElementsByTagName('input');
	labels = document.getElementsByTagName('label');
	
	//cycle trough the input fields
	for(var i=0; i < inputs.length; i++) {
		var classname=inputs[i].className ? inputs[i].className : 'default';
		var valid_field = false;

		if (classname != null && inputs[i].getAttribute('type') == 'checkbox') {
			for(var n=0;n<cb_ValidClasses.length;n++) {
				if (cb_ValidClasses[n]==classname) {
					valid_field = true;
					//alert("Found valid field: " + classname);
				}
			}
		}
		
		//check if the input is a checkbox
		if(valid_field) {
			//create a new image
			var img = document.createElement('img');
	
			//check if the checkbox is checked
			if(inputs[i].checked) {
				img.src = sprintf(imgTrue, classname);
			} else {
				img.src = sprintf(imgFalse, classname);
			}

			//set image ID and onclick action
			img.id = 'checkImage'+i;
			//set image 
			img.onclick = new Function('checkChange('+i+')');

			var input_id = inputs[i].getAttribute('id');
			if (input_id != null) for(var n=0;n<labels.length;n++) {
				if (input_id == labels[n].getAttribute('for')) {
					labels[n].onclick = new Function('checkChange('+i+', true)');
				}
			}
			
			//place image in front of the checkbox
			inputs[i].parentNode.insertBefore(img, inputs[i]);
			
			//hide the checkbox
			inputs[i].style.display='none';
		}
	}
}

//change the checkbox status and the replacement image
function checkChange(i, nochange) {

	//var classname = inputs[i].getAttribute('class');
	var classname=inputs[i].className ? inputs[i].className : 'default';
	if(inputs[i].checked) {
		if (!nochange) inputs[i].checked = '';
		document.getElementById('checkImage'+i).src=sprintf(imgFalse, classname);
	} else {
		if (!nochange) inputs[i].checked = 'checked';
		document.getElementById('checkImage'+i).src=sprintf(imgTrue, classname);
	}
}

window.onload = init;
