window.onload = prepareLinks;

function prepareLinks() {
Element.hide('close')
	
  if (!document.getElementById || !document.getElementsByTagName) {
    return;
  }
  if (!document.getElementById("view")) {
    return;
  }

  if (!document.getElementById("close")) {
    return;
  }


var list = document.getElementById("view");
var links = list.getElementsByTagName("a");
 
var closeList = document.getElementById("close");
var closeLinks = closeList.getElementsByTagName("a");

for (var i=0; i<closeLinks.length; i++) {
closeLinks[i].onclick = function() {
flush(document.getElementById("details"));
return false;
}; 
};


  for (var i=0; i<links.length; i++) {
    links[i].onclick = function() {

var query = this.getAttribute("href").split("?")[1];
      var url = "../view/?"+query;
      return !grabFile(url);
	  
    };
	
  }

}

function addClose()
{
  // create a new div element
  // and give it some content
  newP = document.createElement("p");
  newP.innerHTML = "<p id='close'><a href='?1'></a></p>";
  // add the newly created element and it's content into the DOM
  my_div = document.getElementById("details");
  document.body.insertBefore(newP, my_div);
}


function grabFile(file) {
	
  var request = getHTTPObject();
  if (request) {
    displayLoading(document.getElementById("details"));
    request.onreadystatechange = function() {
      parseResponse(request);
	  	  
    };
    request.open("GET", file, true);
    request.send(null);
	
    return true;
 
 } else {
    return false;


  }
 

 
}

function parseResponse(request) {
	
	 Element.hide('details');
	 
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
      var details = document.getElementById("details");     

details.innerHTML = request.responseText;

 new Effect.Appear('details');
    }
  }
}

function getHTTPObject() {
  var xhr = false;
  if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xhr = false;
      }
    }
  }
  return xhr;
}

function displayLoading(element) {
  while (element.hasChildNodes()) {
    element.removeChild(element.lastChild);
  }
  var image = document.createElement("img");
  image.setAttribute("src","/gfx/loading.gif");
  image.setAttribute("alt","Loading...");
  element.appendChild(image);


new Effect.Appear('close')

}


function flush(element) {
  while (element.hasChildNodes()) {
    element.removeChild(element.lastChild);
 }
 new Element.hide('close')
};