var colorArray = new Array(
	"#000000", "#111111", "#222222", "#333333", 
	"#444444", "#555555", "#666666", "#777777", 
	"#888888", "#999999", "#AAAAAA", "#BBBBBB", 
	"#CCCCCC", "#DDDDDD", "#EEEEEE");
var lastPlayId = null;
var isPlaying = false;
var lastId = null;
var lastPlayId = null;
var maxLastColorIndex = colorArray.length;
var maxLastOpacity = 10;
var fadeInSpeed = 500;
var fadeOutSpeed = 300;

function changeImageOpacity(id, opacity, fadeOut) { 
	// Set opacity to start from in fadeout
	if (!fadeOut)
		maxLastOpacity = opacity;

	// Cancel fadein if no longer current id
	if (id.indexOf(lastId)==-1 && !fadeOut && !isMediaPlaying()) {
		return;
	}

	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 10); 
	object.MozOpacity = (opacity / 10); 
	object.KhtmlOpacity = (opacity / 10); 
	object.filter = "alpha(opacity=" + opacity*10 + ")"; 
}

function changeTextColor(id, colorIndex, fadeOut) {
	// Set colorIndex to start from in fadeout
	if (!fadeOut)
		maxLastColorIndex = colorIndex;

	// Cancel fadein if no longer current id
	if (id.indexOf(lastId)==-1 && !fadeOut && !isMediaPlaying())
		return;

	var object = document.getElementById(id); 
	object.style.color = colorArray[colorIndex];
}

function imageFade(id, opacStart, opacEnd, totalSpeed) { 
	var dif = Math.abs(opacEnd-opacStart);
	var frameSpeed = totalSpeed/dif;
	var timer = 0; 

	if(opacStart > opacEnd) { 
		for(i = opacStart; i >= opacEnd; i--) { 
			setTimeout("changeImageOpacity('" + id + "'," + i + ", true)",(timer * frameSpeed)); 
			timer++; 
		} 
	} 
	else if(opacStart < opacEnd) { 
		for(i = opacStart; i <= opacEnd; i++) 
		{ 
			setTimeout("changeImageOpacity('" + id + "'," + i + ", false)",(timer * frameSpeed)); 
			timer++; 
		} 
	} 
} 

function textFade(id, colorIndexStart, colorIndexEnd, totalSpeed) { 
	var frameSpeed = totalSpeed/Math.abs(colorIndexEnd-colorIndexStart);
	var timer = 0; 

	if(colorIndexStart > colorIndexEnd) { 
		for(i = colorIndexStart; i>=colorIndexEnd; i--) { 
			setTimeout("changeTextColor('" + id + "'," + i + ", true)",(timer * frameSpeed)); 
			timer++;
		} 
	}
	else if(colorIndexStart < colorIndexEnd) { 
		for(i = colorIndexStart; i<=colorIndexEnd; i++) 
		{ 
			setTimeout("changeTextColor('" + id + "'," + i + ", false)",(timer * frameSpeed)); 
			timer++;
		} 
	}
}

function setVisibility(id, value) {
	if (navigator.appName == "Microsoft Internet Explorer")
		document.getElementById(id).setAttribute('className', value);
	else
		document.getElementById(id).setAttribute('class', value);
}

function show(id, side) {
	// Hide lastId in case mouseOut wasn't triggered
	if (lastId != null)
		hide(lastId, side);
	lastId = id;

	if (isMediaPlaying())
		return false;
		
	if (document.getElementById(id+'Image'))
		document.getElementById(id+'Image').src = id+'Selected.jpg';

	if(side=='left' || side==null) {
		setVisibility(id+'Left',getVisibleClass());
		textFade(id+'Left', 0, colorArray.length-1, fadeInSpeed);
		if (document.getElementById(id+'LeftImage'))
			imageFade(id+'LeftImage', 0, 10, fadeInSpeed);
		if (id=="jay")
			changeImageOpacity('jayLeftImage', 0);
	}

	if(side=='right' || side==null) {
		if (id.indexOf('movie')!=-1) {
			getPlayer().width=200;
			getPlayer().height=100;
		}
		setVisibility(id+'Right',getVisibleClass());
		textFade(id+'Right', 0, colorArray.length-1, fadeInSpeed);
		if (document.getElementById(id+'RightImage'))
			imageFade(id+'RightImage', 0, 10, fadeInSpeed);
	}
}

