// change size of header text according to screen width
var normalSize = 1100; // should probably make it 912?
//how quickly should the welcome message change? in milliseconds
var welcomeOnTime = 5*1000;
//how long should it stay dark?
var welcomeOffTime = 1*1000;
//how many steps should opacity change in?
var welcomeFadeSteps = 20;
//how quickly should opacity change?
var welcomeFadeTime = 1.5*1000;
//what is the normal opacity for the welcome message?
var welcomeOpacity = .4;
//how many welcomes are between the default messages?
var welcomeCount = 1;
var defaultLanguage = "en";

//welcome messages
var welcomes = {
	'de':'heute an den soles',
	'en':'today at soles',
	'es':'hoy a soles',
	'fr':'aujourd&rsquo;hui aux soles',
	'haw':'k&eacute;ia l&aacute; soles',
	'it':'oggi alle soles',
	'nl':'vandaag bij soles',
	'pt':'hoje em soles'
};

//calculate steps for welcome message fading
var welcomeFadeChange = welcomeOpacity/welcomeFadeSteps;
var welcomeStepTime = welcomeFadeTime/welcomeFadeSteps;
var welcomeCounter = 0;

//these will be set after the page loads
var pageElement = null;
var headerElement = null;
var welcomeElement = null;
var currentLanguage = null;

//dynamically switch footer between USD and SOLES
function hidePanel(panelID) {
	element = document.getElementById(panelID);
	element.style.display = 'none';
}

function showPanel(panelID) {
	element = document.getElementById(panelID);
	element.style.display = 'block';
}

function hideAndShow(hideID, showID) {
	hidePanel(hideID);
	showPanel(showID);
}

//array extensions
Array.prototype.remove=function(s) {
	var index = this.indexOf(s);
	if (index != -1) {
		var spliced = this.splice(index, 1);
	}
}

//font resizing
function changeFont() {
	var windowSize = pageElement.clientWidth;
	if (windowSize < normalSize) {
		windowSize = normalSize;
	}
	var newFont = Math.floor(100 * windowSize / normalSize);
	headerElement.style.fontSize = newFont + "%";
	setTimeout("changeFont()", 1);
}

//today at soles welcome messages
function fadeWelcome(opacity) {
	if (opacity < welcomeFadeChange) {
		opacity = 0;
	}

	welcomeElement.style.opacity = opacity;

	if (opacity == 0) {
		setTimeout("newWelcome()", welcomeStepTime);
	} else {
		opacity = opacity - welcomeFadeChange;
		setTimeout("fadeWelcome(" + opacity + ")", welcomeStepTime);
	}
}

function unfadeWelcome(opacity) {
	if (opacity > welcomeOpacity) {
		opacity = welcomeOpacity;
	}

	welcomeElement.style.opacity = opacity;
	
	if (opacity == welcomeOpacity) {
		setTimeout("fadeWelcome(" + welcomeOpacity + ")", welcomeOnTime);
	} else {
		opacity = opacity + welcomeFadeChange;
		setTimeout("unfadeWelcome(" + opacity + ")", welcomeStepTime);
	}
}

function collateLanguages() {
	welcomeLanguages = new Array();
	for (var welcomeLanguage in welcomes) {
		welcomeLanguages.push(welcomeLanguage);
	}
	defaultMessage = welcomes[defaultLanguage];
	welcomeLanguages.remove(defaultLanguage);
}

function setWelcome() {
	if (welcomeCounter % (welcomeCount+1)) {
		if (welcomeLanguages.length < 1) {
			collateLanguages();
		}

		var randomLanguage = currentLanguage;
		while (randomLanguage == currentLanguage) {
			randomLanguage = welcomeLanguages[Math.floor(Math.random()*welcomeLanguages.length)];
		}
		
		currentLanguage = randomLanguage;
		var welcomeMessage = welcomes[currentLanguage];

		welcomeLanguages.remove(currentLanguage);

		welcomeCounter++;
	} else {
		currentLanguage = defaultLanguage;
		var welcomeMessage = defaultMessage;

		welcomeCounter = 1;
	}
	
	welcomeElement.innerHTML = welcomeMessage;
	
	welcomeElement.lang = currentLanguage;
}

function newWelcome() {
	setWelcome();
	setTimeout("unfadeWelcome(0)", welcomeOffTime);
}

//provide a better quality header image to those that can handle it
function setHeaderImage() {
	if (navigator.appName != "Microsoft Internet Explorer") {
		var headerImage = document.getElementById("headerimage");
		headerImage.src = "http://www.sandiego.edu/soles/images/headers/content_wide.png";
	}
}

//start scripts 
function startDynamics() {
	//set the header image if appropriate
	setHeaderImage();

	//start the top menu resizing
	pageElement = document.getElementsByTagName("html")[0];
	headerElement = document.getElementById("header");
	changeFont();
	setTimeout("changeFont()", 1);
};

function homeDynamics() {
	welcomeElement = document.getElementById("welcome");
	collateLanguages();
	setWelcome();
	setTimeout("fadeWelcome(" + welcomeOpacity + ")", welcomeOnTime);
}
