var sort_data = {order:0,column:0,column_type:0};

function sort_numbers(a,b)
{
    a = a[1]; b = b[1];

    return (sort_data.order) ? b - a : a - b;
}

function sort_data_compare(a,b)
{
    a = a[1]; b = b[1];

    if( a < b )
    {
        return (sort_data.order) ? 1 : -1;
    }
    if( a > b )
    {
        return (sort_data.order) ? -1 : 1;
    }

    return 0;
}


function table_view_sort_exec()
{
    for( var i = 0; i < db_table_data.length; ++i )
    {
        db_table_sorted[i][0] = i;
        db_table_sorted[i][1] = (sort_data.column_type != 0) ? db_table_data[i][sort_data.column] : (db_table_data[i][sort_data.column]) ? db_table_data[i][sort_data.column].toLowerCase() : '';
    }

    if( db_column_type[sort_data.column] == 1 || db_column_type[sort_data.column] == 2 )
    {
        // Sorting number
        db_table_sorted.sort(sort_numbers);
    }
    else
    {
        // Sorting characters
        db_table_sorted.sort(sort_data_compare);
    }

    var elems = xGetElementsByTagName('table',xGetElementById('view-data-table'));

    var table = elems[0];

    while( table.rows.length > 0 )
    {
        table.deleteRow(0);
    }

    table_view_populate();

    var capture = xGetElementById('capture-cursor');
    var capture_span = xGetElementById('capture-cursor-span');
    capture_span.style.visibility = 'hidden';
    capture.style.visibility = 'hidden';
    capture.style.display = 'none';
}

function table_view_sort(ascending)
{
    table_view_popup_close();

    sort_data.order = ascending ? 0 : 1;

    setTimeout(table_view_sort_exec,200);

    var capture = xGetElementById('capture-cursor');
    var capture_span = xGetElementById('capture-cursor-span');
    xTop(capture,xScrollTop());
    xLeft(capture,xScrollLeft());
    xWidth(capture,xClientWidth());
    xHeight(capture,xClientHeight());
    capture.style.display = 'block';
    capture.style.visibility = 'visible';
    capture_span.style.visibility = 'visible';
    capture.style.paddingTop = (xClientHeight()/2)-(xHeight(capture_span)/2)+'px';
    capture.style.paddingLeft = (xClientWidth()/2)-(xWidth(capture_span)/2)+'px';
}

function table_view_sort_all(ascending)
{
    table_view_popup_close();

    if( ascending )
    {
        order = "`"+db_column_id[sort_data.column]+"` ASC";
    }
    else
    {
        order = "`"+db_column_id[sort_data.column]+"` DESC";
    }

    xGetElementById('select-order').value = order;
    xGetElementById('view-table-exec').value = 'view-do-query';

    setTimeout("xGetElementById('view-filt-form').submit();",200);

    var capture = xGetElementById('capture-cursor');
    var capture_span = xGetElementById('capture-cursor-span');
    xTop(capture,xScrollTop());
    xLeft(capture,xScrollLeft());
    xWidth(capture,xClientWidth());
    xHeight(capture,xClientHeight());
    capture.style.display = 'block';
    capture.style.visibility = 'visible';
    capture_span.style.visibility = 'visible';
    capture.style.paddingTop = (xClientHeight()/2)-(xHeight(capture_span)/2)+'px';
    capture.style.paddingLeft = (xClientWidth()/2)-(xWidth(capture_span)/2)+'px';
}

var table_view_popup_timeout = 0;
var table_view_popup_menu_id = '';
var table_view_popup_class_elem;
var table_view_popup_class_value = '';

function class_add(elem,class_name)
{
    elem.className += ' '+class_name;
}

function class_del(elem,class_name)
{
    var array1 = elem.className.split(' ');

    var array2 = new Array;

    for( var i = 0; i < array1.length; ++i )
    {
        if( array1[i].length && array1[i] != class_name )
        {
            array2[array2.length] = array1[i];
        }
    }
    elem.className = array2.join(' ');
}

function table_view_popup_mouseover(e)
{
    var event = new xEvent(e);

    class_add(event.target,'hover');

    clearTimeout(table_view_popup_timeout);

    table_view_popup_timeout = setTimeout('table_view_popup_close()',2000);
}

function table_view_popup_mouseout(e)
{
    var event = new xEvent(e);

    class_del(event.target,'hover');
}


