var rechercheDefautMateriel1 = '';
var rechercheDefautMateriel2 = '';
var rechercheDefautMarque 	= '';
var rechercheDefautModele 	= '';

setDefautRecherche = function(materiel1, marteriel2, marque, modele) {
	rechercheDefautMateriel1 = materiel1;
	rechercheDefautMateriel2 = marteriel2;
	rechercheDefautMarque 	= marque;
	rechercheDefautModele 	= modele;
}

$(document).ready(function() {
	var selectCategorieR 	= $("#materiel_1");
	var selectMateriel1R 	= $("#materiel_2");
	var selectMateriel2R 	= $("#materiel_3");
	var selectMarqueR 		= $("#marque");
	var selectModeleR 		= $("#modele");
	var submitButton 		= $("form#search_principal_home div.button_Search input[@type=image]");
	if (typeof submitButton.attr("disabled") == 'undefined') {
		submitButton		= $("form#search_principal p.rechercher_dark input[@type=image]");
	}
	var reload 				= false;
	var srcSubmitOn			= submitButton.attr("src");
	var srcSubmitOff		= srcSubmitOn.substr(0, srcSubmitOn.length - 4) + '-off' + srcSubmitOn.substr(srcSubmitOn.length - 4, 4);
	
	var tableauCategoriesR 	= new Array();
	var tableauMarquesR 	= new Array();
	var tableauModelesR 	= new Array();
	
	// Modification du select des materiels niveau 1
	selectCategorieR.change(function() {
		refreshR('all');
		
		if (this.value > 0) {
			listeCategoriesR(this.value);
			if (rechercheDefautMateriel1 == '') {
				listeModelesR(this.value);
			}
		} else {
			loadMarqueR(tableauDonnees.liste_marques);
			loadModeleR(tableauDonnees.liste_modeles);
		}
	});
	
	// Modification du select des materiels niveau 2
	selectMateriel1R.change(function() {		
		refreshR('cat');
	
		if (this.value > 0) {
			var i;
			for (i = 0; i < tableauCategoriesR.length; i++)
				if (this.value == tableauCategoriesR[i].id)
					break;
					
			loadMateriel2R(tableauCategoriesR[i].sscat);
		} else {
			var value = selectCategorieR.selectedValues();
			listeModelesR(value);
		}
	});
	
	// Modification du select des materiels niveau 3
	selectMateriel2R.change(function(){
		refreshR('sscat');
		
		if (this.value > 0) {
			listeModelesR(this.value);
		} else {
			var value = selectMateriel1R.selectedValues();
			listeModelesR(value);
		}
	});
	
	// Modification du select des marques
	selectMarqueR.change(function(){
		refreshR('marque');
		
		if (this.value > 0 && selectCategorieR.selectedValues() > 0) {
			var i;
			for (i = 0; i < tableauMarquesR.length; i++)
				if (this.value == tableauMarquesR[i].id)
					break;
			
			loadModeleR(tableauMarquesR[i].modeles);
		} else if (this.value > 0 && selectCategorieR.selectedValues() == 0) {
			var i;
			for (i = 0; i < tableauDonnees.liste_marques.length; i++)
				if (this.value == tableauDonnees.liste_marques[i].id)
					break;
			
			loadModeleR(tableauDonnees.liste_marques[i].modeles);
		} else if (this.value == 0 && selectCategorieR.selectedValues() > 0) {
			loadModeleR(tableauModelesR);
		} else {
			loadModeleR(tableauDonnees.liste_modeles);
		}
	});
	
	// Modification du select des modeles
	selectModeleR.change(function(){
		if (submitButton.attr("disabled") == false) {
			for (i = 0; i < tableauDonnees.liste_modeles.length; i++) {
				if (tableauDonnees.liste_modeles[i].id == this.value) {
					submitButton.attr("disabled", true);
					submitButton.attr("src", srcSubmitOff);
					rechercheDefautMarque 	= tableauDonnees.liste_modeles[i].idmarque;
					rechercheDefautModele 	= this.value;
					getParentsArborescenceR(this.value);
					
					break;
				}
			}
		} else {
			submitButton.attr("disabled", false);
			submitButton.attr("src", srcSubmitOn);
			reload = false;
		}
	});
	
	loadMarquesModelesR = function() {
		loadMarqueR(tableauDonnees.liste_marques);
	}
	
	refreshR = function(type) {
		if (type == "all") {
			selectMateriel1R.removeOption(/./);
			selectMateriel1R.addOption("", "Indiff\u00e9rent");
			selectMateriel1R.attr("disabled", "disabled");
			selectMateriel1R.selectOptions("");
		}
		
		if (type == "all" || type == "cat") {
			selectMateriel2R.removeOption(/./);
			selectMateriel2R.addOption("", 'Indiff\u00e9rent');
			selectMateriel2R.attr("disabled", "disabled");
			selectMateriel2R.selectOptions("");
		}
		
		if (type == "all" || type == "cat" || type == "sscat") {
			selectMarqueR.removeOption(/./);
			selectMarqueR.addOption("", 'Indiff\u00e9rente');
			//selectMarque.attr("disabled", "disabled");
		}
		
		if (type == "all" || type == "cat" || type == "sscat" || type == "marque") {
			selectModeleR.removeOption(/./);
			selectModeleR.addOption("", 'Indiff\u00e9rent');
			//selectModele.attr("disabled", "disabled");
		}
	}
	
	listeCategoriesR = function(id) {
		// send request
		$.post("javascript/ajax/listeCategories.php", { session_id: $("#session_id").attr("value"), type: 'recherche', idMateriel: id },
		function(data){
			tableauCategoriesR = data.listeCategories;
			
            loadMateriel1R(tableauCategoriesR);
		}, "json");
	}
	
	listeModelesR = function(id) {
		if (rechercheDefautMarque == "" && rechercheDefautModele != "")
			return;

		// send request
		$.post("javascript/ajax/listeModeles.php", { session_id: $("#session_id").attr("value"), type: 'recherche', idMateriel: id },
		function(data){
      // Marque par defaut
      var defaultMarque = rechercheDefautMarque;

      tableauMarquesR = data.listeMarques;
      
			loadMarqueR(tableauMarquesR);
			if (reload == false) {
				tableauModelesR = data.listeModeles;
        if (defaultMarque != "") {
          // Une marque par defaut selectionnee,
          // on charge les modeles correspondants
          for (i = 0 ; i < tableauMarquesR.length ; i++) {
            if (tableauMarquesR[i].id == defaultMarque) {
              break;
            }
          }
          
          loadModeleR(tableauMarquesR[i].modeles);

        } else {
          // Aucunes marque par defaut,
          // on charge tous les modeles
          loadModeleR(tableauModelesR);
        }
			} else {
				reload = false;
			}
		}, "json");
	}
	
	getParentsArborescenceR = function(id) {
		var idMateriel = 0;
		
		if (selectMateriel2R.selectedValues() > 0)
			idMateriel = selectMateriel2R.selectedValues();
		else if (selectMateriel1R.selectedValues() > 0)
			idMateriel = selectMateriel1R.selectedValues();
		else if (selectCategorieR.selectedValues() > 0)
			idMateriel = selectCategorieR.selectedValues();
		// send request
		$.post("javascript/ajax/parentsArborescence.php", { idModele: id, idMateriel: idMateriel },
		function(data){
			if (data.reload == 1) {
				reload = true;
				if (data.idMateriel1 > 0)
					rechercheDefautMateriel1 = data.idMateriel1;
				if (data.idMateriel2 > 0)
					rechercheDefautMateriel2 = data.idMateriel2;
					
				selectCategorieR.selectOptions(data.idCat);
				selectCategorieR.change();
				//submitButton.attr("src", imageSrc);
			} else {
				if (selectMarqueR.selectedValues() <= 0) {
					rechercheDefautMateriel1 	= '';
					rechercheDefautMateriel2 	= '';
					rechercheDefautMarque 		= '';
					
					selectMarqueR.selectOptions(tableauDonnees.liste_modeles[i].idmarque);
					rechercheDefautModele 		= id;
					selectMarqueR.change();
				} else {
					rechercheDefautMateriel1 	= '';
					rechercheDefautMateriel2 	= '';
					rechercheDefautMarque 		= '';
					rechercheDefautModele 		= '';
					
					submitButton.attr("disabled", false);
					submitButton.attr("src", srcSubmitOn);
				}
			}
			
		}, "json");
	}
	
	loadMateriel1R = function(array) {
		// Génère la liste des options.
		for (i = 0; i < array.length; i++)
			selectMateriel1R.addOption(array[i].id, array[i].nom);
		
		// On sélectionne l'option par défaut et on active le select
		selectMateriel1R.selectOptions("");
		selectMateriel1R.removeAttr("disabled");
		
		if (rechercheDefautMateriel1 != '') {
			selectMateriel1R.selectOptions(rechercheDefautMateriel1);
			selectMateriel1R.change();
			
			rechercheDefautMateriel1 = '';
		}
	}
	
	loadMateriel2R = function(array) {
		// Génère la liste des options.
		for (i = 0; i < array.length; i++)
			selectMateriel2R.addOption(array[i].id, array[i].nom);
		
		selectMateriel2R.selectOptions("");
		selectMateriel2R.removeAttr("disabled");
		
		if (rechercheDefautMateriel2 != '') {
			selectMateriel2R.selectOptions(rechercheDefautMateriel2);
			selectMateriel2R.change();
			
			rechercheDefautMateriel2 = '';
		} else {
			listeModelesR(selectMateriel1R.attr("value"));
		}
	}
	
	loadMarqueR = function(array) {
		// Génère la liste des options.
		for (i = 0; i < array.length; i++)
			selectMarqueR.addOption(array[i].id, array[i].nom);
		
		// On sélectionne l'option par défaut et on active le select
		selectMarqueR.selectOptions("");
		selectMarqueR.removeAttr("disabled");

		if (rechercheDefautMarque != '') {
			selectMarqueR.selectOptions(rechercheDefautMarque);
			if (rechercheDefautModele != '')
				selectMarqueR.change();
					
			rechercheDefautMarque = '';
		}
	}
	
	loadModeleR = function(array) {	
		// Génère la liste des options.	
		for (i = 0; i < array.length; i++)
			selectModeleR.addOption(array[i].id, array[i].nom);
		
		// On sélectionne l'option par défaut et on active le select
		selectModeleR.selectOptions("");
		selectModeleR.removeAttr("disabled");
		
		if (rechercheDefautModele != '') {
			selectModeleR.selectOptions(rechercheDefautModele);
			if (reload == false) {
				selectModeleR.change();
			} else {
				submitButton.attr("disabled", false);
				submitButton.attr("src", srcSubmitOn);
			}
					
			rechercheDefautModele = '';
		}
	}
	
	$.getPlugin(plugin.selectBox,function(){
		if (rechercheDefautModele != "") {
			selectModeleR.selectOptions(rechercheDefautModele);
			rechercheDefautMateriel1 	= '';
			rechercheDefautMateriel2 	= '';
			rechercheDefautMarque 		= '';
			rechercheDefautModele 		= '';
			selectModeleR.change();
		} else if (selectCategorieR.selectedValues() > 0) {
			selectCategorieR.change();
		} else if (selectMarqueR.selectedValues() > 0) {
			selectMarqueR.change();
		}
	});
});