var setFirst = false;
var i = 1;
var tm = null;
var frame = 1;
var start_frame = 1;
var end_frame = 3;
var delay = 7000;
var can = true;

function goTo(a)
{
    if(!can || frame == a)return false;
    clearTimeout(tm);
    can = false;
    setTimeout('can = true;', 1250);
    Effect.Fade('slideshow' + frame);
    if (a > end_frame ) frame = start_frame;
    else if (a < start_frame ) frame = end_frame;
    else frame = a;
    setTimeout("Effect.Appear('slideshow" + frame + "');", 250);
    tm = setTimeout(switch_slides(), delay + 250);
    return false;
}
function switch_slides() {
    return (function() {
        can = false;
        setTimeout('can = true;', 1250);
        Effect.Fade('slideshow' + frame);
        if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }
        setTimeout("Effect.Appear('slideshow" + frame + "');", 250);
        tm = setTimeout(switch_slides(), delay + 250);
    })
}
function isMouseLeaveOrEnter(e, handler) {
    if (e.type != 'mouseout' && e.type != 'mouseover') return false;
    var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;
    while (reltg && reltg != handler)
    reltg = reltg.parentNode;
    return (reltg != handler);
}
Event.observe(window, 'load', function() {
    var ul = $('slideshowmain').childElements()[0];
    ul.childElements().each(function(li) {
        li.id = 'slideshow' + i;
        if(!setFirst) { setFirst = true; }
        else li.style.display = "none";
        i++;
    });
    end_frame = ul.childElements().size();
    $('slideshowmain').observe('mouseover', function(e) {
        if(!isMouseLeaveOrEnter(e,$('slideshowmain'))) return false;
        new Effect.Appear($('leftarrow'), {duration: 0.2, to: 0.3});
        new Effect.Appear($('rightarrow'), {duration: 0.2, to: 0.3});
    });
    $('slideshowmain').observe('mouseout', function(e) { 
        if(!isMouseLeaveOrEnter(e,$('slideshowmain'))) return false;
        new Effect.Fade($('leftarrow'), {duration: 0.2, from: 0.3});
        new Effect.Fade($('rightarrow'), {duration: 0.2, from: 0.3});
    });
    tm = setTimeout(switch_slides(), delay);
});
