/* Courtesy of http://javascript.about.com/library/blqs.htm */
var qsParm = new Array();
function qs() {
  var query = window.location.search.substring(1);
  var parms = query.split('&');
  for (var i=0; i<parms.length; i++) {
    var pos = parms[i].indexOf('=');
    if (pos > 0) {
      var key = parms[i].substring(0,pos);
      var val = parms[i].substring(pos+1);
      qsParm[key] = val;
    }
  }
}

qsParm['branch'] = null;
qs();

var numDays = "60"; /* How many days to list */
/* No one should come to this page without having URL params, but we'll
   still initialize them ... default to TRL  */
var eventsNum = "90"; /* This will be replaced */
var branchName = "Toronto Reference"; /* This will be replaced */

/* This list is in E*vents numerical order.  It's close to alphabetical,
   but not quite (Merril and Osborne at the end).
*/
if (qsParm['branch']) {
  var branchcode = qsParm['branch'];
  switch(branchcode) {
  case "agincourt":
	  eventsNum = "0";
	  branchName = "Agincourt";
		branchPage = "hou_az_ag.jsp";
	  break;
  case "albert-campbell":
	  eventsNum = "1";
	  branchName = "Albert Campbell";
    branchPage = "hou_az_acd.jsp";
    break;
  case "albion":
	  eventsNum = "2";
	  branchName = "Albion";
    branchPage = "hou_az_ab.jsp";
    break;
  case "alderwood":
	  eventsNum = "3";
	  branchName = "Alderwood";
    branchPage = "hou_az_ad.jsp";
    break;
  case "amesbury-park":
	  eventsNum = "4";
	  branchName = "Amesbury Park";
    branchPage = "hou_az_ap.jsp";
    break;
  case "annette-street":
	  eventsNum = "5";
	  branchName = "Annette Street";
    branchPage = "hou_az_an.jsp";
    break;
  case "armour-heights":
	  // This is a guess: 6 returns nothing, I'm assuming no programs entered??
	  eventsNum = "6";
	  branchName = "Armour Heights";
    branchPage = "hou_az_ah.jsp";
    break;
  case "barbara-frum":
	  eventsNum = "7";
	  branchName = "Barbara Frum";
    branchPage = "hou_az_bf.jsp";
    break;
  case "bayview":
	  eventsNum = "8";
	  branchName = "Bayview";
    branchPage = "hou_az_by.jsp";
    break;
  case "beaches":
	  eventsNum = "9";
	  branchName = "Beaches";
    branchPage = "hou_az_be.jsp";
    break;
  case "bendale":
	  eventsNum = "10";
	  branchName = "Bendale";
    branchPage = "hou_az_bd.jsp";
    break;
  case "black-creek":
	  eventsNum = "11";
	  branchName = "Black Creek";
    branchPage = "hou_az_bc.jsp";
    break;
  case "bloor-gladstone":
	  eventsNum = "12";
	  branchName = "Bloor/Gladstone";
    branchPage = "hou_az_bl.jsp";
    break;
  case "brentwood":
	  eventsNum = "13";
	  branchName = "Brentwood";
    branchPage = "hou_az_br.jsp";
    break;
  case "bridlewood":
	  eventsNum = "14";
	  branchName = "Bridlewood";
    branchPage = "hou_az_brw.jsp";
    break;
  case "brookbanks":
	  eventsNum = "15";
	  branchName = "Brookbanks";
    branchPage = "hou_az_bb.jsp";
    break;
  case "burrows-hall":
	  eventsNum = "16";
	  branchName = "Burrows Hall";
    branchPage = "hou_az_bur.jsp";
    break;
  case "cedarbrae":
	  eventsNum = "17";
	  branchName = "Cedarbrae";
    branchPage = "hou_az_ced.jsp";
    break;
  case "centennial":
	  eventsNum = "18";
	  branchName = "Centennial";
    branchPage = "hou_az_ce.jsp";
    break;
  case "city-hall":
	  eventsNum = "19";
	  branchName = "City Hall";
    branchPage = "hou_az_ch.jsp";
    break;
  case "cliffcrest":
	  eventsNum = "20";
	  branchName = "Cliffcrest";
    branchPage = "hou_az_cc.jsp";
    break;
  case "college-shaw":
	  eventsNum = "21";
	  branchName = "College/Shaw";
    branchPage = "hou_az_cs.jsp";
    break;
  case "danforth-coxwell":
	  eventsNum = "22";
	  branchName = "Danforth/Coxwell";
    branchPage = "hou_az_da.jsp";
    break;
  case "davenport":
	  eventsNum = "23";
	  branchName = "Davenport";
    branchPage = "hou_az_dt.jsp";
    break;
  case "dawes-road":
	  eventsNum = "24";
	  branchName = "Dawes Road";
    branchPage = "hou_az_dr.jsp";
    break;
  case "deer-park":
	  eventsNum = "25";
	  branchName = "Deer Park";
    branchPage = "hou_az_dp.jsp";
    break;
  case "don-mills":
	  eventsNum = "26";
	  branchName = "Don Mills";
    branchPage = "hou_az_dm.jsp";
    break;
  case "downsview":
	  eventsNum = "27";
	  branchName = "Downsview";
    branchPage = "hou_az_do.jsp";
    break;
  case "dufferin-st-clair":
	  eventsNum = "28";
	  branchName = "Dufferin/St. Clair";
    branchPage = "hou_az_du.jsp";
    break;
  case "eatonville":
	  eventsNum = "29";
	  branchName = "Eatonville";
    branchPage = "hou_az_ea.jsp";
    break;
  case "eglinton-square":
	  eventsNum = "30";
	  branchName = "Eglinton Square";
    branchPage = "hou_az_es.jsp";
    break;
  case "elmbrook-park":
	  eventsNum = "31";
	  branchName = "Elmbrook Park";
    branchPage = "hou_az_eb.jsp";
    break;
  case "evelyn-gregory":
	  eventsNum = "32";
	  branchName = "Evelyn Gregory";
    branchPage = "hou_az_eg.jsp";
    break;
  case "fairview":
	  eventsNum = "33";
	  branchName = "Fairview";
    branchPage = "hou_az_fv.jsp";
    break;
  case "flemingdon-park":
	  eventsNum = "34";
	  branchName = "Flemingdon Park";
    branchPage = "hou_az_fp.jsp";
    break;
  case "forest-hill":
	  eventsNum = "35";
	  branchName = "Forest Hill";
    branchPage = "hou_az_fh.jsp";
    break;
  case "gerrard-ashdale":
	  eventsNum = "36";
	  branchName = "Gerrard/Ashdale";
    branchPage = "hou_az_ge.jsp";
    break;
  case "goldhawk-park":
	  eventsNum = "37";
	  branchName = "Goldhawk Park";
    branchPage = "hou_az_ghp.jsp";
    break;
  case "guildwood":
	  eventsNum = "38";
	  branchName = "Guildwood";
    branchPage = "hou_az_gw.jsp";
    break;
  case "high-park":
	  eventsNum = "39";
	  branchName = "High Park";
    branchPage = "hou_az_hp.jsp";
    break;
  case "highland-creek":
	  eventsNum = "40";
	  branchName = "Highland Creek";
    branchPage = "hou_az_hc.jsp";
	  break;
	case "hillcrest":
	  eventsNum = "41";
	  branchName = "Hillcrest";
    branchPage = "hou_az_hil.jsp";
    break;
  case "humber-bay":
	  eventsNum = "42";
	  branchName = "Humber Bay";
    branchPage = "hou_az_hb.jsp";
	  break;
	case "humber-summit":
	  eventsNum = "43";
	  branchName = "Humber Summit";
    branchPage = "hou_az_hs.jsp";
    break;
  case "humberwood":
	  eventsNum = "44";
	  branchName = "Humberwood";
    branchPage = "hou_az_hw.jsp";
    break;
  case "jane-dundas":
	  eventsNum = "45";
	  branchName = "Jane/Dundas";
    branchPage = "hou_az_jd.jsp";
    break;
  case "jane-sheppard":
	  eventsNum = "46";
	  branchName = "Jane/Sheppard";
    branchPage = "hou_az_js.jsp";
    break;
  case "jones":
	  eventsNum = "47";
	  branchName = "Jones";
    branchPage = "hou_az_jo.jsp";
	  break;
	case "kennedy-eglinton":
	  eventsNum = "48";
	  branchName = "Kennedy/Eglinton";
    branchPage = "hou_az_ke.jsp";
    break;
  case "leaside":
	  eventsNum = "49";
	  branchName = "Leaside";
    branchPage = "hou_az_le.jsp";
	  break;
	case "lillian-h-smith":
	  eventsNum = "50";
	  branchName = "Lillian H. Smith";
    branchPage = "hou_az_ls.jsp";
    break;
  case "locke":
	  eventsNum = "51";
	  branchName = "Locke";
    branchPage = "hou_az_lo.jsp";
    break;
  case "long-branch":
	  eventsNum = "52";
	  branchName = "Long Branch";
    branchPage = "hou_az_lb.jsp";
    break;
  case "main-street":
	  eventsNum = "53";
	  branchName = "Main Street";
    branchPage = "hou_az_ma.jsp";
    break;
  case "malvern":
	  eventsNum = "54";
	  branchName = "Malvern";
    branchPage = "hou_az_mal.jsp";
    break;
  case "maria-a-shchuka":
	  eventsNum = "55";
	  branchName = "Maria A. Shchuka";
    branchPage = "hou_az_mas.jsp";
    break;
  case "maryvale":
	  eventsNum = "56";
	  branchName = "Maryvale";
    branchPage = "hou_az_mrv.jsp";
    break;
  case "mcgregor-park":
	  eventsNum = "57";
	  branchName = "McGregor Park";
    branchPage = "hou_az_mcg.jsp";
    break;
  case "mimico-centennial":
	  eventsNum = "58";
	  branchName = "Mimico Centennial";
    branchPage = "hou_az_mi.jsp";
    break;
  case "morningside":
	  eventsNum = "59";
	  branchName = "Morningside";
    branchPage = "hou_az_ms.jsp";
    break;
  case "mount-dennis":
	  eventsNum = "60";
	  branchName = "Mount Dennis";
    branchPage = "hou_az_md.jsp";
    break;
  case "mount-pleasant":
	  eventsNum = "61";
	  branchName = "Mount Pleasant";
    branchPage = "hou_az_mp.jsp";
    break;
  case "new-toronto":
	  eventsNum = "62";
	  branchName = "New Toronto";
    branchPage = "hou_az_nt.jsp";
    break;
  case "north-york-central":
	  eventsNum = "63";
	  branchName = "North York Central";
    branchPage = "hou_az_nycl.jsp";
    break;
  case "northern-district":
	  eventsNum = "64";
	  branchName = "Northern District";
    branchPage = "hou_az_nd.jsp";
    break;
  case "northern-elms":
	  eventsNum = "65";
	  branchName = "Northern Elms";
    branchPage = "hou_az_ne.jsp";
    break;
  case "oakwood-village":
	  eventsNum = "66";
	  branchName = "Oakwood Village Library and Arts Centre";
    branchPage = "hou_az_ov.jsp";
    break;
  case "palmerston":
	  eventsNum = "67";
	  branchName = "Palmerston";
    branchPage = "hou_az_pm.jsp";
    break;
  case "pape-danforth":
	  eventsNum = "68";
	  branchName = "Pape/Danforth";
    branchPage = "hou_az_pa.jsp";
    break;
  case "parkdale":
	  eventsNum = "69";
	  branchName = "Parkdale";
    branchPage = "hou_az_pk.jsp";
    break;
  case "parliament":
	  eventsNum = "70";
	  branchName = "Parliament";
    branchPage = "hou_az_pl.jsp";
    break;
  case "perth-dupont":
	  eventsNum = "71";
	  branchName = "Perth/Dupont";
    branchPage = "hou_az_pe.jsp";
    break;
  case "pleasant-view":
	  eventsNum = "72";
	  branchName = "Pleasant View";
    branchPage = "hou_az_pv.jsp";
    break;
  case "port-union":
	  eventsNum = "73";
	  branchName = "Port Union";
    branchPage = "hou_az_pu.jsp";
    break;
  case "queen-saulter":
	  eventsNum = "74";
	  branchName = "Queen/Saulter";
    branchPage = "hou_az_qs.jsp";
    break;
  case "rexdale":
	  eventsNum = "75";
	  branchName = "Rexdale";
    branchPage = "hou_az_rx.jsp";
    break;
  case "richview":
	  eventsNum = "76";
	  branchName = "Richview";
    branchPage = "hou_az_ri.jsp";
    break;
  case "riverdale":
	  eventsNum = "77";
	  branchName = "Riverdale";
    branchPage = "hou_az_rd.jsp";
    break;
  case "runnymede":
	  eventsNum = "78";
	  branchName = "Runnymede";
    branchPage = "hou_az_rn.jsp";
    break;
  case "s-walter-stewart":
	  eventsNum = "79";
	  branchName = "S. Walter Stewart";
    branchPage = "hou_az_sws.jsp";
    break;
  case "st-clair-silverthorn":
	  eventsNum = "80";
	  branchName = "St. Clair/Silverthorn";
    branchPage = "hou_az_si.jsp";
    break;
  case "st-james-town":
	  eventsNum = "81";
	  branchName = "St. James Town";
    branchPage = "hou_az_sj.jsp";
    break;
  case "st-lawrence":
	  eventsNum = "82";
	  branchName = "St. Lawrence";
    branchPage = "hou_az_sl.jsp";
    break;
  case "sanderson":
	  eventsNum = "83";
	  branchName = "Sanderson";
    branchPage = "hou_az_sa.jsp";
    break;
  case "spadina-road":
	  eventsNum = "84";
	  branchName = "Spadina Road";
    branchPage = "hou_az_sp.jsp";
    break;
  case "steeles":
	  eventsNum = "85";
	  branchName = "Steeles";
    branchPage = "hou_az_st.jsp";
    break;
  case "swansea-memorial":
	  // Guessing ...
	  eventsNum = "86";
	  branchName = "Swansea Memorial";
    branchPage = "hou_az_sw.jsp";
    break;
  case "taylor-memorial":
	  eventsNum = "87";
	  branchName = "Taylor Memorial";
    branchPage = "hou_az_ta.jsp";
	  break;
	case "thorncliffe":
	  eventsNum = "88";
	  branchName = "Thorncliffe";
    branchPage = "hou_az_th.jsp";
    break;
  case "todmorden-room":
	  eventsNum = "89";
	  branchName = "Todmorden Room";
    branchPage = "hou_az_tod.jsp";
	  break;
	case "toronto-reference":
	  eventsNum = "90";
	  branchName = "Toronto Reference";
    branchPage = "hou_az_trl.jsp";
	  break;
	case "urban-affairs":
	  eventsNum = "91";
	  branchName = "Urban Affairs";
    branchPage = "hou_az_urb.jsp";
	  break;
	case "victoria-village":
	  eventsNum = "92";
	  branchName = "Victoria Village";
    branchPage = "hou_az_vv.jsp";
    break;
  case "weston":
	  eventsNum = "93";
	  branchName = "Weston";
    branchPage = "hou_az_we.jsp";
    break;
  case "woodside-square":
	  eventsNum = "94";
	  branchName = "Woodside Square";
    branchPage = "hou_az_ws.jsp";
    break;
  case "woodview-park":
	  eventsNum = "95";
	  branchName = "Woodview Park";
    branchPage = "hou_az_wp.jsp";
    break;
  case "wychwood":
	  eventsNum = "96";
	  branchName = "Wychwood";
    branchPage = "hou_az_wy.jsp";
    break;
  case "york-woods":
	  eventsNum = "97";
	  branchName = "York Woods";
    branchPage = "hou_az_yw.jsp";
    break;
  case "yorkville":
	  eventsNum = "98";
	  branchName = "Yorkville";
    branchPage = "hou_az_yo.jsp";
    break;
	// eventsNum = "99" // "Library 100" by E*vents naming!
	// eventsNum = "100" // "P Staff Training"
  case "merril-collection":
	  eventsNum = "101";
	  branchName = "Merril Collection of Science Fiction, Speculation & Fantasy";
    branchPage = "hou_az_me.jsp";
    break;
  case "osborne-collection":
	  eventsNum = "102";
	  branchName = "Osborne Collection of Early Children's Books";
    branchPage = "hou_az_os.jsp";
	  break;
	// eventsNum = "999" // "All Branches"
	default:
	  eventsNum = "90";
	  branchName = "Toronto Reference";
    branchPage = "hou_az_trl.jsp";
	  break;
  }
}

