function initCheckboxs(form) {
	for (var i = 0; i < form.elements.length; i++) {
		var elm = form.elements[i];
		alert
		if (elm.nodeName.toString().toUpperCase() == "INPUT") {
			if (elm.type.toString().toUpperCase() == "CHECKBOX") {
				initCheckbox(elm);
			} else if (elm.type.toString().toUpperCase() == "RADIO") {
				initCheckbox(elm);
				setPeers(elm);
			}
		}
	}
}

function initCheckbox(chk) {
	var my_div = chk.parentNode;
	if (my_div && (my_div.className == "checkbox" || my_div.className == "radio")) {
		if (chk.checked) {
			my_div.className += "_on";
		} else {
			my_div.className = my_div.className.replace(/_on$/, "");
		}
	}
}

function writeCheckbox(name, flag) {
    var chk = flag ? " CHECKED" : "";
    var id = name.replace("$","_");
   
	if (is_safari || (is_ie && (is_major < 7))) {
	    document.write("<input type=\"checkbox\" name=\"" + name + "\" id=\"" + id + "\"" + chk + " />");
	} else {
	    if (flag) {
	        document.write("<div class=\"checkbox_on\" onclick=\"checkboxClick(this)\"><input type=\"checkbox\" name=\"" + name + "\" id=\"" + id + "\" checked=\"checked\"  /></div>");
	    } else {
	        document.write("<div class=\"checkbox\" onclick=\"checkboxClick(this)\"><input type=\"checkbox\" name=\"" + name + "\" id=\"" + id + "\" /></div>");
	    }
	}
}

function writeRadio(name, flag, value) {
    var chk = flag ? " CHECKED" : "";
    var id = name.replace("$","_");
    if (is_safari || (is_ie && (is_major < 7))) {
	    document.write("<input type=\"checkbox\" value=\"" + value + "\" name=\"" + name + "\" id=\"" + id + "\"" + chk + " />");
	} else {
	    if (flag) {
	        document.write("<div class=\"checkbox_on\" onclick=\"radioClick(this)\"><input type=\"checkbox\" value=\"" + value + "\" name=\"" + name + "\" id=\"" + id + "\" checked=\"checked\" /></div>");
	    } else {
	        document.write("<div class=\"checkbox\" onclick=\"radioClick(this)\"><input type=\"checkbox\" value=\"" + value + "\" name=\"" + name + "\" id=\"" + id + "\" /></div>");
	    }
	}
}

function writeFilepicker(name) {
    var id = name.replace("$","_");
	// TODO: check for older browsers
	if (is_safari || (is_ie && (is_major < 7))) {
	    document.write("<input class=\"pck\" type=\"file\" name=\"" + name + "\" id=\"" + id + "\" />");
	} else {
	    document.write("<input class=\"txt\" type=\"text\" onfocus=\"blur()\" />");
	    document.write("<button class=\"btn sld_gry\"><span>browse</span></button>");
	    document.write("<input class=\"pck\" type=\"file\" onchange=\"pickerChange(this)\" name=\"" + name + "\" id=\"" + id + "\" />");
	}
}


		
function setUpCheckAll(id) {
	var fieldset = getDiv(id);
	if (fieldset != null) {
		var checkboxes = new Array();
		accumulateCheckboxes(fieldset, checkboxes);
		fieldset.checkboxes = checkboxes;
	}
	//alert(fieldset.checkboxes.length);
}

function accumulateCheckboxes(elm, arr) {
	if ((elm.nodeName.toString().toUpperCase() == "INPUT") && (elm.type.toString().toUpperCase() == "CHECKBOX")) {
		arr[arr.length] = elm;
	}
		
	for (var i = 0; i < elm.childNodes.length; i++) {
		accumulateCheckboxes(elm.childNodes[i], arr);
	}
}

function setCheckbox(chk, flag) {
	chk.checked = flag;
	var my_div = chk.parentNode;
	if (my_div != null) {
		if (chk.checked && my_div.className == "checkbox") {
			my_div.className += "_on";
		} else if (! chk.checked && my_div.className == "checkbox_on") {
			my_div.className = my_div.className.replace(/_on$/, "");
		}
	}
}

function setCheckboxes(div, flag) {
	if (div.checkboxes != null) {
		for (var i = 0; i < div.checkboxes.length; i++) {
			setCheckbox(div.checkboxes[i], flag);
		}
	}
}

function checkAll(id) {
	var div = getDiv(id);
	if (div!= null) {
		setCheckboxes(div, true);
	}
	
	//return true;
}

function unCheckAll(id) {
	var div = getDiv(id);
	if (div!= null) {
		setCheckboxes(div, false);
	}
	
	//return true;
}

function checkboxClick(div) {
	var my_checkbox = myControl(div);
	if (my_checkbox) {
		if (my_checkbox.checked) {
			my_checkbox.checked = false
			div.className = div.className.replace(/_on$/, "");
		} else {
			my_checkbox.checked = true
			div.className += "_on";
		}
	}
}

function myControl(div) {
	return div.childNodes[0];
}

