var xmlDoc=null;
var varMaxNews = 42;
var varMaxLinesPerNews=3;
var varMaxLinesPerPage=15;
var NoOfCharPerLine = 26;
var varArray = new Array(varMaxNews);

try 
{
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}
catch (e) 
{
    //alert("Permission UniversalBrowserRead denied.");
}

function InitiateDOMObject()
{
    try
    {
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    }
    catch(exp)
    {
        if (xmlDoc == null)
        {
            if (window.XMLHttpRequest)
            {
                // This is for i.e 7, firefox, opera....
                xmlDoc=new XMLHttpRequest();
            }
            else if (window.ActiveXObject)
            {
                //this is for i.e 6, i.e 5
                xmlDoc=new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
    }    
}

function ReadXML(xmlFile) 
{ 
    try
    {
    /*
        //alert(xmlDoc);
        var ua = navigator.userAgent.toLowerCase();
        if (ua.indexOf('safari/') != -1) 
        { // code for Safari, use XMLHttpRequest() instead of .load()
            XmlHTTP = new XMLHttpRequest();
            XmlHTTP.open('get', xmlFile, false);
            XmlHTTP.send('');
            xmlDoc = XmlHTTP.responseXML;
        }
        else if (window.ActiveXObject) 
        { // code for IE
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
        }
        else if (document.implementation.createDocument) 
        { // code for Mozilla, Firefox, Opera, etc.
            xmlDoc = document.implementation.createDocument('','',null) ;
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
        }
        else
        {
            //alert('Your browser JavaScript is enabled, but it cannot handle this script');
        }


        /*
        if (document.implementation && document.implementation.createDocument) 
        {
		    xmlDoc = document.implementation.createDocument("", "", null);
		    //alert(xmlFile);
		    var isLoaded = xmlDoc.load(xmlFile);
		    //xmlDoc.addEventListener("load", dothis, true)
		    //xmlDoc.onload=LoadXML();
		    if (isLoaded)
		    {
		        alert(isLoaded);
		    }
		    //alert(xmlDoc.documentElement.childNodes.length);
	    }
	    else if (window.ActiveXObject)
	    {
	        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		    xmlDoc.async = "false";
		    xmlDoc.load(xmlFile);
	    }
        else
        {
            xmlDoc.async= false; 
            xmlDoc.onreadystatechange=verify; 
            xmlDoc.load(xmlFile); 
        }
        */
        
        
        /* By J query */

        
    }
    catch(exp)
    {
        alert(exp);
    }   
}

function dothis()
{
    return true;
}

function verify() 
{ 
    if (xmlDoc.readyState != 4) 
    { 
        return false; 
    } 
}

function LoadXML()
{
    //alert('LoadXML');
    //var NodeList = xmlDoc.getElementsByTagName("item");
    //alert(NodeList.length);
    //NodeList = xmlDoc.documentElement.selectNodes("channel/item");
    //alert(xmlDoc.getElementsByTagName("rss")[0].childNodes[3].nodeValue);
    NodeList = xmlDoc.getElementsByTagName("item");
    //alert(xmlDoc.getElementsByTagName("item").item(1).text);
    //NodeList = xmlDoc.documentElement.childNodes;
    //alert(NodeList.length);
    for(i=0; i < NodeList.length && i < varMaxNews; i++)
    {
        if (NodeList[i].hasChildNodes())
        {
            //xmldoc.documentElement.childNodes[i].attributes[0].text
            //alert(NodeList[i].item(0).text);
            //alert(NodeList[i].childNodes[1].childNodes[0].nodeValue);
            //alert(NodeList[i].childNodes[3].childNodes[0].nodeValue);
            //alert(NodeList[i].childNodes[9].childNodes[0].nodeValue);
            if (document.implementation && document.implementation.createDocument) 
            {
                varArray[i][0]=NodeList[i].childNodes[1].childNodes[0].nodeValue;
                varArray[i][1]=NodeList[i].childNodes[3].childNodes[0].nodeValue;
                varArray[i][2]=NodeList[i].childNodes[9].childNodes[0].nodeValue;
            }
            //alert(NodeList[i].getElementsByTagName("link").text);
            //alert(NodeList[i].getElementsByTagName("pubDate").text);
            else if (window.ActiveXObject)
	        {
                varArray[i][0]=NodeList[i].selectSingleNode("title").text;
                varArray[i][1]=NodeList[i].selectSingleNode("link").text;
                varArray[i][2]=NodeList[i].selectSingleNode("pubDate").text;
            }
            else
	        {
                varArray[i][0]=NodeList[i].selectSingleNode("title").text;
                varArray[i][1]=NodeList[i].selectSingleNode("link").text;
                varArray[i][2]=NodeList[i].selectSingleNode("pubDate").text;
            }
        }
    }
}

function ProcessXML()
{
    //alert('ProcessXML');
    for(var i=0; i < varMaxNews; i++)
    {
        dateparts = varArray[i][2].split(" ");
        varpubdate = dateparts[1] + ' ' + dateparts[2] + ' ' + dateparts[3];
        varArray[i][3] = getModifiedNews(varArray[i][0],varArray[i][1],varArray[i][2]);
        varArray[i][4] = varpubdate;
        varArray[i][5] = parseInt(((varArray[i][3].length)+(varpubdate.length+2))/(NoOfCharPerLine+2));
    }
}

function getModifiedNews(title,link,pubdate)
{
    if (title.length > NoOfCharPerLine+1)
    {
        if (title.substr(NoOfCharPerLine+1,1)!=' ')
        {
            title=title.substr(0,NoOfCharPerLine) + '' + title.substr(NoOfCharPerLine);
        }
    }
    
    if (title.length > (2*NoOfCharPerLine)+3)
    {    
        if (title.substr((2*NoOfCharPerLine)+3,1)!=' ')
        {
            title=title.substr(0,(2*NoOfCharPerLine)+2) + '' + title.substr((2*NoOfCharPerLine)+2);
        }
    }
    
    if (title.length > (2*NoOfCharPerLine)+5)
    {
        title=title.substr(0,(3*NoOfCharPerLine)+5-14) + '...';
    }
    
    return title;
}

function DisplayXML()
{
    totalLines = 0;
    varNews1 ='';
    varNews2 = '';
    varNews3 = '';
    
    for (var i=0; i < varMaxNews; i++)
    {
        totalLines = totalLines + varArray[i][5];
        //alert(totalLines);
        if (totalLines <= varMaxLinesPerPage)
        {
            //alert('1:' + totalLines);
            varNews1 = varNews1 + getNewsHTML(varArray[i][3],varArray[i][1],varArray[i][4]);
        }
        else if (totalLines > varMaxLinesPerPage && totalLines <= (2*varMaxLinesPerPage))
        {
            if (totalLines > varMaxLinesPerPage && totalLines <= varMaxLinesPerPage + varMaxLinesPerNews)
            {
                totalLines = varMaxLinesPerPage + varArray[i][5];
            }
            //alert('2:' + totalLines);
            varNews2 = varNews2 + getNewsHTML(varArray[i][3],varArray[i][1],varArray[i][4]);            
        }
        else if (totalLines > (2*varMaxLinesPerPage) && totalLines <= (3*varMaxLinesPerPage))
        {
            if (totalLines > (2*varMaxLinesPerPage) && totalLines <= (2*varMaxLinesPerPage) + varMaxLinesPerNews)
            {
                totalLines = (2*varMaxLinesPerPage) + varArray[i][5];
            }        
            //alert('3:' + totalLines);
            varNews3 = varNews3 + getNewsHTML(varArray[i][3],varArray[i][1],varArray[i][4]);            
        }
    }
    
    document.getElementById('newspage1').innerHTML='<ul>' + varNews1 + '</ul>';
    document.getElementById('newspage2').innerHTML='<ul>' + varNews2 + '</ul>';
    document.getElementById('newspage3').innerHTML='<ul>' + varNews3 + '</ul>';
}

function getNewsHTML(title,link,pubdate)
{
    return '<li><span class="news_discription"><a href="' + link + '">' + title + '</a><span class="news_date"> (' + pubdate + ')</span></span></li>'
}

function GetXmlDoc(xmlstr)
{
    var doc = null; 
    // Mozilla and Netscape browsers
    if (document.implementation.createDocument) {
        var parser = new DOMParser()
        doc = parser.parseFromString(xmlstr, "text/xml")
    // MSIE
    } else if (window.ActiveXObject) {
        doc =new ActiveXObject("MSXML2.DOMDocument");
        doc.async="false"
        doc.loadXML(xmlstr)
    }
    return doc;

}