/* This comment block supplied by E*vanced's example file:
There are various examples in books and on the Internet for handling XML in IE and Firefox.
The following example uses the zxml.js include file.  The include file handles the differences between the various browsers and contains common functions calls that handle those differences.

The book "Professional AJAX" explains the function calls (http://www.wrox.com/WileyCDA/WroxTitle/productCd-0471777781,descCd-download_code.html).
Examples from the same author: http://www.nczonline.net/downloads and http://www.nczonline.net/downloads/zXml.zip
There are other similiar toolkits on the Internet that have single functions to handle the various browsers in order to make the code browser independent.
*/

function displayEvents(libNum,ageGroup)
{
	// Use the URL switches to customize the data that is returned.
	var xmlcalendarURL="http://" + location.hostname + "/evanced/lib/eventsxml.asp?dm=exml&lib=" + libNum + "&ag=" + ageGroup + "&nd=" + numDays;

	//REPLACE the path of xslcalendarURL with the path to your XSL formatting file.
	//var xslcalendarURL="http://localhost/xmlexample/eventsxml.xsl"
	var xslcalendarURL="current.xsl";

	//This is for Firefox
	try {
		netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
	} catch (e) {
	}

	//Use HTTP to get the XML data as a string
	var oXmlHttp = zXmlHttp.createRequest();
	oXmlHttp.open("get", xmlcalendarURL, false);
	oXmlHttp.send(null);

	// Create and load the XMLDOM with the resulting HTTP request data
	var clientXMLDOM = zXmlDom.createDocument();
	clientXMLDOM.async = false;
	clientXMLDOM.loadXML(oXmlHttp.responseText);

	//Use the same HTTP object to get the XSL data as a string in case it resides on a separate server or domain
	oXmlHttp.open("get", xslcalendarURL, false);
	oXmlHttp.send(null);

	//Create and load a new XMLDOM with the XSL data
	var clientStyleSheet = zXmlDom.createDocument();
	clientStyleSheet.async = false;
	clientStyleSheet.loadXML(oXmlHttp.responseText);


	//Transform the XML and XSL and save it to a variable
	var htmloutput = zXslt.transformToText(clientXMLDOM, clientStyleSheet);

	//Write the transformed data
	document.write(htmloutput);
}

