///////////////////////////////////////////////////////////////////////////////////
// Fonction appelées directement par un event sur en bouton ou un lien
//

function launchFreeSearch() {
	hideAllMessage();
	effacerAutresRC('txtFreeSearch');
	setTypeRecherche('recherche libre');
	if (checkFreeSearchOK()) {
		showPlane();
		document.forms['formulaireRecherche'].submit();
	} else {
		showCritereMessage();
	}
}

function launchCriteriaSearch() {
	hideAllMessage();
	effacerToutRL();
	setTypeRecherche('recherche critere');
	checkAndSubmitToutCritere();
}

function stopResearch(){
	hideAllMessage();
	document.getElementById("messageStopResearch").style.display='block';
	if (navigator.appName == "Microsoft Internet Explorer") {
		window.document.execCommand('Stop');
	} else {
		window.stop();
	}
}

//Ouvre la partie recherche avancée et remplace le lien "Recherche avancée" par "Recherche standard"
function openRechercheAvancee() {
	document.getElementById("rechercheAvancee").value = "recherche avancee";
	document.forms['formulaireRecherche'].submit();
}

// Ferme la partie recherche avancée et remplace le lien "Recherche standard" par "Recherche avancée"
// Vide les champs recherche avancée
function closeRechercheAvancee(){
	document.getElementById("rechercheAvancee").value = "recherche standard";
	document.forms['formulaireRecherche'].submit();
}

function list(criteria) {
	hideAllMessage();
	effacerAutresRC(criteria);
	alimChampsCache(criteria);
	setTypeRecherche('recherche liste');
	document.forms['formulaireRecherche'].submit();
	showPlane();
}

///////////////////////////////////////////////////////////////////////////////////


function effacerToutRC() {
	document.getElementById("critImmatriculation").value = '';
	document.getElementById("critConstructeur").value = '';
	document.getElementById("critMake").value = '';
	document.getElementById("critModele").value = '';
	document.getElementById("critMasterSerie").value = '';
	document.getElementById("critSerie").value = '';
	document.getElementById("critNomCommercial").value = '';
	document.getElementById("critConstructeurMoteur").value = '';
	document.getElementById("critTypeMoteur").value = '';
	document.getElementById("critModeleMoteur").value = '';
	document.getElementById("critProprietaire").value = '';
	document.getElementById("critOperateur").value = '';
	document.getElementById("critImmatSup").checked = false;
	document.getElementById("critImmatNew").checked = false;
	if (isAdvancedSearchOpen()) {
		document.getElementById("critModeSCode").value = '';
		document.getElementById("critNCAAMTOW").value = '';
		document.getElementById("critCellMTOW").value = '';
		document.getElementById("critNCAAPaxCount").value = '';
		document.getElementById("critPaxCount").value = '';
		document.getElementById("critPressurization").value = '';
		document.getElementById("critEngineCount").value = '';
		document.getElementById("critOACICODE").value = '';
		document.getElementById("critCellCategoryDesc").value = '';
		document.getElementById("critEngineCategoryDesc").value = '';
		document.getElementById("critAirportName").value = '';
	}
}

function checkboxSupFalse() {
	document.getElementById("critImmatSup").checked=false;
}
function checkboxNewFalse() {
	document.getElementById("critImmatNew").checked=false;
}

function effacerToutRL() {
	document.getElementById("txtFreeSearch").value = '';
}

function effacerAutresRC(boutonId) {
	if (boutonId != "txtFreeSearch")
		document.getElementById("txtFreeSearch").value = '';
	if (boutonId != "critImmatriculation")
		document.getElementById("critImmatriculation").value = '';
	if (boutonId != "critConstructeur")
		document.getElementById("critConstructeur").value = '';
	if (boutonId != "critMake")
		document.getElementById("critMake").value = '';
	if (boutonId != "critModele")
		document.getElementById("critModele").value = '';
	if (boutonId != "critMasterSerie")
		document.getElementById("critMasterSerie").value = '';
	if (boutonId != "critSerie")
		document.getElementById("critSerie").value = '';
	if (boutonId != "critNomCommercial")
		document.getElementById("critNomCommercial").value = '';
	if (boutonId != "critConstructeurMoteur")
		document.getElementById("critConstructeurMoteur").value = '';
	if (boutonId != "critTypeMoteur")
		document.getElementById("critTypeMoteur").value = '';
	if (boutonId != "critModeleMoteur")
		document.getElementById("critModeleMoteur").value = '';
	if (boutonId != "critProprietaire")
		document.getElementById("critProprietaire").value = '';
	if (boutonId != "critOperateur")
		document.getElementById("critOperateur").value = '';
	
	document.getElementById("critImmatSup").checked = false;
	document.getElementById("critImmatNew").checked = false;
	
	// Si la recherche avancée est ouverte
	if (document.getElementById("critModeSCode") != null) {
		if (boutonId != "critModeSCode")
			document.getElementById("critModeSCode").value = '';
		if (boutonId != "critNCAAMTOW")
			document.getElementById("critNCAAMTOW").value = '';
		if (boutonId != "critCellMTOW")
			document.getElementById("critCellMTOW").value = '';
		if (boutonId != "critNCAAPaxCount")
			document.getElementById("critNCAAPaxCount").value = '';
		if (boutonId != "critPaxCount")
			document.getElementById("critPaxCount").value = '';
		if (boutonId != "critPressurization")
			document.getElementById("critPressurization").value = '';
		if (boutonId != "critEngineCount")
			document.getElementById("critEngineCount").value = '';
		if (boutonId != "critOACICODE")
			document.getElementById("critOACICODE").value = '';
		if (boutonId != "critCellCategoryDesc")
			document.getElementById("critCellCategoryDesc").value = '';
		if (boutonId != "critEngineCategoryDesc")
			document.getElementById("critEngineCategoryDesc").value = '';
		if (boutonId != "critAirportName")
			document.getElementById("critAirportName").value = '';
	}
	document.getElementById("listCritReferentielSelectionne").value = '';
}

