// JavaScript Document

function btnRollover(idCible,img) {
	document.getElementById(idCible).src='img/'+img;
}

function cleanInput(element, defaultValue) {
	if(element.value == defaultValue)
		element.value='';
}

function restoreInput(element, defaultValue) {
	if(element.value == '')
		element.value=defaultValue;
}

/**
 * onFileAdd()
 * Called when we add an attachment to the job request
 */
function onFileAdd(inputNumber) {
	var element = document.getElementById('fileInput' + inputNumber);

	if (!element.value)
		return;

	// search the list to see if its already there
	for (var i=0; i<5; i++)
	{
		if (element.value == document.getElementById('fileInput'+i).value
			&& element.id != 'fileInput'+i)
		{
			if (lang == 'fr')
				alert('Un fichier du même nom est déjà dans la liste');
			else
				alert('A file with the same name is already in the list');
				
			element.value = "";
			return;
		}
	}
	
	showOneFileInput();
	buildList();
}

/**
 * showOneFileInput()
 * Ensure that one file input is visible at all times, (up until 5 files are added)
 */
function showOneFileInput()
{
	var oneInputVisible = false;

	for (var i=0; i<5; i++)
	{
		var fileInput = document.getElementById('fileInput'+i);
		var fileInputButton = document.getElementById('fileInputButton'+i);
	
		if (!fileInput.value && !oneInputVisible)
		{
			fileInput.style.display="";
			fileInputButton.style.display="";
			oneInputVisible = true;
		}
		else
		{
			fileInput.style.display="none";
			fileInputButton.style.display="none";
		}
	}
	
	// If all 5 are invisible then set visibility hidden to keep the size of the box
	if (!oneInputVisible)
		document.getElementById('fileMaxReached').style.display = "";
	else
		document.getElementById('fileMaxReached').style.display = "none";
}

/**
 * buildList()
 * Display a list of previously added files
 */
function buildList() {
	var listContent = "";
	
	for (var i=0; i<5; i++)
	{
		var fileInput = document.getElementById('fileInput'+i);
	
		if (fileInput.value)
		{
			listContent += '<li>'+getFileName(fileInput.value)+' <a href="javascript:;" onclick="javascript:deleteFile(\''+getFileName(fileInput.value)+'\');" class="delete" >[';
			if (lang=="fr")
				listContent += 'supprimer]</a></li>';
			else
				listContent += 'delete]</a></li>';
		}
	}
	
	document.getElementById('fileList').innerHTML = listContent;
}

/**
 * deleteFile()
 * Remove a file from the list
 */
function deleteFile(fileName) {

	for (var i=0; i<5; i++)
	{
		var fileInput = document.getElementById('fileInput'+i);

		if (getFileName(fileInput.value) == fileName)
			clearFileInput(fileInput);
	}
	
	showOneFileInput();
	buildList();
}

/**
 * validateAndSubmit()
 * Verify that everything is filled up and at least one file is uploaded
 * then submit the form
 */
function validateAndSubmit(defaultLastName, defaultFirstName, defaultPhone, defaultEmail) {
	var errorFr = "";
	var errorEn = "";
	
	var form = document.getElementById("formCarrieres");
	
	// first name
	if (form.firstname.value == defaultFirstName)
	{
		errorFr += "prénom, ";
		errorEn += "first name, ";
	}
	
	// last name
	if (form.lastname.value == defaultLastName)
	{
		errorFr += "nom, ";
		errorEn += "last name, ";
	}
	
	// phone
	if (form.phone.value.match(/[^0-9\-\(\)\+ ]/) || form.phone.value == defaultPhone)
	{
		errorFr += "téléphone, ";
		errorEn += "phone, ";
	}
	
	// email
	if (!form.email.value.match(/.+@.+\..+/) || form.email.value == defaultEmail)
	{
		errorFr += "courriel, ";
		errorEn += "e-mail, ";
	}
	
	// Verify that there is at least one file being sent
	oneFileFound = false
	for (var i=0; i<5; i++)
	{
		var fileInput = document.getElementById('fileInput'+i);
	
		if (fileInput.value)
			oneFileFound = true;
	}
	
	if (!oneFileFound)
	{
		errorFr += "pièce jointe, ";
		errorEn += "attachment, ";
	}
	
	if ("" != errorFr)
	{
		if (lang == 'fr')
			alert("SVP vérifier les champs suivants: " + errorFr.substr(0,errorFr.length - 2));
		else
			alert("Please verify the following fields: " + errorEn.substr(0,errorEn.length -2));
	}
	else
		form.submit();
		
}

function clearFileInput(fileInput)
{
	var newFileInput = document.createElement("input");
	newFileInput.setAttribute("type", "file");
	newFileInput.setAttribute("id", fileInput.getAttribute("id"));
	newFileInput.setAttribute("name", fileInput.getAttribute("name"));
	newFileInput.setAttribute("class", "txt");

	fileInput.parentNode.replaceChild(newFileInput, fileInput);
}

function clearFiles()
{
	for (var i=0; i<5; i++)
		clearFileInput(document.getElementById('fileInput'+i));
}

function clearForm()
{
	clearFiles();
	showOneFileInput();
	document.getElementById("formCarrieres").reset();
}

/**
 * getFileName()
 * Return the file name from the full path and file information
 */
function getFileName(pathAndFileName)
{
	return pathAndFileName.match(/[^/^\\]+$/);
}

/**
 * redirectPreviousPage()
 * Start the timer to send back to previous page 
 * after success/error message is displayed
 */
function redirectPreviousPage(delay) {
	setTimeout(redirectPreviousPageTimer, delay)
}

/**
 * redirectPreviousPageTimer()
 * Send back to previous page after success/error message is displayed
 */
function redirectPreviousPageTimer() {
	history.go(-1);	
}