﻿/* user data */
function company_name(setter) { return get_set_textbox("billto_companyname", setter); }
function address(setter) { return get_set_textbox("billto_address", setter); }
function city(setter) { return get_set_textbox("billto_city", setter); }
function province(setter) { return get_set_textbox("billto_province", setter); }
function postal(setter) { return get_set_textbox("billto_postal", setter); }
function contact(setter) { return get_set_textbox("billto_contactname", setter); }
function phone(setter) { return get_set_textbox("billto_phone", setter); }
function email(setter) { return get_set_textbox("billto_email", setter); }
function number(setter) { return get_set_textbox("billto_number", setter); }
function billto(setter) {
    var em = document.getElementById("ddlBillto");
    if (setter == null)
        return em.selectedIndex;
    else
        em.selectedIndex = setter;
}
function ship_attention(setter) { return get_set_textbox("shipto_attention", setter); }
function ship_companyname(setter) { return get_set_textbox("shipto_companyname", setter); }
function ship_address(setter) { return get_set_textbox("shipto_delivery_address", setter); }
function ship_city(setter) { return get_set_textbox("shipto_delivery_city", setter); }
function ship_province(setter) { return get_set_textbox("shipto_delivery_province", setter); }
function ship_postal(setter) { return get_set_textbox("shipto_delivery_postal", setter); }
function ship_phone(setter) { return get_set_textbox("shipto_delivery_phone", setter); }
function ship_contact() {
    var sel = document.getElementById("shipto_delivery_contact");
    if (sel.selectedIndex >= -1)
        return sel.value;
    else
        return "";
}
function start_time() { return document.getElementById("hfLoadTime").value; }
/* well */
var current_well_index = 0;
function well_select_index(setter) {
    if (setter == null)
        return well_select().selectedIndex;
    else {
        current_well_index = setter;
        well_select().selectedIndex = setter;
    }
}
function well_name(setter) { return get_set_textbox("wellname", setter); }
function sidetrack(setter) { return get_set_textbox("nameData", setter); }
function id(setter) { return get_set_textbox("uId", setter); }
function bags_qty(setter) { return get_set_textbox("well_bags_sets", setter); }
function bags_type(setter) {
    if (setter == null)
    {
        if (document.getElementById('well_bags_nosets').checked )
            return "none";
        else 
            return document.getElementById(getRadioCheckedId('well_bags_type')).value;
    } else {
        switch (setter) {
            case "none":
                document.getElementById('well_bags_nosets').checked = true;
                document.getElementById('well_bags_type_0').checked = false;
                document.getElementById('well_bags_type_1').checked = false;
                set_bags_view(true);
                break;
            case "Printed":
                document.getElementById('well_bags_nosets').checked = false;
                document.getElementById('well_bags_type_0').checked = true;
                document.getElementById('well_bags_type_1').checked = false;
                set_bags_view(false);
                break;
            case "Blank":
                document.getElementById('well_bags_nosets').checked = false;
                document.getElementById('well_bags_type_0').checked = false;
                document.getElementById('well_bags_type_1').checked = true;
                set_bags_view(false);
                break;
        }
    }
}
function vials_qty(setter) { 
    if (setter != null) {
        // if setting to non zero then update the view state
        if (setter == "") 
            set_company_view(true);
        else    
            set_company_view(false);
    }                 
    return get_set_textbox_cb("well_vialscompany_set_type", "well_vialscompany_set_qty", setter); 
}
function vials_qty_ab(setter) { return get_set_gov_textbox("well_vialsgovernment_set_type_ab", "well_vialsgovernment_set_qty_ab", setter); }
function vials_qty_sk(setter) { return get_set_gov_textbox("well_vialsgovernment_set_type_sk", "well_vialsgovernment_set_qty_sk", setter); }
function vials_qty_bc(setter) { return get_set_gov_textbox("well_vialsgovernment_set_type_bc", "well_vialsgovernment_set_qty_bc", setter); }
function gunny_qty(setter) { 
    if (setter != null) {
        // if setting to non zero then update the view state
        if (setter == "") {
            document.getElementById("well_gunny").checked = false;
            document.getElementById("well_gunny_qty").disabled = true;
        } else {
            document.getElementById("well_gunny").checked = true;
            document.getElementById("well_gunny_qty").disabled = false;
        }
    }                 
    return get_set_textbox_cb("well_gunny", "well_gunny_qty", setter); 
}
function mud_qty(setter) { 
    if (setter != null) {
        // if setting to non zero then update the view state
        if (setter == "") {
            document.getElementById("well_mudsample").checked = false;
            document.getElementById("well_mudsample_qty").disabled = true;
        } else {
            document.getElementById("well_mudsample").checked = true;
            document.getElementById("well_mudsample_qty").disabled = false;
        }
    }     
    return get_set_textbox_cb("well_mudsample", "well_mudsample_qty", setter); 
}

