/* Copyright © Pluck Corporation 2008. This software code and related intellectual property are the property of Pluck Corporation and are licensed for use solely on designated websites. Any distribution, copying, or other use of this intellectual property other than pursuant to a written agreement with Pluck Corporation is strictly prohibited. All Rights Reserved. */
// THIS FILE IS AUTOGENERATED. DO NOT EDIT THIS FILE DIRECTLY.
if (typeof(slwidgets) === 'undefined') {
  slwidgets = {};
}
if (typeof(slwidgets.widgetLoader) === 'undefined') {
  slwidgets.widgetLoader = {};
  (function(){
    // the local variable we'll use to queue up load calls
    var callbacks = [];
    // keeps track of what scripts we've already added
    var addedScripts = {};
    // have we added our onload handler before?
    var onLoadHandlerAdded = false;
    // called to check if every url is loaded
    var onLoadHandler = function(){
      // check that every url is loaded
      for (url in addedScripts) {
        if (addedScripts[url] == false) {
          // found a url that hasn't loaded, don't proceed
          return;
        }
      }
      // every url is loaded, so call all the callbacks
      for (var callbackIndex = 0; callbackIndex < callbacks.length; callbackIndex++) {
        callbacks[callbackIndex]();
      }
      // we've called all the callbacks, don't call them again
      callbacks = [];
    };
    
    var addUrlHandler = function(url) {
        // check to see if we've added this script before
        if (url in addedScripts) {
          // we've added it before, short circuit adding the script node to the head
          onLoadHandler();
          return;
        }
        // we've added the script, but haven't loaded it yet
        addedScripts[url] = false;
        // there should only be one head node
        var headNode = document.getElementsByTagName("head")[0];
        // make the script node
        var scriptNode = document.createElement("script");
        scriptNode.setAttribute("src", url);
        // if we're using Internet Explorer, use the onreadystatechange event; otherwise, use onload
        if ((/msie/i).test(navigator.userAgent)) {
          scriptNode.onreadystatechange = function(){
            if (this.readyState === 'loaded' || this.readyState === 'complete') {
              slwidgets.widgetLoader.requestComplete(url);
            }
          };
        } else {
          scriptNode.setAttribute("onload", "javascript:slwidgets.widgetLoader.requestComplete('" + url + "');");
        }
        headNode.appendChild(scriptNode);
    };
    
    slwidgets.widgetLoader.load = function(urls, callback){
        if (typeof(urls).length === 'undefined') {
            urls = [urls];
        }
        for (var i=0; i < urls.length; i++) {
            addUrlHandler(urls[i]);
        }
        
        // add the callback to our list of callbacks
        callbacks.push(callback);
        onLoadHandler();
    };
    
    slwidgets.widgetLoader.requestComplete = function(urlThatFinished){
      // set this url to loaded so our onload handler can check to make sure everything was loaded  before calling the callbacks
      addedScripts[urlThatFinished] = true;
      // check to see if we're done
      onLoadHandler();
    }
    
    slwidgets.widgetLoader.addWidgetDiv = function(){
        if (typeof(PLUCKSL_WIDGET_DIV) === 'string') {
            var id = PLUCKSL_WIDGET_DIV;
            delete PLUCKSL_WIDGET_DIV
            return id;
        } else if (typeof(PLUCKSLOLD_WIDGET_DIV) === 'string') {
            var id = PLUCKSLOLD_WIDGET_DIV;
            PLUCKSLOLD_WIDGET_DIV = false;
            return id;
        }
      var id = "widgetDiv-" + Math.random() + '-' + Math.random();
      document.write('<div id="' + id + '"><\/div>');
      return id;
    };
  })();
}
if (typeof(slwidgets.getServerBaseUrl) === 'undefined') {
	slwidgets.getServerBaseUrl = function(url){
		return 'http://sitelife.fox.com/ver1.0';
	};
}

var PLUCKSL_WIDGET_OPTIONS_DEFAULT = {"groupKey":"","urls":false,"templateId":"","remoteTemplateUrl":"","useDefaultStylesheet":"true"};
if (typeof window.slMiniMemberListWidget == 'undefined') {
	slMiniMemberListWidget = function() { }
};