function radioClick(div) {
	var my_radio = myControl(div);
	if (my_radio) {
		clearRadioGroup(my_radio);
		
		my_radio.checked = true;
		div.className += "_on";
		
		
	}
}

function clearRadioGroup(radio) 
{
   
    var radios = radio.parentNode.parentNode.parentNode.getElementsByTagName("input");
	
	for (r = 0 ; r < radios.length ; r++)
	{
	    
	    radios[r].parentNode.className = radios[r].parentNode.className.replace(/_on$/, "");
	    radios[r].checked = false;
	
	}
	
}

function setSelected(menu_id) {
	var fld = getDiv(menu_id);
	if (fld.value != null && fld.value.length > 0) {
		var element = getDiv(fld.value);
		if (element != null) {
			setSelectedElt(menu_id, fld, element);
		}
	}
}

function setSelectedElt(id, fld, element) {
	if (fld != null) {
		if (fld.value != null && fld.value.length > 0) {
			var old_element = getDiv(fld.value);
			if (old_element != null) {
				old_element.className = "";
			}
		}
		
		if (element.id != null && element.id.length > 0) {
			fld.value = element.id;
		} else {
			fld.value = element.childNodes[0].innerHTML;
		}
	}
	
	var lbl = getDiv(id+"_lbl");                             
	if (lbl != null) {
		lbl.innerHTML= element.childNodes[0].innerHTML;
	}
	
	element.className = "current";
}

function menuSelect(element) {
	var div = getContainerWith(element, "DIV", "popup");
	var menu_id = div.id.replace(/_popup$/, "");
	var fld = getDiv(menu_id);
	setSelectedElt(menu_id, fld, element);
	if (activeButton != null) {
		resetButton(activeButton);
		activeButton = null;
	}
	return false;
}


		
function setUpOrderedList(id) {
	var list = getDiv(id);
	if (list != null) {
		var nodes = list.childNodes;
		for (var i = 0, count = 1; i < nodes.length; i++) {
			if (nodes[i].nodeName.toString().toUpperCase() == "LI") {
				nodes[i].className += " i_" + count;
				count++;
			}
		}
	}
}




function adjustPopupMenu(id, offset) {
	var off = offset == null ? 0 : offset;
	var menu = getDiv(id);
	// getContainerWith() is defined in menu.js
	var relative_div = getContainerWith(menu, "DIV", "body")
	if (menu != null && relative_div != null) {
		var bottom = relative_div.offsetHeight;
		var new_top = bottom - menu.offsetHeight + off;
		menu.style.top = new_top + "px";
	}
}



/**********************************************************************/
// popup hondler taken from/inspred by 
// http://subimage.com/sublog/subModal

var gPopupIsShown = false;

function showPopup(id) {
	return setPopup(id, true, "block");
}

function closePopup(id) {
	return setPopup(id, false, "none");
}

function setPopup(id, flag, value) {
	var mask = getDiv("popupMask");
	var dialogue = getDiv(id);
	mask.style.display = value;
	dialogue.style.display = value;
	gPopupIsShown = flag;
	return false;
}
// Tab key trap. iff popup is shown and key was [TAB], suppress it.
// @argument e - event - keyboard event that caused this function to be called.
function keyDownHandler(e) {
    if (gPopupIsShown && e.keyCode == 9)  return false;
}




var gCurrentDialogue = null;
function showDialogue(frame_id, content_id) {
	if (gCurrentDialogue != null) {
		return false;
	} 
	
	gCurrentDialogue = content_id;
	return setDialogue(frame_id, content_id, "block")
}

function closeDialogue(frame_id, content_id) {
	gCurrentDialogue = null;
	return setDialogue(frame_id, content_id, "none")
}

function setDialogue(frame_id, content_id, value) {
	var frame = getDiv(frame_id);
	var content = getDiv(content_id);
	frame.style.display = value
	content.style.display = value;
	return false;
}


/* this is new for regis trade secret */
function pickerClick(elm) {
	var pck = findPicker(elm);
	if (pck) {
		pck.click();
	}
}

function pickerChange(elm) {
	var ptn = findPickerPartner(elm);
	if (ptn) {
		ptn.value = elm.value;
	}
}

function findPickerPartner(elm) {
	if (elm.partner == null) {
		var nodes = elm.parentNode.parentNode.getElementsByTagName("INPUT");
		var curr_class = elm.className;
		for (var i = 0, count = 1; i < nodes.length; i++) {
			if ((curr_class == "pck" && nodes[i].className == "txt") ||
					(curr_class == "txt" && nodes[i].className == "pck")) {
				elm.partner = nodes[i];
				break;
			}
		}
	}
	
	return elm.partner;
}

function findPicker(elm) {
	if (elm.partner == null) {
		var nodes = elm.parentNode.childNodes;
		var curr_class = elm.className;
		for (var i = 0, count = 1; i < nodes.length; i++) {
			if (nodes[i].className == "pck") {
				elm.partner = nodes[i];
				break;
			}
		}
	}
	
	return elm.partner;
}
