function bzCarousel_initCallback(carousel, state) {

    if (carousel.prevFirst != null) {
        // Remove the last visible items to keep the list small
        for (var i = carousel.prevFirst; i <= carousel.prevLast; i++) {
            // jCarousel takes care not to remove visible items
            carousel.remove(i);
        }
    }

    var per_page = carousel.last - carousel.first + 1;
    var currPage = 0;
    var f = 0;
    var l = 0;
    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;
            }

            bzCarousel_makeRequest(carousel, f, l, per_page, page);

        }
    }

    // stop when hovering over current gallery item
    carousel.clip.hover(function () {
        carousel.stopAuto();
    },


    function () {
        carousel.startAuto();
    });

    //stop when clicking through the gallery
    carousel.buttonNext.bind('click', function () {
        carousel.startAuto(0);
    });

    carousel.buttonPrev.bind('click', function () {
        carousel.startAuto(0);
    });
};

//make a var list for holding the returned json, and reuse it on callback, to avoid hitting server too often.
var list = 0;

function bzCarousel_makeRequest(carousel, first, last, per_page, page) {

    // Lock carousel until request has been made
    carousel.lock();


    if (list == 0) {
        $.getJSON("http://ws.bilzonen.dk/partnersites.asmx/GetAdCarGalleryWithDetails?partnerID=15&make=BMW&numberOfSize=50&format=json&jsonp=?", function (data) {
           list = data;
            bzCarousel_itemAddCallback(carousel, first, last, data, page);
        });
    } else {
        bzCarousel_itemAddCallback(carousel, first, last, list, page);
    }
};

function bzCarousel_itemAddCallback(carousel, first, last, data, page) {
    // Unlock
    carousel.unlock();

    // Set size
    carousel.size(49);

    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);

        carousel.add(i, bzCarousel_renderGalleryAd(data.adCarGalleryWithDetailsItems[i]));
    }
};


function bzCarousel_renderGalleryAd(adCarItem) {

    var c = $('<div></div>').attr("id", "bzGalleryCar");

    var description = adCarItem.description;
    if (description.length > 260) {
        description = description.substring(0, 260) + '...';
    }

    var name_version = adCarItem.name_version;
    if (name_version.length > 20) {
        name_version = name_version.substring(0, 20) + '...';
    }

	if(adCarItem.sellerType == "/bot/"){
		c.append('<div id="bzGalleryImgPlcHld"><img src="http://billeder.bilzonen.dk/ad/car/' + adCarItem.AdCarId + '/' + GalleryLargeImageSize + '/000000/' + adCarItem.photoID + '.jpg"/></div>');
	}
	else{
		c.append('<div id="bzGalleryImgPlcHld"><img src="http://billeder.bilzonen.dk/Car/Pro/' + GalleryLargeImageSize + '/0/' + adCarItem.photoID + '.jpg"/></div>');
	}
    
    //c.append('<h3><b>' + adCarItem.name_make + ' ' + adCarItem.name_model + ' ' + name_version + '</b></h3>');


    //c.append('<table id="bzGalleryDescriptionTable"><tr><td>Registrering: </td><td class="specs">' + FormatString(adCarItem.year_registration, '-1', '--') + '/' + FormatString(adCarItem.month_registration, '-1', '--') + '</td></tr><tr><td>Pris: </td><td class="specs">' + FormatString(FormatNumber(adCarItem.price), '-1', 'Ring for pris') + '</td></tr></table>');

    //c.append('<div class="description">' + description + '</div>'); 

    //c.append('<table id="bzGalleryDealerTable"><tr><td><b>' + adCarItem.dealer_name + '</b></td></tr></table>');

   
   
    c.append('<div><button onclick="top.location.href=\'' +'http://pleasure.dk/3410?'+ "&ad_car_id=" + adCarItem.adCarID + '&so=' + gup('so') + '&sc=' + gup('sc') + '\';" id="bzGalleryCarInfoButton">Se Mere</button></div>');
    c.append('<img src="http://stat.bilzonen.dk/log.gif?t=' + getLogDate() + '&amp;d=1|' + adCarItem.adCarID + '|50115&amp;r=' + getLogRandom() + '" />');	
    return c;
};

function bzGalleryLoad() {
    $('#bzGalleryCarousel').jcarousel({
        auto: 7,
        wrap: 'last',
        scroll: 1,
        itemLoadCallback: bzCarousel_initCallback
    });
}
