var about1 = null;
var about2 = null;
var about3 = null;
var contact = null;
var dca = null;
var show = null;
var gallery = null;
var louise = null;
var quotes = null;
var images = null;
var about = null;

var timerlen = 5;
var slideAniLen = 400;

var timerID = new Array();
var startTime = new Array();
var fobj = new Array();
var obj = new Array();
var sobj = new Array();
var endHeight = new Array();
var endPadding = new Array();
var sliding = new Array();
var moving = new Array();
var fading = new Array();
var dir = new Array();

//
//
// FADING FUNCTION
//
//

function fadeDown(fobjname) {
	/*if (fading[ fobjname]) {
		return; }*/
	
	//check to be sure that the div isnt already faded
	/*if (document.getElementById(fobjname).style.opacity == '0.5') {
		return; }*/
	
	//setting the fading to true, note direction, and begin the animation
	fading[ fobjname] = true;
	dir[ fobjname] = "down";
	startfade(fobjname);
}

function fadeUp(fobjname) {
	/*if (fading[ fobjname]) {
		return; }*/
	
	//check to be sure that the div isnt already at full opacity
	/*if (document.getElementById(fobjname).style.opacity == '.99') {
		return; }*/
	
	//setting the moving to true, note direction, and begin the animation
	
	fading[ fobjname] = true;
	dir[ fobjname] = "up";
	startfade(fobjname);
}

function startfade(fobjname) {
	fobj[fobjname] = document.getElementById(fobjname);
	
	//set the endheight of each div being animated
	endFade[ fobjname] = 0.5;
	startTime[ fobjname] = (new Date()).getTime(); 
	
	if(dir[ fobjname] == "down"){
		fobj[ fobjname].style.opacity = '.99';
	} else {
		fobj[ fobjname].style.opacity = '0.5';
	}
	
	
	timerID[ fobjname] = setInterval('fadetick(\'' + fobjname + '\');',timerlen);
}

function fadetick(fobjname) {
	var elapsed = (new Date()).getTime() - startTime[ fobjname];

	if (elapsed > slideAniLen) {
		endFade(fobjname);
	} else {
		var d = 1-(elapsed / slideAniLen * endFade[ fobjname]);
			if (dir[ fobjname] == "up") {
				d = (endFade[ fobjname] +(1-d));
			}
			//fobj[fobjname].style.opacity = d;
	}
	
	return;
}
			
function endFade(fobjname){
  clearInterval(timerID[ fobjname]);
 
  if(dir[ fobjname] == "up") {
    //fobj[fobjname].style.opacity = "0.99";
  } else {
    //fobj[fobjname].style.opacity = "0.5";
  } 
 
 
  delete(fading[fobjname]);
  delete(timerID[fobjname]);
  delete(startTime[fobjname]);
  delete(endHeight[fobjname]);
  delete(fobj[fobjname]);
  delete(dir[fobjname]);
 
  return;
}

//
//
// MOVE/PADDING FUNCTION
//
//

function moveDown(objname, pad) {
	/*if (moving[ objname]) {
		return; }*/
	
	//check to be sure that the div isnt already visible
	if (document.getElementById(objname).style.padding == '0') {
		alert("working so far...");
		return; }
	
	//setting the moving to true, note direction, and begin the animation
	moving[ objname] = true;
	dir[ objname] = "down";
	startmove(objname, pad);
	
}

function moveUp(objname, pad) {
	/*if (moving[ objname]) {
		alert("working so far...");
		return; }*/
	
	if (document.getElementById(objname).style.padding == '0pt') {
		return; }
	
	//setting the moving to true, note direction, and begin the animation
	
	moving[ objname] = true;
	dir[ objname] = "up";
	startmove(objname, pad);
}

function startmove(objname, pad) {
	obj[objname] = document.getElementById(objname);
	
	//set the padding of each div being animated
	endPadding[ objname] = 200;
	startTime[ objname] = (new Date()).getTime(); 
	
	if(dir[ objname] == "down"){
		obj[ objname].style.padding = '1px 0 0 0';
		
	}
	
	timerID[ objname] = setInterval('movetick(\'' + objname + '\');',timerlen);
}

function movetick(objname) {
	var elapsed = (new Date()).getTime() - startTime[ objname];

	if (elapsed > slideAniLen) {
		endMove(objname);
	} else {
		var d = Math.round(elapsed / slideAniLen * endPadding[ objname]);
			if (dir[ objname] == "up") {
				d = endPadding[ objname] -d;
			}
			obj[objname].style.padding = d + 'px 0 0 0';
	}
	
	return;
}
			
function endMove(objname){
  clearInterval(timerID[ objname]);

  if(dir[ objname] == "up")
    obj[objname].style.padding = "0 0 0 0";
 
  //obj[objname].style.height = endHeight[objname] + "px";
  delete(moving[objname]);
  delete(timerID[objname]);
  delete(startTime[objname]);
  delete(endPadding[objname]);
  delete(obj[objname]);
  delete(dir[objname]);
 
  return;
}

