function orp_Gallery(iparent) {
    var parent = $(iparent);
    if (parent.attr('orp:images') == null) return;
    $('.orp-igallery-main-holder', parent).click(jump);
    var cache = $('<img style=\"display:none;\"/>');
    parent.append(cache);
    var img = $('img.orp-igallery-image', parent);
    var spare = $('img.orp-igallery-spare', parent);
    var list = parent.attr('orp:images').split(' ');
    var duration = parseInt(parent.attr('orp:duration'));
    var transition = parent.attr('orp:transition');
    var autoplay = parent.attr('orp:autoplay') == 'true';
    var playInterval = null;
    var slideNumber = 0;
    var link = '';
    $('div.orp-igallery-right', parent).click(goNext);
    $('div.orp-igallery-left', parent).click(goPrev);
    parent.hover(hoverOver, hoverOut);
    var captions = $('ul.orp-igallery-captions > li', parent);
    captions.hide();
    $('ul.orp-igallery-captions').show();
    $('div.orp-igallery-right, div.orp-igallery-left').delay(2000).fadeOut('slow');
    doCaptions();
    if (autoplay) startPlaying();

    function startPlaying() {  
        if (list.length > 1) {
            playInterval = setInterval(go, duration * 1000);
        }
        prefetch();
    }
    
    function hoverOver() {
        stopPlaying();
        $('div.orp-igallery-right, div.orp-igallery-left').show();
    }
    
    function hoverOut() {
        startPlaying();
        $('div.orp-igallery-right, div.orp-igallery-left').hide();
    }

    function jump() {
        if (link.length == 0) return;
        document.location = link;
    }

    function goNext() {
        go(1);
        return false;
    }

    function goPrev() {
        go(-1);
        return false;
    }

    function stopPlaying() {
        if (playInterval != null) clearInterval(playInterval);
    }

    function prefetch() {
        next = (slideNumber + 1) % list.length;
        cache.attr('src', list[next]);
    }

    function go(inc) {
        if (inc == null) inc = 1;
        if (captions.length > 0) $(captions[slideNumber]).hide();
        prevSlide = slideNumber;
        slideNumber = (slideNumber + inc + list.length) % list.length;
        //$('#orp-igallery-debug').text('going from slide ' + prevSlide + ' to ' + slideNumber);
        if (transition == 'fade') {
            img.attr('src', list[prevSlide]);
            spare.hide();
            spare.attr('src', list[slideNumber]);
            spare.fadeIn();
        } else {
            img.attr('src', list[slideNumber]);
        }
        prefetch();
        doCaptions();
    }
    
    function doCaptions() {
        if (captions.length > 0) {
            if ($(captions[slideNumber]).text().length) $(captions[slideNumber]).show();
            link = $(captions[slideNumber]).attr('orp:link');
        }
    }
}
