function getAllJSON(query) {
// overcome SharePoint issue only returning up to 1000 items
// forms a queue of promises until result doesn't return data.d.__next
// returns the $.getJSON object enabling the promises
    function recurse(query, items) {
        return $.getJSON(query)
                    .then( function(data) {
                         if (data.d.__next) {
                               return recurse(data.d.__next, items.concat(data.d.results));
                         } else {
                               return items.concat(data.d.results);
                         }
                     });
     }
     return recurse(query, []);
}