//
//
// SLIDE FUNCTION
//
//

function slideDown(sobjname) {
	if (sliding[ sobjname]) {
		return; }
	
	//check to be sure that the div isnt already visible
	if (document.getElementById(sobjname).style.display != 'none') {
		return; }
	
	//setting the sliding to true, note direction, and begin the animation
	sliding[ sobjname] = true;
	dir[ sobjname] = "down";
	startslide(sobjname);
	
}

function slideUp(sobjname) {
	if (sliding[ sobjname]) {
		return; }
	
	//check to be sure that the div isnt already hidden
	if (document.getElementById(sobjname).style.display == 'none') {
		return; }
	
	//setting the sliding to true, note direction, and begin the animation
	sliding[ sobjname] = true;
	dir[ sobjname] = "up";
	startslide(sobjname);
}

function startslide(sobjname) {
	sobj[sobjname] = document.getElementById(sobjname);
	
	//set the endheight of each div being animated
	endHeight[ sobjname] = parseInt(sobj[sobjname].style.height);
	startTime[ sobjname] = (new Date()).getTime(); 
	
	if(dir[ sobjname] == "down"){
		sobj[ sobjname].style.height = '1px';
		
	}
	
	sobj[ sobjname].style.display = "block";
	
	timerID[ sobjname] = setInterval('slidetick(\'' + sobjname + '\');',timerlen);
}

function slidetick(sobjname) {
	var elapsed = (new Date()).getTime() - startTime[ sobjname];

	if (elapsed > slideAniLen) {
		endSlide(sobjname);
	} else {
		var d = Math.round(elapsed / slideAniLen * endHeight[ sobjname]);
			if (dir[ sobjname] == "up") {
				d = endHeight[ sobjname] -d;
			}
			sobj[sobjname].style.height = d + 'px';
	}
	
	return;
}
			
function endSlide(sobjname){
  clearInterval(timerID[ sobjname]);
 
  if(dir[ sobjname] == "up")
    sobj[sobjname].style.display = "none";
 
  sobj[sobjname].style.height = endHeight[sobjname] + "px";
 
  delete(sliding[ sobjname]);
  delete(timerID[sobjname]);
  delete(startTime[sobjname]);
  delete(endHeight[sobjname]);
  delete(sobj[sobjname]);
  delete(dir[sobjname]);
 
  return;
}

//
//
// ON WINDOW-LOADING FUNCTIONS 
//
//

function init() {
  about1 = document.getElementById('about1'); // get the "foo" object
  about2 = document.getElementById('about2');
  about3 = document.getElementById('about3');
  contact = document.getElementById('contact');
  dca = document.getElementById('dca');
  show = document.getElementById('show');
  gallery = document.getElementById('gallery');
  louise = document.getElementById('louise');
  quotes = document.getElementById('quoteslink');
  images = document.getElementById('imageslink');
  about = document.getElementById('aboutlink');
  quotesA = document.getElementById('quotesa');
  aboutA = document.getElementById('abouta');
	about1.style.display = 'none'; 
	about2.style.display = 'none';
	about3.style.display = 'none';
	contact.style.opacity = '1';
  	dca.style.opacity = '1';
	show.style.opacity = '1';
	gallery.style.opacity = '1';
	louise.style.opacity = '1';
	quotes.style.opacity = '1';
	images.style.opacity = '1';
	
	contact.style.padding = '0';
  	dca.style.padding = '0';
	show.style.padding = '0';
	gallery.style.padding = '0';
	louise.style.padding = '0';
	quotes.style.padding = '0';
	images.style.padding = '0';
	about.style.padding = '0';
}


function toggleAbout() {
	if (about1.style.display == 'none') {
	aboutA.style.backgroundPosition = 'bottom';
		slideDown('about1');
		slideDown('about2');
		slideDown('about3');
		  fadeUp('contact');
		  fadeUp('dca');
		  fadeUp('show');
		  fadeUp('gallery');
		  fadeUp('louise');
		  fadeUp('quotes');
		  fadeUp('images');
		  fadeUp('quoteslink');
		  fadeUp('imageslink');
		
		moveDown('contact');
		moveDown('dca');
		moveDown('show');
		moveDown('gallery');
		moveDown('louise');
		moveDown('aboutlink');
	} else {
		aboutA.style.backgroundPosition = '';
		slideUp('about1');
		slideUp('about2');
		slideUp('about3');
		fadeDown('contact');
		fadeDown('dca');
		fadeDown('show');
		fadeDown('gallery');
		fadeDown('louise');
		fadeDown('quotes');
		fadeDown('images');
		fadeDown('quoteslink');
		fadeDown('imageslink');
		moveUp('contact');
		moveUp('dca');
		moveUp('show');
		moveUp('gallery');
		moveUp('louise');
		moveUp('aboutlink');
	}
}



window.onload = init;