﻿/*******************************************************************************************************************************
* Constantes *******************************************************************************************************************
*******************************************************************************************************************************/
var cstMenuActiveClassName 		= "mnuActive";
var cstMenuHoverClassName 		= "mnuHover";
var cstMenuInactiveClassName 	= "mnuInactive";

var cstTopLeftCornerImageName 		= "tlcorner";
var cstTopRightCornerImageName 		= "trcorner";
var cstDownLeftCornerImageName 		= "dlcorner";
var cstDownRightCornerImageName 	= "drcorner";

var cstSectionFilesPath 	= ["../en/", "../fr/"];

var cstmnuindexText 		= ["Home", 					"Accueil"];
var cstmnurealisations 	= ["Achievements", 	"Réalisations"];
var cstmnuEngineering 	= ["Engineering", 	"Ingénierie"];
var cstmnuSoftware 			= ["Software", 			"Logiciel"];
var cstmnuDrafting 			= ["Drafting", 			"Dessin"];
var cstmnuCorporate 		= ["Corporate", 		"Corporatif"];
var cstmnuCareers 			= ["Careers", 			"Emplois"];
var cstmnuContact 			= ["Contact Us", 		"Nous contacter"];

/*******************************************************************************************************************************
* Enums ***********************************************************************************************************
*******************************************************************************************************************************/
var corners = {"tl" : 1, "tr" : 2, "dl" : 4, "dr" : 8};

/*******************************************************************************************************************************
* Variables Globales ***********************************************************************************************************
*******************************************************************************************************************************/
var alerted = false;

var selectedSection = "";
var selectedLang = 0;

var RoundedCornerObjetcs = new Array();

/*========================================================================================================================*/
function addListener(varObject, varEvent, varListener)
/*========================================================================================================================*/
{
	if(varObject.addEventListener)
		varObject.addEventListener(varEvent, varListener, false);
	else if(varObject.attachEvent())
		varObject.attachEvent("on" + varEvent, varListener, false);
}

/*========================================================================================================================*/
function refreshRoundCorners()
/*========================================================================================================================*/
{
	for(var i = 0; i < RoundedCornerObjetcs.length; i++)
	{
		positionRoundCornersImages(RoundedCornerObjetcs[i]);
	}
}

/*========================================================================================================================*/
function positionRoundCornersImages(varRectangle)
/*========================================================================================================================*/
{
	var rectangleElement = document.getElementById(varRectangle);
	
	if(rectangleElement != null)
	{
		var errorMargin = 1;
		
		var tlImg = document.getElementById(varRectangle + cstTopLeftCornerImageName 		+ "Img");
		var trImg = document.getElementById(varRectangle + cstTopRightCornerImageName 	+ "Img");
		var dlImg = document.getElementById(varRectangle + cstDownLeftCornerImageName 	+ "Img");
		var drImg = document.getElementById(varRectangle + cstDownRightCornerImageName 	+ "Img");
		
		if(tlImg != null)
		{
			tlImg.style.display = rectangleElement.style.display;
			tlImg.style.visibility = rectangleElement.style.visibility;
		}
		if(trImg != null)
		{
			trImg.style.display = rectangleElement.style.display;
			trImg.style.visibility = rectangleElement.style.visibility;
		}
		if(dlImg != null)
		{
			dlImg.style.display = rectangleElement.style.display;
			dlImg.style.visibility = rectangleElement.style.visibility;
		}
		if(drImg != null)
		{
			drImg.style.display = rectangleElement.style.display;
			drImg.style.visibility = rectangleElement.style.visibility;
		}
		
		var jrectangleElement = null;
		var topCorner = null;
		var leftCorner = null;
		
		try
		{
			var jrectangleElement = $(rectangleElement);
			if(jrectangleElement != null)
			var offset = jrectangleElement.offset();
			
			topCorner = topCorner = offset.top;
			leftCorner = leftCorner = offset.left;
		}
		catch(exception)
		{
			jrectangleElement = null;
			topCorner = null;
			leftCorner = null;
		}
		
		
		if(topCorner == null)
			topCorner = rectangleElement.offsetTop;
			
		if(leftCorner == null)
			leftCorner = rectangleElement.offsetLeft;
		
		if(trImg != null)
			var rightCorner = leftCorner	+ rectangleElement.offsetWidth - trImg.offsetWidth;
		else if(drImg != null)
			var rightCorner = leftCorner	+ rectangleElement.offsetWidth - drImg.offsetWidth;
			
		if(dlImg != null)
			var downCorner 	= topCorner + rectangleElement.offsetHeight - dlImg.offsetHeight;
		else if(drImg != null)
			var downCorner 	= topCorner + rectangleElement.offsetHeight - drImg.offsetHeight;
		
		if(tlImg != null)
		{		
			tlImg.style.top = topCorner + "px";
			tlImg.style.left = leftCorner + "px";
		}
		
		if(trImg != null)
		{		
			trImg.style.top = topCorner + "px";
			trImg.style.left = rightCorner + "px";
		}
		
		if(dlImg != null)
		{		
			dlImg.style.top = downCorner + "px";
			dlImg.style.left = leftCorner + "px";
		}
		
		if(drImg != null)
		{		
			drImg.style.top = downCorner + "px";
			drImg.style.left = rightCorner + "px";
		}
	}
	else
	{
		removeRoundCorners(varRectangle);
	}
}

