function _struct(child,childcaption,parent){
this.child = child;
this.childcaption = childcaption;
this.parent	= parent;
}
function _addobject(child,childcaption,parent){
var obj = new _struct();
obj.child = child;
obj.childcaption = childcaption;
obj.parent = parent;
return(obj);
}
function insertEntry(child,childcaption,parent){
	if(child.length > 0){		
		for(var i=0;i<this.length;i++) {
			if(this.items[i].child == child) {
				return;
			}
		}
		this.items[this.length++] = _addobject(child,childcaption,parent);
	}
}
function OptionCollection(){
this.length=0;
this.items = new Object();
this.Add=insertEntry;
}

function clearSelect(oSelect){
var iCount=0;
if(!oSelect) return;
iCount = oSelect.options.length;
for(var i=0;i<iCount;i++){
	if(is.ie){
		oSelect.options.remove(0);
	}else if(is.ns){
		oSelect.options[0]=null;
	}
}}
function addOptions(oSelect,olist,parent){
	var elOption;
	var idxSelect=0;

	if((!olist) || (!oSelect))return;	
	if(parent.length <=	0) 	return;
					
	clearSelect(oSelect);
	
//	elBlankOption = new Option()
//	elBlankOption.text = ""
//	if(is.ns) oSelect.options[0] = elBlankOption
//	else if(is.ie) oSelect.options.add(elBlankOption,0)
//	
//	elBlankOption.value = ""
	for(var i=0;i<olist.length;i++){
		if(olist.items[i].parent == parent){
			elOption = new Option();
			if(is.ns){
				elOption.value = olist.items[i].child;
				elOption.text = olist.items[i].childcaption;
				oSelect.options[idxSelect] = elOption;
			}else if(is.ie){
				elOption.value = olist.items[i].child;
				elOption.text = olist.items[i].childcaption;
				oSelect.options.add(elOption,idxSelect);
			}						
			idxSelect++;
			delete(elOption);
		}
	}	
}

function clearOptions(szSelect,szForm){
var d=document;
if(szSelect.length <= 0 || szForm.length <=0){
	alert("error:clearOption must pass arguments");	
}
if(is.ie){
clearSelect(d.all.item(szSelect));
}else if(is.ns){
clearSelect(eval('d.' + szForm + '.' + szSelect));
}
}

function listAllOptions(szSelect,szForm,olist){
var d=document;
	var elOption;
	var idxSelect=0;
	var oSelect = new Object();

	if(!olist)return;
	
	if(is.ie){
		 oSelect = d.all.item(szSelect);
	}else if(is.ns){
		oSelect = eval('d.' + szForm + '.' + szSelect);
	}
	
	if(!oSelect)return;

	clearSelect(oSelect);
	for(var i=0;i<olist.length;i++){
		elOption = new Option(olist.items[i].childcaption, olist.items[i].child+','+olist.items[i].childcaption+',N');
		if(is.ns){
			elOption.value = olist.items[i].child;
			elOption.text = olist.items[i].childcaption;
			oSelect.options[idxSelect] = elOption;
		}else if(is.ie){
			elOption.value = olist.items[i].child;
			elOption.text = olist.items[i].childcaption;
			oSelect.options.add(elOption,idxSelect);
		}
		idxSelect++;
		delete(elOption);
	}	
}

function UpdateSelect(szSelect,szForm,szParent,olist){
var d=document;
if(is.ie){
addOptions(d.all.item(szSelect),olist,szParent);
}else if(is.ns){
addOptions(eval('d.' + szForm + '.' + szSelect),olist,szParent);
}
}