anchor.diff:                      pattern:'^.{3,}'
                       placeholder:'Text that is shown when expanded'
                       required:'required'
  -                    onChange: do(idx) => (e) => @local.description_fields[idx].html = e.target.value; save(@local)
  -                    value: @local.description_fields[idx].html
  -                    style: description_field_style
  -
  -                  SPAN
  -                    style: {color: '#ccc', textDecoration: 'underline', fontSize: 12, cursor: 'pointer', position: 'absolute', top: 5, marginLeft: 20}
  +                    onChange: do(field,idx) => (e) => field.html = e.target.value; save(@local)
  +                    value: field.html
  +                    style: _.extend {}, description_field_style, {width: description_field_style.width - 45}]
  +                else
  +                  DIV 
  +                    style: 
  +                      fontSize: 18
  +                      fontWeight: 600
  +                      cursor: 'pointer'
  +                      marginTop: 12
  +                      marginLeft: 5
  +                      width: description_field_style.width - 45
  +                    onClick: do (field, field_open) => => toggleDescriptionFieldOpen(field, field_open)
  +                    field.label
  +
  +                DIV 
  +                  style: 
  +                    position: 'absolute'
  +                    right: 150
  +                    top: 12
  +
  +                  A
  +                    style: {color: '#aaa', textDecoration: 'underline', fontSize: 14, cursor: 'pointer', display: 'block'}
  +                    onClick: do (field, field_open) => => toggleDescriptionFieldOpen(field, field_open)
  +                    if field_open then 'close' else 'edit'
  +
  +                  A
  +                    style: {color: '#aaa', textDecoration: 'underline', fontSize: 14, cursor: 'pointer', display: 'block'}
                       onClick: do (idx) => =>
                         @local.description_fields.splice(idx, 1)
                         save @local
                       'delete'
   
  -          SPAN
  -            style: {color: '#bbb', cursor: 'pointer', fontSize: 14}
  -            onClick: => 
  -              console.log 'HIYA!'
  -              @local.description_fields.push({label: null, html: null})
  -              save @local
  -
  -            "+ "
  -            SPAN style: {textDecoration: 'underline'}, "expandable field"
  +            SPAN
  +              style: 
  +                color: '#aaa'
  +                cursor: 'pointer'
  +                fontSize: 18
  +                marginLeft: -18
  +
  +              onClick: => 
  +                new_id = 0
  +                for field in @local.description_fields
  +                  new_id += field.id  
  +                new_id += 1
  +                @local.description_fields.push {label: null, html: null, id: new_id}
  +                @local.open_fields.push new_id
  +                save @local
  +
  +              "+ "
  +              SPAN style: {textDecoration: 'underline', marginLeft: 7}, "Add expandable description section"
   
   
           DIV style: block_style,
  -          LABEL htmlFor:'cluster', style: label_style, 'Group (optional)'
  +          LABEL htmlFor:'cluster', style: label_style, 'Group (optional):'
             INPUT 
               id:'cluster'
               name:'cluster'
  
positive.code:               ProposalRoles key: @local
  
          DIV null,
            INPUT className:'button primary_button', type:'submit', value:"#{if @props.fresh then 'Publish' else 'Update'}", onClick: @saveProposal
  
  
  About = ReactiveComponent
  
negative.code: 
    checkAndSetHeight : ->
      scroll_height = @getDOMNode().scrollHeight
      max_height = @props.max_height or 400
      if scroll_height > @getDOMNode().clientHeight
        @local.height = Math.min scroll_height + 5, max_height
        save(@local)
  
    render : -> 
  