/*
    ajax_main.js is the major javascript of AJAX to fetch back-end database information for ennovation map from PHP/MySQL.
*/

var xmlhttp;
var xmlhttp2;
var xmlhttp3;
var xmlhttp4;
var xmlhttp5;

userQuery = "user.xml";
mapQuery = "map.xml";
tagQuery = "tag.xml";
pressQuery = "press.xml";
cityQuery = "city.xml";

function createXMLHttpRequest()
{
    if (window.ActiveXObject)
    {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp2 = new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp3 = new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp4 = new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp5 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
        xmlhttp2 = new XMLHttpRequest();
        xmlhttp3 = new XMLHttpRequest();
        xmlhttp4 = new XMLHttpRequest();
        xmlhttp5 = new XMLHttpRequest();
    }
}

function startRequest()
{
    createXMLHttpRequest();

    xmlhttp.onreadystatechange = handleStateChange1;
    xmlhttp.open("GET",userQuery,true);
    xmlhttp.send(null);

    xmlhttp2.onreadystatechange = handleStateChange2;
    xmlhttp2.open("GET",cityQuery,true);
    xmlhttp2.send(null);

    xmlhttp3.onreadystatechange = handleStateChange3;
    xmlhttp3.open("GET",pressQuery,true);
    xmlhttp3.send(null);

    xmlhttp4.onreadystatechange = handleStateChange4;
    xmlhttp4.open("GET",mapQuery,true);
    xmlhttp4.send(null);

    xmlhttp5.onreadystatechange = handleStateChange5;
    xmlhttp5.open("GET",tagQuery,true);
    xmlhttp5.send(null);
}



function handleStateChange1()
{
    if (xmlhttp.readyState == 4)
    {
        if (xmlhttp.status == 200)
        {
            latestUsers();            
        }
    }
}

function handleStateChange2()
{
    if (xmlhttp2.readyState == 4)
    {
        if (xmlhttp2.status == 200)
        {
            cityList();            
        }
    }
}

function handleStateChange3()
{
    if (xmlhttp3.readyState == 4)
    {
        if (xmlhttp3.status == 200)
        {
            pressList();            
        }
    }
}

function handleStateChange4()
{
    if (xmlhttp4.readyState == 4)
    {
        if (xmlhttp4.status == 200)
        {
            latestMaps();            
        }
    }
}

function handleStateChange5()
{
    if (xmlhttp5.readyState == 4)
    {
        if (xmlhttp5.status == 200)
        {
            tagList();            
        }
    }
}
function latestUsers()
{
/*
    var text = document.createTextNode("The latest map from MySQL");
    var li = document.createElement("li");
    var ul = document.createElement("ul");
    li.appendChild(text);
    ul.appendChild(li);
    //document.getElementById("user").innerHTML = '<ul><a href="#">'+"The latest regisered users from MySQL"+'</a></ul>';
*/
    var li = document.createElement("li");
    var ul = document.createElement("ul");
    var ihtml = '';
    
    var xmlResponse = xmlhttp.responseXML;
    var users = xmlResponse.documentElement.getElementsByTagName("user");
    
    for (var i=0;i<users.length;i++){
        var uid = users[i].getAttribute("id");
        var uname = users[i].getAttribute("name");
        var ucredit = users[i].getAttribute("credit");
        ihtml = ihtml+'<li><a href="google/users/user.php?id='+uid+'">'+uname+'</a>&nbsp;('+ucredit+')</li>';
    }
    document.getElementById("user").innerHTML = ihtml;
/*    
    xmlDocumentElement = xmlResponse.documentElement;
    helloMessage = xmlDocumentElement.firstChild.data;
    document.getElementById("user").innerHTML = '<ul><a href="#">'+helloMessage+'</a></ul>';
*/    
}

function latestMaps()
{
    var ihtml = '';
    
    var xmlResponse = xmlhttp4.responseXML;
    var users = xmlResponse.documentElement.getElementsByTagName("user");
    
    for (var i=0;i<users.length;i++){
        var uid = users[i].getAttribute("id");
        var uname = users[i].getAttribute("name");
        var ucredit = users[i].getAttribute("credit");
          ihtml = ihtml+'<li><a href="google/maps/index.php?api=prc&map='+uid+'">'+uname+'</a>&nbsp;('+ucredit+')</li>';
    }
    document.getElementById("latest").innerHTML = '<ul>'+ihtml+'</ul>';
}

function tagList()
{
    var ihtml = '';
    
    var xmlResponse = xmlhttp5.responseXML;
    var users = xmlResponse.documentElement.getElementsByTagName("user");
    
    for (var i=0;i<users.length;i++){
        var uid = users[i].getAttribute("id");
        var uname = users[i].getAttribute("name");
        var ucredit = users[i].getAttribute("credit");
          ihtml = ihtml+'<li><a href="google/users/user.php?id='+uid+'">'+uname+'</a>&nbsp;('+ucredit+')</li>';
    }
    document.getElementById("tag").innerHTML = '<ul>'+ihtml+'</ul>';
}

function cityList()
{
    var ihtml = '';
    
    var xmlResponse = xmlhttp2.responseXML;
    var users = xmlResponse.documentElement.getElementsByTagName("user");
    
    for (var i=0;i<users.length;i++){
        var uid = users[i].getAttribute("id");
        var uname = users[i].getAttribute("name");
        var ucredit = users[i].getAttribute("credit");
          ihtml = ihtml+'<li><a href="google/users/user.php?id='+uid+'">'+uname+'</a>&nbsp;('+ucredit+')</li>';
    }
    document.getElementById("city").innerHTML = ihtml;
}

function pressList()
{
    var ihtml = '';
    
    var xmlResponse = xmlhttp3.responseXML;
    var users = xmlResponse.documentElement.getElementsByTagName("user");
    
    for (var i=0;i<users.length;i++){
        var uid = users[i].getAttribute("id");
        var uname = users[i].getAttribute("name");
        var ucredit = users[i].getAttribute("credit");
          ihtml = ihtml+'<li><a href="google/users/user.php?id='+uid+'">'+uname+'</a>&nbsp;('+ucredit+')</li>';
    }
    document.getElementById("press").innerHTML = ihtml;
}

function init()
{
    startRequest();
}