
function init_age_fields()
{
    var get_age_content_div  = document.getElementById('get_age_content');
    var get_age_bottom_div  = document.getElementById('get_age_bottom');
    
    var children_sel = parent.parent.document.getElementById('children');
    var infants_sel = parent.parent.document.getElementById('infants');
    
    var number_of_children = 0;
    var number_of_infants = 0;
    
    var age_testing = parent.parent.document.getElementById('age_testing');
    if(age_testing)age_testing.value = "";
    
    if(infants_sel)
    {
        number_of_infants = infants_sel.selectedIndex;
    }
    
    if(typeof(children_sel.selectedIndex) != "undefined")
    {
        number_of_children = children_sel.selectedIndex;
        var total_children_allowed = children_sel.options.length - 1;
    }
    else if(children_sel.value)
    {
        number_of_children = parseInt(children_sel.value, 10);
        var total_children_allowed = children_sel.value;
    }

    var total_number_of_children = parseInt(number_of_infants) + parseInt(number_of_children);
    var running_number_of_infants = parseInt(number_of_infants);
    var running_number_of_children = parseInt(number_of_children);
    for(var i=1; i<=total_number_of_children; i++)
    {
        var child_age_set = parent.parent.document.getElementById('child_age'+i);
        if((running_number_of_infants && child_age_set.value == "")|| (running_number_of_infants && child_age_set.value == "1"))
        {
            add_one_row(i, get_age_content_div, 'infant');
            running_number_of_infants--;
        }
        else if(running_number_of_children)
        {
            add_one_row(i, get_age_content_div, 'child');
            running_number_of_children--;
        }
        // This is to correct if the ages do not line up with the number of either infants or children selected
        else
        {
            add_one_row(i, get_age_content_div, 'infant');
            running_number_of_infants--;
        }
    }

    
    more_buttons();
    
}

function more_buttons()
{
    var get_age_bottom_div  = document.getElementById('get_age_bottom');
    
    var children_sel = parent.parent.document.getElementById('children');
    var infants_sel = parent.parent.document.getElementById('infants');
    
    var number_of_children = 0;
    var number_of_infants = 0;
    
    if(typeof(children_sel.selectedIndex) != "undefined")
    {
        number_of_children = children_sel.selectedIndex;
        var total_children_allowed = children_sel.options.length - 1;
    }
    else if(children_sel.value)
    {
        number_of_children = parseInt(children_sel.value, 10) + parseInt(children_sel.value, 10);
        var total_children_allowed = children_sel.value;
    }
    
    if(infants_sel)
    {
        number_of_infants = infants_sel.selectedIndex;
    }

    var add_link_div = document.createElement("DIV");
    add_link_div.id = "add_child";
    
    if((parseInt(number_of_infants, 10) + parseInt(number_of_children, 10)) < total_children_allowed)
    {
        if(infants_sel && (infants_sel.selectedIndex < (infants_sel.length - 1)))
        {
            var add_link = document.createElement("A");
            add_link.href = "javascript:add_a_row('infant');";
            add_link.className = "add_more";
            add_link.appendChild(document.createTextNode('Add another Infant'));
        }
        
        var add_link2 = document.createElement("A");
        add_link2.href = "javascript:add_a_row('child');";
        add_link2.className = "add_more";
        add_link2.appendChild(document.createTextNode('Add another Child'));
        
        get_age_bottom_div.innerHTML = "";
        if(infants_sel && (infants_sel.selectedIndex < (infants_sel.length - 1)))
        {
            add_link_div.appendChild(add_link);
            add_link_div.appendChild(document.createTextNode('\u00A0\u00A0\u00A0\u00A0'));
        }
        
        add_link_div.appendChild(add_link2);
        add_link_div.appendChild(document.createElement('br'));
        add_link_div.appendChild(document.createElement('br'));
    }
    else
    {
        get_age_bottom_div.innerHTML = "";
    }
    
    if(get_age_bottom_div.firstChild)get_age_bottom_div.insertBefore(add_link_div, get_age_bottom_div.firstChild);
    else get_age_bottom_div.appendChild(add_link_div);
    
    add_submit_button(get_age_bottom_div);
}