function popup_menu_record_add(menu_text,callback)
{
    var table = xGetElementById('popup-menu-record');
    var table_row = table.insertRow(1);
    var table_cell = table_row.insertCell(0);
    table_cell.className = "seperator";

    xAddEventListener(table_cell,'click',function(){table_view_popup_close();callback(select_record.record_index)},false);
    xAddEventListener(table_cell,'mouseout',table_view_popup_mouseout,false);
    xAddEventListener(table_cell,'mouseover',table_view_popup_mouseover,false);

    table_cell.innerHTML = menu_text;
}


function table_view_popup_close()
{
    clearTimeout(table_view_popup_timeout);

    if( table_view_popup_menu_id.length )
    {
        var popup = xGetElementById(table_view_popup_menu_id);

        if( popup )
        {
            popup.style.display = 'none';

            var elems = xGetElementsByTagName('td',popup);

            for( var i = 0; i < elems.length; ++i )
            {
                class_del(elems[i],'hover');
            }
        }
    }
    table_view_popup_menu_id.length = 0;

    if( table_view_popup_class_value.length )
    {
        table_view_popup_class_elem.className = table_view_popup_class_value;
    }
    table_view_popup_class_value= '';
}


function table_view_popup_open(event,menu_id)
{
    table_view_popup_close();

    table_view_popup_menu_id = menu_id;

    var popup = xGetElementById(table_view_popup_menu_id);

    if( popup )
    {
        xTop(popup,event.pageY-10);
        xLeft(popup,event.pageX-10);
        popup.style.display = 'block';
    }
    clearTimeout(table_view_popup_timeout);

    table_view_popup_timeout = setTimeout('table_view_popup_close()',2000);
}


function table_view_popup_menu_header(e)
{
    var event = new xEvent(e);

    table_view_popup_open(event,'popup-menu-header');

    sort_data.column  = event.target.sort_column;

    sort_data.column_type = event.target.sort_column_type;
}


var select_record = {record_index:0};

function table_view_popup_menu_record(e)
{
    var event = new xEvent(e);

    table_view_record_mouseout(e);

    record_index = event.target.parentNode.record_index;

    if( xGetElementById('callback') )
    {
        callback = xGetElementById('callback').value;

        callback_index = 0;

        for( var id in db_column_id )
        {
            switch( db_column_id[id] )
            {
                case callback:
                    callback_index = id;
                    break;
            }
        }
        parent.xGetElementById(callback).value = db_table_data[record_index][callback_index];

        if (xGetElementById('callback-function') )
        {
            var function_name = xGetElementById('callback-function').value;
            eval(function_name+"(record_index);");
        }
        parent.popup_window_close(frame_path);
    }
    else
    if (xGetElementById('callback-function') )
    {
        var function_name = xGetElementById('callback-function').value;
        eval(function_name+"(record_index);");
    }
    else
    {
        table_view_popup_open(event,'popup-menu-record');

        select_record.record_index = event.target.parentNode.record_index;

        table_view_popup_class_elem  = event.target.parentNode;
        table_view_popup_class_value = table_view_popup_class_elem.className;
        table_view_popup_class_elem.className = 'highlight';
    }
}

function disable_context_menu(element)
{
    element.oncontextmenu = function() {
        return false;
    }
}

function table_view_record_show(table_index)
{
    table_view_popup_close();

    var keys = new Array();
    var extra_keys = new Array();

    for( var key = 0; key < db_table_keys[table_index].length; ++key )
    {
        keys[key] = db_table_data[select_record.record_index][db_table_keys[table_index][key]];
    }

    if( xGetElementById('parent-fid') )
    {
        extra_keys['parent_index'] = xGetElementById('parent-fid').value;
    }

    if( xGetElementById('extra-keys') )
    {
        var temp_keys = xGetElementById('extra-keys').value.split(',');

        for( var prop in temp_keys )
        {
            extra_keys['extra-keys-'+prop] = temp_keys[prop];
        }
    }

    parent.overlay_frame_open(context,view_table.show_path,'load',keys,extra_keys);
}


function page_goto(page)
{
    xGetElementById('select-offset').value = xGetElementById('select-limit').value * (page-1);

    xGetElementById('view-table-exec').value = 'view-do-query';

    xGetElementById('view-filt-form').submit();
}

function page_gotox(id,page_max)
{
    var page = parseInt(xGetElementById(id).value);

    page_goto(Math.max(Math.min(page,page_max),1));
}