function hide(id, side) {
	lastId = null;

	if (isMediaPlaying())
		return false;

	if (document.getElementById(id+'Image'))
		document.getElementById(id+'Image').src = id+'.jpg';

	if(side=='left' || side==null) {
		textFade(id+'Left', maxLastColorIndex, 0, fadeOutSpeed);
		if (document.getElementById(id+'LeftImage'))
			imageFade(id+'LeftImage', maxLastOpacity, 0, fadeOutSpeed);
		setTimeout("setVisibility('"+id+"Left',getHiddenClass())", fadeOutSpeed);
	}

	if(side=='right' || side==null) {
		if (document.getElementById(id+'RightImage'))
			imageFade(id+'RightImage', maxLastOpacity, 0, fadeOutSpeed);
		if (id.indexOf('movie')!=-1) {
			getPlayer().width=1;
			getPlayer().height=1;
		}
		textFade(id+'Right', maxLastColorIndex, 0, fadeOutSpeed);
		setTimeout("setVisibility('"+id+"Right',getHiddenClass())", fadeOutSpeed);
	}
}


function getHiddenClass() {
	if (navigator.appName == "Microsoft Internet Explorer")
		return "hidden";
	else
		return "hiddenMoz";
}

function getVisibleClass() {
	if (navigator.appName == "Microsoft Internet Explorer")
		return "visible";
	else
		return "visibleMoz";
}

function play(id) {
	var player = getPlayer();
	if(isMediaPlaying()) {
		// hack to make sure it stops
		//player.LoadMovie(0, 'music1.swf'); 

		player.StopPlay();
		var tempId = lastPlayId;
		//lastPlayId = null;

		if(id!=tempId) {
			hide(tempId);
			show(id);
		}
		else
			return;
	}
	lastPlayId = id;
	player.LoadMovie(0, id+'.swf');
	player.Rewind();
	player.Play();
}

function isMediaPlaying() {
	//return lastPlayId!=null;
	if (!lastPlayId)
		return false;
	return getPlayer().IsPlaying();
}

function getPlayer() {
	return document.player;
}

function writePlayer() {
	if (navigator.appName=="Microsoft Internet Explorer")
		document.write('<div id="movieRight" class="visible" style="top:455">');
	else
		document.write('<div id="movieRight" class="visibleMoz" style="top:455">');
	document.write(
		'<object id="player" width=1 height=1 classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">' +
		'<param name="movie" value="-">' +
		'<param name="allowScriptAccess" value="sameDomain">' +
		'<param name="quality" value="high">' +
		'<param name="swliveconnect" value="true">' +
		'<param name="autoplay" value="false">' +
		'<param name="loop" value="false">' +
		'<param name="bgcolor" value="#000000">' +
		'<embed name="player" width=1 height=1 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" ' +
			'src="-" ' +
			'quality="high" ' +
			'autoplay="false" ' +
			'loop="false" ' +
			'allowScriptAccess="sameDomain" ' +
			'swliveconnect="true" ' +
			'bgcolor="#000000">' + 
		'</embed>' +
		'</object>' +
	'</div>');
}

function waitPreloadPage() { //DOM
	if (document.getElementById){
		document.getElementById('prepage').style.visibility='hidden';
	}
	else{
		if (document.layers){ //NS4
			document.prepage.visibility = 'hidden';
		}
		else { //IE4
			document.all.prepage.style.visibility = 'hidden';
		}
	}
}

function writeJayImages() {
	document.write('<div class="'+getVisibleClass()+'" style="top:165; min-width:250" align=center><img src="jay.gif"></div>' +
		'<div id="jayLeft" class="'+getHiddenClass()+'" style="top:165; min-width:250" align=center><img id="jayLeftImage" src="jay2.gif"></div>');
}



