var CLICKBOX_CHECKED_CLASS_NAME = "clickbox_checked";
var CLICKBOX_LABEL_CHECKED_CLASS_NAME = "clickbox_label_checked";
var CLICKBOX_CLASS_NAME = "clickbox";
var CLICKBOX_LABEL_CLASS_NAME = "clickbox_label";

/**  toggles the custom clickbox  **/
function clickboxToggle( aCheckBoxElement, aLabelElement, aInputElement, aDisabled ) {
	if (aDisabled.value != 1) {
		switch(aInputElement.value) {
			case "0":
				clickboxSet( aCheckBoxElement, aLabelElement, aInputElement, true )
			break;
			
			case "1":
				clickboxSet( aCheckBoxElement, aLabelElement, aInputElement, false )
			break;
		}
	}
}

function clickboxSet( aCheckBoxElement, aLabelElement, aInputElement, aChecked ) {
	if(aChecked) {
		aCheckBoxElement.className = CLICKBOX_CHECKED_CLASS_NAME;
		aLabelElement.className = CLICKBOX_LABEL_CHECKED_CLASS_NAME;
		aInputElement.value = "1";
	}
	else {
		aCheckBoxElement.className = CLICKBOX_CLASS_NAME;
		aLabelElement.className = CLICKBOX_LABEL_CLASS_NAME;
		aInputElement.value = "0";
	}
}	

function clickboxGroupSet(aClassName, aChecked) {
	if( aChecked == "1" )
		aChecked = true;
	else
		aChecked = false;
		
	/* get all the input elements */
	fnInputElements = document.getElementsByTagName('input');

	/* loop through them all */
	for( var count = 0; count < fnInputElements.length; count++ ) {

		/* find only the click box elements ( "clickbox_hidden" ) and aClassName are in the className */
		if( (fnInputElements[count].className.indexOf("clickbox_hidden") >= 0) && (fnInputElements[count].className.indexOf(aClassName) >= 0) ) {
	
			/* set check box */
			clickboxSet(getElement(fnInputElements[count].id + "_box"), getElement(fnInputElements[count].id + "_label"), getElement(fnInputElements[count].id), aChecked);
		}
	}
}