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_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}

	function MM_preloadImages() { //v3.0
	  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}

	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_swapImage() { //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}

	function formatDate(date, includeYear, includeMonth) {
		function ordinal(i) {
			var nModTen = i % 10;
			return (i + ['th','st','nd','rd'][nModTen > 3 ? 0 : ( i % 100 - nModTen != 10) * nModTen]);
		}
	
		var dateString = ordinal(date.getDate());
	
		if (includeMonth) {
			var monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	
			dateString = dateString + ' ' + monthNames[date.getMonth()];
		}
	
		if (includeYear) {
			dateString = dateString + ' ' + date.getFullYear();
		}
	
		return dateString;
	}
	
	function parseDateFromGCalTime(gCalTime) {
		// text for regex matches
		var remtxt = gCalTime;
	
		function consume(retxt) {
			var match = remtxt.match(new RegExp('^' + retxt));
	
			if (match) {
				remtxt = remtxt.substring(match[0].length);
				return match[0];
			}
	
			return '';
		}
	
		var year = consume('\\d{4}');
		consume('-?');
		var month = consume('\\d{2}');
		consume('-?');
		var dateMonth = consume('\\d{2}');
	
		var date = new Date(
			parseInt(year, 10),
			parseInt(month, 10) - 1,
			parseInt(dateMonth, 10));
	
		return date;
	}
	
	function formatDateRange(start, end) {
		var startDate = parseDateFromGCalTime(start);
		var endDate = parseDateFromGCalTime(end);
		var dateString;
	
		if (startDate.getTime() == endDate.getTime())
		{
			dateString = formatDate(startDate, false, true);
		}
		else
		{
			var includeYear = startDate.getYear() != endDate.getYear();
			var includeMonth = includeYear || startDate.getMonth() != endDate.getMonth();
	
			var startDateString = formatDate(startDate, includeYear, includeMonth);
			var endDateString = formatDate(endDate, includeYear, true);
	
			dateString = startDateString + ' - ' + endDateString;
		}
	
		return dateString;
	}