var fototicker_gallery = '';

function fototicker_itemLoadCallback(carousel, state)
{
    if (carousel.prevFirst != null) {
        for (var i = carousel.prevFirst; i <= carousel.prevLast; i++) {
            carousel.remove(i);
        }
    }

    var per_page = carousel.last - carousel.first + 1;
    var currPage = 0;
    var f,l;
    var cr = carousel;

    for (var i = carousel.first; i <= carousel.last; i++) {
        var page = Math.ceil(i / per_page);

        if (currPage != page) {
            currPage = page;

            f = ((page - 1) * per_page) + 1;
            l = f + per_page - 1;

            f = f < carousel.first ? carousel.first : f;
            l = l > carousel.last ? carousel.last : l;

            if (carousel.has(f, l)) {
                continue;
            }

            fototicker_makeRequest(carousel, f, l, per_page, page);
        }
    }
};

function fototicker_makeRequest(carousel, first, last, per_page, page)
{
    carousel.lock();
  
  if (fototicker_gallery == '') {
    var classes = jQuery('#fototicker').attr('class').split(/ /);
    
    for (var i = 0; i < classes.length; i++) {
      if (classes[i].match(/^gallery_/)) {
        fototicker_gallery = classes[i].replace(/^gallery_/, '');
        break;
      }
    }
  }
  
  jQuery.get('/_ajax/fototicker/'+fototicker_gallery+'/'+per_page+'/'+page+'/', function(data) {
      fototicker_itemAddCallback(carousel, first, last, data, page);
      Lightbox.prototype.initialize();
  });
    
};

function fototicker_itemAddCallback(carousel, first, last, data, page)
{
    carousel.unlock();
  carousel.size(jQuery('photos', data).attr('total'));
  
    var photos = jQuery('photo', data);
    var per_page = carousel.last - carousel.first + 1;
  
    for (var i = first; i <= last; i++) {
        var pos = i - 1;
        var idx = Math.round(((pos / per_page) - Math.floor(pos / per_page)) * per_page);
    var pic_item = jQuery(fototicker_getItemHTML(photos.get(idx)));
    
    carousel.add(i, pic_item);
    }
};

function fototicker_getItemHTML(photo)
{
  return '<a rel="lightbox[fototicker]" href="' + jQuery(photo).attr('image') + '" target="_blank" title="'+jQuery(photo).attr('title')+'"><img src="' + jQuery(photo).attr('thumb') + '" class="picture" width="70" height="70" alt="'+jQuery(photo).attr('title')+'" rel="lightbox[fototicker]" onload="fototicker_LightboxUpdate();" /></a>';
};

function fototicker_LightboxUpdate()
{
  if (typeof myLightbox == "undefined")
  {
    initLightbox();
  }
  
  myLightbox.updateImageList(); 
};

function fototicker_start()
{
  if (!$('fototicker')) return;
  
  $('fototicker').innerHTML = '<ul></ul>';
  
  jQuery(document).ready(function() {
    jQuery('#fototicker').jcarousel({
      scroll: 4,
      itemLoadCallback: fototicker_itemLoadCallback
    });
  });

};

Event.observe(window, 'load', fototicker_start, false);
