// Need to set a small delay on the popover action
delay = 500;
eventflag = 0;

// This guy is what determines which type of obejct we're using based on the browser
function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
	}

function getevent(event_id) {
	createXMLHttpRequest();
	url = "http://www.nurselaw.com/calendar/caldata.php?action=getevent&event_id="+event_id+ "&time=" + (new Date()).getTime();
	xmlHttp.onreadystatechange = eventhandle;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
}

// This is a prototype of a fuction to handle the response initiated from the function above
function eventhandle() {
	if(xmlHttp.readyState == 4) {
		if(xmlHttp.status == 200) {
			outText = eventparse();
			//alert("The server replied with: " + outText);
		}
	}
}

// This will take our XML response formed like "<response>text</response>" and pump out the text in between
function eventparse(){
	var xmlDoc = xmlHttp.responseXML;
	var eid = xmlDoc.getElementsByTagName("ID");
	var EventName = xmlDoc.getElementsByTagName("EventName");
	var EventDesc = xmlDoc.getElementsByTagName("EventDesc");
	var startdate = xmlDoc.getElementsByTagName("StartDate");
	var enddate = xmlDoc.getElementsByTagName("EndDate");
	stuff = '';
	thisid = eid[0].firstChild.data;
	thisname = EventName[0].firstChild.data;
	thisdesc = EventDesc[0].firstChild.data;
	thisstart = startdate[0].firstChild.data;
	thisend = enddate[0].firstChild.data;
	stuff = "<strong>"+thisname+'</strong>  <img src="images/title_shape.gif"> <br />';
	stuff += thisdesc+"<br />";
	
	if(thisstart == thisend)
		{
			stuff += thisstart;
		}
	else
		{
			stuff += thisstart+" - "+thisend;
		}
	
	stuff += '<br /><br /><a href="cal-view.php?ID='+thisid+'">View Details</a> | <a href="javascript:closeEventDetails();">Close</a>';
	
	document.getElementById("eventdetail").innerHTML = stuff;
}

function moveObject( obj, e ) {

  // step 1
  var tempX = 0;
  var tempY = 0;
  var offset = 5;
  var leftmod = 50;
  var objHolder = obj;

  // step 2
  obj = getObject( obj );
  if (obj==null) return;

  // step 3
  if (document.all) {
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {
    tempX = e.pageX;
    tempY = e.pageY;
  }

  // step 4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}

  // step 5
  obj.style.top  = (tempY - offset) + 'px';
  obj.style.left = (tempX + offset - leftmod) + 'px';

  // step 6
  //displayObject( objHolder, true );
  }
  
function getObject( obj ) {

  // step 1
  if ( document.getElementById ) {
    obj = document.getElementById( obj );

  // step 2
  } else if ( document.all ) {
    obj = document.all.item( obj );

  //step 3
  } else {
    obj = null;
  }

  //step 4
  return obj;
  }
  
function displayObject( obj, show ) {

  // step 1
  obj = getObject( obj );
  if (obj==null) return;

  // step 2
  obj.style.display = show ? 'block' : 'none';
  obj.style.visibility = show ? 'visible' : 'hidden';
  }
  
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function showEventDetails(event_id, e)
	{
		eventflag = event_id;
		MM_showHideLayers('eventdetail','','hide');
		moveObject('eventdetail', e);
		action = "openEventDetails("+event_id+")"
		setTimeout(action, delay);
		//setTimeout("alert('blah')",1000);
	}

function openEventDetails(event_id)
	{
		if(eventflag == event_id)
			{
			getevent(event_id);
			MM_showHideLayers('eventdetail','','show');
			}
	}
	
function closeEventDetails()
	{
		MM_showHideLayers('eventdetail','','hide');
		document.getElementById("eventdetail").innerHTML = "";
	}