var mycarousel_itemList = [
    {url: 'images/pubs/1.jpg', title: 'Statistical Abstract of the United States 2010', go: 'products/statabs.aspx'},
    {url: 'images/pubs/2.jpg', title: 'Food Code 2009', go: 'products/food-code.aspx'},
    {url: 'images/pubs/3.jpg', title: 'The 2009 World Factbook', go: 'products/world_factbook.aspx'},
    {url: 'images/pubs/4.jpg', title: 'Standard Occupational Classification 2010', go: 'products/soc.aspx'},
    {url: 'images/pubs/5.jpg', title: 'Export Administration Regulations', go: 'products/export-regs.aspx'},
    {url: 'images/pubs/6.jpg', title: 'DWI Detection and Standardized Field Sobriety Testing Instructor Manual, 2006 Edition', go: 'products/dwi.aspx'},
    {url: 'images/pubs/7.jpg', title: '2008 Yearbook of Immigration Statistics (August 2009)', go: 'products/immigstats.aspx'},
    {url: 'images/pubs/8.jpg', title: 'Global Climate Change Impact in the United States', go: 'search/product.aspx?ABBR=PB2009113516'},
    {url: 'images/pubs/9.jpg', title: 'Preparing for the Flu (Including 2009 H1N1 Flu)', go: 'pdf/schoolflutoolkit.pdf'}

];

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt)
{
    // The index() method calculates the index from a given index who is out of the actual item range.
    var idx = carousel.index(i, mycarousel_itemList.length);
    carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[idx - 1]));
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};

/*** Item html creation helper. */
function mycarousel_getItemHTML(item)

{
    return '<a href="' + item.go + '"><img src="' + item.url + '" height="200" alt="" title="' + item.title + '" border="0" style="outline-width:0px" /></a>';
};

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        wrap: 'circular',
        itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
        itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
    });
});