/*========================================================================================================================*/
function createCornerImage(varImage, varRectangle)
/*========================================================================================================================*/
{
	var cornerImageId = varRectangle + varImage + "Img";
	
	if(document.getElementById(cornerImageId) == null)
	{
		var img = document.createElement("img");
		
		img.setAttribute("id", cornerImageId);
		img.setAttribute("src", "../images/roundedCorners/" + varImage + ".png");
		img.setAttribute("class", "cornerImage");
		img.setAttribute("width", 6);
		img.setAttribute("height", 6);
		
		
		document.getElementsByTagName("body").item(0).appendChild(img);
	}
}

/*========================================================================================================================*/
function removeRoundCorners(varRectangle)
/*========================================================================================================================*/
{
	var bodyNode = document.getElementsByTagName("body").item(0);
	var index = -1;
	
	if(RoundedCornerObjetcs != null && varRectangle != null)
	{
		try
		{
			index = $.inArray(varRectangle, RoundedCornerObjetcs);
		}
		catch(exception)
		{
			index = RoundedCornerObjetcs.indexOf(varRectangle);
		}
	}
	
	if(bodyNode != null && index > -1)
	{
		RoundedCornerObjetcs.splice(index, 1);
		
		var tlCorner = document.getElementById(varRectangle + cstTopLeftCornerImageName + "Img");
		if(tlCorner != null)
			bodyNode.removeChild(tlCorner);
		var trCorner = document.getElementById(varRectangle + cstTopRightCornerImageName + "Img");
		if(trCorner != null)
			bodyNode.removeChild(trCorner);
		var blCorner = document.getElementById(varRectangle + cstDownLeftCornerImageName + "Img");
		if(blCorner != null)
			bodyNode.removeChild(blCorner);
		var brCorner = document.getElementById(varRectangle + cstDownRightCornerImageName + "Img");
		if(brCorner != null)
			bodyNode.removeChild(brCorner);
	}
}

/*========================================================================================================================*/
function roundCorners(varRectangle, varCorners)
/*========================================================================================================================*/
{
	RoundedCornerObjetcs.push(varRectangle);
	
	if(varCorners == null || varCorners & corners.tl)
		createCornerImage(cstTopLeftCornerImageName, varRectangle);
	if(varCorners == null || varCorners & corners.tr)
		createCornerImage(cstTopRightCornerImageName, varRectangle);
	if(varCorners == null || varCorners & corners.dl)
		createCornerImage(cstDownLeftCornerImageName, varRectangle);
	if(varCorners == null || varCorners & corners.dr)
		createCornerImage(cstDownRightCornerImageName, varRectangle);
	
	positionRoundCornersImages(varRectangle);
}

/*========================================================================================================================*/
function mainMenuBlur(varSection)
/*========================================================================================================================*/
{
	var sectionElement = document.getElementById("mnu" + varSection);
	
	if(sectionElement != null)
	{
		var currentClassName = "";
			
		if(varSection == selectedSection)
			currentClassName = cstMenuActiveClassName;
		else
			currentClassName = cstMenuInactiveClassName;
		
		sectionElement.className = currentClassName;
	}
}

/*========================================================================================================================*/
function mainMenuHover(varSection)
/*========================================================================================================================*/
{
	var sectionElement = document.getElementById("mnu" + varSection);
	
	if(sectionElement != null)
		sectionElement.className = cstMenuHoverClassName;
}

