var group = 'New';
var imagebase = soundbase + '/';
            
var colorPrio = [ '#FF9999', '#FFCC99', '#FFFF99', '#CCFF99', '#CCCCFF'];

var updateListTimeoutId = null;

init_ticketsBrowser();

function init_ticketsBrowser () {
    tb_sendRequest();
}

function tb_sendRequest() {
    new Ajax.Request( 'ajax.cgi',
                      { method:'post', 
                        postBody: 'do=listtickets&group=' + group,  
                        onSuccess: tb_updateListWindow } );
    if ( $('ticket_list_wrapper') ) {
        $('ticket_list_wrapper').innerHTML = '<img src="' + imagebase + '/loadingwhite.gif" style="padding: 3em" />'; 
    }
}

function tb_updateListWindow( transport ) {
    var json = transport.responseText;

    var response;
    try {
      eval( 'response = ' + json );
    } catch (e) {};

    var table = document.createElement('tbody');
    for ( var i = 0; i < response.length; i++ ) {
        var ticket = response[i];
        
        var row  = document.createElement('tr');

        var cell0 = document.createElement('td');
        cell0.className = 'cell0';

        var prio = document.createElement('span');
        prio.innerHTML = ticket.priority;
        prio.className = 'priority';
        prio.style.backgroundColor = colorPrio[ ticket.priority - 1];
        cell0.appendChild( prio );
        
        row.appendChild( cell0 );

        var cell1 = document.createElement('td');
        cell1.className = 'cell1';
        var method = document.createElement('img');

        if ( ticket.method == 'cc' ) {
            method.src = imagebase + '/mail.gif';
        }
        else if ( ticket.method == 'em' ) {
            method.src = imagebase + '/phone.gif';
        }
        else {
            method.src = imagebase + '/ticket.gif';
        }

        cell1.appendChild( method );
        row.appendChild( cell1 );
        
        var cell2 = document.createElement('td');
        cell2.className = 'cell2';
        
        var checkbox = document.createElement('input');
        checkbox.type  = 'checkbox';
        checkbox.name  = 'ticket_check';
        checkbox.value = ticket.id;
        checkbox.className = 'checkbox';

        cell2.appendChild( checkbox );
        
        row.appendChild( cell2 );

        var cell3 = document.createElement('td');
        cell3.innerHTML = ticket.username;
        cell3.className = 'cell3';
        row.appendChild( cell3 );

        var cell4 = document.createElement('td');
        cell4.innerHTML = ticket.subject;
        cell4.className = 'cell4';
        row.appendChild( cell4 );
        
        var cell5 = document.createElement('td');
        cell5.innerHTML = ticket.department;
        cell5.className = 'cell5';
        row.appendChild( cell5 );
        
        var cell6 = document.createElement('td');
        cell6.innerHTML = ticket.time;
        cell6.className = 'cell6';
        row.appendChild( cell6 );
        
        var cell7 = document.createElement('td');
        cell7.className = 'cell7';
        
        var aw = document.createElement('img');
        aw.src = imagebase + (ticket.aw ? 'online.gif' : 'offline.gif');
        cell7.appendChild( aw );
        
        row.appendChild( cell7 );

        row.id = 'ticket' + ticket.id;

        table.appendChild( row );
    }

    table.id = 'ticket_list_body'
    $('ticket_list_wrapper').innerHTML = '<table id="ticket_list_body">' + table.innerHTML + '</table>'; 
    table = $('ticket_list_body');
    
    for( i = 0 ; i < table.rows.length; i++) {
        var row = table.rows[i];
        row.onmouseover = tb_onMouseOver;
        row.onmouseout  = tb_onMouseOut;
        for ( var j = 0; j < row.cells.length; j++ ) {
            var cell = row.cells[j];
            if ( j > 2 && j < 7 ) {
                cell.onclick = tb_openTicket;
                cell.style.cursor = 'pointer';
            }
        }
    }

    if ( updateListTimeoutId != null ) {
        clearTimeout( updateListTimeoutId );
    }
    updateListTimeoutId = setTimeout( tb_sendRequest, 60000 ); 
}

function tb_selectTab( evt ) {
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;


    group = target.id;

    if ( updateListTimeoutId != null ) {
        clearTimeout( updateListTimeoutId );
        updateListTimeoutId = null;
    }
    tb_sendRequest();
    

    var tabs = $('tabsul').childNodes;

    for ( var i = 0; i < tabs.length; i++ ) {
        tabs[i].className = '';
    }
    target.className = 'current';
}

function tb_openTicket( evt ) {
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;

    var elementId = target.parentNode.id;
    if ( elementId == null ) {
        elementId = target.parentNode.parentNode.id;
    }
    var ticket_id = elementId.substr(elementId.search(/[0-9]+/));

    document.location = baseurl + '/staff.cgi?do=ticket&cid=' + ticket_id;
}

function tb_checkAll ( evt ) {
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;

    newState = target.checked;

    var checkboxArray = $('ticket_list_body').getElementsByTagName('input');
    for ( var i = 0; i < checkboxArray.length; i++ ) {
        var cb = checkboxArray[i];
        cb.checked = newState;
    }
    return newState ? 'Check All' : 'Uncheck All';
}

function tb_onMouseOver ( evt ) {
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;
    
    var row = target.parentNode;
    if ( row.id.search('ticket') == -1 ) {
        row = row.parentNode;
    }
    row.className = 'hover';
}

function tb_onMouseOut ( evt ) {
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;
    
    var row = target.parentNode;
    if ( row.id.search('ticket') == -1 ) {
        row = row.parentNode;
    }
    row.className = '';
}

