var CensusTracts = function(){
  	var censusTractLoader;
    var censusTracts;
    var censusTractCache;
    var qualifiedColors;
    var infoTableHTML, infoTableTemplate;
    var searchURL;
    
    return{
        
            init: function(){
                censusTractLoader = new Ext.data.JsonStore({
                                url: 'findByBounds.do',
                                fields: ['id', 'fips', 'qualification', 'encodedPoints', 'encodedLevels','metro']
                              });
                     //census tracts
                 censusTracts = new Ext.util.MixedCollection(
                                                                        false,
                                                                        function(obj){
                                                                                  return obj.id;
                                                                         });
                                                                         
                 qualifiedColors= ["#cccccc","#ffb500", "#ff0000"];
                 searchURL='data.do';
                 infoTableHTML = '<table>' +
                                                '<tr><td>Census Tract:</td><td>{fips}</td></tr>' +
                                                '<tr><td>Status:</td><td>{status}</td></tr>' +
                                                '<tr><td>Distressed - Poverty Rate:</td><td>{poverty_rate}</td></tr>' +
                                                '<tr><td>Distressed - Median Family Income Ratio:</td><td>{mfi}</td></tr>' +
                                                '<tr><td>Distressed - Unemployment Rate:</td><td>{unemployment}</td></tr>' +
                                                '<tr><td>MSA:</td><td>{msa}</td></tr>' +
                                                '<tr><td>State:</td><td>{state}</td></tr>' +
                                                '<tr><td>2000 Population:</td><td>{2000pop}</td></tr>' +
                                                '<tr><td>Tract Median Family Income ($):</td><td>{tractmfi}</td></tr>' +
                                                '<tr><td>MSA Median Family Income($):</td><td>{msamfi}</td></tr>' +
                                                '<tr><td>State Median Family Income ($):</td><td>{statemfi}</td></tr>' +
                                            '</table>';
                
                infoTableTemplate = new Ext.DomHelper.Template(infoTableHTML);
                infoTableTemplate.compile();
               },
		
             getQualifiedColors: function(){
                    return  qualifiedColors;
             },
       
              getLoader: function(){
                return  censusTractLoader;
              },
              
		     getZoomLevels: function(){
		              return{
  		                  minZoom      : 12,
		                  normalZoom : 14,
		                  maxZoom     : 17 
		              }
		     },
		     
              getObjectList: function(){
                  return censusTracts;
              },
              
              getSearchURL: function(){
                  return searchURL;
              },
              
            getInfoWindowText: function(censusText){           
                     var obj = Ext.util.JSON.decode(censusText);
                     return infoTableTemplate.applyTemplate(obj );
            }
    }
}