function displayOngoing(libNum)
{
	// Use the URL switches to customize the data that is returned.
	var xmlcalendarURL="http://" + location.hostname + "/evanced/lib/eventsxml.asp?dm=xml&ongoing=2&nd=60&lib=" + libNum;

	//REPLACE the path of xslcalendarURL with the path to your XSL formatting file.
	//var xslcalendarURL="http://localhost/xmlexample/eventsxml.xsl"
	var xslcalendarURL="ongoing.xsl";

	//This is for Firefox
	try {
		netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
	} catch (e) {
	}

	//Use HTTP to get the XML data as a string
	var oXmlHttp = zXmlHttp.createRequest();
	oXmlHttp.open("get", xmlcalendarURL, false);
	oXmlHttp.send(null);

	// Create and load the XMLDOM with the resulting HTTP request data
	var clientXMLDOM = zXmlDom.createDocument();
	clientXMLDOM.async = false;
	clientXMLDOM.loadXML(oXmlHttp.responseText);

	//Use the same HTTP object to get the XSL data as a string in case it resides on a separate server or domain
	oXmlHttp.open("get", xslcalendarURL, false);
	oXmlHttp.send(null);

	//Create and load a new XMLDOM with the XSL data
	var clientStyleSheet = zXmlDom.createDocument();
	clientStyleSheet.async = false;
	clientStyleSheet.loadXML(oXmlHttp.responseText);


	//Transform the XML and XSL and save it to a variable
	var htmloutput = zXslt.transformToText(clientXMLDOM, clientStyleSheet);

	//Write the transformed data
	document.write(htmloutput);
}

