var delay = 500;
var start = 0;
var cycles = 10;
var openPageIdx = 0;


function initSlideShow() {
    var slide_list = $('slide-images').getElementsByTagName('li');
    for (i = 0; i < slide_list.length; i++) {
        if (i != 0) {
            slide_list[i].style.display = 'none';
        }
    }
    end = slide_list.length - 1;
    start_slideshow(start, end, delay, slide_list);
}

function reset() {
    var queue = Effect.Queues.get('show1', 'show2', 'show3');
    queue.each(function(effect) {
        effect.cancel();
    });
    setTimeout(start_slideshow_multi(start, end, delay, slide_list), 2000);
}

function initRandomSlideShow() { 
    var slide_list = $('slide-images').getElementsByTagName('li');
    for (i = 0; i < slide_list.length; i++) {
        slide_list[i].style.display = 'none';
    }
    end = slide_list.length - 1;
    start_slideshow_multi(start, end, delay, slide_list);
}


function start_slideshow(start, end, delay, slide_list) {
    setTimeout(fadeInOut(start, start, end, delay, slide_list), delay);
}

function start_slideshow_multi(start, end, delay, slide_list) {
    setTimeout(fadeInOutMulti(start, end, delay, slide_list), delay);
}

function shuffle(array) {
    var tmp, current, top = array.length;

    if (top) while (--top) {
        current = Math.floor(Math.random() * (top + 1));
        tmp = array[current].innerHTML;
        array[current].innerHTML = array[top].innerHTML;
        array[top].innerHTML = tmp;
    }
    return array;
}

function openInfo(id) {
    var urEle = document.getElementsByClassName(id);
    var open = false;
    for (i = 0; i < urEle.length; i++) {
        if (urEle[i].style.display != 'none') {
            open = true;
            openPageIdx = i;
        }
    }
    if (open) {
            Effect.Fade(urEle[openPageIdx]);
    }
    else {
        Effect.Appear(urEle[openPageIdx]);
    }
}

function hideElements(id) {
    var pgs = document.getElementsByClassName(id);
    for (i = 0; i < pgs.length; i++) {
        setDisplayNone(pgs[i].id);
    }
}


function setDisplayNone(id)
{
    document.getElementById(id).style.display = 'none';
}

function nextPage(id) {
    var urEle = document.getElementsByClassName(id);
    if (openPageIdx < urEle.length) {
        if(urEle[openPageIdx].style.display != 'none')
            Effect.Fade(urEle[openPageIdx]);
        Effect.Appear(urEle[openPageIdx + 1], {queue: 'end'});
        openPageIdx++;
    }
}

function previousPage(id) {
    var urEle = document.getElementsByClassName(id);
    if (openPageIdx > 0) {
        Effect.Fade(urEle[openPageIdx]);
        Effect.Appear(urEle[openPageIdx - 1], {queue: 'end'});
        openPageIdx--;
    }
}


//function fadeInOutMulti(start, end, delay, slide_list) {
//    return (function() {           
//            var slide_list = new Array(); 
//            slide_list = $('slide-images').getElementsByTagName('li'); 
//            var rand_no = (Math.floor((slide_list.length/4)*Math.random()) + 2);
//            var list = shuffle(slide_list);
//            var appear = true;
//            Effect.multiple(list, Effect.Appear, {duration: 3, queue: 'end' });
//            Effect.multiple(list, Effect.Fade, {duration: 3, queue: 'end'});
//            
//            

//    })    
//}
function fadeInOutMulti(start, end, delay, slide_list) {
    return (function() {
        if (cycles > 0)
        {
            var slide_list = new Array();
            slide_list = $('slide-images').getElementsByTagName('li');
            var rand_no = (Math.floor((slide_list.length / 4) * Math.random()) + 2);
            var list = shuffle(slide_list);
            var appear = true;
            Effect.multiple(list, Effect.Appear, {duration: 2, queue: { position: 'end', scope: 'slideshow' } });
            Effect.multiple(list, Effect.Fade, {duration: 2, queue: { position: 'end', scope: 'slideshow' }});
            setTimeout(fadeInOutMulti(start, end, delay, slide_list), delay + 5000);
        }
        else
        {
            return;
        }

        cycles--;

    })
}


function fadeInOut(idx, start, end, delay, slide_list) {
    return (function() {
        slide_list = $('slide-images').getElementsByTagName('li');
        Effect.Fade(slide_list[idx]);
        if (idx == end) {
            idx = start;
        } else {
            idx++;
        }
        slide = slide_list[idx];
        setTimeout("Effect.Appear(slide);", 0);
        setTimeout(fadeInOut(idx, start, end, delay), delay + 1850);
    })
}  


