function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}
function truebody()
	{
	return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}
function getAbsLeft(el){
var l=el.offsetLeft;
  while((el=el.parentNode) && el!=document)
    l+=el.offsetLeft;
  alert(l);
  return l;
}

function getAbsTop(el){
var t=el.offsetTop;
  while((el=el.parentNode) && el!=document)
    t+=el.offsetTop;
  return t;
}


init();


var stillon = false;
var loadedinfo = false;
var oldid = "";
var curid = "";
var xcoord = "";

function showinfobox(did, $id, $col, $row) {
	
	if (oldid != did)
	{
		document.getElementById('divinfobox').style.display = 'none';
		oldid = did;
		
	}
	

		new Ajax.Request('infobox.php?id=' + $id,
		{
			method:'get',
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
					document.getElementById('ibox').innerHTML = response;
					loadedinfo = true;
					setTimeout(shownow, 750);
				},
			onFailure: function(){ alert('Something went wrong...') }
		});

}
function shownow() {
		if (stillon == true) {
			document.getElementById('divinfobox').style.display = '';
		}
}
function hidenow() {
		if (stillon == false) {
			oldid = curid;
			document.getElementById('divinfobox').style.display = 'none';
		}
}
function hideinfobox($did, $id) {
	setTimeout(hidenow,0);
}

//script

var mousex = 0;
var mousey = 0;
var grabx = 0;
var graby = 0;
var orix = 0;
var oriy = 0;
var elex = 0;
var eley = 0;
var algor = 0;

var dragobj = null;

function falsefunc() { return false; } // used to block cascading events

function init()
{
  document.onmousemove = update; // update(event) implied on NS, update(null) implied on IE
  update();
  document.getElementById('divinfobox').style.display = 'none';
}

function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{ 
  if (!e) { e = window.event; } // works on IE, but not NS (we rely on NS passing us the event)

  if (e)
  { 
    if (e.pageX || e.pageY)
    { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      mousex = e.pageX;
      mousey = e.pageY;
      algor = '[e.pageX]';
      if (e.clientX || e.clientY) { algor += ' [e.clientX] '; }
    }
    else if (e.clientX || e.clientY)
    { // works on IE6,FF,Moz,Opera7
      mousex = e.clientX + document.body.scrollLeft;
      mousey = e.clientY + document.body.scrollTop;
      algor = '[e.clientX]';
      if (e.pageX || e.pageY) { algor += ' [e.pageX] '; }
    }  
	document.getElementById('divinfobox').style.top = mousey;
	document.getElementById('divinfobox').style.left = mousex;	
  }
}

function update(e)
{
  getMouseXY(e); // NS is passing (event), while IE is passing (null)

  //document.getElementById('span_browser').innerHTML = navigator.appName;
  document.getElementById('span_winevent').innerHTML = window.event ? window.event.type : '(na)';
  document.getElementById('span_autevent').innerHTML = e ? e.type : '(na)';
  document.getElementById('span_mousex').innerHTML = mousex;
  document.getElementById('span_mousey').innerHTML = mousey;
  document.getElementById('span_grabx').innerHTML = grabx;
  document.getElementById('span_graby').innerHTML = graby;
  document.getElementById('span_orix').innerHTML = orix;
  document.getElementById('span_oriy').innerHTML = oriy;
  document.getElementById('span_elex').innerHTML = elex;
  document.getElementById('span_eley').innerHTML = eley;
  document.getElementById('span_algor').innerHTML = algor;
  document.getElementById('span_dragobj').innerHTML = dragobj ? (dragobj.id ? dragobj.id : 'unnamed object') : '(null)';
}

function grab(context)
{
  document.onmousedown = falsefunc; // in NS this prevents cascading of events, thus disabling text selection
  dragobj = context;
  dragobj.style.zIndex = 10; // move it to the top
  document.onmousemove = drag;
  document.onmouseup = drop;
  grabx = mousex;
  graby = mousey;
  elex = orix = dragobj.offsetLeft;
  eley = oriy = dragobj.offsetTop;
  update();
}

function drag(e) // parameter passing is important for NS family 
{
  if (dragobj)
  {
    elex = orix + (mousex-grabx);
    eley = oriy + (mousey-graby);
    dragobj.style.position = "absolute";
    dragobj.style.left = (elex).toString(10) + 'px';
    dragobj.style.top  = (eley).toString(10) + 'px';
  }
  update(e);
  return false; // in IE this prevents cascading of events, thus text selection is disabled
}

function drop()
{
  if (dragobj)
  {
    dragobj.style.zIndex = 0;
    dragobj = null;
  }
  update();
  document.onmousemove = update;
  document.onmouseup = null;
  document.onmousedown = null;   // re-enables text selection on NS
}


function changeintro($id, linkNumber) {
	new Ajax.Request('cimg.php?i=' + $id,
		{
			method:'get',
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
					document.getElementById('imgchange').innerHTML = response;
					if(linkNumber != 1) document.getElementById('FAB1').innerHTML = '1';
					if(linkNumber != 2) document.getElementById('FAB2').innerHTML = '2';
					if(linkNumber != 3) document.getElementById('FAB3').innerHTML = '3';
					if(linkNumber != 4) document.getElementById('FAB4').innerHTML = '4';
					if(linkNumber != 5) document.getElementById('FAB5').innerHTML = '5';
					if(linkNumber != 6) document.getElementById('FAB6').innerHTML = '6';
					if(linkNumber != 7) document.getElementById('FAB7').innerHTML = '7';
					document.getElementById('FAB'+linkNumber).innerHTML = '<b>['+linkNumber+']</b>';
					
				},
			onFailure: function(){ alert('Something went wrong...') }
		});
}