function add_a_row(person_type)
{
    var get_age_content_div  = document.getElementById('get_age_content');
    var get_age_bottom_div  = document.getElementById('get_age_bottom');
    var children_sel = parent.parent.document.getElementById('children');
    var infants_sel = parent.parent.document.getElementById('infants');
    if(infants_sel)var i = infants_sel.selectedIndex + children_sel.selectedIndex + 1;
    else var i = children_sel.selectedIndex + 1;
    var total_children_allowed = children_sel.options.length - 1;
    
    if(person_type == "child")
    {
        add_one_row(i, get_age_content_div, "child");
        children_sel.selectedIndex++;
    }
    else
    {
        add_one_row(i, get_age_content_div, "infant");
        infants_sel.selectedIndex++;
    }
    
    
    //if(i == 1)add_submit_button(get_age_bottom_div);
    if(i == total_children_allowed)
    {
        var add_child_div = document.getElementById('add_child');
        add_child_div.parentNode.removeChild(add_child_div);
    }
    more_buttons();
}


function add_one_row(i, get_age_content_div, person_type)
{
    var infants_sel = parent.parent.document.getElementById('infants');
    
    var err_el = document.createElement("SPAN");
    err_el.className = "err_message";
    err_el.id = "err_mess_"+i;
    
    var close_link = document.createElement("A");
    close_link.className = "close_link";
    close_link.id = "close_link_"+i;
    close_link.title = "remove this "+person_type;
    close_link.href = "javascript:delete_row("+i+");";
    close_link.appendChild(document.createTextNode("\u00A0\u00A0\u00A0\u00A0"));
    
    
    var inp_wrap_el = document.createElement("DIV");
    inp_wrap_el.className = "wrap_inp_err";
    
    var wrap_el = document.createElement("DIV");
    wrap_el.className = "wrap_it "+person_type;
    wrap_el.id = "wrap_it_"+i;
    var child_age_set = parent.parent.document.getElementById('child_age'+i);
    
    if(person_type == "child")
    {
        var clone_this = document.getElementById('clone_age_dropdown');
        var inp_el = clone_this.cloneNode(true);
        inp_el.name = "child_age"+i;
        inp_el.id = "child_age"+i;
        inp_el.className = "qfSel";
        
        if(child_age_set.value && parseInt(child_age_set.value) != 1)
        {
            setValueSel(inp_el, child_age_set.value);
        }
        
        inp_wrap_el.appendChild(inp_el);
    }
    else // if infant
    {
        var inp_el = document.createElement('INPUT');
        inp_el.type = "hidden";
        inp_el.name = "child_age"+i;
        inp_el.id = "child_age"+i;
        inp_el.className = "qfSel";
        inp_el.value = 1;
        
        var infant_index = get_next_infant_index();
        var infant_value = parent.parent.document.getElementById('infant'+infant_index);
        
        var infant_type = document.createElement('INPUT');
        infant_type.type = "hidden";
        infant_type.id = "infant_type"+infant_index;
        
        if(infant_value.value == "in_seat")
        {
            infant_type.value = "in_seat";
            var in_lap_rad_checked = false;
            var in_seat_rad_checked = true;
        }
        else
        {
            infant_type.value = "in_lap";
            var in_lap_rad_checked = true;
            var in_seat_rad_checked = false;
        }
        

        
        var in_lap_rad = createRadioElement( "infant"+i, in_lap_rad_checked );
        in_lap_rad.type = "radio";
        in_lap_rad.id = "infant_in_lap"+i;
        in_lap_rad.value = "in_lap";
        in_lap_rad.onclick = function(){ set_infant_type(this, infant_index); };
        
        var in_lap_label = document.createElement('LABEL');
        var in_lap_text = document.createTextNode('Infant in Lap');
        
        var in_seat_rad = createRadioElement( "infant"+i, in_seat_rad_checked );
        in_seat_rad.id = "infant_in_seat"+i;
        in_seat_rad.value = "in_seat";
        in_seat_rad.onclick = function(){ set_infant_type(this, infant_index); };
        
        var in_seat_label = document.createElement('LABEL');
        var in_seat_text = document.createTextNode('Infant in Seat');

        
        
        wrap_el.appendChild(inp_el);
        in_lap_label.appendChild(in_lap_rad);
        in_lap_label.appendChild(in_lap_text);
        inp_wrap_el.appendChild(in_lap_label);
        //inp_wrap_el.appendChild(document.createElement('BR'));
        in_seat_label.appendChild(in_seat_rad);
        in_seat_label.appendChild(in_seat_text);
        inp_wrap_el.appendChild(in_seat_label);
    }
    
    inp_wrap_el.appendChild(close_link);
    inp_wrap_el.appendChild(err_el);

    
    
    var wrap_left = document.createElement("DIV");
    wrap_left.className = "wrap_left";
    wrap_left.id = "wrap_left_"+i;
    wrap_left.appendChild(document.createTextNode('Child # '+i+' '));
    
    wrap_el.appendChild(wrap_left);
    wrap_el.appendChild(inp_wrap_el);
    
    get_age_content_div.appendChild(wrap_el);
    if(person_type == "infant")get_age_content_div.appendChild(infant_type);
    
}

