var currentID = 1; 
var advHeight = 0;
var advTop = 0;

document.onclick = function (e) {
	var tg = (e) ? e.target : window.event.srcElement;
	if(getParent(tg,'SPAN').getAttribute('id') != 'adventure' + currentID &&
		 tg.getAttribute('id') != 'url' + currentID) {
		closeAdventure();
	}
}

function getParent(el, pTagName) {
	if (el == null) {
		return document.body;	//passed the root node
	}
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) {
		// The nodeType == 1 is a test if the node is an actual element
		// Gecko has a bug that gives HTML tagNames in lowercase
		return el;
	}
	else {
		return getParent(el.parentNode, pTagName);	// traverse up
	}
}

function closeAdventure() {
	if (document.getElementById('adventure' + currentID)) {
		document.getElementById('adventure' + currentID).style.display = 'none';
	}
}

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

var req = createXMLHttpRequest();

function filterBy(type,id) {
  req.open('get', 'renderTable.php?filterBy=' + type + '&filterText=' + id);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function filterDel(type,id) {
  req.open('get', 'renderTable.php?filterDel=' + type + '&filterId=' + id);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function clearFilters() {
  req.open('get', 'renderTable.php?clearFilters=true');
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function orderBy(id) {
  req.open('get', 'renderTable.php?orderBy=' + id);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function gotoPage(id) {
	req.open('get', 'renderTable.php?pageno=' + id);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function showAdventure(id) {
	closeAdventure();
  req.open('get', 'adventure.php?id=' + id);
  req.onreadystatechange = handleResponse;
  req.send(null);
	currentID = id;
}

function sizeAdventure() {
	alert(getStyle(document.getElementById('adventure' + currentID), 'height'));
}

function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){
		try{
			strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
				return p1.toUpperCase();
			});
			strValue = oElm.currentStyle[strCssRule];
		}
		catch(e){
			// Used to prevent an error in IE 5.0
		}
	}
	return strValue;
}

function handleResponse() {
  if(req.readyState == 4){
    var response = req.responseText;
    var update = new Array();

    if(response.indexOf('||' != -1)) {
      update = response.split('||');
      document.getElementById(update[0]).innerHTML = update[1];
			advHeight = getStyle(document.getElementById(update[0]), 'height');
			advTop = getStyle(document.getElementById(update[0]), 'top');
    }
  }
}
