// The highest page number where back link was clicked.
var highestPageBackLinkClicked = 0;
//0-Others, 1-Back Link, 2-Forward Link
var clickType = 0;

function showPreviousQ(field) {
    if(curQ == 0) {
    alert("Already at beginning of form");
        return;
    }

    showHideQ(lastQ, curQ);
    
    prevQ = curQ;
    curQ = lastQ;
    lastQ = lastQ - 1;
    
    addHistory(curQ);
}

function updateProgressBar()
{
    if(curQ==0) {
       hide("backLink");
    } else {
    	show("backLink");
    }
    
    if (highestPageBackLinkClicked > curQ) {
 	   show("forwardLink");
    } else {
 	   hide("forwardLink");
    }

    updateDivProgressBar();    
    updateStepsProgressBar();
}

function showNextQ(field) {
  var isSubmitPage = true;
  
  // Click not from forward link
  if (clickType != 2) {
    resetForwardHistory();
  }
  if (window.qListGroups) {
    if (curQ < window.qListGroups.length) {
      var qListStringGroup = window.qListGroups[curQ];
      if (qListStringGroup) { 
        for (var i=0;i<qListStringGroup.length;++i) {
          //alert("check field: " + field.name + " for: " + qListStringGroup[i]);
          if(!validateGroupElement(qListStringGroup[i])) {
        	resetForwardHistory();
            return false;  
          }
        }
        if (curQ < window.qListGroups.length - 1) {
          prevQ = curQ;
          lastQ = curQ;
          curQ = curQ + 1;
          showHideQ(curQ, lastQ);
          addHistory(curQ);
          isSubmitPage = false;
        }
      } else {
        isSubmitPage = false;
      }
    }
  } else {
    if(field && !validate(field)) {
      resetForwardHistory();
      return false;
    }
      
    prevQ = curQ;
    lastQ = curQ;
    curQ++;

    if(curQ<qListString.length) {
      showHideQ(curQ, lastQ); 
      addHistory(curQ);
      isSubmitPage = false;
    }
  }
    
  // Click not from back and forward links
  if (clickType == 0) {
	  resetSigleFieldQuestion();
  }
  
  if (isSubmitPage) {
    finalize();
    submitForm();
    if (ConfigChecker.isPopunderEnabled()) {
        ADC.Popunder.process(window.document.form1);
    }
  }
    
  return true;
}

function historyChange(newLocation, historyData) {
  if (window.dhtmlHistoryDisabled) {
    return;
  }
  
  //alert("history change: " + newLocation + " historyData: " + historyData + " curQ: " + curQ);
  var newL = null;
  
  try {
    if(isFinite(historyData)) {
      newL=parseInt(historyData);
      if (newL > curQ) { //going forward
        if (window.inReset) {//reset function was called
          //alert("reset");
          var length4CurQ = qListString.length;
          if (window.qListGroups) {
            length4CurQ = window.qListGroups.length;
          }
        
          isAddHistory = false;  
          clickType = 2;
          var tempCurQ = curQ;
          while (curQ < newL && curQ < length4CurQ) {
            displayNextQ(window.document.form1.Submit);
            if (curQ <= tempCurQ) { //if for some reason we don't increase curQ
              tempCurQ = curQ;
              curQ++;
            }
          }
        } else {
          //alert("going forward");
          if (curQ < newL && curQ < highestPageBackLinkClicked) {
        	clickType = 2;
        	displayNextQ(getSingleFieldQuestion()); 
          }
        }
      } else {//going back
        //alert("going back 1");
    	clickType = 1;
    	setHighestPageBackLinkClicked();
        while (curQ > newL && curQ >0) {
          displayPreviousQ();
        }
      }
    }
  
    if (null == newL || isNaN(newL)) {//going back
      clickType = 1;
      setHighestPageBackLinkClicked();
      while (curQ > 0) {
        //alert("going back 2");
        displayPreviousQ();
      }
    }
  } finally {
	clickType = 0;
    isAddHistory = true;
    window.inReset = false;
  }
}

