var xmlHttp;
 var dataDiv;
 var dataTable;
 var dataTableBody;
 var offsetEl;
 
 function createXMLHttpRequest() {
  if (window.ActiveXObject) {
	xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }else if (window.XMLHttpRequest) {
	xmlHttp = new XMLHttpRequest();
  }
 }

 function initVars() {
  dataTableBody = document.getElementById("jobDataBody");
  dataTable = document.getElementById("jobData");
  dataDiv = document.getElementById("popup");
 }
 
 function getJobData(element) {
  initVars();
  createXMLHttpRequest();
  offsetEl = element;
  var url = "/job-opportunities/job_opps/jobData.cfm?job_id=" + escape(element.id);
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = callback;
  xmlHttp.send(null);
 }

 function callback() {
  if (xmlHttp.readyState == 4) {
	if (xmlHttp.status == 200) {
		setData(xmlHttp.responseXML);
	}
  }
 }

 function setData(jobData) {
  clearData();
  setOffsets();
  var description = jobData.getElementsByTagName("description")[0].firstChild.data;
  var row;
  var descriptionData = description;
  row = createRow(descriptionData);
  dataTableBody.appendChild(row);
 }

 function createRow(data) {
  var row, cell, link, txtNode;
  row = document.createElement("tr");
  cell = document.createElement("td");
  cell.setAttribute('id','holder');
  cell.setAttribute('onmouseover','javascript:clearData();');
  cell.setAttribute('onmouseout','javascript:clearData();');
  cell.style.position = 'absolute';
  cell.style.zIndex = '99';
  cell.style.width = '200px';
  cell.style.backgroundColor = '#FFFFFF';
  cell.style.borderWidth = '1px';
  cell.style.borderStyle = 'solid'; 
  cell.style.borderColor = '#AE5B15';
  cell.style.color = '#000000';
  cell.style.lineHeight = '12px';
  cell.style.padding = '5px 3px';
  cell.style.fontFamily = 'Verdana, Sans-serif';
  cell.style.fontSize = '10px';
  txtNode = document.createTextNode(data);
  cell.appendChild(txtNode);
  row.appendChild(cell);
  return row;
 }

 function setOffsets() {
  var end = offsetEl.offsetWidth;
  var top = calculateOffsetTop(offsetEl);
  dataDiv.style.border = "black 1px solid";
  dataDiv.style.left = 300 + "px";
  dataDiv.style.top = 25+top + "px";
 }

 function calculateOffsetTop(field) {
  return calculateOffset(field, "offsetTop");
 }

 function calculateOffset(field, attr) {
  var offset = 0;
  while(field) {
 	offset += field[attr];
	field = field.offsetParent;
  }
  return offset;
 }

 function clearData() {
  if(dataTableBody!=null){
   var ind = dataTableBody.childNodes.length;
   for (var i = ind - 1; i >= 0 ; i--) {
 	dataTableBody.removeChild(dataTableBody.childNodes[i]);
   }
   dataDiv.style.border = "none";
  }
 }
