﻿var LetterArray = new Array();

// These functions handle populating the adjectives' lists.
// They also check to make sure identical adjectives are not selected.

function PopulateAdjectiveLists()
{    
    var DropDownObject;
    var MasterAdjectiveList = document.getElementById("MasterAdjectiveList");
    var MasterAdjectiveLength = document.getElementById("MasterAdjectiveList").options.length;
    var Index = 0;
    var SelectedValue = "";
    
    var fullname = document.getElementById("holdName").value;
    var nameLength = fullname.length;
    var HoldIndex = 0;
    
    for (Index = 0; Index < nameLength; Index++) {
        DropDownObject = document.getElementById("AdjectiveList" + Index);
        if (DropDownObject != null) {
            if (document.getElementById("HoldAdjective" + HoldIndex) == null) {
                SelectedValue = "";
            }
            else {
                SelectedValue = document.getElementById("HoldAdjective" + HoldIndex);
            }
            HoldIndex++;
            
            LetterArray.push(0);
            
            DropDownObject.options.add(new Option("Please select an adjective", ""));
                     
            for (var i = 0; i < MasterAdjectiveLength; i++)
            {
                var AdjectiveText = MasterAdjectiveList.options[i].text;
                var AdjectiveValue = MasterAdjectiveList.options[i].value;
                var RegTest;
                
                if (DropDownObject.getAttribute("letter") == "x" || DropDownObject.getAttribute("letter") == "X")
                {
                    RegTest = new RegExp("^[a-zA-Z]?" + DropDownObject.getAttribute("letter"), "i");
                }
                else
                {
                    RegTest = new RegExp("^" + DropDownObject.getAttribute("letter"), "i");
                }

                if (AdjectiveText.match(RegTest))
                {
                    DropDownObject.options.add(new Option(AdjectiveText, AdjectiveValue));
                    if (AdjectiveValue == SelectedValue.value) {
                        DropDownObject.selectedIndex = DropDownObject.options.length - 1;
                    }                
                }                
            }     
        }
    }    
}

function UpdateAdjectiveLists(TempId, TempLetter, TempValue)
{
    var DropDownObject;
    var MasterAdjectiveList = document.getElementById("MasterAdjectiveList");
    var MasterAdjectiveLength = document.getElementById("MasterAdjectiveList").options.length;
    var TempSelectedIndex = 0;
    var TempSelectedIndexValue = "";
    var Index = 0;
    var AddItem = true;   
    var fullname = document.getElementById("holdName").value;
    var nameLength = fullname.length;     
    
    for (Index = 0; Index < nameLength; Index++) {
        DropDownObject = document.getElementById("AdjectiveList" + Index);
        if (DropDownObject != null)
        {
            if (DropDownObject.id == TempId)
            {
                LetterArray[Index] = TempValue;
            }
        }
    }
    
    for (Index = 0; Index < nameLength; Index++) {
        DropDownObject = document.getElementById("AdjectiveList" + Index);
        if (DropDownObject != null)
        {             
            LetterArray[Index] = DropDownObject.options[DropDownObject.options.selectedIndex].value;
            
            if (LetterArray[Index] == "")
            {
                LetterArray[Index] = "-1";
            }
            
            if (DropDownObject.id != TempId && DropDownObject.getAttribute("letter") == TempLetter)
            {
                TempSelectedIndex = DropDownObject.options.selectedIndex;
                TempSelectedIndexValue = DropDownObject.options[TempSelectedIndex].value;
                DropDownObject.options.options.length = 0;              
                DropDownObject.options.add(new Option("Please select an adjective", ""));
                         
                for (var i = 0; i < MasterAdjectiveLength; i++)
                {
                    var AdjectiveText = MasterAdjectiveList.options[i].text;
                    var AdjectiveValue = MasterAdjectiveList.options[i].value;
                    var RegTest;
                
                    if (DropDownObject.getAttribute("letter") == "x" || DropDownObject.getAttribute("letter") == "X")
                    {
                        RegTest = new RegExp("^[a-zA-Z]?" + DropDownObject.getAttribute("letter"), "i");
                    }
                    else
                    {
                        RegTest = new RegExp("^" + DropDownObject.getAttribute("letter"), "i");
                    }
                                    
                    if (AdjectiveText.match(RegTest) && AdjectiveValue != TempValue)
                    { 
                        AddItem = true;

                        for (var j = 0; j < LetterArray.length; j++)
                        {
                            if (LetterArray[j] == AdjectiveValue && j != Index)
                            { 
                                AddItem = false;                                              
                            }
                        }
                        
                        if (AddItem)
                        {
                            DropDownObject.options.add(new Option(AdjectiveText, AdjectiveValue));
                        }
                    }                    
                }                 
                
                DropDownObject.selectedIndex = 0;
                
                for (var i = 0; i < DropDownObject.options.length; i++)
                {
                    if (DropDownObject.options[i].value == TempSelectedIndexValue)
                    {
                        DropDownObject.selectedIndex = i;
                    }
                }                   
            }    
        }            
    }
}
