/*functions for giving warning in trip's customize view when leaving without saving */
function set_original_list_for_trip_and_trip_line()
{
    set_original_list();
    set_original_list_for_trip_line();
}

function set_original_list_for_trip_line()
{
    var list = $("second_user");
    var items = list.getElementsByTagName("li");
    for (var i = 0; i < items.length; i++)
    {
        trip_line_original_list.push(items[i].innerHTML);
    }
}

function confirmExitForTripCustomizing()
{
    if (needToConfirm)
    {
        set_current_list_for_trip_and_tripline();
        if (trip_or_trip_line_list_items_adjusted())
            return ("Warning: All changes you made will be lost!" )
    }
}

function set_current_list_for_trip_and_tripline()
{
    set_current_list();
    set_current_list_for_trip_line();
}

function set_current_list_for_trip_line()
{
    var list = $("second_user");
    var items = list.getElementsByTagName("li");
    for (var i = 0; i < items.length; i++)
    {
        trip_line_current_list.push(items[i].innerHTML);
    }
}

function trip_or_trip_line_list_items_adjusted()
{
    for (var i = 0; i < original_list.length; i++)
    {
		
        if (original_list[i] != current_list[i])
            return true	;
    }
    for (var i = 0; i < trip_line_original_list.length; i++)
    {
        if (trip_line_original_list[i] != trip_line_current_list[i])
            return true	;
    }
    return false;
}
/*end of functions for giving warning in trip's customize view when leaving without saving */

/* for customize list/csv/report view, load the original order in a variable called "original_list"*/
function set_original_list()
{
    var list = $("user");
    var items = list.getElementsByTagName("li");
    for (var i = 0; i < items.length; i++)
    {
        original_list.push(items[i].innerHTML);
    }
}

/* before navigated to other page, this method will be called to check if any changes made */
function confirmExitForCustomizing()
{
    if (needToConfirm)
    {
        set_current_list();
        if (list_items_adjusted())
            return ("Warning: All changes you made will be lost!" )
    }
}

/* before leaving, save the current list order to "current_list"*/
function set_current_list()
{
    var list = $("user");
    var items = list.getElementsByTagName("li");
    for (var i = 0; i < items.length; i++)
    {
        current_list.push(items[i].innerHTML);
    }
}

/* check if list order is adjusted*/
function list_items_adjusted()
{
    for (var i = 0; i < original_list.length; i++)
    {
		
        if (original_list[i] != current_list[i])
            return true	;
    }
    return false;
}

/* leave customize view without warning*/
function navigating_away_without_warning()
{
    needToConfirm = false;
}
 
/*used for import_export dir*/
function backup_in_process()
{
    objs_submit = document.getElementsByName("commit");
    objs_submit[0].disabled = "true";
    objs_submit[0].value = "Download Backup";
}

/*user for import_export dir*/
function upload_in_process()
{
    objs_submit = document.getElementsByName("commit");
    objs_submit[0].disabled = "true";
    objs_submit[0].value = "Upload and restore in progress";
}

/*This method will be called by "Cancel" buttons' onclick handler */
function setneedtoconfirmtofalse()
{	
    needToConfirm = false;
}
/* This method will be called by form's onsubmit handler to disable button and change button text*/
function form_submit_button_in_process(text)
{	
    needToConfirm = false;
    objs_submit = document.getElementsByName("commit");
    for (i = 0; i < objs_submit.length; i++)
    {
        objs_submit[i].disabled = "true";
        objs_submit[i].value = text;
    }
}
/*This function is used by trip create/edit view when parameters are submitted to
controller. function will get the order of the triplines and save it in a hidden text field,
then controller can get the order for triplines*/
function submit_for_trip(text)
{	
    needToConfirm = false
    obj_submit = document.getElementsByName("commit");
    if (obj_submit.length == 1)
    {
        obj_submit[0].disabled = "true";
        obj_submit[0].value = text;
    }
    var orderList = '';
    orderedNodes = document.getElementById("loads_for_trip").getElementsByTagName("tr");
    for (var i=0; i < orderedNodes.length; i++) {
        orderList += orderedNodes[i].getAttribute('recordid') + ',';
    }
    document.getElementById("trip_tripline_order").value = orderList
}

/*This method will be called just after loading. The field values will be saved in a array for comparision*/
function set_old_value_for_all_fields()
{	
    set_old_value_for_text_fields(to_1);
    set_old_value_for_date_fields(to_1, to_2);
}
/*This method will trigger a warning when needed*/
function confirmExit()	
{
    if (needToConfirm)
    {
        set_current_value_for_all_fields();
        if (field_values_changed() || confirmAnywhere )
            return ("Warning: All changes you made will be lost!" )
    }
}
/*This method will be called inside confireExit method.. It will save the current field values to a string for comparision */ 
function set_current_value_for_all_fields()
{	
    set_current_value_for_text_fields(to_1);
    set_current_value_for_date_fields(to_1, to_2);
}
/*This method will return true if any field value  changed before leaving*/
function field_values_changed()
{	 
    for (var i = 0; i < old_value_for_all_fields.length; i++)
    {
        if (old_value_for_all_fields[i] != current_value_for_all_fields[i])
            return true	;
    }
    return false;
}

/*These methods will push id/name fileds(or fields marked by id/name in the table) values to a string after loading */
function set_old_value_for_text_fields(to)
{
    for (var i = 0; i < to; i++)
    {
        var elem = document.getElementById(ids_for_text_fields[i]);
        if (elem)
            if (elem.type == 'checkbox' || elem.type == 'radio')
                old_value_for_all_fields[i] = elem.checked;
            else
                old_value_for_all_fields[i] = elem.value;
        else
            old_value_for_all_fields[i] = "undefined";
    }
}
function set_old_value_for_date_fields(from, to )
{
    var j = 0
    for (var i = from; i < to; i++, j++)
    {
        var elem = document.getElementsByName(names_for_date_fields[j]);
        if (elem.length > 0)
            old_value_for_all_fields[i] = elem[0].value;
        else
            old_value_for_all_fields[i] = "undefined";
    }
}

/*These methods will push id/name fileds(or fields marked by id/name in the table) values to a string before leaving */
function set_current_value_for_text_fields(to)
{
    for (var i = 0; i < to; i++)
    {
        var elem = document.getElementById(ids_for_text_fields[i]);
        if (elem)
            if (elem.type == 'checkbox' || elem.type == 'radio')
                current_value_for_all_fields[i] = elem.checked;
            else
                current_value_for_all_fields[i] = elem.value;
        else
            current_value_for_all_fields[i] = "undefined";
    }
}

function set_current_value_for_date_fields(from, to )
{
    var j = 0
    for (var i = from; i < to; i++, j++)
    {
        var elem = document.getElementsByName(names_for_date_fields[j]);
        if (elem.length > 0)
            current_value_for_all_fields[i] = elem[0].value;
        else
            current_value_for_all_fields[i] = "undefined";
    }
}