function table_view_header_mouseover(e)
{
    var event = new xEvent(e);

    class_add(event.target,'scroll');
}

function table_view_header_mouseout(e)
{
    var event = new xEvent(e);

    class_del(event.target,'scroll');
}


function table_view_record_mouseover(e)
{
    var event = new xEvent(e);

    class_add(event.target.parentNode,'scroll');
}

function table_view_record_mouseout(e)
{
    var event = new xEvent(e);

    class_del(event.target.parentNode,'scroll');
}



var db_table_tags = new Array();

var db_table_sorted = new Array();

var DB_FIELD_TIMESTAMP = 3;

var db_column_class = ['string','number','decimal','datestamp'];

function table_view_populate()
{
    var table_head = '', table_body = '', table_totals = '';
    var table_total_rows = 0;

    for(var col = db_column_show_first; col < db_column_name.length; ++col )
    {
        table_head += "<th>"+db_column_name[col]+"</th>";
    }

    if( db_table_display_total == true)
    {
        for(var id in db_table_display_total_data)
        {
            table_totals += "<tr>";
            for( var prop in db_table_display_total_data[id] )
            {
                var col_value = db_table_display_total_data[id][prop];

                if( db_column_type[prop] == "2" )
                {
                    if( col_value == "" )
                    {
                        col_value = 0;
                    }
                    else
                    {
                        col_value = (col_value == Math.floor(col_value)) ?
                                         col_value + '.00' : ( (col_value*10 == Math.floor(col_value*10)) ?
                                         col_value + '0' : col_value);

                        col_value = id + " " + col_value;
                    }
                }

                table_totals += "<td class='table-totals' align='right'>"+col_value+"</td>";
            }
            table_totals += "</tr>";

            table_total_rows++;
        }
    }

    if( db_table_data.length == 0 )
    {
        table_body += "<tr><td class='no-data' colspan='"+db_column_name.length+"' align='center'>NO RECORD !!!</td></tr>";

        var view_data_table = xGetElementById('view-data-table');
        view_data_table.innerHTML = "<table>"+table_head+table_body+"</table>";
    }
    else
    {
        for(var row = 0; row < db_table_data.length; ++row )
        {
            var col_data = '';

            var record_index = db_table_sorted[row][0];

            for(var col = db_column_show_first; col < db_table_data[row].length; ++col )
            {
                var col_class = db_column_class[db_column_type[col]];

                var col_value = db_table_data[record_index][col];

                if( db_column_type[col] == DB_FIELD_TIMESTAMP )
                {
                    col_value = format_nztimestamp(col_value);
                    //col_value = format_timestamp(col_value);
                }
                else if( db_column_type[col] == "2" )
                {
                    //Display upto 2 d.p. - P.K.

                    /*
                    test_value = col_value;

                    col_value = (col_value == Math.floor(col_value)) ?
                                 col_value + '.00' : ( (col_value*10 == Math.floor(col_value*10)) ?
                                 col_value + '0' : col_value);

                    col_value += " | ";
                    */

                    col_value = number_format(col_value,2);

                }
                /*
                else if( db_column_type[col] == "3" )
                {
                    alert(col_value);
                    col_value = format_timestamp(col_value);
                }
                */
                else if( db_column_type[col] == "6" )
                {
                    col_value = format_nztimestamp(col_value);
                }

                if( !col_value )
                {
                    col_value = '&nbsp;';
                }

                if( col_value == 0 )
                {
                    col_value = '0';
                }

                /*
                ** P.K
                ** Set width of td
                */
                var currentIndex = col-db_column_show_first;

                if( db_column_width[currentIndex] == "" || db_column_width[currentIndex] == "undefined")
                {
                    col_data += "<td class='"+col_class+"'>"+col_value+" </td>";
                }
                else
                {
                    col_data += "<td class='"+col_class+"' width='"+db_column_width[currentIndex]+"'>"+col_value+" </td>";
                }
                /*
                ** End of width
                */
            }
            var row_class = ((row%2)==0) ? 'even' : 'odd';

            if( db_table_tags[record_index] )
            {
                row_class += ' tagged';
            }

            table_body += "<tr class='"+row_class+"'>"+col_data+" </tr>";
        }

        var view_data_table = xGetElementById('view-data-table');

        view_data_table.innerHTML = "<table>"+table_head+table_body+table_totals+"</table>";

        var elements_table_header = xGetElementsByTagName('th',view_data_table);

        for( var i = 0; i < elements_table_header.length; ++i )
        {
            elements_table_header[i].sort_column = i + db_column_show_first;
            elements_table_header[i].sort_column_type = db_column_type[i + db_column_show_first];

            if( db_table_disabled_header )
            {
                var header_found = false;

                for( prop in db_table_disabled_header )
                {
                    if( db_table_disabled_header[prop] == elements_table_header[i].innerHTML.toLowerCase() )
                    {
                        header_found = true;
                    }
                }

                if( header_found == false )
                {
                    xAddEventListener(elements_table_header[i],'click',table_view_popup_menu_header,false);
                    xAddEventListener(elements_table_header[i],'mouseout',table_view_header_mouseout,false);
                    xAddEventListener(elements_table_header[i],'mouseover',table_view_header_mouseover,false);
                }
            }
            else
            {
                xAddEventListener(elements_table_header[i],'click',table_view_popup_menu_header,false);
                xAddEventListener(elements_table_header[i],'mouseout',table_view_header_mouseout,false);
                xAddEventListener(elements_table_header[i],'mouseover',table_view_header_mouseover,false);
            }
        }


        var elements_table_row = xGetElementsByTagName('tr',view_data_table);

        if( db_table_display_total == true)
        {
            for( var i = 1; i < elements_table_row.length - table_total_rows; ++i )
            {
                elements_table_row[i].record_index = db_table_sorted[i-1][0];

                xAddEventListener(elements_table_row[i],'mouseup',table_view_popup_menu_record,false);
                xAddEventListener(elements_table_row[i],'mouseout',table_view_record_mouseout,false);
                xAddEventListener(elements_table_row[i],'mouseover',table_view_record_mouseover,false);
            }
        }
        else
        {
            for( var i = 1; i < elements_table_row.length; ++i )
            {
                elements_table_row[i].record_index = db_table_sorted[i-1][0];

                xAddEventListener(elements_table_row[i],'mouseup',table_view_popup_menu_record,false);
                xAddEventListener(elements_table_row[i],'mouseout',table_view_record_mouseout,false);
                xAddEventListener(elements_table_row[i],'mouseover',table_view_record_mouseover,false);
            }
        }
    }
}