function setValueSel(el, val)
{
    if(el)for(var i=0; i<el.options.length; i++)
    {
        if(el.options[i].value == val)
        {
            el.selectedIndex = i;
            return;
        }
    }
}

function set_infant_type(el, infant_index)
{
    var infant_type = document.getElementById('infant_type'+infant_index);
    infant_type.value = el.value;
}

function get_infant_index(search_index)
{
    var get_age_content_form = document.getElementById('get_age_content');
    var theDivs = get_age_content_form.getElementsByTagName("DIV");
    var infant_count = 0;
    for(var n=0; n<=theDivs.length-1; n++)
    {
        if(theDivs[n].className == "wrap_it infant")
        {
            infant_count++;
            var index = theDivs[n].id.replace("wrap_it_", "");
            if(index == search_index) return infant_count;
        }
    }
    return null;
}

function delete_row(i, person_type)
{
    var children_sel = parent.parent.document.getElementById('children');
    var infants_sel = parent.parent.document.getElementById('infants');
    var total_children_allowed = children_sel.options.length - 1;

    var count = 0;
    if(infants_sel)var number_of_children = (parseInt(infants_sel.selectedIndex) + parseInt(children_sel.selectedIndex));
    else var number_of_children = parseInt(children_sel.selectedIndex);
    
    
    if(infants_sel && infants_sel.selectedIndex)
    {
        var age = document.getElementById('child_age'+i);

        if(age.value == 1)
        {
            var changing = get_infant_index(i);
            if(changing)
            {
                for(var n=1; n<=infants_sel.selectedIndex-1; n++)
                {   
                    if(n >= changing)
                    {
                        var swap_to_deleted = document.getElementById('infant_type'+changing);
                        changing++;
                        var swap_from = document.getElementById('infant_type'+changing);
                        swap_to_deleted.value = swap_from.value;
                    }
                }
                var infant_type_index_to_delete = get_next_infant_index()-1;
                var infant_type_to_delete = document.getElementById('infant_type'+infant_type_index_to_delete);
                if(infant_type_to_delete)infant_type_to_delete.parentNode.removeChild(infant_type_to_delete);
            }
        }
    }
    
    for(var j=1; j<=number_of_children; j++)
    {
        var wrap_it = document.getElementById('wrap_it_'+j);
        
        if(j == i)
        {
            if(wrap_it.className == "wrap_it infant")infants_sel.selectedIndex--;
            else children_sel.selectedIndex--;
            wrap_it.parentNode.removeChild(wrap_it);
            continue;
        }
        
        count++;
        
        wrap_it.id = 'wrap_it_'+count;
        
        if(wrap_it.className == "wrap_it infant")
        {
            var infant_in_lap = document.getElementById('infant_in_lap'+j);
            infant_in_lap.name = 'infant'+count;
            infant_in_lap.id = 'infant_in_lap'+count;
            
            var infant_in_seat = document.getElementById('infant_in_seat'+j);
            infant_in_seat.name = 'infant'+count;
            infant_in_seat.id = 'infant_in_seat'+count;
        }
        
        var child_age = document.getElementById('child_age'+j);
        child_age.name = 'child_age'+count;
        child_age.id = 'child_age'+count;
        
        var err_mess = document.getElementById('err_mess_'+j);
        err_mess.id = 'err_mess_'+count;
        
        var close_link = document.getElementById('close_link_'+j);
        close_link.id = 'close_link_'+count;
        close_link.href = "javascript:delete_row("+count+");";
        
        var wrap_left = document.getElementById('wrap_left_'+j);
        wrap_left.id = 'wrap_left_'+count;
        wrap_left.innerHTML = 'Child # '+count;
        
    }
    
    more_buttons();
    
}

