////////////////////////////////////////////////
//
// Group Submitter
// Marcus Phillips - April 2009

var group_submitter = {};
group_submitter.make = function( model_options ){
  model_options = lu.defaulted(model_options, {});

  var group_submitter = {};
  group_submitter.model = {};
  group_submitter.model.channel = model_options.channel;
  group_submitter.model.submit = function( group, options ){
    options = lu.defaulted(options, {});
    var submission_options = {};
    if( options.on_success ){ submission_options.on_success = options.on_success; }
    if( model_options.ref_override ){ submission_options.ref_override = model_options.ref_override; }
    group.submit_channels(group_submitter.model.channel, submission_options);
  };




  ////////////////////////////////////////
  //
  // renderers (pairs of coupled views/controllers)

  group_submitter.views = {};



  ////////////////////////////////////////
  // standard view

  group_submitter.views.standard = function( view_options ){
    view_options = lu.defaulted(view_options, {});
    // controller

    var on_done_thanking = function(){
      if( view_options.on_done_sharing ){
        $(standard_view).find('.group_submission_thanks').slideUp();
        $(standard_view).find('#group_submission_icons' ).show();
        view_options.on_done_sharing();
      }
    };
    var on_click_group_icon = function( group ){
      group_submitter.model.submit(group, {'on_success':on_successful_submit});
      $(standard_view).find('.group_submission_thanks_'+group.puid).slideDown();
      $(standard_view).find('#group_submission_icons' ).hide();
      //setTimeout(on_done_thanking, 5000);
    };
    var on_successful_submit = function(response){
      if( view_options.on_successful_submit ){
        view_options.on_successful_submit();
      }
    };



    // templates
    var standard_view = function(){
      var group_submission_box = DIV({'id':'group_submission_box'});
      var group_submission_icons = DIV({'id':'group_submission_icons'});
      var group_submission_thanks = DIV({'id':'group_submission_thanks_holder'});
      var stock_group_puids = [];
      $.each(config.SLIDECOM_STOCK_GROUPS, function(which_group, each_group){
        stock_group_puids.push(each_group.puid);
        $(group_submission_icons).append(standard_view.group_icon(each_group));
        $(group_submission_thanks).append(DIV({'class':'group_submission_thanks group_submission_thanks_'+each_group.puid, 'style':'display:none;text-align:center;'},
          H3({},translate('thanks_for_submission_to_group')),
          H3({},A({'href':each_group.link, 'style':'text-decoration:underline'},translate('visit_shared_group', each_group.display_name)))
        ));
      });
      $(group_submission_box).append(group_submission_icons);
      $(group_submission_box).append(group_submission_thanks);
      return group_submission_box;
    };
    standard_view.group_icon = function( group ){
      return SPAN({'class':'group_submitter_icon'},
        group.render_mugshot({'image_height': 100, 'image_width': 100, 'frame':true, 'frame_height':110, 'frame_width':110, onclick:function(){on_click_group_icon(group);}}),
        SPAN({'class':'group_submitter_icon_subtitle'},
          group.display_name
        )
      );
    };

    return standard_view();
  };

  return group_submitter;
};