/*
 * Set highest page number where back link was clicked.
 */
function setHighestPageBackLinkClicked() {
	if (curQ > highestPageBackLinkClicked) {
		highestPageBackLinkClicked = curQ;
	}
}

function resetForwardHistory() {
	if (highestPageBackLinkClicked) {
    	highestPageBackLinkClicked = 0;
    	updateProgressBar();
    }
}

/*
 * Reset only value of single field question for:
 * 1. Non-grouped questions
 * 2. grouped with single question
 */
function resetSigleFieldQuestion() {
	if (!window.qListGroups || window.qListGroups[curQ].length == 1) {
		
		var divId;
		if(window.qListGroups) {
			divId = window.qListGroups[curQ];
		}
		else if(qListString){
			divId = qListString[curQ];
		}
		
	    if(divId == 'div_DDI_AGE') {
	        window.document.form1.DDI_AGE_01.options[0].selected = true;
	    } else if(divId == 'div_DDI_GRADYEAR') {
	        window.document.form1.DDI_GRADYEAR_01.options[0].selected = true;
	    } else if(divId == 'div_DDI_EDUCATION_01') {
	        window.document.form1.DDI_EDUCATION_01.options[0].selected = true;
	    } else if(divId == 'div_DDI_START_PERIOD_01') {
	        window.document.form1.DDI_START_PERIOD_01.options[0].selected = true;
	    } else if(divId == 'div_DDI_EARN_YEARLY_01') {
	        window.document.form1.DDI_EARN_YEARLY_01.options[0].selected = true;
	    } else if(divId == 'div_COUNTRY_01') {
	        window.document.form1.COUNTRY_01[0].checked = false;
	        window.document.form1.COUNTRY_01[1].checked = false;
	        window.document.form1.COUNTRY_01[2].checked = false;
	    } else if(divId == 'div_USCITIZEN_01') {
	        window.document.form1.USCITIZEN_01[0].checked = false;
	        window.document.form1.USCITIZEN_01[1].checked = false;
	        hide("div_COUNTRY_01");
	        window.document.form1.COUNTRY_01[0].checked = false;
	        window.document.form1.COUNTRY_01[1].checked = false;
	        window.document.form1.COUNTRY_01[2].checked = false;
	    } else if(divId == 'div_DDI_MILITARYBRANCH_01') {
	    	window.document.form1.DDI_MILITARYAFFILIATE_01[0].checked = false;
	    	window.document.form1.DDI_MILITARYAFFILIATE_01[1].checked = false;
	        window.document.form1.DDI_MILITARYBRANCH_01.options[0].selected = true;
	        hide('div_DDI_MILITARYBRANCH_01_options');
	    } else if(divId == 'div_DDI_CREDIT_01') {
	        window.document.form1.DDI_CREDIT_01.options[0].selected = true;
	    } else if(divId == 'div_DDI_MOTIVATIONAL_01') {
	        window.document.form1.DDI_MOTIVATIONAL_01.options[0].selected = true;
	    } 
	}
}
    