function bags_get(sets) { get_intervals_from_page("well_bags_interval", sets); }    
function bags_set(sets) { set_intervals_to_page("well_bags_interval", sets); }
function vials_get(sets) { get_intervals_from_page("well_vialscompany_interval", sets); }  
function vials_set(sets) { set_intervals_to_page("well_vialscompany_interval", sets); }  
function gov_get(sets) { get_intervals_from_page("well_vialsgovernment_interval", sets); }  
function gov_set(sets) { set_intervals_to_page("well_vialsgovernment_interval", sets); }  

/* extra info */
function instructions(setter) { return get_set_textbox("other_instructions", setter); }
function date(setter) { return get_set_textbox("date1", setter); }
function ccEmail(setter) { return get_set_textbox("tbEmail2", setter); }

/* handle getters */
function well_select() { return document.getElementById("well_sel")}

/* Get and set functions for order page controls */
function get_set_textbox(textboxId, setter)
{
    var em;
    
    try {
        em = document.getElementById(textboxId);
        if (setter == null) 
            return em.value 
        else 
            em.value = setter; 
    } catch (error) {
        log_error(ERROR, "get_set_textbox " + textboxId + " error: " + error);
    }
    return setter;
}

/* same as get_set_textbox but conditionally get or set if checkbox is checked */
function get_set_textbox_cb(checkbox_id, textboxId, setter)
{
    var checked, em;
    
    try {
        checked = document.getElementById(checkbox_id).checked;
        em = document.getElementById(textboxId);
    } catch (error) {
        log_error(ERROR, "get_set_textbox_cb: " + checkbox_id + " error: " + error);
        return "";
    }    
    if (checked) {
        try {
            if (setter == null) 
                return em.value 
            else 
                em.value = setter;
        } catch (error) {
            log_error(ERROR, "get_set_textbox_cb: " + checkbox_id + " error: " + error + " setter " + setter);
            return "";
        }
    } else {
        /* dont get/set if the checkbox is not set */
        if (setter != null) {
            em.value = "";
            //log_error(INFO, "get_set_textbox_cb: " + " tried to set value " + setter + " but " + checkbox_id + " is not checked");
        }
    }
    
    return "";
}

function get_set_gov_textbox(cb_id, tb_id, setter)
{
    //log_error(ERROR, "get_set_gov_textbox: setter " + setter);
    if (setter != null) {
        var temp;
        if (setter == "")
            temp = false;
        else 
            temp = true;
            
        log_error(INFO, "get_set_gov_textbox: setter " + setter + " temp " + temp);
        document.getElementById(cb_id).checked = temp;
        enable_government_view(temp);
        
    }
    return get_set_textbox_cb(cb_id, tb_id, setter); 
}

function get_intervals_from_page(table_id, sets)
{
    var table = document.getElementById(table_id);
    // get all the intervals from the page        
    sets.delete_all_intervals();    
    
    var info = table_id + " table.rows.length " + table.rows.length;

    for (var i = 0; i < table.rows.length; i++) {
        var inputs = table.rows[i].getElementsByTagName("input");
        var to = "";
        var from = ""
        var inc = "";
        
        
        for (var j = 0; j < inputs.length; j++) {
            if (inputs[j].name) {                
                switch (inputs[j].name) {
                case table_id + "_from":
                    from = inputs[j].value;
                    break;
                case table_id + "_to":
                    to = inputs[j].value;
                    break;    
                case table_id + "_increment":
                    inc = inputs[j].value;
                    break;
                }
            }
        }
        info += "\ninputs " + j + " from " + from + " to " + to + " inc " + inc;
        if (from != "" || to != "" || inc != "")
            sets.add_interval(from, to, inc);   
        log_error (INFO, info);            
    }   
}

function set_intervals_to_page(table_id, sets)
{
    var table = document.getElementById(table_id);
    // send the bags intervals to the page
    remove_all_intervals(table_id);
    
    var info = table_id +" sets.interval.length " + sets.interval.length;
    
    for (var i = 0; i < sets.interval.length; i++) {
        add_table_row(table, table_id, sets.interval[i].from, sets.interval[i].to, sets.interval[i].inc);
        info += i + " from " + sets.interval[i].from + " to " + sets.interval[i].to + " inc " + sets.interval[i].inc;
    }    
    log_error (INFO, info);     
}
