   selected: (->
     @get('cache')[@get 'value']
   ).property 'value'
-  _timeout: null
-  load: (->
-    clearTimeout @_timeout if @_timeout
-    @_timeout = null
-    
-    @_super (data) =>
+  load: ((parentChanged)->  
+    @_super parentChanged, (data) =>
       k = keys data
       k.sort()
       k.reverse()
-      @set 'options', k
-      @set 'cache', data
-      @_timeout = setTimeout (=> @load()), 60*1000#1 min
-  ).observes 'parentValue'
+      if not k.compareArrays(@get 'options')
+        @set 'options', k
+        @set 'cache', data
+      @_timeout = setTimeout (=> @load(false)), 60*1000#1 min
+  )
+  _load: (-> @load true).observes 'parentValue'
 }
 
 Weathermaps.current = Ember.Object.create {

  else
    ListController.extend {
      databaseurl: baseurl
      load: ( ->
        @_super()
        $.getJSON @get('databaseurl')+"/"+name+"s", (data) =>
          @set 'options', data
      )
    }
  controller.create(init)

Weathermaps.groups = createListController "group"
Weathermaps.maps = createListController "map", "group", {
  load: (->
    @_super (data) =>
       @set 'options', data
  ).observes 'parentValue'
}
Weathermaps.dates = createListController "date", "map", {
  default: 'first'
  load: (->
    @_super (data) =>
      data.sort()
      data.reverse()
      @set 'options', data
  ).observes 'parentValue'
}
Weathermaps.times = createListController "time", "date", {
  default: 'first'

      @set 'value', ''
      @set 'candidate', value
  
  load: (parentChanged)->
    #clear auto-update timer
    clearTimeout @_timeout if @_timeout
    @_timeout = null
    
    #reset data befor update
    value = @get 'value'
    if value
      @set 'candidate', value
    if parentChanged
      @set 'value', ''
      @set 'options', []

  _autoSelect: (() ->
    options = @get 'options'