function getSingleFieldQuestion() {
	if (!window.qListGroups || window.qListGroups[curQ].length == 1) {

		var divId;
		if(window.qListGroups) {
			divId = window.qListGroups[curQ];
		}
		else if(qListString){
			divId = qListString[curQ];
		}

		if (divId == 'div_DDI_AGE') {
			return window.document.form1.DDI_AGE_01;
		} else if (divId == 'div_DDI_GRADYEAR') {
			return window.document.form1.DDI_GRADYEAR_01;
		} else if (divId == 'div_DDI_EDUCATION_01') {
			return window.document.form1.DDI_EDUCATION_01;
		} else if (divId == 'div_DDI_START_PERIOD_01') {
			return window.document.form1.DDI_START_PERIOD_01;
		} else if (divId == 'div_DDI_EARN_YEARLY_01') {
			return window.document.form1.DDI_EARN_YEARLY_01;
		} else if (divId == 'div_COUNTRY_01') {
			return window.document.form1.COUNTRY_01;
		} else if (divId == 'div_USCITIZEN_01') {
			return window.document.form1.USCITIZEN_01;
		} else if (divId == 'div_DDI_MILITARYBRANCH_01') {
			if (window.document.form1.DDI_MILITARYAFFILIATE_01[0].checked == true) {
				return window.document.form1.DDI_MILITARYBRANCH_01;
			} else {
				return window.document.form1.DDI_MILITARYAFFILIATE_01;
			}
		} else if (divId == 'div_ZIP_01') {
			if(isEmailVisible()) {
				return window.document.form1.EMAIL_01; 
			} else {
				return window.document.form1.ZIP_01;
			}
		} else if (divId == 'div_DDI_AOS') {
			return window.document.form1.DDI_AOS_01;
		} else if (divId == 'div_DDI_DEGREELEVEL_01') {
            return window.document.form1.DDI_DEGREELEVEL_01;
		} else if (divId == 'div_DDI_CREDIT_01') {
            return window.document.form1.DDI_CREDIT_01;
        } else if (divId == 'div_DDI_MOTIVATIONAL_01') {
            return window.document.form1.DDI_MOTIVATIONAL_01;
        } 
	} else {
		return null;
	}
}

function setAosValue(value, useSelectedValues) {
    
	var formRef = window.document.form1;
    
    if(formRef.DDI_AOS_01_DISPLAY) {
        
    	var aosDisplayType = getAosDisplayType(useSelectedValues);
        
        if(aosDisplayType == "RADIO") {
        	setFieldValue(formRef.DDI_AOS_01_RADIO, value);
        } else if(aosDisplayType == "DROPDOWN") {
        	setFieldValue(formRef.DDI_AOS_01_DROPDOWN, value);
        } else {
        	setFieldValue(formRef.DDI_AOS_01, value);
        }
    } else {
        setFieldValue(formRef.DDI_AOS_01, value);
    }
}

function showAosFields(useSelectedValues) {
    
    if(window.document.form1.DDI_AOS_01_DISPLAY) {
        
    	var aosDisplayType = getAosDisplayType(useSelectedValues);
        
        if(aosDisplayType == "RADIO") {
            show("div_DDI_AOS_RADIO");
        } else if(aosDisplayType == "DROPDOWN") {
            show("div_DDI_AOS_DROPDOWN");
        } else {
            show("div_DDI_AOS_CHECKBOX");
        }
    } else {
        show("div_DDI_AOS_CHECKBOX");
    }
}

function showSubAosFields(useSelectedValues) {
    
    if(window.document.form1.DDI_SUB_AOS_01_DISPLAY) {
        
    	var subAosDisplay = getSubAosDisplayType(useSelectedValues);
        
        if(subAosDisplay == "RADIO" ) {
            show("div_DDI_SUB_AOS_RADIO");
        } else if(subAosDisplay == "DROPDOWN") {
            show("div_DDI_SUB_AOS_DROPDOWN");
        } else if(subAosDisplay == "CHECKBOX"){
            show("div_DDI_SUB_AOS_CHECKBOX");
        } else {
            hide("div_DDI_SUB_AOS");
        }
    }
    
    for(i=0;i<errors.length;i++) {
        if(errors[i] == 'DDI_SUB_AOS_01') {
            updateSubAos();
        }
    }
}

function updateSubAos() {
	updateSubAos(false);
}