function alimChampsCache(critere) {
	document.getElementById("rechercheReferentiel").value = critere;
}

function setTypeRecherche(typeRecherche) {
	document.getElementById("typeRecherche").value = typeRecherche;
}

function checkFreeSearchOK(){
	var critereOk = true;
	var valeurCritere = document.getElementById('txtFreeSearch').value;

	if (valeurCritere == '') {
		critereOk = false;
	} else {
		var listeCritere = valeurCritere.split(" ");
		for ( var i = 0; i < listeCritere.length; i = i + 1) {
			if (listeCritere[i].length < 3) {
				critereOk = false;
				break;
			}
		}
	}
	return critereOk;
}

function checkAndSubmitToutCritere() {
	if (immatFieldKO()) {
		showImmatMessage();
		return;
	} 
	
	if (isAdvancedSearchOpen()) {
		if(standardSearchFieldsKO() && advancedSearchFieldsKO()){
			showCritereMessage();
			return;
		}
	} else {
		if(standardSearchFieldsKO()){
			showCritereMessage();
			return;
		}
	}
	showPlane();
	document.forms['formulaireRecherche'].submit();
}

function immatFieldKO(){
	immatLength = document.getElementById("critImmatriculation").value.length;
	// must be >= 2 characters if present
	return  immatLength < 2 && immatLength != 0;
}

function standardSearchFieldsKO(){
	return document.getElementById("critImmatriculation").value == ''
		&& document.getElementById("critConstructeur").value.length < 3
		&& document.getElementById("critMake").value.length < 3
		&& document.getElementById("critModele").value == ''
		&& document.getElementById("critMasterSerie").value == ''
		&& document.getElementById("critSerie").value == ''
		&& document.getElementById("critNomCommercial").value.length < 3
		&& document.getElementById("critConstructeurMoteur").value.length < 3
		&& document.getElementById("critTypeMoteur").value == ''
		&& document.getElementById("critModeleMoteur").value == ''
		&& document.getElementById("critProprietaire").value.length < 3
		&& document.getElementById("critOperateur").value.length < 3
		&& document.getElementById("critImmatSup").checked == false
		&& document.getElementById("critImmatNew").checked == false;
}

function advancedSearchFieldsKO(){
	return document.getElementById("critModeSCode").value == ''
		&& document.getElementById("critNCAAMTOW").value == ''
		&& document.getElementById("critCellMTOW").value == ''
		&& document.getElementById("critNCAAPaxCount").value == ''
		&& document.getElementById("critPaxCount").value == ''
		&& document.getElementById("critPressurization").value == ''
		&& document.getElementById("critEngineCount").value == ''
		&& document.getElementById("critOACICODE").value == ''
		&& document.getElementById("critCellCategoryDesc").value == ''
		&& document.getElementById("critEngineCategoryDesc").value == ''
		&& document.getElementById("critAirportName").value.length < 3;
}

function showImmatMessage(){
	document.getElementById("messageNoCritImmat").style.display = 'block';
}

function showCritereMessage(){
	document.getElementById("messageNoCrit").style.display = 'block';
}
function showPlane(){
	document.getElementById('loading').style.visibility= "visible"; 
	document.getElementById("loading").innerHTML = "<img src='images/avion72.gif'>"; 
}

function showStopRequestMessage(){
	document.getElementById("messageStopResearch").style.display='block';
}

function hideAllMessage(){
	document.getElementById("messageNoCritImmat").style.display='none';
	document.getElementById("messageNoCrit").style.display='none';
	document.getElementById("tableauResult").style.display='none';
	document.getElementById("noFound").style.display='none';
	document.getElementById("found").style.display='none';
	document.getElementById("messageStopResearch").style.display='none';
	document.getElementById('loading').style.visibility= "hidden";
}

