/*global window, document, navigator, alert */

/**
 * Currently selected top menu item.
 */
var selectedTopMenuItem;

/**
 * Currently selected left menu item.
 */
var selectedLeftMenuItem;

/**
 * First phase of Web site initiation: base framework.
 * Should be set as onload handler of main frameset in root page (index.htm).
 */
function initWebSite() {
	// Set start page to "Accueil"
	document.frames["headerFrame"].document.getElementById("accueilLi").click();
}

/**
 * Manage click on top menu bar to update style.
 */
function menuClick(element, isSubMenu) {
	var i;
	var menuItem;
	var leftMenuHeaderCell = window.parent.frames["leftFrame"].document.getElementById("leftMenuHeaderCell");
	var innerText = element.children[0].innerText;
	
	// Get menu item	
	if (isSubMenu) {
		menuItem = element.parentElement.parentElement;
	}
	else {
		menuItem = element;
	}
	
	// Only do this if selected menu item changes
	if (selectedTopMenuItem === menuItem) {
		return;
	}
	
	// Unselect all top items
	for (i = 0; i < menuBar.children.length; i += 1) {
		menuBar.children[i].className = "topitem";
	}
	
	// Select clicked item
	menuItem.className = "topitem selected";
	
	// Update banner cell text
	bannerTextCell.innerHTML = "&nbsp;<P class=bannerTitle>" + innerText + "</P>";
	
	// Update left menu header cell text
	leftMenuHeaderCell.innerHTML = "<P class=leftMenuHeader>" + innerText + "</P>";
}

/**
 * Update left menu contain.
 */
function updateLeftMenu() {
	var innerText = leftMenuHeaderCell.innerText;
	var ul;
	var li;

	// Delete all sub items
	removeChildren(leftMenuItemsCell);

	switch (innerText) {
	case "Accueil":
		// No submenus to build
		break;
	case "Qui sommes-nous ?":
		// Build submenus
		ul = document.createElement("ul");
		ul.className = "leftMenu";
		leftMenuItemsCell.appendChild(ul);
		li = document.createElement("li");
		li.className = "unselected";
		li.innerHTML = '<A href="bsm.htm" target="mainFrame">Présentation de BSM</A>';
		ul.appendChild(li);
		ul = document.createElement("ul");
		ul.className = "leftMenu";
		leftMenuItemsCell.appendChild(ul);
		li = document.createElement("li");
		li.className = "unselected";
		li.innerHTML = '<A href="mission.htm" target="mainFrame">Notre mission et nos valeurs</A>';
		ul.appendChild(li);
		ul = document.createElement("ul");
		ul.className = "leftMenu";
		leftMenuItemsCell.appendChild(ul);
		li = document.createElement("li");
		li.className = "unselected";
		li.innerHTML = '<A href="team.htm" target="mainFrame">Notre équipe</A>';
		ul.appendChild(li);
		break;
	case "Les solutions à vos besoins":
		// Build submenus
		ul = document.createElement("ul");
		ul.className = "leftMenu";
		leftMenuItemsCell.appendChild(ul);
		li = document.createElement("li");
		li.className = "unselected";
		li.innerHTML = '<A href="services.htm" target="mainFrame">Nos services</A>';
		ul.appendChild(li);
		ul = document.createElement("ul");
		ul.className = "leftMenu";
		leftMenuItemsCell.appendChild(ul);
		li = document.createElement("li");
		li.className = "unselected";
		li.innerHTML = '<A href="assets.htm" target="mainFrame">Nos atouts</A>';
		ul.appendChild(li);
		break;
	case "Nos références":
		// No submenus to build
		break;
	case "Formations":
		// No submenus to build
		break;
	case "Extranet":
		// No submenus to build
		break;
	}
}

/**
 * Unselect all menus.
 */
function unselectMenu(innerText) {
	var i;
	var menuBar = window.parent.frames["headerFrame"].document.getElementById("menuBar");
	var bannerTextCell = window.parent.frames["headerFrame"].document.getElementById("bannerTextCell");
	var leftMenuHeaderCell = window.parent.frames["leftFrame"].document.getElementById("leftMenuHeaderCell");

	// Unselect all top items
	for (i = 0; i < menuBar.children.length; i += 1) {
		menuBar.children[i].className = "topitem";
	}

	// Update banner cell text
	bannerTextCell.innerHTML = "&nbsp;<P class=bannerTitle>" + innerText + "</P>";
	
	// Update left menu header cell text
	leftMenuHeaderCell.innerHTML = "<P class=leftMenuHeader>" + innerText + "</P>";
}

/**
 * Removes all children of a DOM element.
 */
function removeChildren(element) {
    var child;
    
    if (element && element.removeChild) {
        for (child = element.firstChild;
             child !== null;
             child = element.firstChild) {
            element.removeChild(child);
        }
    }
}

/**
 * Opens e-mail editor window.
 */
function mailTo(astrEmailAddress) {
	document.location = "mailto:" + astrEmailAddress;
}

/**
 * Redirect to extranet.
 */
function extranet() {
	var newLocation = prompt("Entrez votre mot de passe pour accéder à l'extranet :", "");
	var mainFrame = window.parent.frames["mainFrame"];
	
	if (newLocation) {
		newLocation = newLocation + ".htm";
		mainFrame.document.location = newLocation;
	}
}
