// Cross Fade Slideshow using mootools 1.2
// Haclyon Design

// divs to switch back and fourth
var slideshowBoxes = $$("div.h_slideshow");

var slide = 0; // current index of the slides array
var slideBox = 1; // current index of the div array
var timer = 8000; // time per slide
var state = 1; // state of slide show. can be 1 - running or  0 - paused.

// cross fades two divs together
function crossFade(dir) {
    // fade out current slideshow
    $(slideshowBoxes[slideBox]).fade('out');
    
    // finds out which div box to fade next
    switch(slideBox) {
	case 0: slideBox = 1; break;
	case 1:
	default: slideBox = 0; break;
    }
    
    // find out what the next slide is via array on top
    // do not reset if user is going backwards
    if(slide >= (slideData.length - 1 ) && dir != "prev") {
	slide = 0;
    } else {
	// if going from the first slide to the last
        if (dir == "prev" && slide == 0) {
	    slide = slideData.length;
	}
    
	// if no params, go next, else go previous
	if (!dir)
	    slide++;
	else {
	    slide--;
	}
    }
    // set new content to the OTHER div and fade in
    $(slideshowBoxes[slideBox]).innerHTML = slideData[slide];
    $(slideshowBoxes[slideBox]).fade('in');

}
// timer for slides
var interval = setInterval( "crossFade()", timer )

// pause. resets the time when clicking next in runnning mode to prevent next slide to transistion too fast.
function pause() {
    if (state == 0) {
        state = 1;
        interval = setInterval( "crossFade()", timer )
    }
    else {
	state = 0;
        clearInterval(interval);
    }    
}

// moves the slideshow prev or next. also resets the time to prevent next slide transistioning too fast.
function move(dir) {
    if (state == 0) {
	crossFade(dir);
    }
    else {
	crossFade(dir);
	clearInterval(interval);
	interval = setInterval( "crossFade()", timer );
    }
}

