/*
 * Ajax-Gallery
 */
(function($){
	$.fn.ajaxGallery = function(options){

    var defaults = {
        ajaxPath: "images.php",
        items: 0,
        currentPage: 1,
        totalPages: 1,
        itemsPerPage: 3,
        maxPageLinks: 10,
        prevPage: "&laquo;",
        nextPage: "&raquo;"
    };

    var options = $.extend(defaults, options);

    var self = this;

    // get image list via ajax
    $.getJSON(options.ajaxPath, function(data){

        $.each(data.images, function(i,item){

            options.items++;

        });


        // return false, if no images are delivered
        if(!options.items) return false;

        // get totalPages count
        options.totalPages = Math.ceil(options.items/options.itemsPerPage);

        // check for lightbox event
	    if ( typeof $.Lightbox === 'undefined' )
	    {	//
		    $.Lightbox = new $.LightboxClass();
	    }

        // functions
        switchPage = function ( page )
		{
            // clear list content
            $('ul.imageList', self).empty();

            offsetStart = 1;
            if(page > 1) offsetStart = (page*options.itemsPerPage)-options.itemsPerPage+1;
            offsetEnd = options.itemsPerPage;
            if(page > 1) offsetEnd = page*options.itemsPerPage;
            //console.log(options.currentPage+' to '+page+' offsetstart:'+offsetStart+' | offsetEnd:'+offsetEnd);

            // insert new content
            $.each(data.images, function(i,item){
                $img = $('<li id="'+i+'"><a rel="lightbox-group" href="'+item.image_url+'" title="'+item.title+'| '+item.description+'"><img src="'+item.thumb_url+'" alt="" /></a></li>');
                $img.find('img').dropshadow();

                //console.log("Start:"+offsetStart+" End:"+offsetEnd+" Index:"+i);
                if(i < offsetStart || i > offsetEnd){

                    $img.hide();

                }
                $('ul.imageList', self).append($img);
                $.Lightbox.relify();
            });


            options.currentPage = page;

        }


        self.each(function(){

            // add lightbox event
            $('ul.imageList a', this).click(function(){

            });

            // pager function
            $('ul.imageNav a', this).click(function(){

                // get pagenum from element
                var pageNum = $(this).text();

                // check if site exists :)
                if(pageNum == options.currentPage || (pageNum == options.prevPage && options.currentPage == 1) || (pageNum == options.nextPage && options.currentPage == options.totalPages)) return false;

                // check for next/prev link
                if(pageNum == options.prevPage) pageNum = Math.ceil(options.currentPage)-1;
                if(pageNum == options.nextPage) pageNum = Math.ceil(options.currentPage)+1;

                // switch page
                switchPage(pageNum);
                $(this).parents('ul').find('a').removeClass('active');
                $(this).parents('ul').find("a:contains('"+pageNum+"')").addClass('active');

            });


	    });

        switchPage(options.currentPage);

    });


    }
})(jQuery);
