var table_id = 0;

function deleteNewsTbl (tblId) {
    var elem;
    var i=0;
    
    while (elem = document.getElementById(tblId+i)) {
        elem.parentNode.removeChild(elem);
        i++;
    }
    table_id = 0;
}

function getSource (source, link) {
    if (source) {
        return(source);
    }
    
    if (link) {
        if (link.match('forbes')) {
            source = 'Forbes.com';
        }
    }
    return(source);
}

function displayNews (tblId, title, source, link, desc, author, pub_date) {
    var div_elem = document.getElementById(tblId);
    var tbl = document.createElement('table');
    var row = tbl.insertRow(tbl.rows.length);

    tbl.id = tblId+table_id++;
    tbl.className = 'tfmtMsg';

    // Title cell	
    var cell = row.insertCell(0);
    cell.className = 'Title';

    var a = document.createElement('a');
    a.setAttribute('href', link);
    
    var textNode = document.createTextNode(title);
    a.appendChild(textNode);
    cell.appendChild(a);
    
    // author
    cell = row.insertCell(1);
    cell.className = 'Right';
    cell.style.fontStyle = 'italic';
    cell.appendChild(document.createTextNode(author));

    // new line
    row = tbl.insertRow(tbl.rows.length);
    
    // source
    source = getSource(source, link);
    cell = row.insertCell(0);
    cell.className = 'Left';
    cell.style.fontWeight = 'bold';
    cell.appendChild(document.createTextNode('Source: '+source));
    
    cell = row.insertCell(1);
    cell.className = 'Right';
    cell.style.fontWeight = 'bold';
    cell.appendChild(document.createTextNode(pub_date));

    // new line
    row = tbl.insertRow(tbl.rows.length);

    // description
    cell = row.insertCell(0);
    cell.colSpan = 2;
    //cell.appendChild(document.createTextNode(desc));
    cell.innerHTML=desc;

    div_elem.appendChild(tbl);
}

function newsResp (req, xh_param) {
    var tblId = xh_param[0];
    var resp = req.responseText.split(DELIMITER);
    var i=2;

    deleteNewsTbl(tblId);

    // alert(resp[0]+' '+resp[1]+' '+resp[2]);
    while (resp[i]) {
        displayNews(tblId, resp[i++], resp[i++], resp[i++],
                    resp[i++], resp[i++], resp[i++]);
    }

    displayPages('newsPages', 'newsl.php'+xh_param[1], resp[0], resp[1]);
}

// url format is news_handler.php?sortBy='d'&page=1&num= &key=
function newsReq (tblId, sortBy, numItems, key, page) {
    var url = 'news_handler.php';
    var url_params = '?num='+numItems;
        
    if (key) {
        url_params += ('&sort=k&key='+key);
    } else {
        url_params += ('&sort='+sortBy);
    }
    
    url_params += '&page='+page;
    url += url_params;

    var xh_param = new Array(tblId, url_params);
    if (document.getElementById != undefined) {
        xmlHttpReq(xmlHttpObj(), url, true, null, newsResp, xh_param);
    } 
}