function updateSubAos(useSelectedValues) {
	
    var aosMappingField = document.getElementById('AOS_MAPPING');
    var aosFieldValue = getAosFieldValue(useSelectedValues);
    var subAosHtml = "";
    var containerDiv = "";
    var containerDivId = "";
    var oldDiv = "";
    var newdiv = document.createElement("div");
    
    if(aosMappingField) {
        
    	var aosMapping = getFieldValueTF(aosMappingField);
        
        if(aosMapping) {
            if(window.document.form1.DDI_SUB_AOS_01_DISPLAY) {
                
            	var subAosDisplayType = getSubAosDisplayType(useSelectedValues);
                
                if(subAosDisplayType == "RADIO") {
                    subAosHtml = updateSubAosRadiobox(aosFieldValue, aosMapping, useSelectedValues);
                    containerDiv = document.getElementById("div_DDI_SUB_AOS_RADIO");
                    containerDivId = "div_DDI_SUB_AOS_RADIO";
                    oldDiv = document.getElementById("div_DDI_SUB_AOS_RADIO_innerdiv");
                    newdiv.id = "div_DDI_SUB_AOS_RADIO_innerdiv";
                } else if(subAosDisplayType == "DROPDOWN") {
                    subAosHtml = updateSubAosDropdown(aosFieldValue, aosMapping, useSelectedValues);
                    containerDiv = document.getElementById("div_DDI_SUB_AOS_DROPDOWN");
                    containerDivId = "div_DDI_SUB_AOS_DROPDOWN";
                    oldDiv = document.getElementById("div_DDI_SUB_AOS_DROPDOWN_innerdiv");
                    newdiv.id = "div_DDI_SUB_AOS_DROPDOWN_innerdiv";
                } else if(subAosDisplayType == "CHECKBOX"){
                    subAosHtml = updateSubAosCheckbox(aosFieldValue, aosMapping, useSelectedValues);
                    containerDiv = document.getElementById("div_DDI_SUB_AOS_CHECKBOX");
                    containerDivId = "div_DDI_SUB_AOS_CHECKBOX";
                    oldDiv = document.getElementById("div_DDI_SUB_AOS_CHECKBOX_innerdiv");
                    newdiv.id = "div_DDI_SUB_AOS_CHECKBOX_innerdiv";
                }
            }
        }
    }
    
    if(subAosHtml != null) {
        if(subAosHtml == "") {
            hide("div_DDI_SUB_AOS_title");
        } else {
            show("div_DDI_SUB_AOS_title");
        }
        if(containerDiv != null && containerDiv != "") {
            if(oldDiv) {
                containerDiv.removeChild(oldDiv);
            }
            if(subAosHtml != "") {
                newdiv.innerHTML = subAosHtml;
                containerDiv.appendChild(newdiv);
                show(containerDivId);
            }
        }
    }
}

function updateSubAosDropdown(aosFieldValues, aosMappingValues, useSelectedValues) {
    
	var currentSelectedValues = "";
    
	if (useSelectedValues && window.document.form1.DDI_SUB_AOS_01_SELECTED) {
		currentSelectedValues = getFieldValue(window.document.form1.DDI_SUB_AOS_01_SELECTED);
	} else if (window.document.form1.DDI_SUB_AOS_01_DROPDOWN) {
        collectSubAosValuesDropdown(useSelectedValues);
        currentSelectedValues = getFieldValue(window.document.form1.DDI_SUB_AOS_01_DROPDOWN);
    }
    
    var isOptionAdded = false;
    var aosMappings = aosMappingValues.split(",");
    var subAosHtml = "<input type='hidden' name='DDI_SUB_AOS_01_DROPDOWN' value=''>" 
    	+ "<table width='100%' border='0' cellspacing='0' cellpadding='0' class='checktable' valign='top'>";
    
    for (var i = 0; i < aosMappings.length; i++) {
        var aosEntry = aosMappings[i].split("=");
        var aosValue = aosEntry[0];
        var subAosValues = aosEntry[1].split("|");
        var subAosFieldName = "DDI_SUB_AOS_01_DROPDOWN_" + aosValue.replace(/ /g, "_"); 
        var subAosField = document.getElementsByName(subAosFieldName);
        
        if (!useSelectedValues && subAosField && (subAosField.length > 0)) {
            if (currentSelectedValues != "") {
                currentSelectedValues += ",";
            }
            
            currentSelectedValues += getFieldValueLB(subAosField);
        }       
                
        if (aosFieldValues.indexOf(aosValue) > -1) {
            subAosHtml += "<tr><td>" + getAosLabel(aosValue) + "&nbsp;" + "<span class='note'>(select one)</span></td>"
            subAosHtml += "<td><select class='forms' style='width:150px;' name=" + subAosFieldName + ">"
                
            var selectedFlag = (currentSelectedValues && (currentSelectedValues == "")) ? "selected" : "";
            subAosHtml += "<option value='' " + selectedFlag + ">Select One</option>";          
            
            for (var j = 0; j < subAosValues.length; j++) {
                var subAosValue = subAosValues[j].split(":");
                
                selectedFlag = (currentSelectedValues && (currentSelectedValues.indexOf(subAosValue[1]) > -1)) ? "selected" : "";
                subAosHtml += "<option value='" + subAosValue[1] + "' " + selectedFlag + ">" + subAosValue[0] + "</option>";
                
                isOptionAdded = true;
            }
                
            subAosHtml += "</td></tr>"
        }
    }
    
    subAosHtml += "</table>";
    
    return isOptionAdded ? subAosHtml : "";
}

