
		/**
		 * Creates the Info Boxes according
		 *  to the input
		 *
		 */
		function getInfoBoxHtml(title, body, width, height){
			var INFOBOX_HTML = "";
			INFOBOX_HTML += "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
			INFOBOX_HTML += " <tr><td colspan=\"3\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_border.gif\"><img src=\""+getRelativeBaseURL()+"images/layout/nil.gif\" height=\"1\" width=\""+width+"\" border=\"0\" /></td></tr>";
			INFOBOX_HTML += " <tr>";
			INFOBOX_HTML += "  <td width=\"1\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_border.gif\"><img src=\""+getRelativeBaseURL()+"images/layout/nil.gif\" height=\"14\" width=\"1\" border=\"0\" /></td>";
			INFOBOX_HTML += "  <td width=\""+(width-2)+"\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_HeadingBackground.gif\"><div id=\"InfoBox_Heading\">";
			INFOBOX_HTML += title;
			INFOBOX_HTML += "  </div></td>";
			INFOBOX_HTML += "  <td width=\"1\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_border.gif\"><img src=\""+getRelativeBaseURL()+"images/layout/nil.gif\" height=\"1\" width=\"1\" border=\"0\" /></td>";
			INFOBOX_HTML += " </tr>";
			INFOBOX_HTML += " <tr><td colspan=\"3\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_border.gif\"><img src=\""+getRelativeBaseURL()+"images/layout/nil.gif\" height=\"1\" width=\"1\" border=\"0\" /></td></tr>";
			INFOBOX_HTML += " <tr>";
			INFOBOX_HTML += "  <td width=\"1\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_border.gif\"><img src=\""+getRelativeBaseURL()+"images/layout/nil.gif\" height=\""+height+"\" width=\"1\" border=\"0\" /></td>";
			INFOBOX_HTML += "  <td valign=\"top\" width=\""+(width-2)+"\"><div id=\"InfoBox_BodyBox\">";
			INFOBOX_HTML += body;
			INFOBOX_HTML += "  </div></td>";
			INFOBOX_HTML += "  <td width=\"1\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_border.gif\"><img src=\""+getRelativeBaseURL()+"images/layout/nil.gif\" height=\"1\" width=\"1\" border=\"0\" /></td>";
			INFOBOX_HTML += " </tr>";
			INFOBOX_HTML += " <tr><td colspan=\"3\" background=\""+getRelativeBaseURL()+"images/layout/InfoBox_border.gif\"><img src=\""+getRelativeBaseURL()+"images/layout/nil.gif\" height=\"1\" width=\"1\" border=\"0\" /></td></tr>";
			INFOBOX_HTML += "</table>";
			return INFOBOX_HTML;
		}



		/******* GETS CURRENT EVENTS ***************/
		//
		function getUpcomingEventsHtml(){

			/**
			 * Section 1.
			 *  Setup variables.
			 *
			 */
			var PAGEHTML = "";
			PAGEHTML += "<table>";
			var today_precise = new Date();
			var today = new Date(today_precise.getFullYear(), today_precise.getMonth(), today_precise.getDate());

			/**
			 * Section 2.
			 *  PRINT UP TO 25 FUTURE WORKSHOPS
			 *
			 */

			//LOOP THROUGH EVENTS OR STOP WHEN YOU'VE PRINTED 5
			var eventsPrinted = 0;
			for(var i=0; i<Events.length && eventsPrinted<5; i++){
				var EventDate = new Date(Events[i].Date);
				
				//ONLY WORK WITH FUTURE, WORKSHOP DATES
				if(Events[i].Type != EVENTTYPE_NOTICE && EventDate.getTime() >= today.getTime()){
				
					//PRINT EVENT
					PAGEHTML += " <tr><td class=\"InfoBox_BodyText\" width=\"55\"><b>"+MonthAbrevNames[EventDate.getMonth()+1]+" "+EventDate.getDate()+"</b> </td><td width=\"163\"><a href=\""+getRelativeBaseURL()+"Events/"+getUrlForEventInfo(Events[i])+"\"><span class=\"InfoBox_BodyText\">"+limitEventTitleWidth(Events[i].Title)+"</span></a></td></tr>";
					eventsPrinted += 1;
				}
			}
			PAGEHTML += "</table>";

			return PAGEHTML;
		}

		var realLetters = new Array("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");

		var letterWidth = new Array();
		letterWidth["a"] = new Array(6, 8);
		letterWidth["b"] = new Array(6, 7);
		letterWidth["c"] = new Array(6, 7);
		letterWidth["d"] = new Array(6, 7);
		letterWidth["e"] = new Array(6, 6);
		letterWidth["f"] = new Array(3, 6);
		letterWidth["g"] = new Array(6, 8);
		letterWidth["h"] = new Array(6, 7);
		letterWidth["i"] = new Array(1, 2);
		letterWidth["j"] = new Array(3, 5);
		letterWidth["k"] = new Array(5, 7);
		letterWidth["l"] = new Array(2, 6);
		letterWidth["m"] = new Array(8, 8);
		letterWidth["n"] = new Array(6, 7);
		letterWidth["o"] = new Array(6, 8);
		letterWidth["p"] = new Array(6, 6);
		letterWidth["q"] = new Array(6, 8);
		letterWidth["r"] = new Array(4, 7);
		letterWidth["s"] = new Array(5, 7);
		letterWidth["t"] = new Array(4, 6);
		letterWidth["u"] = new Array(6, 7);
		letterWidth["v"] = new Array(6, 7);
		letterWidth["w"] = new Array(10, 11);
		letterWidth["x"] = new Array(6, 7);
		letterWidth["y"] = new Array(6, 8);
		letterWidth["z"] = new Array(6, 7);

		/**
		 *
		 *
		 */
		function getLetterWidth(letter){

				//IS IT A REAL LETTER
				var isReal = false;
				for(var i=0; i<realLetters.length; i++){
					if(realLetters[i] == letter){
						isReal = true;
					}
				}

				if(isReal){
					if(currentChar == currentChar.toLowerCase()){		//LOWERCASE
						return letterWidth[currentChar][0];
					}else{												//UPPERCASE
						return letterWidth[currentChar][1];
					}
				}

				return 4;	//AVERAGE LENGTH OF NON LETTER CHARACTERS
		}

		function limitEventTitleWidth(eventTitle){
			var MAX_WIDTH = 130;
			var currentLength = 0;
			var newTitle = "";
			for(var i=0; i<eventTitle.length; i++){
				var currentChar = eventTitle.charAt(i);

				//ADD WIDTH
				currentLength += getLetterWidth(currentChar);

				//NEW TITLE
				if(currentLength >= (MAX_WIDTH-19)){
					newTitle += "...";
					break;
				}else{
					newTitle += currentChar;
				}
			}
			return newTitle;
		}