// JavaScript Document

var CURRENT_BUTTON;
var EXCLUDE_BUTTON;
var CURRENT_BUTTON_COORDS;
var CURRENT_MOUSE_COORDS;
var CURRENT_BG_COORDS;
var RESET_MOVEMENT;
var MOVEMENT_ID;
var CURRENT_DIRECTION = 'none';
var CURRENT_SPEED = 0;
var DOMOVE = true;
var MOVING = false;

function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}

function getElementsByClassName(classname, node)  {
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}


function initButtons()
{
	document.getElementById('menubaroverlay').style.zIndex = "20";
	var buttonDiv;
	var buttonLink;
	var buttonLinkDiv;
	var addListener;
	var changeExcludeButton = false;
	var pageName;
	var noButton = true;
	var menuDiv = document.getElementById('menubar');
	var buttons = getElementsByClassName('mainbutton',menuDiv);
	for (var j=0; j < buttons.length; j++)
	{
		addListener = true;
		buttonDiv = buttons[j];
		pageName = location.href;
		currentPage = buttonDiv.id.substring(0,buttonDiv.id.indexOf('button'));
		buttonLink = buttonDiv;
		while (buttonLink.nodeName != 'IMG') {
			var i=0;
			while ((buttonLink.childNodes[i].nodeName != 'IMG') && (buttonLink.childNodes[i].nodeName != 'A')) {
				i+=1;
			};
			buttonLink = buttonLink.childNodes[i];
		};
		if (pageName.indexOf(currentPage) != -1) {
			addListener = false;
			noButton = false;
			CURRENT_BUTTON = buttonDiv;
			EXCLUDE_BUTTON = buttonDiv;
			changeExcludeButton = true;
			switch(CURRENT_BUTTON.id.substring(0,CURRENT_BUTTON.id.indexOf('button')))
			{
				case 'home':
					CURRENT_BUTTON_COORDS = -46;
					break;
				case 'artists':
					CURRENT_BUTTON_COORDS = 77;
					break;
				case 'releases':
					CURRENT_BUTTON_COORDS = 226;
					break;
				case 'shop':
					CURRENT_BUTTON_COORDS = 357;
					break;
				case 'trades':
					CURRENT_BUTTON_COORDS = 477;
					break;
				case 'links':
					CURRENT_BUTTON_COORDS = 603;
					break;
				case 'contacts':
					CURRENT_BUTTON_COORDS = 740;
					break;
				default:
					break;
			};
			CURRENT_BUTTON_COORDS += 118;
			CURRENT_BG_COORDS = CURRENT_BUTTON_COORDS;
		};
	};
	if (noButton == true)
	{
		CURRENT_BUTTON_COORDS = -236;
		CURRENT_BG_COORDS = CURRENT_BUTTON_COORDS;
	};

	$('#menubaroverlay').mousemove(function(e){
		var x = e.pageX - this.parentNode.offsetLeft;
		CURRENT_MOUSE_COORDS = x;
		RESET_MOVEMENT = false;
		if (MOVING == false) {
			MOVING = true;
			animateBg();
		};
/*		if ((x >= 25) && (x <= 106)) { changeButton('homebutton'); };
		if ((x >= 157) && (x <= 249)) { changeButton('artistsbutton'); };
		if ((x >= 300) && (x <= 482)) { changeButton('releasesshopbutton'); };
		if ((x >= 533) && (x <= 622)) { changeButton('tradesbutton'); };
		if ((x >= 673) && (x <= 753)) { changeButton('linksbutton'); };
		if ((x >= 804) && (x <= 932)) { changeButton('contactsbutton'); };*/
    });
	$('#menubaroverlay').mouseout(function(e){
		RESET_MOVEMENT = true;
		if (noButton == false) { changeButton(CURRENT_BUTTON.id); };
		MOVING = false;
		animateBg();
	});
	$('#menubaroverlay').click(function(e){
		var x = e.pageX - this.parentNode.offsetLeft;
		if ((x >= 25) && (x <= 106)) { location.href = "http://www.aestheticdeath.com/home.php"; };
		if ((x >= 143) && (x <= 240)) { location.href = "http://www.aestheticdeath.com/artists.php"; };
		if ((x >= 286) && (x <= 398)) { location.href = "http://www.aestheticdeath.com/releases.php"; };
		if ((x >= 440) && (x <= 510)) { location.href = "http://www.aestheticdeath.com/shop.php"; };
		if ((x >= 549) && (x <= 637)) { location.href = "http://www.aestheticdeath.com/trades.php"; };
		if ((x >= 680) && (x <= 761)) { location.href = "http://www.aestheticdeath.com/links.php"; };
		if ((x >= 801) && (x <= 932)) { location.href = "http://www.aestheticdeath.com/contacts.php"; };
	});

};

