public static async Task checkAndAddNewComics()
        {
            string     url    = "http://xkcd.com/info.0.json";
            HttpClient client = new HttpClient();

            client.DefaultRequestHeaders.Add("user-agent", "XKCD Daily Win8 Reader");
            HttpResponseMessage response = await client.GetAsync(url);

            string responseText = await response.Content.ReadAsStringAsync();

            try
            {
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    SampleDataGroup Comics = SampleDataSource.GetGroup("XKCD");

                    JsonObject json = JsonObject.Parse(responseText);


                    string month = json.GetNamedString("month");
                    int    num   = (int)json.GetNamedNumber("num");

                    if (Comics.Items[0].UniqueId != num.ToString())
                    {
                        string link       = json.GetNamedString("link");
                        string year       = json.GetNamedString("year");
                        string news       = json.GetNamedString("news");
                        string safe_title = json.GetNamedString("safe_title");
                        string transcript = json.GetNamedString("transcript");
                        string alt        = json.GetNamedString("alt");
                        string img        = json.GetNamedString("img");
                        string title      = json.GetNamedString("title");
                        string day        = json.GetNamedString("day");

                        //localize?
                        string fulldate = month + "/" + day + "/" + year;



                        SampleDataItem newcomic = new SampleDataItem(num.ToString(), title, fulldate, img, transcript, alt, Comics, img);
                        if (FavoriteManager.isFavorite(num))
                        {
                            newcomic.isFav = true;
                        }
                        Comics.Items.Insert(0, newcomic);
                        //SampleDataSource._sampleDataSource._allGroups.Clear();
                        //SampleDataSource._sampleDataSource._allGroups.Add(Comics);
                    }
                }
                else if (response.StatusCode == HttpStatusCode.GatewayTimeout)
                {
                    var dia = new Windows.UI.Popups.MessageDialog("It appears xkcd.com is under heavy load. Please try again later.");
                    await dia.ShowAsync();
                }
                response.ToString();
            }
            catch (Exception)
            {
            }
        }
        //this also makes the group
        public static async Task addMostRecentComic()
        {
            string url = "http://xkcd.com/info.0.json";


            JsonObject json = await GetAsync(url);

            string month      = json.GetNamedString("month");
            int    num        = (int)json.GetNamedNumber("num");
            string link       = json.GetNamedString("link");
            string year       = json.GetNamedString("year");
            string news       = json.GetNamedString("news");
            string safe_title = json.GetNamedString("safe_title");
            string transcript = json.GetNamedString("transcript");
            string alt        = json.GetNamedString("alt");
            string img        = json.GetNamedString("img");
            string title      = json.GetNamedString("title");
            string day        = json.GetNamedString("day");

            //localize?
            string fulldate = month + "/" + day + "/" + year;

            SampleDataGroup Comics = new SampleDataGroup("XKCD", "XKCD", "A Webcomic of romace, sarcasm, math, and language", "310x150.png", "");

            SampleDataItem newcomic = new SampleDataItem(num.ToString(), title, fulldate, img, transcript, alt, Comics, img);

            if (FavoriteManager.isFavorite(num))
            {
                newcomic.isFav = true;
            }
            Comics.Items.Add(newcomic);
            //SampleDataSource._sampleDataSource._allGroups.Clear();
            SampleDataSource._sampleDataSource._allGroups.Add(Comics);
        }
        public static async Task addPrevious20(SampleDataItem sdi, SampleDataGroup group)
        {
            int c = int.Parse(sdi.UniqueId);

            for (int x = 0; x < 20; x++)
            {
                await addToGroupByNum(--c, group);
            }
        }
        public static async Task <SampleDataItem> getComicByNum(int number, SampleDataGroup group)
        {
            string url = "http://xkcd.com/" + number + "/info.0.json";

            JsonObject json = await GetAsync(url, number);

            string month      = json.GetNamedString("month");
            int    num        = (int)json.GetNamedNumber("num");
            string link       = json.GetNamedString("link");
            string year       = json.GetNamedString("year");
            string news       = json.GetNamedString("news");
            string safe_title = json.GetNamedString("safe_title");
            string transcript = json.GetNamedString("transcript");
            string alt        = json.GetNamedString("alt");
            string img        = json.GetNamedString("img");
            string title      = json.GetNamedString("title");
            string day        = json.GetNamedString("day");

            if (!transcript.Equals(""))
            {
                await DownloadJSON(url, number);
            }

            //localize?
            string fulldate = month + "/" + day + "/" + year;


            var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
            var oldimg      = img;

            if (!await Download(img, num))
            {
                img = "ms-appdata:///local/" + num + ".png";
            }
            string         ns = num.ToString();
            SampleDataItem newcomic;

            if (group.Title == "Favorites")
            {
                //return null; //don't want to load more favorites??
                ns             = ns + " ";
                newcomic       = new SampleDataItem(ns, title, fulldate, img, transcript, alt, group, oldimg);
                newcomic.isFav = true;
            }
            else
            {
                newcomic = new SampleDataItem(ns, title, fulldate, img, transcript, alt, group, oldimg);
            }
            if (FavoriteManager.isFavorite(num))
            {
                newcomic.isFav = true;
            }

            return(newcomic);
        }
        public static async Task addPreviousN(SampleDataItem sdi, SampleDataGroup group, int n)
        {
            int c = int.Parse(sdi.UniqueId);

            for (int x = 0; x < n; x++)
            {
                if (c == 405)     //lol randall monroe - doesn't have a comic #404
                {
                    c--;
                }
                if (c > 1)
                {
                    await addToGroupByNum(--c, group);
                }
            }
        }
        internal static async Task fillGroup(SampleDataItem n, SampleDataItem o)
        {
            int newest = int.Parse(n.UniqueId);
            int oldest = int.Parse(o.UniqueId);
            int si     = n.Group.Items.IndexOf(n) + 1;


            if (newest > oldest)
            {
                for (int i = oldest + 1; i < newest; i++)
                {
                    if (i == 404)
                    {
                        i++;
                    }
                    n.Group.Items.Insert(si, await getComicByNum(i, n.Group));
                }
            }
            else
            {
                //how did you get here what the f**k? newer has got to be greater than older
            }
        }
 public static async Task <IEnumerable <SampleDataItem> > returnPreviousN(SampleDataItem sdi, SampleDataGroup group, int n)
 {
     if (group.UniqueId != "Favorites")
     {
         List <SampleDataItem> l = new List <SampleDataItem>();
         int c = int.Parse(sdi.UniqueId);
         for (int x = 0; x < n; x++)
         {
             if (c == 405) //lol randall monroe - doesn't have a comic #404
             {
                 c--;
             }
             if (c > 1)
             {
                 l.Add(await getComicByNum(--c, group));
             }
         }
         return(l);
     }
     else
     {
         return(null);
     }
 }