/// <reference path="jquery-1.3.2-vsdoc2.js" />


var lastEventID;

function eventDetailToggle(obj, eventID, mainCalendarPage) {
	var eventContainer = $("#eventDetailDiv");
	if (eventContainer.length > 0 && lastEventID === eventID) {
		eventDetailClose();
	} else if (eventContainer.length > 0 && lastEventID != eventID) {
		eventDetailClose();
		eventDetailOpen(obj, eventID, mainCalendarPage);
	} else if (eventContainer.length === 0) {
		eventDetailOpen(obj, eventID, mainCalendarPage);
	}
	
}

function eventDetailOpen(obj, eventID, mainCalendarPage) {
	// mainCalendarPage: boolean indicating whether this is the event
	// detail to be show on the main calendar page or elsewhere (such
	// as the site homepage).
	var $obj = $(obj);
	lastEventID = eventID;
	var eventContainer = $("<div class='eventContainer' id='eventDetailDiv' />");
	$("body").append(eventContainer);
	var offset = $obj.offset();
	var offsetLeft = offset.left + $obj.width() + 5;
	var offsetTop = offset.top;
	if (mainCalendarPage) {
		// adjust the offsetLeft value if the event detail div
		// needs to appear to the left of the link instead of 
		// the right.
		var bodyWidth = $("body").width();
		var allContainerWidth = $("#allContainer").width();
		var pageMarginWidth = (bodyWidth - allContainerWidth) / 2
		var dayCellOffset = $obj.parent().offset().left;
		if (navigator.appName === "Netscape") {
			dayCellOffset = dayCellOffset - pageMarginWidth;
		}
		var dayCellWidth = $obj.parent().width();
		var overHalf = false;
		if (dayCellOffset + dayCellWidth > (allContainerWidth / 2)) {
			offsetLeft = (offset.left - 390) + "px";
		}
	}
	eventContainer
	    .css("position", "absolute")
	    .css("display", "none")
	    .css("left", offsetLeft)
	    .css("top", offsetTop);
	var openPath = "ajax.aspx?";
	var data = "op=eventDetail&id=" + eventID;
	var options = {
	    url: "ajax.aspx",
	    data: data,
	    success: eventDetailSuccess
	};
	$.ajax(options);
}

function eventDetailSuccess(data, textStatus) {
    $("#eventDetailDiv").fadeIn(300);
    $("#eventDetailDiv").html(data); 
}

function eventDetailClose() {
    $("#eventDetailDiv").fadeOut(200);
    $("#eventDetailDiv").remove();
}

function GoToPage(page) {
	d.getElementById('hidCurrentPage').value = page;
	d.getElementsByTagName("form")[0].submit();
}

function GoToCrement(one) {
	// Crement = INcrement or DEcrement.  The "one" parameter will either 
	// be positive or negative one for adding or subtracting to current page.
    d.getElementById('hidCurrentPage').value = parseInt(d.getElementById('hidCurrentPage').value, 10) + one;
	d.getElementsByTagName("form")[0].submit();
}