//===================================================================
//  
//  parentSelect: change the options on sibling 
//  
//===================================================================
function parentSelect(pSel,field) {
	if (!field) {
		var sibName = pSel.name.replace(/_parent$/,"");
		field = pSel.form.elements[sibName];
		if (!field) {
			return;
		}
	}
	if (!field.allOptions) {
		field.allOptions = new Array();
		for (var i=0;i<field.options.length;i++) {
			field.allOptions[i] = field.options[i];
		}
	}
	var currValue = field.value;
	field.options.length = 0;
	
	for (var i=0;i<field.allOptions.length;i++) {
		if (field.allOptions[i].getAttribute("parentOption") == null) {
			continue;
		}
		var parentOptions = field.allOptions[i].getAttribute("parentOption").split(/,/);
		for (var op = 0;op < parentOptions.length;op++) {
			if (parentOptions[op] == pSel.value) {
				field.options[field.options.length] = field.allOptions[i];
			}
		}
	}
	
	if (currValue != field.value) {
		if (field.options.length > 0) {
			field.selectedIndex = 0;
		}
		if (field.onchange) {
			field.onchange();
		}
	}
}
//===================================================================
//  
//  parentSelectLoad: change parent select options according to the value 
//  
//===================================================================
function parentSelectLoad(sel,pSel) {
	if (!pSel) {
		var pSelName = sel.name + "_parent";
		pSel = sel.form.elements[pSelName];
		if (!pSel) {
			return;
		}
	}
	if (sel.options[sel.selectedIndex].getAttribute("parentOption") != null) {
		var pValue = sel.options[sel.selectedIndex].getAttribute("parentOption").replace(/,.*$/,"");
		pSel.value = pValue;
	}
	pSel.onchange();
}
