// function makeHttpRequest starts any url/script. Three parameters
// are passed to the function:
// 1. The url to get
// 2. The function to call when the response is received
// 3. A flag if the result should be passed as XMLDocument or as plain text to the callback function


function makeHttpRequest(url, callback_function, target_node, return_xml)
{
    var http_request = false;
    var target=target_node;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        var result_node = document.getElementById(target_node);
        var element = document.createElement('b');
        var line = document.createTextNode('Feature not supported by browser');
        element.appendChild(line);
        result_node.appendChild(element);
        return false;
    }
    http_request.onreadystatechange = function() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                if (return_xml) {
                    eval(callback_function + '(http_request.responseXML),'+target+')');
                } else {
                    eval(callback_function + '(http_request.responseText,'+target+')');
                }
            } else {
                var result_node = document.getElementById(target_node);
                var element = document.createElement('b');
                var line = document.createTextNode('Unable to connect to Database (Code: ' + http_request.status + ')');
                element.appendChild(line);
                result_node.appendChild(element);
                
            }
        }
    }
    http_request.open('GET', url, true);
    http_request.send(null);
}



function EchoResult(result_string, target_node)
{
 //document.write('Target node:'+target_node);
//   var result_node = document.getElementById(target_node);
// document.write('Target node: '+target_node+', element:'+result_node);
result_node=target_node;
   result_node .innerHTML = "";
//   result_div.appendChild(result_string);
//   result_node.appendChild(document.createTextNode(result_string));
   
   var result_array = result_string.split('\n');

//   var new_command = document.getElementById('command').value;
//   result_div.appendChild(document.createTextNode(new_command));
//   result_div.appendChild(document.createElement('br'));
//   var result_wrap; 
   for (var line_index in result_array) {
        if (line_index==0)
        {
            var element = document.createElement('b');
            var line = document.createTextNode(result_array[line_index]);
            element.appendChild(line);
            result_node.appendChild(element);
            result_node.appendChild(document.createElement('br'));          
        }
        if (line_index==1)
        {
            var element = document.createElement('font');
            element.setAttribute('size', '-2');
            var line = document.createTextNode(result_array[line_index]);
            element.appendChild(line);
            result_node.appendChild(element);
            result_node.appendChild(document.createElement('br'));          
        }
        if (line_index>1)
        {            
            var a = document.createElement('a')
            var line = result_array[line_index];
            var elements = line.split('|');
            a.setAttribute('href', elements[0]);
            a.setAttribute('title', 'Access article');
            a.setAttribute('target', '_blank');            
            a.appendChild(document.createTextNode(elements[1]));
            var journal=document.createElement('font');
            journal.setAttribute('size','-2');
            journal.appendChild(document.createTextNode(elements[2]));
            var div_node=document.createElement('div');
            div_node.setAttribute('class','article_list_small');
            div_node.style.margin="3pt 0pt 3pt";
            div_node.appendChild(a);
            if ((elements[1]) != "See more articles") {
                div_node.appendChild(document.createTextNode(' '));
                div_node.appendChild(journal);
                result_node.appendChild(div_node);
            } else {
                // link to see more articles:
                div_node=document.createElement('div');
                div_node.setAttribute('class','article_list_small');
                div_node.style.margin="5pt 0pt 0pt";
                    a = document.createElement('a')
                    a.setAttribute('href', elements[0]);
                    a.setAttribute('title', 'See more articles');
                    a.appendChild(document.createTextNode('See more articles'));
                div_node.appendChild(a);
            }
        }
   }
   result_node.appendChild(div_node);        

   result_node.scrollTop = result_node.scrollHeight;
}

function SimpleEchoResult(result_string, target_node)
{
    target_node.innerHTML = "";
    target_node.appendChild(document.createTextNode(result_string));
    target_node.scrollTop = result_node.scrollHeight;
}