//
// ZEN SLIDE GALLERY 1.0
// Written by Blain Hosford
// Copyright 2010, ZenWebware
// www.zenwebware.com
//
var slide = [];
var slide_items = [];


function slide_initialise(gallery_id) {
	slide['gallery_id'] = gallery_id;
	slide['item_no'] = 0;
	slide['target_x'] = 0;
	slide['timer'];
	slide['total_width'] = 0;
	
	document.onkeydown = function(e) {
		if(!e) var e = window.event;
		if(e.keyCode == 37 || e.keyCode == 39) {
			return false;
		}
	}
}


function slide_add_item(width) {
    var gallery = document.getElementById(slide['gallery_id']);
    if(gallery.style.width == 0) gallery.style.width = "0px";
    if(gallery.style.left == 0) gallery.style.left = "0px";
    slide_items[slide_items.length] = slide['total_width'];
    //
    // NOTE:
    // Add an extra pixel to the width to account for IE bug.
    // Also keep track of the true total width so subsequent items are correctly positioned.
    //
    gallery.style.width = parseInt(gallery.style.width) + width + 1 + "px";
    slide['total_width'] += width;
}


function slide_home() {
    slide['item_no'] = 0;
    slide['target_x'] = -slide_items[slide['item_no']];
    clearTimeout(slide['timer']);
    slide['timer'] = setInterval("slide_update()", 10);
}


function slide_next_item() {
    if(slide['item_no'] < slide_items.length - 1) {
        var gallery = document.getElementById(slide['gallery_id']);
        slide['item_no']++;
        slide['target_x'] = -slide_items[slide['item_no']];
        clearTimeout(slide['timer']);
        slide['timer'] = setInterval("slide_update()", 10);
    }
}

    
function slide_previous_item() {
    if(slide['item_no'] > 0) {
        var gallery = document.getElementById(slide['gallery_id']);
        slide['item_no']--;
        slide['target_x'] = -slide_items[slide['item_no']];
        clearTimeout(slide['timer']);
        slide['timer'] = setInterval("slide_update()", 10);
    }
}
    
    
function slide_update() {
    var gallery = document.getElementById(slide['gallery_id']);
    var x = parseInt(gallery.style.left);
    x = Math.round(x + (slide['target_x'] - x) / 2);
    if(Math.abs(slide['target_x'] - x) <= 2) {
        x = slide['target_x'];
        clearTimeout(slide['timer']);
    }
    gallery.style.left = x + "px";
}

