/*  Slideshow Script Written by Sean Hansen (sean@allocatedchaos.com)
    This is pretty simple stuff, so if you're looking to rip me off, you're either a complete new-comer,
    or a lazy gusy.  In the case of the former, learn the javascript and code your
    own script.  You'll be happier for it in the long run.
    
    In the case of the latter... SHAME ON YOU!! >:(
*/
var fps = 60;
var slide_total = 4;
var slide_delay = 15000;
var current_slide = 1;
var transition_delay = 1000 / fps;

var last_slide;
var style_update;
var direction;
var transition_timer;
var transition_queue = new Array();
var opacity;

function init_slide() {
    set_slide(1);
    do_slide();
    transition();
}

function do_slide(act, next_slide) {
    if (next_slide != current_slide) {
        if (act == 'select') {
            last_slide = current_slide;
            if (next_slide != undefined) {
                current_slide = next_slide;
                clearTimeout(slide_timer);
            }
            else {
                if (current_slide == slide_total) {
                    current_slide = 1;
                }
                else {
                    current_slide++;
                }
            }
            set_slide(current_slide, last_slide);
        }
        slide_timer = setTimeout("do_slide('select')", slide_delay);
    }
}

function set_slide(slide_number, last_slide) {
    hide_slides(slide_number, last_slide);

    //transition_queue[0] = new Array(0, -10, 'px', 'marginTop', 'item_'+slide_number, 1);
    
    transition_queue[2] = new Array(0, 100, '', 'alpha', 'slide_'+slide_number, 5);
    transition_queue[4] = new Array(40, 20, 'px', 'marginLeft', 'slide_'+slide_number, 1);
    document.getElementById('slide_'+slide_number).style.zIndex = slide_total;
    if (last_slide > 0) {
        document.getElementById('slide_'+last_slide).style.zIndex = 0;
        //transition_queue[1] = new Array(-10, 0, 'px', 'marginTop', 'item_'+last_slide, 1);
        
        transition_queue[3] = new Array(100, 0, '', 'alpha', 'slide_'+last_slide, 5);
        transition_queue[5] = new Array(20, 0, 'px', 'marginLeft', 'slide_'+last_slide, 1);
    }
}

function hide_slides(slide_number, last_slide) {
    for (var i=1; i<=slide_total; i++) {
        if (i != slide_number && i != last_slide) {
            document.getElementById('slide_'+i).style.display = 'none';
        }
        else {
            document.getElementById('slide_'+i).style.display = 'block';
        }
    }
}

// The transitional animation function, handles all of the object animations
function transition() {
    for (var i=0; i<transition_queue.length; i++) {
        if (transition_queue[i] != undefined) {
            if (transition_queue[i][0] > transition_queue[i][1]) {
                direction = 'subtract';
            }
            else if (transition_queue[i][0] < transition_queue[i][1]) {
                direction = 'add';
            }
            
            if (transition_queue[i][0] != transition_queue[i][1]) {
                if (direction == 'add') {
                    transition_queue[i][0] = transition_queue[i][0] + transition_queue[i][5];
                }
                else {
                    transition_queue[i][0] = transition_queue[i][0] - transition_queue[i][5];
                }
            }
            
            if (transition_queue[i][3] == 'marginTop') {
                document.getElementById(transition_queue[i][4]).style.marginTop = transition_queue[i][0] + transition_queue[i][2];
            }
            else if (transition_queue[i][3] == 'alpha') {
                opacity = transition_queue[i][0] / 100;
                document.getElementById(transition_queue[i][4]).style.opacity = opacity;
                document.getElementById(transition_queue[i][4]).style.filter = 'alpha(opacity='+transition_queue[i][0]+');';
            }
            else if (transition_queue[i][3] == 'marginLeft') {
                document.getElementById(transition_queue[i][4]).style.marginLeft = transition_queue[i][0] + transition_queue[i][2];
            }
            
            if (transition_queue[i][0] == transition_queue[i][1]) {
                transition_queue[i][0] = transition_queue[i][1];
                delete transition_queue[i];
            }
        }
    }
    if (transition_queue.length > 0) {
        transition_timer = setTimeout("transition()", transition_delay);
    }
    else {
        clearTimeout(transition_timer);
    }
}