function add_submit_button(get_age_bottom_div)
{
    var sub_link = document.createElement("A");
    sub_link.href = "javascript:save_ages_and_close();";
    sub_link.id = "submit_children";
    sub_link.appendChild(document.createTextNode('Confirm'));
    
    get_age_bottom_div.appendChild(sub_link);
}





function save_ages_and_close()
{
    var children_sel = parent.parent.document.getElementById('children');
    var infants_sel = parent.parent.document.getElementById('infants');
    var b_eng_fieldset = parent.parent.document.getElementById('b_eng_fieldset');
    var res = false;
    var child_age_list = "";
    
    var number_of_infants = 0;
    var number_of_children = 0;
    
    if(infants_sel)
    {
        if(infants_sel.selectedIndex)
        {
            number_of_infants = infants_sel.selectedIndex;
        }
        else if(infants_sel.value)
        {
            number_of_infants = infants_sel.value;
        }
    }
    
    if(children_sel.selectedIndex)
    {
        number_of_children = children_sel.selectedIndex;
        var total_children_allowed = children_sel.options.length - 1;
    }
    else if(children_sel.value)
    {
        number_of_children = children_sel.value;
        var total_children_allowed = children_sel.value;
    }
    
    var total_number_of_children = parseInt(number_of_infants) + parseInt(number_of_children);
    for(var i=1; i<=total_number_of_children; i++)
    {
        var child_age = document.getElementById('child_age'+i);
        document.getElementById('err_mess_'+i).innerHTML = '';
        
        var child_age_set = parent.parent.document.getElementById('child_age'+i);
        if(child_age_set)
        {
            child_age_set.value = child_age.value;
            child_age_list += child_age.value+", ";
        }
    }
    
    var age_list = parent.parent.document.getElementById('age_list');
    child_age_list = ": "+child_age_list.replace(/\,\s$/, "");
    age_list.innerHTML = child_age_list;

    if(infants_sel)
    {
        if(infants_sel.selectedIndex)
        {
            for(var n=1; n<=infants_sel.length; n++)
            {
                var infant_type = document.getElementById('infant_type'+n);
                if(infant_type)
                {
                    var infant_type_set = parent.parent.document.getElementById('infant'+n);
                    infant_type_set.value = infant_type.value;
                }
            }
        }
    }
    
    var age_testing = parent.parent.document.getElementById('age_testing');
    if(age_testing)age_testing.value = "submit";

    //parent.parent.GB_hide();
    parent.parent.TopUp.close(parent.parent.set_vals_and_submit);
}

function get_next_infant_index()
{
    var infants_sel = parent.parent.document.getElementById('infants');
    
    if(infants_sel.selectedIndex)
    {
        for(var n=1; n<=infants_sel.length; n++)
        {
            var infant_type = document.getElementById('infant_type'+n);
            if(infant_type == null)
            {
                return n;
            }
        }
    }
    
    return 1;
}

function createRadioElement( name, checked ) {
    var radioInput;
    if(document.all)
    {
        var radioHtml = '<input type="radio" name="' + name + '"';
        if ( checked ) {
            radioHtml += ' checked="checked"';
        }
        radioHtml += '/>';
        radioInput = document.createElement(radioHtml);
    } else {
        radioInput = document.createElement('input');
        radioInput.setAttribute('type', 'radio');
        radioInput.setAttribute('name', name);
        if ( checked ) {
            radioInput.setAttribute('checked', 'checked');
        }
    }

    return radioInput;
}
