// global XML var
var g_xmlDoc;
var g_strTable;
var g_intNumberOfArticlesToProcess;
var g_strObjectToSendTo;
var g_strDateColumn; // optional formatting of date column
var g_strLinkColumn; // optional formatting of link column
var g_strTableHeader; // optional formatting of table object


function generateNewsTable(strLink, numOfArticles, divID, strDateColumn, strLinkColumn, strTableHeader) {
	g_intNumberOfArticlesToProcess = numOfArticles;
	g_strObjectToSendTo = divID;
	
	if (typeof strDateColumn!="undefined") {
		g_strDateColumn = strDateColumn; 
	} else {
		g_strDateColumn = '<td class="date">';
	}
	
	if (typeof strLinkColumn!="undefined") {
		g_strLinkColumn = strLinkColumn; 
	} else {
		g_strLinkColumn = '<td>';
	}
	
	if (typeof strTableHeader!="undefined") {
		g_strTableHeader = strTableHeader; 
	} else {
		g_strTableHeader = '<table>';
	}
	
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        g_xmlDoc = new XMLHttpRequest();
        g_xmlDoc.onreadystatechange = parseUGSXML;
        g_xmlDoc.open("GET", strLink, true);
        g_xmlDoc.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        isIE = true;
        g_xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
        if (g_xmlDoc) {
            g_xmlDoc.onreadystatechange = parseUGSXML;
            g_xmlDoc.open("GET", strLink, true);
            g_xmlDoc.send();
        }
    }
}

function parseUGSXML(){
	if (g_xmlDoc.readyState == 4) {
	g_strTable = g_strTableHeader;
	var msgobj = g_xmlDoc.responseXML.getElementsByTagName("channel")[0]
	//Regular expression used to match any non-whitespace character
	var notWhitespace = /\S/;
	//REMOVE white spaces in XML file. Intended mainly for NS6/Mozilla
	for (i=0;i<msgobj.childNodes.length;i++){
		if ((msgobj.childNodes[i].nodeType == 3) && (!notWhitespace.test(msgobj.childNodes[i].nodeValue))) {
		// that is, if it's a whitespace text node
		msgobj.removeChild(msgobj.childNodes[i])
		i--;
		}
	}

	// #of documents to grab
	
	var docCounter = 0;
	
	if (msgobj.childNodes.length > 6) {
	//document.write(msgobj.childNodes.length + '<br>');
		for(i=6;i<msgobj.childNodes.length; i++) {
			
			var strLink = "";
			var strTitle = "";
			var strPubDate = "";
			
			for(j=0;j<msgobj.childNodes[i].childNodes.length; j++) {
				if (msgobj.childNodes[i].childNodes[j].nodeName == 'link') {
					strLink = (msgobj.childNodes[i].childNodes[j].firstChild.nodeValue);
				}
				
				if (msgobj.childNodes[i].childNodes[j].nodeName == 'title') {
					strTitle = (msgobj.childNodes[i].childNodes[j].firstChild.nodeValue);
				}
				
				if (msgobj.childNodes[i].childNodes[j].nodeName == 'pubDate') {
					strPubDate = (msgobj.childNodes[i].childNodes[j].firstChild.nodeValue);
					var tempArray = new Array();
					tempArray = strPubDate.split(' ');
					strPubDate = tempArray[2] + ' ' + tempArray[1];
				}	
			}
			// now generate row
			g_strTable+= '<tr>' + g_strDateColumn + strPubDate + '</td>' + g_strLinkColumn + '<a href="' + strLink +'">' + strTitle + '</a></td></tr>';
			docCounter++;
			if (docCounter>=g_intNumberOfArticlesToProcess) {
				i = msgobj.childNodes.length + 1; // change i to stop processing
				
			}	
		}	
	}
	g_strTable+= '</table>';
	document.getElementById(g_strObjectToSendTo).innerHTML = g_strTable;
	}
	//alert(g_strTable);
	
}