function updateSubAosCheckbox(aosFieldValues, aosMappingValues, useSelectedValues) {
    
	var currentSelectedValues = "";
    
    if (useSelectedValues && window.document.form1.DDI_SUB_AOS_01_SELECTED) {
		currentSelectedValues = getFieldValue(window.document.form1.DDI_SUB_AOS_01_SELECTED);
    } else if (window.document.form1.DDI_SUB_AOS_01) {
        collectSubAosValuesCheckbox(useSelectedValues);
        currentSelectedValues = getFieldValueCBWithSeparator(window.document.form1.DDI_SUB_AOS_01);
    }
    
    var isOptionAdded = false;
    var aosMappings = aosMappingValues.split(",");
    var subAosHtml = "<input type='hidden' name='DDI_SUB_AOS_01' value=''>"
    	+ "<span class='note'>(check at least one box)</span><br/><br/>";
    
    for (var i = 0; i < aosMappings.length; i++) {
        var aosEntry = aosMappings[i].split("=");
        var aosValue = aosEntry[0];
        var subAosValues = aosEntry[1].split("|");
        var subAosFieldName = "DDI_SUB_AOS_01_" + aosValue.replace(/ /g, "_");
        var subAosField = document.getElementsByName(subAosFieldName);
        
        if (!useSelectedValues && subAosField && (subAosField.length > 0)) {
            if (currentSelectedValues != "") {
                currentSelectedValues += ",";
            }
            
            currentSelectedValues += getFieldValueCBWithSeparator(subAosField);
        }       
                
        if (aosFieldValues.indexOf(aosValue) > -1) {
            subAosHtml += "<span class='subaos-field'>&raquo; " + getAosLabel(aosValue) + "</span>";
            subAosHtml += "<table width='100%' border='0' cellspacing='0' cellpadding='0' class='checkable' valign='top'>"; 

            var optionCount = 0;            

            for (var j = 0; j < subAosValues.length; j++) {
                var subAosValue = subAosValues[j].split(":");
    
                if ((optionCount % 2) == 0) {
                    subAosHtml += "<tr>";
                }               
                
                subAosHtml += "<td width='50%' id='" + subAosValue[1].replace(/ /g, "_") + "'>";

                selectedFlag = (currentSelectedValues && (currentSelectedValues.indexOf(subAosValue[1]) > -1)) ? "checked" : "";
                subAosHtml += "<input type='checkbox' name='" + subAosFieldName + "' value='" + subAosValue[1] + "' id='check_" + i + "_" + j + "_0" + optionCount + "' " + selectedFlag + ">";
                subAosHtml += "<label for='check_" + i + "_" + j + "_0" + optionCount + "'>" + subAosValue[0] + "</label></td>";

                if ((++optionCount % 2) == 0) {
                    subAosHtml += "</tr>";
                }
                
                isOptionAdded = true;
            }
                
            subAosHtml += "</table>";
        }
    }

    return isOptionAdded ? subAosHtml : "";
}

