YAHOO.namespace("events.homepage");
			
function init() {
	YAHOO.events.homepage.newsDS = new YAHOO.util.DataSource("./Components/getEventJSON.php");
    YAHOO.events.homepage.newsDS.responseType = YAHOO.util.DataSource.TYPE_JSON;
	
	YAHOO.events.homepage.newsDS.responseSchema = {
		    resultsList : "event", 
		    fields : [
        		{ key: "event_title" }, 
		        { key: "event_location" },
				{ key: "start_date" },
				{ key: "start_time" },
				{ key: "end_date" },
				{ key: "end_time" },
				{ key: "event_description" },
				{ key: "event_link" }
		    ]
		};
}
YAHOO.util.Event.onDOMReady(init);


// -----------------------------------------------------------------------------
// Globals
// Version of Flash required
var requiredMajorVersion = 9;
var requiredMinorVersion = 0;
var requiredRevision = 28;
// -----------------------------------------------------------------------------


function buildPopup( oRequest , oCallback , oCaller ) {
	if (YAHOO.events.homepage.hideTimer) window.clearTimeout( YAHOO.events.homepage.hideTimer );
	var results = oCallback.results[0];
	var itembody = new String();
	if ( results['event_location'] ) itembody += 'Location: ' + results['event_location'] + '<br/>';
	if ( results['event_description'] ) itembody += results['event_description'] + '<br/>';
	if ( results['event_link'] ) itembody += 'More info: <a href="' + results['event_link'] + '">' + results['event_link'] + '</a><br/>';

	var itemdate = results['start_date'];
	if ( results['start_time'] != '12:00AM') itemdate += ' ' + results['start_time'];
	if ( results['end_date'] && results['end_date'] != results['start_date'] ) itemdate += ' - ' + results['end_date'];
	if ( results['end_time'] != '11:59PM') itemdate += ' ' + results['end_time'];
	
	YAHOO.events.homepage.newsPopup = new YAHOO.widget.Panel("newsPopup", { close:true,  visible:false,  draggable:true, dragOnly:true, underlay:"shadow", width:"300px", zIndex:1000,
															 effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration: .5}, xy:[oCaller.x + 30, oCaller.y - 10 ] } );
	var itemtitle = results['event_title'];  /* eachers cant have reasonable titles! */
	if (itemtitle.length > 35) {			// arbr number since we are not fixed font
		itemtitle = itemtitle.substr(0, 34) + "...";
		itembody  = (itembody.length > 0) ? results['event_title'] + '<br>' + itembody : results['event_title'];
	}
	
	YAHOO.events.homepage.newsPopup.setHeader(itemtitle);
	YAHOO.events.homepage.newsPopup.setBody(itembody);
	YAHOO.events.homepage.newsPopup.setFooter(itemdate);
	YAHOO.events.homepage.newsPopup.render(document.body);
	YAHOO.events.homepage.newsPopup.show();
	YAHOO.events.homepage.hideTimer = window.setTimeout( function() { try { YAHOO.events.homepage.newsPopup.hide(); } catch(e) { } }, 30000);
}


function eventsClickHandler(e) { 
	    var elTarget = YAHOO.util.Event.getTarget(e);
		if ( !elTarget ) return false;
	    //walk up the DOM tree looking for an <li> up to the container div
	    while (elTarget.id != "eventsContainer") { 
         if(elTarget && elTarget.nodeName.toUpperCase() == "LI") { 
		 		if (!elTarget.id) return true;
				var id = elTarget.id.split("_");
				if (id.length < 2) return true;
				if (!e.y) {
					var point = findPos(elTarget);
					e.y = point[1] + 25;
					e.x = point[0] + 20;
				}
				YAHOO.events.homepage.newsDS.sendRequest('?id=' + id[1], {success:buildPopup, argument:{x:e.x, y:e.y } } );
	            break; 
	        } else { 
	            elTarget = elTarget.parentNode; 	    //not interested so move event up the line
	        } 
	    } 
	}

function eventsUnClickHandler(e) { 
	    var elTarget = YAHOO.util.Event.getTarget(e);
		if (!YAHOO.events.homepage.newsPopup) return false;
	    try { YAHOO.events.homepage.newsPopup.hide(); } catch(e) { }
		if (YAHOO.events.homepage.hideTimer) window.clearTimeout( YAHOO.events.homepage.hideTimer );	
	}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
YAHOO.util.Event.on("newsContainer", "click", eventsClickHandler); 
//YAHOO.util.Event.on("newsContainer", "mouseover", eventsClickHandler); 
//YAHOO.util.Event.on("newsContainer", "mouseout", eventsUnClickHandler); 
YAHOO.util.Event.on("eventsContainer", "click", eventsClickHandler);
//YAHOO.util.Event.on("eventsContainer", "mouseover", eventsClickHandler); 
//YAHOO.util.Event.on("eventsContainer", "mouseout", eventsUnClickHandler); 

<!--
var gImageList;
var gImageItems;
var gImages;
var gImageFrame;
var gCurrentPicture = -1;
var SHOW_PICTURE_TIME = 5000;

function startShow() {
	gImageList = getImageList().split(";");
	if (!gImageList[ gImageList.length - 1] ) gImageList = gImageList.slice(0, gImageList.length - 1);
		gImageItems = new Array();
	gImages = new Array();
	for( var ndx=0; ndx < gImageList.length; ndx++) {
		gImageItems[ndx] = new Image();
		gImageItems[ndx].src = gImageList[ndx];
		var image = document.createElement("IMG");
		image.src = gImageList[ndx];
		image.width = 300;
		image.height = 200;
		gImages[ndx] = image;
	}
	var pictObj = document.getElementById("shufflePictures");
	if (!pictObj) {
		alert("missing shufflePictures div!!");
		return;
	}
	pictObj.innerHTML = "<span></span>";
	gImageFrame = pictObj;	
	showNextPicture();
}

function showNextPicture() {
	if (gCurrentPicture != -1) 
		gImageFrame.removeChild( gImages[ gCurrentPicture ] );
	//gCurrentPicture = parseInt(Math.random()*(gImages.length-1));
	if (++gCurrentPicture >= gImages.length) gCurrentPicture = 0;
	gImageFrame.appendChild( gImages[ gCurrentPicture ] );
	window.setTimeout( showNextPicture, SHOW_PICTURE_TIME );
}


function showJSPictures() {
	YAHOO.util.Event.onAvailable("shufflePictures", startShow);
}

function noShowJSPictures() {
	// code here in case we need it when we don't want to show the JS images
}