function array_fix(array)
{
    /* IE has a bug and sets the array length to one too many!
    ** We test for this here and decrement the array length accordingly.
    */
    if( array.length > 0 && array[array.length-1] == undefined )
    {
        array.length -= 1;
    }
}

function table_view_init()
{
    var elem = xGetElementById('view-data');

    if( elem )
    {
        array_fix(db_table_data);

        for( var i = 0; i < db_table_data.length; ++i )
        {
            db_table_sorted[i] = new Array(i,'');
        }
        table_view_populate();
    }

    /* add mouse over event listeners to the popup menus.
    */
    var elems = xGetElementsByClassName('popup-menu',document,'table');

    for( var i = 0; i < elems.length; ++i )
    {
        var elems_x = xGetElementsByTagName('td',elems[i]);

        for( var x = 0; x < elems_x.length; ++x )
        {
            xAddEventListener(elems_x[x],'mouseover',table_view_popup_mouseover,false);
            xAddEventListener(elems_x[x],'mouseout',table_view_popup_mouseout,false);
        }
    }
}

xAddEventListener(window,'load',table_view_init,false);



function table_view_tag_all()
{
    var table_rows = xGetElementsByTagName('tr',xGetElementById('view-data-table'));

    var record_count = table_rows.length-1;

    for( var index = 0; index < record_count; ++index )
    {
        db_table_tags[index] = 1;

        if( table_rows[index+1].className.indexOf(' tagged') == -1 )
        {
            table_rows[index+1].className += ' tagged';
        }
    }
}

function table_view_tag_all_clear()
{
    var re = / tagged/g;

    var table_rows = xGetElementsByTagName('tr',xGetElementById('view-data-table'));

    for( var index = 0; index < db_table_tags.length; ++index )
    {
        db_table_tags[index] = 0;

        table_rows[index+1].className = table_rows[index+1].className.replace(re,'');
    }
}

function table_view_tagged_callback(callback)
{
    for( var tag_index = 0; tag_index < db_table_tags.length; ++tag_index )
    {
        if( db_table_tags[tag_index] )
        {
            var object = new Object();

            for( var i = 0; i < db_column_id.length; ++i )
            {
                object[db_column_id[i]] = db_table_data[tag_index][i];
            }
            callback(object);
        }
    }
}