function updateSubAosRadiobox(aosFieldValue, aosMappingValue, useSelectedValues) {
    
	var currentSelectedValue = "";
    
	if (useSelectedValues && window.document.form1.DDI_SUB_AOS_01_SELECTED) {
		currentSelectedValue = getFieldValue(window.document.form1.DDI_SUB_AOS_01_SELECTED);
    } else if(window.document.form1.DDI_SUB_AOS_01_RADIO) {
        collectSubAosValuesRadio(useSelectedValues);
        currentSelectedValue = getFieldValue(window.document.form1.DDI_SUB_AOS_01_RADIO);
    }
	
    var isOptionAdded = false;
    var aosMappingArray = aosMappingValue.split(",");
    var subAosHtml = "<span class=\"note\">(check one box)</span><br /><br />"
    	+ "<input type=\"hidden\" name=\"DDI_SUB_AOS_01_RADIO\" value=\"\">";
    
    for(var i = 0; i < aosMappingArray.length; i++) {
        var aosEntry = aosMappingArray[i].split("=");
        var aosName = aosEntry[0];
        var subAos = aosEntry[1].split("|");
        var subAosField = document.getElementsByName("DDI_SUB_AOS_01_RADIO_" + aosName.replace(/ /g,"_"));
        
        if(!useSelectedValues && subAosField && subAosField.length > 0) {
            if(currentSelectedValue != "") {
                currentSelectedValue += ",";
            }
            
            currentSelectedValue += getFieldValueRB(subAosField);
        }
        
        if(aosFieldValue.indexOf(aosName) >= 0) {
            var totalOptionsAdded = 0;
            subAosHtml += "<span class=\"subaos-field\">&raquo; " + getAosLabel(aosName) + "</span>";
            subAosHtml += "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"checktable\" valign=\"top\">";
            for(var j = 0; j < subAos.length; j++) {
                var subAosValue = subAos[j].split(":");
                if((totalOptionsAdded % 2) == 0) {
                    subAosHtml += "<tr>";
                }
                subAosHtml += "<td width=\"50%\" id=\"" + subAosValue[1].replace(/ /g,"_") + "\">";
                if(currentSelectedValue && currentSelectedValue.indexOf(subAosValue[1]) > -1) {
                    subAosHtml += "<input type=\"radio\" name=\"DDI_SUB_AOS_01_RADIO_" + aosName.replace(/ /g,"_") + "\" value=\"" + subAosValue[1] + "\" id=\"radio_" + i + "_" + j + "_0" + totalOptionsAdded + "\" checked>";
                } else {
                    subAosHtml += "<input type=\"radio\" name=\"DDI_SUB_AOS_01_RADIO_" + aosName.replace(/ /g,"_") + "\" value=\"" + subAosValue[1] + "\" id=\"radio_" + i + "_" + j + "_0" + totalOptionsAdded + "\">";
                }
                subAosHtml += "<label for=\"radio_" + i + "_" + j + "_0" + totalOptionsAdded+ "\">" + subAosValue[0] + "</label></td>";
                totalOptionsAdded = totalOptionsAdded + 1;
                if((totalOptionsAdded % 2) == 0) {
                    subAosHtml += "</tr>";
                }
                isOptionAdded = true;
            }
            if((totalOptionsAdded % 2) != 0) {
                subAosHtml += "</tr>";
            }
            subAosHtml += "</table>";
        }
    }
    return isOptionAdded ? subAosHtml : ""; 
}

function getAosLabel(aosName) {
    var field = document.getElementById('AOS_LABEL_MAPPING');
    if(field) {
        var aosLabelMapping = getFieldValueTF(field);
        var aosLabelArray = aosLabelMapping.split(",");
        for(var i = 0; i < aosLabelArray.length; i++) {
            if(aosLabelArray[i] != null && aosLabelArray[i] != "") {
                var aosLabelEntry = aosLabelArray[i].split(":");
                if(aosLabelEntry[0] == aosName) {
                    return aosLabelEntry[1];
                }
            }
        }
    }
    return aosName;
}

