var currentlySelectedDate;
var cursor = {x:0, y:0};
var popTimer;

if(document.all) { document.onmousemove = getPosition; }
else { document.onmousemove = getPosition; }

function displayPop(hover)
{
	// get rid of any other timers
	window.clearTimeout(popTimer);
	
	var display = document.getElementById("displayInfo");
	var calID = hover.rel; // the id is stored as relational info
	var self = this;
	hover.onmouseout = function(){display.style.display="none"; display.innerHTML = ""; window.clearTimeout(popTimer);}
	
	display.style.top = (cursor.y + 15) + "px";
	display.style.left = (cursor.x - 60) + "px";
	
	// now get the information via ajax
	var onStartRequest = function(req) 
	{
		display.innerHTML = "<h4>Loading&hellip;</h4> <p>Please Wait</p>";
	}
	var onSuccess = function(req) 
	{
		display.innerHTML = req.responseText;
		display.style.display = "block";
	}
	var onFailure = function(req) 
	{
		display.innerHTML = "<h4>Could not find Event</h4> <p>There was an error retreiveing the event information</p>";
		display.style.display = "none";
	}
	
	var url = "/calendar/includes/eventPop.asp?id="+ calID
	popTimer = window.setTimeout(function(){XmlHttp.get(url, onStartRequest, onSuccess, onFailure);}, 1000);
}

function showHide(ID) 
{
	var div = document.getElementById(ID);
	
	//div.style.visibility = (div.style.visibility == 'hidden') ? 'visible' : 'hidden';
	div.style.display = (div.style.display == 'none') ? 'block' : 'none';
	return false; // so that it can stop link from going
}

function showHideCal(clickedObj,idOfCal)
{
	var popCal = document.getElementById(idOfCal);
	var clickRegion = document.getElementById(clickedObj);
	var top = clickRegion.offsetTop;
	var left = clickRegion.offsetLeft;
	/* get the width/height to show the calendar at - below the link */
	
	popCal.style.top = (top + 22) + "px";
	popCal.style.left = left + "px";
	//alert(popCal.style.top + "," + popCal.style.left)
	showHide(idOfCal);
}

function swapContent(element, content) 
{
	element.innerHTML = content;
}

function selectCurrentDate(itemID)
{
	var theDate = parent.document.getElementById(itemID);
	
	var dateID = new String(theDate.value);
	dateID = dateID.replace(/\//g,"_");
	var selectedDate = self.document.getElementById(dateID);
	
	if (selectedDate == null)
		return;
	
	selectedDate.style.backgroundColor = "#FF6600";
	selectedDate.style.color = "white";
	
	currentlySelectedDate = selectedDate;
}

// select the new date change the text field and close the calendar
function changeDate(year, month, day, itemID, dateID)
{
	var theDate = parent.document.getElementById(itemID);
	
	calID = itemID.replace(/Date/i, "Cal");
	var theCalendar = parent.document.getElementById(calID);
	
	theDate.value= month + "/" + day + "/" + year;
	
	if (currentlySelectedDate)
	{
		currentlySelectedDate.style.backgroundColor = "white";
		currentlySelectedDate.style.color = "black";
	}
	
	
	var selectedDate = self.document.getElementById(dateID);
	selectedDate.style.backgroundColor = "#FF6600";
	selectedDate.style.color = "white";
	
	currentlySelectedDate = selectedDate;
	theCalendar.style.display = "none"; // now close the calendar since a date has been selected
}

/* Function that manages the email functionality */
function makeEmailFriendRequest(frm, msgID) {
	// We shouldn't use escape below (not UTF-8 safe), but IE doesn't have encodeURIComponent until 5.5
	var fields = ["id", "date", "to", "from", "name", "body"];
	var queryParts = new Array();
	for (var i = 0; i < fields.length; i++) {
		var field = fields[i];
		queryParts.push(field + "=" + escape(frm.elements[field].value ? frm.elements[field].value : ""));
	}
	queryParts.push("xml=1");

	var url  = frm.action;
	var data = queryParts.join("&");

	var msg = document.getElementById(msgID);
	var onStartRequest = function(req) 
	{
		frm.disable = true;
		msg.innerHTML = "Please wait...";
	}
	var onSuccess = function(req) 
	{
		msg.innerHTML = req.responseText;
		frm.disable = false;
	}
	var onFailure = function(req) 
	{
		msg.innerHTML = ("Error: " + req.responseText + " (Status: " + req.status + ")");
		frm.disable = false;
	}
	
	XmlHttp.post(url, data, onStartRequest, onSuccess, onFailure);
	return false; // since everything went ok, we don't need to submit this form
}


function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
		while(1) 
		{
		  curleft += obj.offsetLeft;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
		  curtop += obj.offsetTop;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

function getPosition(e) {
    e = e || window.event;
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    //return cursor;
}