function table_view_tagged_open()
{
    if( table_view_tagged_count() == 0 )
    {
        alert(messages['tagged-count-zero']);

        return;
    }
    if( table_view_tagged_count() > 9 )
    {
        alert(messages['too-many-tagged']);

        return;
    }
    var table_index = (db_table_ids.length - 1);

    for( var tag_index = 0; tag_index < db_table_tags.length; ++tag_index )
    {
        if( db_table_tags[tag_index] )
        {
            var keys = Array();

            for( var key = 0; key < db_table_keys[table_index].length; ++key )
            {
                keys[key] = db_table_data[tag_index][db_table_keys[table_index][key]];
            }

            parent.overlay_frame_open(context,view_table.show_path,'load',keys,new Array);
        }
    }
}

function table_view_tagged_delete()
{
    if( table_view_tagged_count() == 0 )
    {
        alert(messages['tagged-count-zero']);

        return;
    }
    if( !confirm(messages['confirm-tagged-delete']) )
    {
        return;
    }

    var insert_HTML = '';

    for( var row = 0; row < db_table_data.length; ++row )
    {
        if( db_table_tags[row] )
        {
            var keys = new Array();

            var table_keys = db_table_keys[db_table_keys.length-1];

            for( var k = 0; k < table_keys.length; ++k )
            {
                keys[k] = db_table_data[row][table_keys[k]];
            }
            insert_HTML += "<input type='hidden' name='del-key[]' value='"+keys.join('|')+"'/><br/>";

            parent.overlay_frame_delete_keys(keys);
        }
    }

    var insert = document.createElement('div');

    insert.style.display = 'none';

    insert.innerHTML = insert_HTML;

    xGetElementById('view-filt-form').appendChild(insert);

    xGetElementById('view-table-exec').value = 'tagged-delete';

    xGetElementById('view-filt-form').submit();
}

var anchor_record_index = 0;

function table_view_record_tag()
{
    anchor_record_index = select_record.record_index;

    if( !db_table_tags[select_record.record_index] )
    {
        table_view_popup_class_value += ' tagged';
    }
    db_table_tags[select_record.record_index] = 1;

    table_view_popup_close();
}

function table_view_record_untag()
{
    anchor_record_index = select_record.record_index;

    if( db_table_tags[select_record.record_index] )
    {
        var re = / tagged/g;

        table_view_popup_class_value = table_view_popup_class_value.replace(re,'');
    }
    db_table_tags[select_record.record_index] = 0;

    table_view_popup_close();
}

function table_view_record_tag_range()
{
    var table_rows = xGetElementsByTagName('tr',xGetElementById('view-data-table'));

    var record_count = table_rows.length-1;

    var index_min = Math.min(anchor_record_index,select_record.record_index);
    var index_max = Math.max(anchor_record_index,select_record.record_index);

    for( var index = index_min; index <= index_max; ++index )
    {
        db_table_tags[index] = 1;

        if( table_rows[index+1].className.indexOf(' tagged') == -1 )
        {
            table_rows[index+1].className += ' tagged';
        }
    }
    table_view_popup_class_value += ' tagged';

    table_view_popup_close();
}

function table_view_record_untag_range()
{
    var table_rows = xGetElementsByTagName('tr',xGetElementById('view-data-table'));

    var record_count = table_rows.length-1;

    var index_min = Math.min(anchor_record_index,select_record.record_index);
    var index_max = Math.max(anchor_record_index,select_record.record_index);

    var re = / tagged/g;

    for( var index = index_min; index <= index_max; ++index )
    {
        db_table_tags[index] = 0;

        if( table_rows[index+1].className.indexOf(' tagged') != -1 )
        {
            table_rows[index+1].className = table_rows[index+1].className.replace(re,'');
        }
    }
    table_view_popup_class_value = table_view_popup_class_value.replace(re,'');

    table_view_popup_close();
}

function table_view_tagged_count()
{
    var count = 0;

    for( var i = 0; i < db_table_tags.length; ++i )
    {
        if( db_table_tags[i] )
        {
            count += 1;
        }
    }
    return count;
}


var filter_row_id = 0;
var filter_row_header = 0;
var filter_row_footer = 1;