/*========================================================================================================================*/
function mainMenuClick(varSection)
/*========================================================================================================================*/
{
	var choosenPage = "index.asp";
	
	switch (varSection)
	{
		case "index":
			choosenPage = "index.asp";
			break;
		case "realisations":
			choosenPage = "realisations.asp";
			break;
		case "Engineering":
			choosenPage = "Engineering.asp";
			break;
		case "Software":
			choosenPage = "Software.asp";
			break;
		case "Drafting":
			choosenPage = "Drafting.asp";
			break;
		case "Corporate":
			choosenPage = "Corporate.asp";
			break;
		case "Careers":
			choosenPage = "Careers.asp";
			break;
		case "Contact":
			choosenPage = "Contact.asp";
			break;
	}
	
	window.location = cstSectionFilesPath[selectedLang] + choosenPage;
}

/*========================================================================================================================*/
function changeLang()
/*========================================================================================================================*/
{
	var cboLang = document.getElementById("cboLang");
	var choosenLang = cboLang.selectedIndex;
	
	if(choosenLang != selectedLang)
	{
		selectedLang = choosenLang;
		mainMenuClick(selectedSection);
	}
}

/*========================================================================================================================*/
function checkCourrielEn(f)
{
	// Vérifie si le champ contient bien une adresse courriel contenant "@"
	with (f){
	var s = value.split(/@/);
		if((value)&&(value.search(/ /)!=-1||s.length!=2||!(s[0])||!(s[1])||s[1].search(/\.\w/)==-1)){	
			focus();
			value = '';
			alert("Please enter a valid email address!");					
			return false;
		}//if
		else {
			if (value == '') return false; else return true;
		}
	}//with
}//funct

function checkCourrielFr(f)
{
	// Vérifie si le champ contient bien une adresse courriel contenant "@"
	with (f){
	var s = value.split(/@/);
		if((value)&&(value.search(/ /)!=-1||s.length!=2||!(s[0])||!(s[1])||s[1].search(/\.\w/)==-1)){	
			focus();
			value = '';
			alert("Ce courriel est invalide!");					
			return false;
		}//if
		else {
			if (value == '') return false; else return true;
		}
	}//with
}//funct

function checkCourriel(f)
{
	if(selectedLang == 1)
		checkCourrielFr(f);
	else
		checkCourrielEn(f);
}//funct

function requisEn(form)
{
	// vérifie que les champs
	// requis soient bien remplis
	var n,args=requis.arguments, l=args.length - 1;
	if(l > 2) {
		for(var i=1; i<args.length; i++){
			n=args[i];
			if(n.value == '' || n.value == 0) {
					alert("All required fields must be filled out!"); 
					n.focus();
					return false;
			}//if
		}//for
	}//if
	//form.submit();
	return true;
}

function requisFr(form)
{
	// vérifie que les champs
	// requis soient bien remplis
	var n,args=requis.arguments, l=args.length - 1;
	if(l > 2) {
		for(var i=1; i<args.length; i++){
			n=args[i];
			if(n.value == '' || n.value == 0) {
					alert("Vous devez remplir tous les champs obligatoires !"); 
					n.focus();
					return false;
			}//if
		}//for
	}//if
	//form.submit();
	return true;
}

function requis(form)
{
	if(selectedLang == 1)
		return requisFr(form);
	else
		return requisEn(form);
}
/*========================================================================================================================*/

/*========================================================================================================================*/
function initMainMenu(varSection, varLang)
/*========================================================================================================================*/
{
	selectedLang = varLang == "French" ? 1 : 0;
	selectedSection = varSection;
	var cboLang = document.getElementById("cboLang");
	cboLang.selectedIndex = selectedLang;
	
	var sectionElement = document.getElementById("mnu" + varSection);
	
	if(sectionElement != null)
		sectionElement.className = cstMenuActiveClassName;
	
	setTimeout(function(){roundCorners("topMenu");}, 200);	
	
	setInterval(function (){ refreshRoundCorners(); }, 100);
	addListener(window, "resize", function (){ refreshRoundCorners(); });
	
	document.getElementById("mnuindex").innerHTML = cstmnuindexText[selectedLang];
	document.getElementById("mnurealisations").innerHTML = cstmnurealisations[selectedLang];
	document.getElementById("mnuEngineering").innerHTML = cstmnuEngineering[selectedLang];
	document.getElementById("mnuSoftware").innerHTML = cstmnuSoftware[selectedLang];
	document.getElementById("mnuDrafting").innerHTML = cstmnuDrafting[selectedLang];
	document.getElementById("mnuCorporate").innerHTML = cstmnuCorporate[selectedLang];
	document.getElementById("mnuCareers").innerHTML = cstmnuCareers[selectedLang];
	document.getElementById("mnuContact").innerHTML = cstmnuContact[selectedLang];
}