function cleanup() {
	/* Fix E*vents output */
	a_times = new Array();
	a_times = getElementsByClassName("event_time");
	for (i = 0 ; i < a_times.length ; i++) {
		/* Replace leading zeroes on times with two non-breaking spaces (so the times line up vertically) */
		a_times[i].innerHTML = a_times[i].innerHTML.replace(/^0/,'&nbsp;&nbsp;');
		/* "endtime" (but not starting "time") is supplied in a "N:NN:00 (A|P)M" format, lose the :00 */
		a_times[i].innerHTML = a_times[i].innerHTML.replace(/(.:..):00/,'$1');
	}
	
	a_desc = new Array();
	a_desc = getElementsByClassName("event_desc");
	for (i = 0 ; i < a_desc.length ; i++) {
		/* Replace &lt;br&gt; with <br> */
		a_desc[i].innerHTML = a_desc[i].innerHTML.replace(/&lt;br \/&gt;/gi,'<br />');
		/* Make stuff starting with "http://" or "https://" a live link */
		a_desc[i].innerHTML = a_desc[i].innerHTML.replace(/(https?:\/\/[^ ]*\.[^ ]*)/gi,'<a href="$1">$1</a>');
		/*Replace &amp;#9; with '' */
		a_desc[i].innerHTML = a_desc[i].innerHTML.replace(/&amp;#9;/g,'');
	}
	
	a_odate = new Array();
	a_odate = getElementsByClassName("ongoing_event_date");
	for (i = 0 ; i < a_odate.length ; i++) {
		/* remove day-of-week */
		a_odate[i].innerHTML = a_odate[i].innerHTML.replace(/(Monday |Tuesday |Wednesday |Thursday |Friday | Saturday |Sunday )/g,'');
	}
}