function table_view_filter_del(e)
{
    var event = new xEvent(e);

    var row_id = event.target.row_id;

    if( row_id != undefined )
    {
        var table = xGetElementById('view-filt-table');

        for( var i = filter_row_header; i < table.rows.length; ++i )
        {
            if( table.rows[i].getAttribute('row_id') == row_id )
            {
                table.deleteRow(i);

                break;
            }
        }
        if( table.rows.length == (filter_row_header+filter_row_footer) )
        {
            table.style.display = 'none';
            page_goto(1);
        }
    }
}


function view_table_filter_add()
{
    table_view_popup_close();

    view_table_filter_add_col(sort_data.column);
}

function view_table_filter_add_col(column)
{
    filter_row_id += 1;

    var filter      = "select-filt-user-"+filter_row_id;
    var filter_op   = "select-filt-user-"+filter_row_id+'-op';
    var filter_val  = "select-filt-user-"+filter_row_id+'-val';

    var table = xGetElementById('view-filt-table');

    var table_row = table.insertRow(table.rows.length-filter_row_footer);

    var table_cell_1 = table_row.insertCell(-1);
    var table_cell_2 = table_row.insertCell(-1);
    var table_cell_3 = table_row.insertCell(-1);
    var table_cell_4 = table_row.insertCell(-1);

    /* attribute setting must be both ways as one works
    ** only in IE the other in Mozilla.
    */
    table_row.row_id = filter_row_id;
    table_row.setAttribute('row_id',filter_row_id);

    table_cell_1.innerHTML = "<b>"+db_column_name[column]+"</b>"+ "<input type='hidden' name='"+filter+"' value='"+db_column_id[column]+"'/>";
    table_cell_2.innerHTML =
         "<select name='"+filter_op+"'>"
        +"<option value='contains'>contains</option>"
        +"<option value='nc'>NOT contains</option>"
        +"<option value='eq'>equal</option>"
        +"<option value='ne'>NOT equal</option>"
        +"<option value='gt'>&gt;</option>"
        +"<option value='lt'>&lt;</option>"
        +"<option value='ge'>&gt;=</option>"
        +"<option value='le'>&lt;=</option>"
        +"<option value='begins'>begins</option>"
        +"<option value='ends'>ends</option>"
        +"</select>";
    table_cell_3.innerHTML = "<input name='"+filter_val+"'/>";
/*
    var input = document.createElement('input');
    input.row_id = filter_row_id;
    input.setAttribute('row_id',filter_row_id);
    input.setAttribute('type','button');
    input.setAttribute('value','Remove');
    xAddEventListener(input,'click',table_view_filter_del,false);
    table_cell_4.appendChild(input);
*/
    var div = document.createElement('div');
    div.innerHTML = 'Remove';
    div.row_id = filter_row_id;
    div.setAttribute('row_id',filter_row_id);
    div.setAttribute('class','table-button');
    xAddEventListener(div,'click',table_view_filter_del,false);
    table_cell_4.appendChild(div);

    table.style.display = 'block';
}

function view_table_filter_init(filt,filt_op,filt_val)
{
    for( var col = 0; col < db_column_id.length; ++col )
    {
        if( filt == db_column_id[col] )
        {
            view_table_filter_add_col(col);

            var filter      = "select-filt-user-"+filter_row_id;
            var filter_op   = "select-filt-user-"+filter_row_id+'-op';
            var filter_val  = "select-filt-user-"+filter_row_id+'-val';

            var form = xGetElementById('view-filt-form');

            form[filter_op].value = filt_op;
            form[filter_val].value = filt_val;

            break;
        }
    }
}

/*
** Function created by P.K. to retrive value & display as end-user readable format.
*/
function calcDateTimeFormat(DateTime)
{
    var Day='Sun';
    Date = Math.floor(DateTime/1440);
    Time = Math.floor((DateTime - Date*1440)/60);
    Minute = DateTime - (Date*1440 + Time*60);

    switch(Date)
    {
        case 0: Day = 'Sun';
        break

        case 1: Day = 'Mon';
        break

        case 2: Day = 'Tue';
        break

        case 3: Day = 'Wed';
        break

        case 4: Day = 'Thu';
        break

        case 5: Day = 'Fri';
        break

        case 6: Day = 'Sat';
        break
    }

    var returnDateTime = Day+" "+Time+":"+Minute;

    if( Minute != 0 )
    {
        returnDateTime = Day+" "+Time+":"+Minute;
    }
    else
    {
        returnDateTime = Day+" "+Time+":0"+Minute;
    }

    return returnDateTime;
}
