/*
  init ajax for IE & Mozilla
*/
function initRequest ()
{
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) { }

  if (xmlhttp == null) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) { }
  }
  // Gecko / Mozilla / Firefox
  if (xmlhttp == null)
    xmlhttp = new XMLHttpRequest();
  return xmlhttp;
}

var xmlhttp = initRequest ();
var timer = null;
var processID = null;

function showObject(id)
{
  var obj = document.getElementById(id);
  if (obj != null) {
    obj.style.display="";
    obj.visible = true;
  }
}

function hideObject(id)
{
  var obj = document.getElementById(id);
  if (obj != null) {
    obj.style.display="none";
    obj.visible = false;
  }
}

function initState ()
{
  var URL = 'ajax.vsp?a=init';
  var rdf_url;
  var mt;
  var full_name;
  var email;
  var cclic;

  rdf_url = document.getElementById ("url").value;
  email = document.getElementById ("email").value;
  mt = document.getElementById ("mt1").checked;
  cclic = document.getElementById ("cclic").checked;
  full_name = document.getElementById ("name").value;

  showProgress ();
  hideResult ();
  xmlhttp.open("GET",
                URL + "&url=" + escape (rdf_url) +
                      "&mt=" + mt +
                      "&name=" + full_name +
                      "&email=" + email +
                      "&cclic=" + cclic,
                true);
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
      // progressIndex

      // get first process ID
      try {
        processID = xmlhttp.responseText;
      } catch (e) { }
      timer = setTimeout("checkState()", 500);
    }
  }
  xmlhttp.setRequestHeader("Pragma", "no-cache");
  xmlhttp.send("");
}

function checkState()
{
  var URL = 'ajax.vsp?a=state';
  xmlhttp.open("GET", URL+"&id="+processID, true);
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
      var rc;

      // progressIndex
      try {
        rc = xmlhttp.responseText;
      } catch (e) { }

      if (rc != null)
      {
        rc = rc.replace(/\r/g, "");
        rc = rc.replace(/\n/g, "");
        rc = rc.replace(/\r\n/g, "");
      };

      if (rc == 'importing' && timer != null) {
        setTimeout("checkState()", 500);
      } else {
        timer = null;
      }
      if (timer != null)
        showProgress ();
      else
        showMsg (rc);
    }
  }
  xmlhttp.setRequestHeader("Pragma", "no-cache");
  xmlhttp.send("");
}

function showProgress ()
{
  var obj = document.getElementById ("msg");
  obj.innerHTML = '<img src="images/wait_16.gif" border="0"/> Please wait...';
}

function showMsg (msg)
{
  var obj = document.getElementById ("msg");
  obj.innerHTML = msg;
}

function showResult (txt)
{
  var obj = document.getElementById ("result");
  obj.style.display = "";
  obj = document.getElementById ("result_body");
  obj.innerHTML = txt;
  //dp.SyntaxHighlighter.ClipboardSwf = 'js/syntax/clipboard.swf';
  //dp.SyntaxHighlighter.HighlightAll('code');
}

function hideResult (txt)
{
  var obj = document.getElementById ("result");
  obj.style.display = "none";
}

function retrieveRSS(graph)
{
  var URL = 'ajax.vsp?a=rss';
  xmlhttp.open("GET", URL+"&g="+escape(graph), true);
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
      // data
      try {
        var rc = xmlhttp.responseText;
        showResult ('<textarea name="code" class="xml" cols="100" rows="15">' + rc + '</textarea>');
      } catch (e) { }
    }
  }
  xmlhttp.setRequestHeader("Pragma", "no-cache");
  xmlhttp.send("");
}