function alimCritReferentielSelectionne(critere) {
	document.getElementById("critReferentielSelectionne").value = critere;
	
	if (document.getElementById("rechercheReferentiel").value == 'critSerie') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critMasterSerie') {
		document.getElementById("rechercheReferentiel").value = 'critSerie';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critModele') {
		document.getElementById("rechercheReferentiel").value = 'critMasterSerie';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critMake') {
		document.getElementById("rechercheReferentiel").value = 'critModele';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critConstructeur') {
		document.getElementById("rechercheReferentiel").value = 'critMake';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critModeleMoteur') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critTypeMoteur') {
		document.getElementById("rechercheReferentiel").value = 'critModeleMoteur';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critConstructeurMoteur') {
		document.getElementById("rechercheReferentiel").value = 'critTypeMoteur';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critProprietaire') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critOperateur') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critNomCommercial') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critImmatNew') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critImmatSup') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critCellCategoryDesc') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critEngineCategoryDesc') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
	if (document.getElementById("rechercheReferentiel").value == 'critAirportName') {
		document.getElementById("rechercheReferentiel").value = 'listAeronef';
	}
}

function alimAeronefSelectionne(immat){
	document.getElementById("immatSelectionne").value=immat;
}

function alimListCritReferentielSelectionne(critere) {
	if (document.getElementById("rechercheReferentiel").value == 'critConstructeur') {
		document.getElementById("listCritReferentielSelectionne").value += "CellManufacturer#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critMake') {
		document.getElementById("listCritReferentielSelectionne").value += "CellMake#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critModele') {
		document.getElementById("listCritReferentielSelectionne").value += "CellModel#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critMasterSerie') {
		document.getElementById("listCritReferentielSelectionne").value += "CellMasterSerie#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critSerie') {
		document.getElementById("listCritReferentielSelectionne").value += "CellSeries#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critNomCommercial') {
		document.getElementById("listCritReferentielSelectionne").value += "CellPopularName#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critConstructeurMoteur') {
		document.getElementById("listCritReferentielSelectionne").value += "EngineManufacturer#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critTypeMoteur') {
		document.getElementById("listCritReferentielSelectionne").value += "EngineType#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critModeleMoteur') {
		document.getElementById("listCritReferentielSelectionne").value += "EngineModel#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critProprietaire') {
		document.getElementById("listCritReferentielSelectionne").value += "OW.OwnerName#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critOperateur') {
		document.getElementById("listCritReferentielSelectionne").value += "OP.OperatorName#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critImmatNew') {
		document.getElementById("listCritReferentielSelectionne").value += "CO.ICAOCountryName#"
				+ critere + "@" + "R.ImportStatus#" + "A";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critImmatSup') {
		document.getElementById("listCritReferentielSelectionne").value += "CO.ICAOCountryName#"
				+ critere + "@" + "R.ImportStatus#" + "D";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critCellCategoryDesc') {
		document.getElementById("listCritReferentielSelectionne").value += "CC.CellCategoryDesc#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critEngineCategoryDesc') {
		document.getElementById("listCritReferentielSelectionne").value += "EC.EngineCategoryDesc#"
				+ critere + "@";
	}
	if (document.getElementById("rechercheReferentiel").value == 'critAirportName') {
		document.getElementById("listCritReferentielSelectionne").value += "AP.AirportName#"
				+ critere + "@";
	}
}

function versDetailAeronef(immat){
	setTypeRecherche('recherche aeronef');
	alimAeronefSelectionne(immat);
	document.forms['formulaireRecherche'].submit();
}

function continueReferentiel(valeur, niveau){
	setTypeRecherche('recherche referentiel');
	alimChampsCache(niveau);
	alimListCritReferentielSelectionne(valeur);
	alimCritReferentielSelectionne(valeur);
	document.forms['formulaireRecherche'].submit();
}

function setPaysSelectionne(pays){
	document.getElementById("paysSelectionne").value=pays;
	document.forms['formulaireAuthorityForm'].submit();
}

function finSablier(){
	document.getElementById('loading').style.visibility= "hidden"; 
}



var focusOn;
var FREE_SEARCH = "FREE_SEARCH";
var CRITERIA_SEARCH = "CRITERIA_SEARCH";

function toucheEntree() {
	if (document.getElementById("focusOn").value == FREE_SEARCH) {
		launchFreeSearch();
	} else if (document.getElementById("focusOn").value == CRITERIA_SEARCH) {
		launchCriteriaSearch();
	}
}



function isAdvancedSearchOpen(){
	return document.getElementById("rechercheAvancee").value == "recherche avancee";
}




