// AJAX stuff
var http_request = false;
var div          = null;

function getHTTPRequest() {
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // IE
    try { http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try { http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  return http_request;
}
  
function makeRequest(url, pdiv) {
  loading(pdiv);
  div = pdiv;
  http_request = getHTTPRequest();
  if (http_request) {
    http_request.onreadystatechange = handleResponse;
    http_request.open('GET', url, true);
    http_request.send(null);
    http_request.overrideMimeType('text/html; charset=ISO-8859-2');
  } else {
    //alert('Error in makeRequest, cannot create an XMLHTTP instance');
  }
}

// browser fires this periodically until readyState == 4
function handleResponse() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
      document.getElementById(div).innerHTML = http_request.responseText;
    } else {
      //alert('Error in handleRepsonse, readyState==4');
    }
  }
}
  
// ---

function loading(div) {
  document.getElementById(div).innerHTML = '<img src=\"./images/activity.gif\">';
}

// ---

function invertSelection() {
  var form = document.getElementById("r");

  for (i = 0; i < form.elements["t[]"].length; i++)
    form.elements["t[]"][i].checked = !form.elements["t[]"][i].checked;
}

// ---

function updateSelected(sid) {
  var form = document.getElementById("r");
  var arr = new Array();

  for (i = 0; i < form.elements["t[]"].length; i++)
    if( form.elements["t[]"][i].checked ) {
      arr.push( form.elements["t[]"][i].value );
      form.elements["t[]"][i].checked = false;
    }

  document.getElementById(sid + 's').value = arr.join("--");
}

// ---

var routesStates = new Array();

// ---

function details(div, action) {
  var a = 'a-' + div;
  var r = 'r-' + div;

  if( routesStates[div] == 1 ) {
    document.getElementById(a).innerHTML = '&raquo;&nbsp;&raquo;';
    document.getElementById(r).style.display = 'none';
    routesStates[div] = 0;
  }
  else {
    document.getElementById(a).innerHTML = '&laquo;&nbsp;&laquo;';
    routesStates[div] = 1;
    makeRequest('trasa.php?kat=' + div, 'r-' + div);
    document.getElementById(r).style.display = 'block';
  }
}

// qTip - CSS Tool Tips - by Craig Erskine

var qTipTag = "a,label,input"; //Which tag do you want to qTip-ize? Keep it lowercase!//
var qTipX = 0; //This is qTip's X offset//
var qTipY = 15; //This is qTip's Y offset//

//There's No need to edit anything below this line//
tooltip = {
  name : "qTip",
  offsetX : qTipX,
  offsetY : qTipY,
  tip : null
}

tooltip.init = function () {
	var tipNameSpaceURI = "http://www.w3.org/1999/xhtml";
	if(!tipContainerID){ var tipContainerID = "qTip";}
	var tipContainer = document.getElementById(tipContainerID);

	if(!tipContainer) {
	  tipContainer = document.createElementNS ? document.createElementNS(tipNameSpaceURI, "div") : document.createElement("div");
		tipContainer.setAttribute("id", tipContainerID);
	  document.getElementsByTagName("body").item(0).appendChild(tipContainer);
	}

	if (!document.getElementById) return;
	this.tip = document.getElementById (this.name);
	if (this.tip) document.onmousemove = function (evt) {tooltip.move (evt)};

	var a, sTitle, elements;
	
	var elementList = qTipTag.split(",");
	for(var j = 0; j < elementList.length; j++)
	{	
		elements = document.getElementsByTagName(elementList[j]);
		if(elements)
		{
			for (var i = 0; i < elements.length; i ++)
			{
				a = elements[i];
				sTitle = a.getAttribute("title");				
				if(sTitle)
				{
					a.setAttribute("tiptitle", sTitle);
					a.removeAttribute("title");
					a.removeAttribute("alt");
					a.onmouseover = function() {tooltip.show(this.getAttribute('tiptitle'))};
					a.onmouseout = function() {tooltip.hide()};
				}
			}
		}
	}
}

tooltip.move = function (evt) {
	var x=0, y=0;
	if (document.all) {//IE
		x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
		y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
		x += window.event.clientX;
		y += window.event.clientY;
		
	} else {//Good Browsers
		x = evt.pageX;
		y = evt.pageY;
	}
	this.tip.style.left = (x + this.offsetX) + "px";
	this.tip.style.top = (y + this.offsetY) + "px";
}

tooltip.show = function (text) {
	if (!this.tip) return;
	this.tip.innerHTML = text;
	this.tip.style.display = "block";
}

tooltip.hide = function () {
	if (!this.tip) return;
	this.tip.innerHTML = "";
	this.tip.style.display = "none";
}

window.onload = function () {
	tooltip.init ();
}