function animateBg()
{
	if (RESET_MOVEMENT == true) {
		var destination = 'button';
		var destCoords = CURRENT_BUTTON_COORDS;
	} else {
		var destination = 'mouse';
		var destCoords = CURRENT_MOUSE_COORDS;
	};
	var currentCoords = CURRENT_BG_COORDS;
	var difference;
	var direction;
	var hello;
	if (destCoords > currentCoords) {
		direction = "right";
		if (destCoords < 0) {
			if (currentCoords < 0) {
				difference = (destCoords * -1) + (currentCoords * -1);
			} else {
				difference = (destCoords * -1) + currentCoords;
			};
		} else {
			difference = destCoords - currentCoords;
		};
	};
	if (destCoords < currentCoords) {
		direction = "left";
		if (destCoords < 0) {
			if (currentCoords < 0) {
				difference = (destCoords * -1) + (currentCoords * -1);
			} else {
				difference = (destCoords * -1) + currentCoords;
			};
		} else {
			difference = currentCoords - destCoords;
		};
	};
	if (destCoords == currentCoords) {
		direction = 'none'; difference = 0;
	};
	if (CURRENT_DIRECTION == 'none') { CURRENT_DIRECTION = direction; };
	if (direction == 'none') { CURRENT_DIRECTION = 'none'; CURRENT_SPEED = 0; MOVING = false; };
	
	if (((direction == 'right') && ((CURRENT_DIRECTION == 'right') || (CURRENT_DIRECTION == 'none'))) || ((direction == 'left') && ((CURRENT_DIRECTION == 'left') || (CURRENT_DIRECTION == 'none')))) {
		if (difference < 120) {
			CURRENT_SPEED = Math.ceil(difference/3);
		} else {
			if (CURRENT_SPEED < 40) {
				CURRENT_SPEED += 1;
			};
		};
	};
	if (((direction == 'left') && (CURRENT_DIRECTION == 'right')) || ((direction == 'right') && (CURRENT_DIRECTION == 'left'))) {
		if (CURRENT_SPEED > 0) {
			CURRENT_SPEED -= 1;
		};
		if (CURRENT_SPEED == 0) {
			CURRENT_DIRECTION = 'none';
			MOVING = false;
		};
	};
	// var displayString = "Destination: "+destination+"<br />Current direction: "+CURRENT_DIRECTION+"<br />Next direction: "+direction+"<br />Current speed: "+CURRENT_SPEED+"<br />Current Coords: "+currentCoords+"<br />Destination Coords: "+destCoords+"<br />Difference: "+difference+"<br />Moving: "+MOVING;
	// document.getElementById('maincontent').innerHTML = displayString;
	if (CURRENT_DIRECTION == 'right') {
		CURRENT_BG_COORDS += Math.ceil(CURRENT_SPEED);
		document.getElementById('menubar').style.backgroundPosition = CURRENT_BG_COORDS-118+'px top';
		if (CURRENT_BG_COORDS <= 24) { document.getElementById('homebuttonimg').src = 'images/Home-Button.png'; };
		if ((CURRENT_BG_COORDS >= 25) && (CURRENT_BG_COORDS <= 106)) { changeButton('homebutton'); };
		if ((CURRENT_BG_COORDS >= 143) && (CURRENT_BG_COORDS <= 240)) { changeButton('artistsbutton'); };
		if ((CURRENT_BG_COORDS >= 286) && (CURRENT_BG_COORDS <= 398)) { changeButton('releasesbutton'); };
		if ((CURRENT_BG_COORDS >= 440) && (CURRENT_BG_COORDS <= 510)) { changeButton('shopbutton'); };
		if ((CURRENT_BG_COORDS >= 549) && (CURRENT_BG_COORDS <= 637)) { changeButton('tradesbutton'); };
		if ((CURRENT_BG_COORDS >= 680) && (CURRENT_BG_COORDS <= 761)) { changeButton('linksbutton'); };
		if ((CURRENT_BG_COORDS >= 801) && (CURRENT_BG_COORDS <= 932)) { changeButton('contactsbutton'); };
		if (CURRENT_BG_COORDS >= 933) { document.getElementById('contactsbuttonimg').src = 'images/Contacts-Button.png'; };
		MOVEMENT_ID = setTimeout(animateBg, 40);
	};
	if (CURRENT_DIRECTION == 'left') {
		CURRENT_BG_COORDS -= Math.ceil(CURRENT_SPEED);
		document.getElementById('menubar').style.backgroundPosition = CURRENT_BG_COORDS-118+'px top';
		if (CURRENT_BG_COORDS <= 24) { document.getElementById('homebuttonimg').src = 'images/Home-Button.png'; };
		if ((CURRENT_BG_COORDS >= 25) && (CURRENT_BG_COORDS <= 106)) { changeButton('homebutton'); };
		if ((CURRENT_BG_COORDS >= 143) && (CURRENT_BG_COORDS <= 240)) { changeButton('artistsbutton'); };
		if ((CURRENT_BG_COORDS >= 286) && (CURRENT_BG_COORDS <= 398)) { changeButton('releasesbutton'); };
		if ((CURRENT_BG_COORDS >= 440) && (CURRENT_BG_COORDS <= 510)) { changeButton('shopbutton'); };
		if ((CURRENT_BG_COORDS >= 549) && (CURRENT_BG_COORDS <= 637)) { changeButton('tradesbutton'); };
		if ((CURRENT_BG_COORDS >= 680) && (CURRENT_BG_COORDS <= 761)) { changeButton('linksbutton'); };
		if ((CURRENT_BG_COORDS >= 801) && (CURRENT_BG_COORDS <= 932)) { changeButton('contactsbutton'); };
		if (CURRENT_BG_COORDS >= 933) { document.getElementById('contactsbuttonimg').src = 'images/Contacts-Button.png'; };
		MOVEMENT_ID = setTimeout(animateBg, 40);
	};
};

