﻿    var queryData = null;
    var period = 500;

    function sendQuery()
      {
      var baseURL = 'demo/demo.do?region=';
      var region = document.getElementById('region').value;
      var input = document.getElementById('input').value;
      var location = baseURL + region + '&input=' + encodeURIComponent(input);
      
      var sendButton = document.getElementById('sendButton');
      sendButton.disabled = true;
      
      var timeoutID = setTimeout('addDot()', period);
      
      var outputElement = document.getElementById('output');
      outputElement.innerHTML = '.';
      
      queryData = new QueryData(timeoutID, outputElement, sendButton);
      var ajax = new Ajax(location, onQuerySuccess, onQueryFailure, onQueryCompletion, true, queryData);
      ajax.execute();

      return false;
      }
      
    function QueryData(timeoutID, outputElement, sendButton)
      {
      this.timeoutID = timeoutID;
      this.outputElement = outputElement;
      this.sendButton = sendButton;
      }
      
    function addDot()
      {
      if (queryData != null)
        {
        var timeoutID = queryData.timeoutID;
        if (timeoutID != 0)
          {
          var outputElement = queryData.outputElement;
          outputElement.innerHTML += ' .';
          
          queryData.timeoutID = setTimeout('addDot()', period);
          }
        }
      }  

    function onQuerySuccess(responseText, status, statusText, userData)
      {
      userData.outputElement.innerHTML = responseText;
      }

    function onQueryFailure(status, statusText, userData)
      {
      var textStatus =  '';
      if (statusText != null)
        textStatus =  '\(' + statusText + ': ' + status + '\)';
        userData.outputElement.innerHTML = 'A problem occurred while trying to access schedule information' + textStatus + '.';
      }

    function onQueryCompletion(responseText, status, statusText, userData)
      {
      var timeoutID = userData.timeoutID;
      clearTimeout(timeoutID);
      userData.timeoutID = 0;

      var sendButton = userData.sendButton;
      sendButton.disabled = false;
      }

    function initializeRegion()
      {
      var uriFragment = window.top.location.search.substring(1);
      var region= getParameter(uriFragment, 'region');

      var options = document.getElementById('region').options;

      for (index = 0; index < options.length; ++index)
        {
        if (options[index].value == region)
          options[index].selected = true;
        }

      changeRegion(region);

      return false;
      }

    function changeRegion(region)
      {
      var input = '5th & lavaca to barton springs & kinney';
      
      if (region == 'bay')
        input = '1200 mission in sf to irving & 32nd';
      else if (region == 'boston')
        input = 'fenway park to hard rock cafe';
      else if (region == 'chicago')
        input = 'chicago board of trade to roosevelt & clark';
      else if (region == 'dallas')
        input = 'mckinney & hall to 2332 leonard st';
      else if (region == 'houston')
        input = 'hotel zaza to 2706 westheimer';
      else if (region == 'portland')
        input = 'sw barbur & sw hamilton to 400 sw stark';
      else if (region == 'seattle')
        input = '2nd & s jackson to e cherry & 15th';
      else if (region == 'socal')
        input = 'santa ana & fuller to disneyland';
      else if (region == 'tri')
        input = '534 morris park ave in bronx to carnegie hall';

      var inputElement = document.getElementById('input');
      inputElement.value = input;

      changeQueryTips(region);

      return false;
      }

    function changeQueryTips(region)
      {
      var regionTips = document.getElementById(region + 'Tips');
      if (regionTips == null)
        regionTips = document.getElementById('austinTips');
      else
        {
        var austinTips = document.getElementById('austinTips');
        austinTips.style.display = 'none';

        var bayTips = document.getElementById('bayTips');
        bayTips.style.display = 'none';

        var bostonTips = document.getElementById('bostonTips');
        bostonTips.style.display = 'none';

        var chicagoTips = document.getElementById('chicagoTips');
        chicagoTips.style.display = 'none';

        var dallasTips = document.getElementById('dallasTips');
        dallasTips.style.display = 'none';

        var houstonTips = document.getElementById('houstonTips');
        houstonTips.style.display = 'none';

        var portlandTips = document.getElementById('portlandTips');
        portlandTips.style.display = 'none';

        var seattleTips = document.getElementById('seattleTips');
        seattleTips.style.display = 'none';

        var socalTips = document.getElementById('socalTips');
        socalTips.style.display = 'none';

        var triTips = document.getElementById('triTips');
        triTips.style.display = 'none';
        }

      regionTips.style.display = 'inline';

      return false;
      }