<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Sample Spreadsheet Gadget"
             description="Fun sample spreadsheet Gadget."
             author="Google Engineering"
             author_affiliation="Google Inc."
             author_email="visualization.api+spreadsheet@gmail.com" > 
<Require feature="idi"/>
<Require feature="locked-domain" />
</ModulePrefs>
<UserPref name="_table_query_url" display_name="Data source url" 
          required="true"/>
<UserPref name="_table_query_refresh_interval" 
          display_name="Data refresh interval (minutes)" 
          default_value="0" datatype="enum" required="false">
<EnumValue value="0" display_value="Do not refresh"/>
<EnumValue value="60" display_value="1"/>
<EnumValue value="300" display_value="5"/>
<EnumValue value="1800" display_value="30"/>
</UserPref>
<Content type="html"><![CDATA[

<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<div id="map_div" style="overflow: auto; width: 800px; height: 500px;"></div>

<script>

/**
 * Load the APIs and run sendQuery when the load is complete
 */
var gadgetHelper = null;
_IG_RegisterOnloadHandler(loadVisualizationAPI);
function loadVisualizationAPI() { 
  google.load("visualization", "1", {packages:["map"]});
  google.setOnLoadCallback(sendQuery);
}

/**
 * Create a query (shaped by the Gadget's user preferences), then 
 * send it to the spreadsheet data source. Also give the name of a 
 * function ("handleQueryResponse") to run once the spreadsheet data 
 * is retrieved:
 */
function sendQuery() {
  var prefs = new _IG_Prefs(); // User preferences 
  gadgetHelper = new google.visualization.GadgetHelper(); 
  var query = gadgetHelper.createQueryFromPrefs(prefs);
  query.send(handleQueryResponse);
} 

/**
 * The core logic. Process the spreadsheet data however you want. 
 * In this case, we create HTML to be presented back to the user. 
 * We'll use inline comments to provide a step-by-step description 
 * of what we're doing:
 */
function handleQueryResponse(response) {

  /**
   * Use the visualization GadgetHelper class to handle errors 
   */
  if (!gadgetHelper.validateResponse(response)) {
    return;     // Default error handling was done, just leave. 
  }

  /**
   * GET THE DATA FROM THE SPREADSHEET - sorry to scream in caps, but 
   * this is a key step
   */
  var data = response.getDataTable();
  //var mapData = new Array();
  
  /**
   * Process all Rows in the specified range
   */
  for (var row = 0; row < data.getNumberOfRows(); row++) {

    /**
     * Process the Columns in each Row
     */
    for (var col = 0; col < data.getNumberOfColumns(); col++) {

      /**
       * GET A DATA VALUE FROM THE RANGE - sorry again for screaming - but 
       * this is the next key step 
       */
       // data format: latitude, longitude, name.
		/*mapData[row][col] = data.getFormattedValue(row, col;) */
    }
  } 

  /**
   * Draw the map in the container div.
   */
     
  var map = new google.visualization.Map(document.getElementById('map_div'));
  map.draw(data, {showTip: true, showLine: true, lineWidth: 2});
  
 /*	var table = new google.visualization.Table(document.getElementById('table_div'));
	 table.draw(data, {showRowNumber: true});*/
  
 /* tableDiv.style.width = document.body.clientWidth + 'px';
  tableDiv.style.height = document.body.clientHeight + 'px'; */
}

/**
 * Define any supporting code you need 
 * (like this handy function to escape special characters for html output):
 */
function escapeHtml(text) {
  if (text == null) {
    return '';
  }
  return _hesc(text);
} 

</script> 
]]>
</Content>
</Module>
