	function Topic(section, title)
	{
		this.section = section;
		this.title = title;
	}
	var allTopics = new Array();
	var loaded;
	var thirdDlg;
	
	function createDialog(requestedTopic,file) {
			loadAndShowXML(file, requestedTopic);
	}


	var topicToShow;
	function loadAndShowXML(url, requestedTopic)
	{
		topicToShow = requestedTopic;
		if (! loaded)
		{
			httpRequest("GET", url, true, handleResponse, "dummy");
		}
		else {
			setDivContents();
		}
		
	}

	function setDivContents()
	{
		var pane = document.createElement("DIV");
		document.body.appendChild(pane);
		pane.style.cssText="display: none";
		var topic = allTopics[topicToShow];
		pane.innerHTML = topic.section;
			pane.style.width = "500px"; 	
			thirdDlg = new dijit.Dialog({
				title:topic.title,
				_duration:100
			},pane);
			thirdDlg.show();
	}

	function handleResponse()
	{
		if (request.readyState == 4)
		{
			if (request.status == 200 || 1)
			{
				var xmlDoc = request.responseXML;
				var root=xmlDoc.getElementsByTagName("Information")[0];

				var sections = root.getElementsByTagName("Section");
				for (var i=0; i< sections.length; i++)
				{
					var section = sections[i];
					sectionText = getElementValue(section, "Text");
					sectionTitle = getElementValue(section, "Title");
					allTopics[sectionTitle] = new Topic(sectionText, sectionTitle);
				}
		
				loaded = true;
			
				setDivContents();
			}
			else
			{
				alert(request.status);
			} 
		}
	}

	function getElementValue(node, elementName)
	{
	 var element = node.getElementsByTagName(elementName)[0];
	 return (element.firstChild.nodeValue);
	}

	  var resultsView = {
      cells: [[
         {name: 'Name', width:"125px",field: "riderName"},
         {name: 'Time', width:"125px", field: "time"},
         {name: 'Speed', width:"125px",  field: "speed"}
         ]] };
                // a grid layout is an array of views.
      var weeklayout = [ resultsView ];
      
  	  var sumView = {
      cells: [[
         {name: 'Year', width:"75px", field: "Year"},
          {name: 'Average Speed', width:"75px",  field: "avgSpeed"},
         {name: 'Fastest(mph)', width:"75px",  field: "fastestSpeed"},
         {name: 'Slowest(mph)', width:"75px",  field: "slowestSpeed"},
         {name: 'Average Time', width:"75px",  field: "avgTime"},
         {name: 'Fastest Time', width:"75px",  field: "fastestTime"},
         {name: 'Slowest Time', width:"75px",  field: "slowestTime"}             
         ]] };
                // a grid layout is an array of views.
      var ridersumlayout = [ sumView ];
      var riderView = {
      cells: [[
         {name: 'Date', width:"125px", field: "Date"},
         {name: 'Time', width:"125px",  field: "Time"},
         {name: 'Speed', width:"125px",  field: "Speed"}
          ]] };
                // a grid layout is an array of views.
      var riderlayout = [ riderView ];

    
var context = "/";
function updateRiderGrids(mid,name){
    document.getElementById('riderNameTitle').innerHTML = name;
	var grid = dijit.byId("riderGrid");
	var gridSum = dijit.byId("riderSumGrid");
	//
	var args ="?sproc=getRiderResults&headings=rider&args="+mid;
 	var urlstr = context+"GridDataHandler"+args;
//   var urlstr = "data/results.txt";
	var gridStore = new dojo.data.ItemFileWriteStore({url:urlstr});
	var newgmodel = new dojox.grid.data.DojoData(null, null, {store: gridStore, rowsPerPage:10, query: {Date: '*'},clientSort:true});
	grid.setModel(newgmodel);
	grid.refresh();
	grid.render(); 
	grid.startup();
	// Now do Summary
	args ="?sproc=getRiderSummary&headings=rsum&args="+mid;
	urlstr = context+"GridDataHandler"+args;
	gridStore = new dojo.data.ItemFileWriteStore({url:urlstr});
	newgmodel = new dojox.grid.data.DojoData(null, null, {store: gridStore, rowsPerPage:10, query: {Year: '*'},clientSort:true});
	gridSum.setModel(newgmodel);
	gridSum.refresh();
	gridSum.render(); 
	gridSum.startup();
}
function switchView(direction){
if(direction=='rider'){
	document.getElementById('resultsGrid').style.display = 'none';
} else {
	document.getElementById('resultsGrid').style.display = 'block';
}
}
function updateGrid(){
  var name = dojo.byId("riderName");
  var mid = dijit.byId("riderName").getValue();
  var week = dojo.byId("weekList");
  // Now decide which grids to show
  if(name.value.length>0&&week.value.length==0){
        switchView('rider');
        updateRiderGrids(mid,name.value);
  }
  if(name.value.length==0&&week.value.length>0){
        switchView('other');
        updateRiderGrids(mid,name.value);
        updateWeeklyGrid(week.value);
  }
   if(name.value.length==0&&week.value.length==0){
        switchView('other');
        getWeeklyGrid(week.value);
        updateRiderGrids('NULL','');
  }
  if(name.value.length>0&&week.value.length>0){
        switchView('other');
        updateWeeklyGrid(week.value);
        updateRiderGrids(mid,name.value);
  }  
}
function updateWeeklyGrid(week){
 var urlstr=context+"GridDataHandler?sproc=getWeeklyResults&headings=wlist&args='";
     urlstr+=week+"'";
    var gridStore = new dojo.data.ItemFileWriteStore({url:urlstr});
	var newgmodel = new dojox.grid.data.DojoData(null, null, {store: gridStore, rowsPerPage:10, query: {riderName: '*'},clientSort:true});
	var grid = dijit.byId("resultsGrid");
	grid.setModel(newgmodel);
	grid.refresh();
	grid.render(); 
	grid.startup();
}
function getWeeklyGrid(week){
 var urlstr=context+"GridDataHandler?sproc=getLatestResults&headings=wlist&args=";
    var gridStore = new dojo.data.ItemFileWriteStore({url:urlstr});
	var newgmodel = new dojox.grid.data.DojoData(null, null, {store: gridStore, rowsPerPage:10, query: {points: '*'},clientSort:true});
	var grid = dijit.byId("resultsGrid");
	grid.setModel(newgmodel);
	grid.refresh();
	grid.render(); 
	grid.startup();
}

