// 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 en 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.jpg";
    }
}

//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);
}

