//the queue to line up stuff

function Queue()
        {
        var q = [];
        var paused = false;
   	this.q = q;
        this.paused = paused;

function queue() {
 	for(var i=0;i< arguments.length;i++)
     	q.push(arguments[i]);
	}

	function dequeue() {
    	if(!empty()) q.pop();
	}

function next() {
    	if(empty()) return; //check that we have something in the queue
    	paused=false; //if we call the next function, set to false the paused
    	q.shift()(); // the same as var func = q.shift(); func();
	}

function flush () {
    	paused=false;
    	while(!empty()) next(); //call all stored elements
	}
function empty() {  //helper function
    	if(q.length==0) return true;
    	return false;
	}

function size()
	{
	return q.length;
	}
function clear() {
    	q=[];
	}
	this.queue=queue;
	this.dequeue=dequeue;	
	this.next=next;
	this.flush=flush;
	this.empty=empty; 
        this.clear=clear;
	this.length=size;
	}


//the queue for the imageswap;
q1=new Queue();

//the queue for the slider
q2=new Queue();

var left=0;

//move to previous next
function move(xx)
	{
	new Effect.Move('inner', { x: xx, y: 0, transition:
	Effect.Transitions.sinoidal });
	}

function slide(xx,total)
	{
	function delayed()
		{
		q2.next();
		}
	setTimeout(delayed,400);
	if(q2.length()<1)
		{
	if(left<=total && xx<0 || left>0 && xx>0)
		{
		xx1=-xx;
		q2.queue(function(){move(xx)});
		left=left+xx1;
		}
		}
	if(left>total)
		document.nxt.src="pictures/blank.jpg";
	else
		document.nxt.src="pictures/right.jpg";
	if(left>0)
		document.prv.src="pictures/left.jpg";
	else
		document.prv.src="pictures/blank.jpg";
	return left;
	}


//easier way to change the big picture

function change(thumb)
	{
	new Effect.Morph('big1', {
 	 style:'background-image:url(\'moviestills/'+thumb+'\');', 
  	duration: 0.8 // Core Effect properties
	});
	}






//hide and replace hidden
function replacehidden(thumb)
	{
	function delayed()
		{
		q1.next();
		}
	setTimeout(delayed, 200);
	Effect.Fade('big1', { duration: 0.1,from:1.0, to: 0.25  });
	document.getElementById('big1').style.background="url(moviestills/"+thumb+")";
	}


//slowly fadeout visible
function fadeout()
	{
	function delayed() {
		q1.next();                
		} 
	setTimeout(delayed,450);          
	Effect.Fade('big', { duration: 1.0,from:1.0, to: 0.01  });
	}


//slowly fadein hidden
function fadein()
	{
	function delayed()
		{
		q1.next();
		}
	setTimeout(delayed,1450);
	Effect.Fade('big1', { duration: 1.0,from:0.25, to: 1.0  });  
	}




//fast fadein & replace visible
function fadein1(thumb)
{
function delay(thumb)
	{
	Effect.Fade('big', { duration: 0.05,from:0.01, to: 1.0  });
	}
setTimeout(delay,150);
document.big.src="moviestills/"+thumb;
clear();
}


//run the whole thing!
function imageswap(thumb)
	{
	function delay()
	{
	q1.queue(function(){replacehidden(thumb)}, function(){fadeout()},function(){
        fadein()},function(){fadein1(thumb)});
        q1.next();
	}
setTimeout(delay,500);
//q1.clear();
}



function print()
	{
	document.print(left);
	}





