var selectOptionId=-32767;
//
function filterOptionsDependency(primarySelect, secondarySelect, targetArray) {
	if(primarySelect!=null && secondarySelect!=null && targetArray!=null) {
		var primaryId;
		var secondaryId;
		if (primarySelect.type=='select-one') primaryId=primarySelect.options[primarySelect.selectedIndex].value;
 		else primaryId=primarySelect.value;
		if(secondarySelect.type=='select-one'||secondarySelect.type=='select-multiple'){
			if(arguments.length>3) secondaryId=arguments[3];
			else secondaryId = '';
			if(arguments.length>4) secondarySelect.options.length=arguments[4];
			else secondarySelect.options.length=0;
			for(var j=0; j<targetArray[0].length; j++){
				if(primaryId==targetArray[0][j]){
					var index=secondarySelect.options.length;
					secondarySelect.options.length=index+1;
					secondarySelect.options[index].value=targetArray[1][j];
					secondarySelect.options[index].text =targetArray[2][j];
					if(targetArray[1][j]==secondaryId) secondarySelect.selectedIndex=index;
				}
			}
			if(secondarySelect.selectedIndex<0) secondarySelect.selectedIndex=0;
		}
	}
}
//
function filterOptions( primarySelect, secondarySelect, relationArray, optionsArray) {
	if(primarySelect!=null && secondarySelect!=null && optionsArray!=null){
		var primaryId;
		var secondaryId;
		if (primarySelect.type=='select-one') primaryId = primarySelect.options[primarySelect.selectedIndex].value;
 		else primaryId=primarySelect.value;
		if(secondarySelect.type=='select-one' || secondarySelect.type=='select-multiple'){
 			 var secondaryOptions=secondarySelect.options;
			 if(arguments.length>4) secondaryId = arguments[4];
			 else{
			    secondaryId=secondarySelect.options[secondarySelect.selectedIndex].value;
			    secondaryOptions.length=0;
			 }			 
			 if(primaryId<=0||relationArray==null){
			    for (var i=0; i<optionsArray[0].length; i++){
			       var index=secondaryOptions.length;
			       secondaryOptions.length=index+1;
			       secondaryOptions[index].value=optionsArray[0][i];
			       secondaryOptions[index].text =optionsArray[1][i];
			       if(optionsArray[0][i] == secondaryId) secondarySelect.selectedIndex=index;
			    }
			 }else{
			    for(var j=0; j<relationArray[0].length; j++){
			       if(primaryId==relationArray[0][j]){
					  for(var i=0; i<optionsArray[0].length; i++){
					     if(relationArray[1][j]==optionsArray[0][i]){
							var index=secondaryOptions.length;
							secondaryOptions.length=index+1;
							secondaryOptions[index].value=optionsArray[0][i];
							secondaryOptions[index].text =optionsArray[1][i];
							if(optionsArray[0][i]==secondaryId) secondarySelect.selectedIndex=index;
					     }
					  }
			       }
			    }
			 }
			 if(secondarySelect.selectedIndex<0) secondarySelect.selectedIndex=0;
		}
	}
}
//
function checkSelection() {
   var elements=window.document.forms[0].elements;
   var selected=true;
   for(var i=0; i<elements.length; i++) {
      var element=elements[i];
      if(element.type=='select-one'){
         var j=element.selectedIndex;
         if(j<0||element.options[j].value==selectOptionId) {
            selected=false;
            break;
         }
      } else if((element.name=='program'||element.name=='activity'||element.name=='resource')&&element.value==-32767){
			selected=false;
         break;
      }
   }
   if(arguments.length==0&&!selected) alert(selectOptionMust);
   return selected;
}
//
function checkTextboxes() {
	var elements=window.document.forms[0].elements;
	for (var i=0; i<elements.length;i++) {
		var element = elements[i];
		if (element.type=='text'){
			element.value = trim(element.value);
		}
	}
}
//
function setSelectListValue(object, value) {
	var objectOptions=object.options;
	if (objectOptions == null) {
		object.value = value;
	} else {
		var index=object.length;
		object.length=index+1;
		objectOptions[index].value=value;
		objectOptions[index].selected=true;
	}
}
//
function trim(initial) {
	var length=initial.length;
	if(length==0) return '';
	var newString=initial;
	while(newString.length>0&&newString.charAt(0)==' ') newString=newString.substring(1);
	if(newString.length==0) return '';
	while(newString.length>0&&newString.charAt(newString.length-1)==' ') newString=newString.substring(0, newString.length-1);
   var exp=/&nbsp;/g;
	return newString.replace(exp, '');
}
//
function validatePhone(part00, part10, part20, ext0){
	var required=false;
	if(arguments.length>4) required=true;
	var part0=trim(part00);
	var part1=trim(part10);
	var part2=trim(part20);
	var ext=trim(ext0);
	if(!required&&part0.length==0&&part1.length==0&&part2.length==0&&ext.length==0) return true;
	else if(part0.length<3||isNaN(parseInt(part0))||part1.length<3||isNaN(parseInt(part1))||part2.length<4||isNaN(parseInt(part2))||(ext.length>0&&isNaN(parseInt(ext)))) return false;
	else return true;
}
//
function fillSelect(select, element, nameField) {
//	alert('fillSelect name='+select.name);
	if(select.type=='select-one') {
		var valueBefore=select.options[select.selectedIndex].value;
	   select.disabled=false;
		var opt=element.getElementsByTagName('option');
		select.options.length=0;
		for(var i=0; i<opt.length; i++) {
			var optNode=opt[i];
			var len=select.options.length;
			select.options[len]=new Option(optNode.firstChild.nodeValue,optNode.attributes.getNamedItem('value').nodeValue);
			for(var j=0; j<optNode.attributes.length; j++) {
				select.options[len].setAttribute(optNode.attributes[j].nodeName, optNode.attributes[j].nodeValue);
			}
		}
		if(select.options.length==0) {
	      select.disabled=true;
	      select.options.length=1;
	      select.options[0].value=-10;
	      select.options[0].text='     ';
			select.selectedIndex=0;
			if(nameField) nameField.value='';
		} else {
			select.selectedIndex=0;
			if(nameField) nameField.value=select.options[0].text;
			for(var i=0; i<select.options.length; i++) {
				if(select.options[i].value==valueBefore) {
					select.selectedIndex=i;
					if(nameField) nameField.value=select.options[i].text;
					break;
				}
			}
		}
	} else {
		var valueBefore=select.value;
		var opt=element.getElementsByTagName('option');
		if(opt.length>0) {
			var index=0;
			for(var i=0; i<opt.length; i++) {
				if(opt[i].getAttribute('value').nodeValue==valueBefore) {
					index=i;
					break;
				}
			}
			for(var i=0; i<opt[index].attributes.length; i++)
				select.setAttribute(opt[index].attributes[i].nodeName, opt[index].attributes[i].nodeValue);
			if(nameField) nameField.value=opt[index].firstChild.nodeValue;
		} else {
	      select.value=-10;
			if(nameField) nameField.value='';
		}
	}
}