// Infinite Click
(function($) {
    $.fn.infiniteclick = function(options) {
        return $(this).each(function() {
            var el = $(this);
            var settings = $.extend({
                    url: null,
                    triggerAt: 300,
                    page: 2,
                    appendTo: 'div#loadItemsHere',
                    tempTo: 'div#tempStorage',
                    loadingTo: 'div#loading',
                    listContainer: 'breakingnews-list',
                    container: $(document)
                }, options);
            var req = null;
            var maxReached = false;
            var infinityRunner = function() {
                if (settings.url !== null) {
                      // if the request is in progress, exit and wait for it to finish
                      if (req && req.readyState < 4 && req.readyState > 0) {
                          return;
                      }
                      //$(settings.appendTo).trigger('infinitescroll.beforesend');
                      $(settings.loadingTo).html('<center><img src="/images/extensions/gallery/lightbox/loading.gif"></center>');
                      if ( settings.url.charAt(settings.url.length-1) != '/') {
                        settings.url = settings.url + "/";
                      }
                      req = $.get(settings.url + 'page-'+settings.page, function(data) {
                          if (data !== '') {
                              if (settings.page > 1) {
                                  $(settings.tempTo).append(data);
                                  var rr = $(settings.tempTo)[0];
                                  //innerData = rr.getElementsByClassName(settings.listContainer)[0].innerHTML;
                                  //innerData = getElementsByClassName(settings.listContainer, "*", document.getElementById("tempStorage") );
                                  //innerData = getElementsByClassName(settings.listContainer)[1].innerHTML;                                   
                                  innerData = $("." + settings.listContainer)[1].innerHTML;
                                  $(settings.loadingTo).empty();
                                  if ( innerData.replace(/^\s+/,'').replace(/\s+$/,'') == "" ) {
                                    maxReached = true;
                                    //$(settings.appendTo).trigger('infinitescroll.maxreached');
                                  }
                                  else {
                                    //$(settings.appendTo).append( rr.getElementsByClassName(settings.listContainer)[0].innerHTML );
                                    $(settings.appendTo).append( innerData );
                                  }
                                  $(settings.tempTo).empty();
                              } else {
                                  $(settings.appendTo).html(data);
                              }
                              settings.page++;
                              //$(settings.appendTo).trigger('infinitescroll.finish');
                          } else {
                              maxReached = true;
                              //$(settings.appendTo).trigger('infinitescroll.maxreached');
                          }
                      }, 'html');
                }
            };
            
            el.click(function() {
              if (!maxReached) {
                infinityRunner();
              } else {
                el.html('');
              }
            });
        });
    };
})(jQuery);