function changeButton(thisButton)
{
	var buttonImg = document.getElementById(thisButton+'img');
	var buttonString;
	switch(thisButton)
	{
		case 'homebutton':
			buttonImg.src = 'images/Home-Button-Over.png';
			break;
		case 'artistsbutton':
			buttonImg.src = 'images/Artists-Button-Over.png';
			break;
		case 'releasesbutton':
			buttonImg.src = 'images/Releases-Button-Over.png';
			break;
		case 'shopbutton':
			buttonImg.src = 'images/Shop-Button-Over.png';
			break;
		case 'tradesbutton':
			buttonImg.src = 'images/Trades-Button-Over.png';
			break;
		case 'linksbutton':
			buttonImg.src = 'images/Links-Button-Over.png';
			break;
		case 'contactsbutton':
			buttonImg.src = 'images/Contacts-Button-Over.png';
			break;
		default:
			break;
	};
	var menuDiv = document.getElementById('menubar');
	var buttons = getElementsByClassName('mainbutton',menuDiv);
	for (var j=0; j < buttons.length; j++)
	{
		if (thisButton != buttons[j].id)
		{
			buttonString = buttons[j].id+'img';
			buttonImg = document.getElementById(buttonString);
			switch(buttonImg.id)
			{
				case 'homebuttonimg':
					buttonImg.src = 'images/Home-Button.png';
					break;
				case 'artistsbuttonimg':
					buttonImg.src = 'images/Artists-Button.png';
					break;
				case 'releasesbuttonimg':
					buttonImg.src = 'images/Releases-Button.png';
					break;
				case 'shopbuttonimg':
					buttonImg.src = 'images/Shop-Button.png';
					break;
				case 'tradesbuttonimg':
					buttonImg.src = 'images/Trades-Button.png';
					break;
				case 'linksbuttonimg':
					buttonImg.src = 'images/Links-Button.png';
					break;
				case 'contactsbuttonimg':
					buttonImg.src = 'images/Contacts-Button.png';
					break;
				default:
					break;
			};
		};
	};
};


function preloadButtonImages()
{
	var button1 = new Image();
	button1.src = 'images/Home-Button-Over.png';
	var button2 = new Image();
	button2.src = 'images/Artists-Button-Over.png';
	var button3 = new Image();
	button3.src = 'images/Releases-Button-Over.png';
	var button4 = new Image();
	button4.src = 'images/Trades-Button-Over.png';
	var button5 = new Image();
	button5.src = 'images/Links-Button-Over.png';
	var button6 = new Image();
	button6.src = 'images/Contacts-Button-Over.png';
	var button7 = new Image();
	button7.src = 'images/Shop-Button-Over.png';
};

addLoadListener(preloadButtonImages);
addLoadListener(initButtons);