(function(){
	var widgetId = slwidgets.widgetLoader.addWidgetDiv();
var localOptions = {};
if (typeof(PLUCKSL_WIDGET_OPTIONS) !== 'undefined') { localOptions = PLUCKSL_WIDGET_OPTIONS; }
var localDefaultOptions = PLUCKSL_WIDGET_OPTIONS_DEFAULT;
var localEvents = {};
if (typeof(PLUCKSL_WIDGET_EVENTS) !== 'undefined') { localEvents = PLUCKSL_WIDGET_EVENTS; }
	slwidgets.widgetLoader.load([slwidgets.getServerBaseUrl(window.location.domain) +'/content/widgets/globalOptions.js'], function() {
	    if (typeof slMiniMemberListWidget.__code === 'undefined') {

		    slMiniMemberListWidget.__code = true;
slMiniMemberListWidget.prototype = new slwidgets.slWidgetBase();

slMiniMemberListWidget.prototype.template = '<div class="slMembersBox slContainer2"\>\n<div class="slHeader"\><div class="slHeader_Right"\><h3 class="slSectionTitle"\>Members</h3\></div\></div\>\n<div class="slContent"\>\n\t<ul class="slTabs"\>\n\t\t<li {if memberSort === \'latest\'} class="slSelected"{/if}\><a href="javascript:void(0);" onclick="WIDGETINSTANCE.showLatest()"\>Latest</a\></li\>\n\t\t<li {if memberSort === \'longest\'} class="slSelected"{/if}\><a href="javascript:void(0);" onclick="WIDGETINSTANCE.showLongest()"\>Original</a\></li\>\n\t</ul\>\n\t<ul class="slItems"\>\n\t\t{for member in members}\n\t\t<li\><a href="${member.User.PersonaUrl}" title="${member.User.DisplayName}"\><img alt="${member.User.DisplayName}" src="${member.User.AvatarPhotoUrl}"/\></a\></li\>\n\t\t{/for}\n\t</ul\>\n\t<div class="slClear"\></div\>\n</div\>\n<div class="slFooter"\><div class="slFooter_Right"\>\n\t<a href="${urls.groups.manageMembers(options.groupKey)}"\>View{if totalMembers \> 1} all{/if} ${totalMembers} member{if totalMembers \> 1}s{/if} &raquo</a\>\n</div\></div\>\n</div\>\n';

slMiniMemberListWidget.prototype.renderMembers = function(responses) {
    this.context.totalMembers = 0;
    this.context.members = [];
    if (responses && responses.length > 0 && responses[0] && responses[0].CommunityGroupMembershipPage) {
        var membershipPage = responses[0].CommunityGroupMembershipPage;
        this.context.totalMembers = membershipPage.NumberOfCommunityGroupMemberships;
        this.context.members = membershipPage.CommunityGroupMemberships;
    }
    this.rerender();
};

slMiniMemberListWidget.prototype.sendMembershipRequest = function(sort) {
    // most recent members first
    var membershipRequest = new CommunityGroupMembershipPage(new CommunityGroupKey(this.context.options.groupKey), 8, 1, sort,
        new MembershipTier('All'));
    // save this for later
    var me = this;
    this.sendRequests([membershipRequest], function(batchResponse) {
        if (batchResponse && batchResponse.Responses) {
            me.renderMembers(batchResponse.Responses);
        }
    })
};

slMiniMemberListWidget.prototype.addRequests = function() {
    this.autoRender = false;
    this.showLatest();
};

slMiniMemberListWidget.prototype.showLatest = function() {
    this.context.memberSort = 'latest';
    this.sendMembershipRequest('TimeStampDescending');
};

slMiniMemberListWidget.prototype.showLongest = function() {
    this.context.memberSort = 'longest';
    this.sendMembershipRequest('TimeStampAscending');
};};
	    PluckSlWidget.runWidget('slMiniMemberListWidget', widgetId, localDefaultOptions, localOptions, localEvents);
    });
})();

