var CampaignObject = {

    getCampaigns: function(remoteUrl, params, container) {
        var id = Math.floor(Math.random()*10000);
        var jsonObject;
        $j.getJSON(remoteUrl,
              {
                id: "100",
                method: "campaign.getCampaigns",
                params: params
              },

              function(data) {
                  if (data.result.length == 0) {
                      $j('.related-campaigns').hide();
                      return;
                  } 
                  $j.each(data.result, function (index, value) {
                      var campaign = 'campaign' + value.CampaignId;
                      $j(container).append('<div id="' + campaign + '" class="campaign"></div>');
                      var campaignHTML = '', titleHTML = '', thumbnailHTML = '', descriptionHTML = '', urlHTML = '';
                         
                      if (CampaignObject.checkField(value.AbsoluteUrl)) {
                          fullPathUrl = value.AbsoluteUrl
                          if (CampaignObject.checkField(value.Title)) {
                              titleHTML ='<span class="campaignTitle"><a href="' + fullPathUrl + '">' + value.Title + "</a></span>"; 
                          }
                          if (CampaignObject.checkField(value.FullThumbnailImgUrl)) {
                              thumbnailHTML = '<span class="campaignThumbnail"><a href="' + fullPathUrl + '"><img src="' + value.FullThumbnailImgUrl + '" /></a></span>';
                          }
                          if (CampaignObject.checkField(value.AbsoluteUrl)) {
                              urlHTML = '<span class="campaignUrl"><a href="' + fullPathUrl + '">' + fullPathUrl + '</a></span>';
                          }
                      } else {
                          if (CampaignObject.checkField(value.Title)) {
                              titleHTML ='<span class="campaignTitle">' + value.Title + "</span>"; 
                          }
                          if (CampaignObject.checkField(value.FullThumbnailImgUrl)) {
                              thumbnailHTML = '<span class="campaignThumbnail"><img src="' + value.FullThumbnailImgUrl + '" /></span>';
                          }
                      }
                      if (CampaignObject.checkField(value.Description)) {
                          descriptionHTML = '<span class="campaignDescription">' + value.Description + '</span>'; 
                      }
                      $j('#' + campaign).html(titleHTML + thumbnailHTML + urlHTML + descriptionHTML);
                  });
                });
    },
    
    getCampaignActions: function(remoteUrl, params, container) {
        var id = Math.floor(Math.random()*10000);
        var jsonObject;
        $j.getJSON(remoteUrl,
            {
            id: id,
            method: "campaignActions.getCampaignActions",
            params: params
            },
            function(data) {
                    $j.each(data.result, function (index, value) {
                        var campaignAction = 'campaignAction' + value.ActionLogId;
                        $j(container).append('<div id="' + campaignAction + '" class="campaignAction"></div>');
                        var titleHTML = '', actionTypeHTML = '', absoluteActionUrlHTML = '', relativeTimeHTML = '', actionAvatarClass = '', firstNameHTML = '', userAvatarHTML = '', campaignUrlHTML = '', actionTimeHTML = '';
                        if (CampaignObject.checkField(value.Url)) {
                            var fullPathUrl = value.AbsoluteUrl + value.Url;

                            if (CampaignObject.checkField(value.Title)) {
                                titleHTML ='<span class="campaignActionTitle"><a href="' + fullPathUrl + '">' + value.Title + "</a></span>";
                            }
                            if (CampaignObject.checkField(value.ActionType)) {
                                if (CampaignObject.checkField(value.Comment)) {
                                    actionTypeHTML = '<span class="campaignActionType"> ' + value.Comment + '</span>';
                                }

                                //this is the class name you use to get the action avatar (e.g., class="SignPetition")
                                actionAvatarClass = 'class="' + value.ActionType.replace(/ /g, "") + '"';
                            }
                            if (CampaignObject.checkField(value.FirstName)) {
                                firstNameHTML = '<span class="campaignFirstName">' + value.FirstName + '</span>';
                            }
                            if (CampaignObject.checkField(value.AvatarUrl)) {
                                userAvatarHTML ='<span class="campaignUserAvatar"><a href="' + fullPathUrl + '"><img src="' + value.AvatarUrl + '" /></a></span>';
                            }
                        } else {
                            if (CampaignObject.checkField(value.Title)) {
                                titleHTML ='<span class="campaignActionTitle">' + value.Title + "</span>";
                            }
                            if (CampaignObject.checkField(value.ActionType)) {
                                if (CampaignObject.checkField(value.Comment)) {
                                    actionTypeHTML = '<span class="campaignActionType"> ' + value.Comment + '</span>';
                                }

                                //this is the class name you use to get the action avatar (e.g., class="SignPetition")
                                actionAvatarClass = 'class="' + value.ActionType.replace(/ /g, "") + '"';
                            }
                            if (CampaignObject.checkField(value.FirstName)) {
                                firstNameHTML = '<span class="campaignFirstName">' + value.FirstName + '</span>';
                            }
                            if (CampaignObject.checkField(value.AvatarUrl)) {
                                userAvatarHTML ='<span class="campaignUserAvatar"><img src="' + value.AvatarUrl + '" /></span>';
                            }
                        }

                        if (CampaignObject.checkField(value.AbsoluteActionUrl) && CampaignObject.checkField(value.LinkDescription)) {
                            absoluteActionUrlHTML = '<span class="campaignAbsoluteActionUrl"><a href="' + value.AbsoluteActionUrl + '">' + value.LinkDescription + '</a></span>';
                        }

                        if (CampaignObject.checkField(value.RelativeTime)) {
                            relativeTimeHTML = '<br /><span class="campaignRelativeTime">' + value.RelativeTime + '</span>';
                        }

                        if (CampaignObject.checkField(value.ActionDate)) {
                            actionTimeHTML = '<br /><span class="campaignActionTime">' + value.ActionDate + '</span>';
                        }

                        $j('#' + campaignAction).html(userAvatarHTML + firstNameHTML + actionTypeHTML + relativeTimeHTML + actionTimeHTML + titleHTML + absoluteActionUrlHTML);

                    });
            });
    },

    checkField: function(field) {
        return (field == undefined) ? false : true;
    }
};