function getAosDisplayType(useSelectedValues) {
	
	var valuesCount = 0;
	var selectedField = window.document.form1.DDI_AOS_01_SELECTED;
	var displayField = window.document.form1.DDI_AOS_01_DISPLAY;
	var form = window.document.form1;
	var retDisplayType = "";
	
	if (!displayField) {
		return "";
	}
	
	var displayType = getFieldValueTF(displayField);
	
	if (useSelectedValues && selectedField && isNotBlank(getFieldValue(selectedField))) {
		valuesCount = getFieldValue(selectedField).split(",").length;
    } else if (isNotBlank(displayType)) {
    	
    	var value = "";
    	
    	if ("RADIO" == displayType) {
    		value = getFieldValue(form.DDI_AOS_01_RADIO);
    	} else if ("DROPDOWN" == displayType) {
    		value = getFieldValue(form.DDI_AOS_01_DROPDOWN);
    	} else {
    		value = getFieldValueCBWithSeparator(form.DDI_AOS_01);
    	}
    	
    	if (isNotBlank(value)) {
    		valuesCount = value.split(",").length;
    	}
    }
    
    if(displayType) {
        
        if(displayType == "RADIO" && valuesCount < 2) {
        	retDisplayType = "RADIO";
        } else if(displayType == "DROPDOWN" && valuesCount < 2) {
        	retDisplayType = "DROPDOWN";
        } else {
        	retDisplayType = "CHECKBOX";
        }
    }
    
    setFieldValue(displayField, retDisplayType);
    
    return retDisplayType;
}

function getSubAosDisplayType(useSelectedValues) {
	
	var subAosValuesMaxGroupCount = 0;
	var subAosValuesCount = 0;
	var aosValuesCount = 0;
	var selectedField = window.document.form1.DDI_SUB_AOS_01_SELECTED;
	var displayField = window.document.form1.DDI_SUB_AOS_01_DISPLAY;
	var form = window.document.form1;
	var retDisplayType = "";
	
	if (!displayField) {
		return retDisplayType;
	}
	
	var displayType = getFieldValueTF(displayField);
	
	if (useSelectedValues && selectedField && isNotBlank(getFieldValue(selectedField))) {
		subAosValuesCount = getFieldValue(selectedField).split(",").length;
	} else if (isNotBlank(displayType)) {
    	
    	var value = "";
    	
    	if ("RADIO" == displayType && form.DDI_SUB_AOS_01_RADIO) {
    		collectSubAosValuesRadio(useSelectedValues);
    		value = getFieldValue(form.DDI_SUB_AOS_01_RADIO);
    	} else if ("DROPDOWN" == displayType && form.DDI_SUB_AOS_01_DROPDOWN) {
    		collectSubAosValuesDropdown(useSelectedValues);
    		value = getFieldValue(form.DDI_SUB_AOS_01_DROPDOWN);
    	} else if (form.DDI_SUB_AOS_01) {
    		collectSubAosValuesCheckbox(useSelectedValues);
    		value = getFieldValue(form.DDI_SUB_AOS_01);
    	}
    	
    	if (isNotBlank(value)) {
    		subAosValuesCount = value.split(",").length;
    	}
    }
    
	var aosValues = getAosFieldValue(false);
	
	if (isNotBlank(aosValues)) {
		aosValuesCount = aosValues.split(",").length;
	}
	
	if (subAosValuesCount > 0 && aosValuesCount > 0) {
		subAosValuesMaxGroupCount = subAosValuesCount / aosValuesCount;
	}
	
    if(displayType) {
        if(displayType == "RADIO" && subAosValuesMaxGroupCount <= 1) {
        	retDisplayType = "RADIO";
        } else if(displayType == "DROPDOWN" && subAosValuesMaxGroupCount <= 1) {
        	retDisplayType = "DROPDOWN";
        } else if (displayType == "CHECKBOX" || subAosValuesMaxGroupCount > 1){
        	retDisplayType = "CHECKBOX";
        } else {
        	retDisplayType = displayType;
        }
    }
    
    setFieldValue(displayField, retDisplayType);
    
    return retDisplayType;
}
