﻿/// <reference path="jquery.js" />
var listeCategoriesDocumentsParTypeActivite = new Array();
$(document).ready
(
    function() {
        $("#CriteresTravauxType select").change(GererListeCategorieDocument);
        $("#CriteresTravauxDocument select").change(SauvegarderCategorieDocument);
        $("#criteresTravauxLegislature select").change(RafraichirCommissionsSessionAJAX);
        $("#CriteresPeriode .dateDebut").change(RafraichirCommissionsDatesAJAX);
        $("#CriteresPeriode .dateFin").change(RafraichirCommissionsDatesAJAX);
    });

/*
Fonctions 
--------- 
*/

function GererListeCategorieDocument() {
    var idTypeTravaux = $("#CriteresTravauxType select").val();

    var listeCategories = listeCategoriesDocumentsParTypeActivite[idTypeTravaux];
    var selectCategoriesDocuments = $("#CriteresTravauxDocument select")[0];

    //Efface les éléments de la liste des catégories de documents.
    selectCategoriesDocuments.options.length = 0;

    //Si une commission, on utilise la liste des "Travaux en commission"
    if (listeCategories == undefined) 
    {
        listeCategories = listeCategoriesDocumentsParTypeActivite["-2"];
    }
    

    jQuery.each(listeCategories, function() {
        selectCategoriesDocuments.options[selectCategoriesDocuments.length] = new Option(this[1], this[0]);

    });

    ResynchroniserListeTypeDocument();

    SauvegarderCategorieDocument();
}

function SauvegarderCategorieDocument() {
    var controleCategorieDocument = $("#CriteresTravauxDocument select");
    var categorieDocumentInvisible = $("#hidTypeDocuments");

    $(categorieDocumentInvisible).val(controleCategorieDocument.val());

}

function RafraichirCommissionsSessionAJAX() {
   var controleSessionLegislature = $("#criteresTravauxLegislature select");

   if (controleSessionLegislature.val() == "-1") 
   {
       RafraichirListeCommissionCompletee(null, 1);
   }
   else 
   {
    //Lance l'obtention de l'occurence de recherche courante
    $.ajax({

        type: "POST",
        url: urlObtenirListeCommissionsParSession,
        data: "{idSessionLegislature:" + controleSessionLegislature.val() + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) { RafraichirListeCommissionCompletee(msg, 1); },
        error: function(XMLHttpRequest, textStatus, errorThrown) { RafraichirListeCommissionEnErreur(XMLHttpRequest, textStatus, errorThrown); },
        async: false
    });
    }
}

function RafraichirCommissionsDatesAJAX() {
    var dateDebut = $("#CriteresPeriode .dateDebut").val();
    var dateFin = $("#CriteresPeriode .dateFin").val();

    if (dateDebut != null && dateFin != null && dateDebut.length == 10 && dateFin.length == 10)
    {
        //Lance l'obtention de l'occurence de recherche courante
        $.ajax({

            type: "POST",
            url: urlObtenirListeCommissionsParPeriode,
            data: "{dateDebutPeriode:'" + dateDebut + "', dateFinPeriode:'" + dateFin + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) { RafraichirListeCommissionCompletee(msg, 2); },
            error: function(XMLHttpRequest, textStatus, errorThrown) { RafraichirListeCommissionEnErreur(XMLHttpRequest, textStatus, errorThrown); },
            async: false
        });
    }
    
}

function RafraichirListeCommissionCompletee(msg, target) {
    var selectTypeTravaux = $("#CriteresTravauxType select")[0];

    var valeurPrecedante = "0";
    if (selectTypeTravaux.value != "0")
    	valeurPrecedante = selectTypeTravaux.value;
		

    AfficherCommissionsBase(selectTypeTravaux);
	
    if (msg != null) 
    {
        var donneesCommissions = eval(msg.d);

        jQuery.each(donneesCommissions, function() {
        selectTypeTravaux.options[selectTypeTravaux.length] = new Option(this.Valeur, this.Id);

        });
    }

    ResynchroniserListeTypeTravaux();

    selectTypeTravaux.value = valeurPrecedante;

    var trouve = 0;
    
    for (monCompteur = 0; monCompteur<selectTypeTravaux.length && trouve == false; monCompteur++)
	{
		if (selectTypeTravaux.options[monCompteur].value == valeurPrecedante) {
			var monChoixTypeTravaux = $('#CriteresTravauxType div.select-text');
			$(monChoixTypeTravaux).text(selectTypeTravaux.options[monCompteur].text);
			selectTypeTravaux.options[monCompteur].selected = true;
			trouve = true;
		}
	}

	if (trouve == false) {
		selectTypeTravaux.value = "0";
		var monChoixTypeTravauxDefaut = $('#CriteresTravauxType div.select-text');
		$(monChoixTypeTravauxDefaut).text(selectTypeTravaux.options[0].text);
		selectTypeTravaux.options[0].selected = true;
		
	}
        
    //1 == Session législature - 2 == Période
    if (target == 1)
    {
        $("#CriteresPeriode .dateDebut").val('');
        $("#CriteresPeriode .dateFin").val('');
    }
    else if (target == 2) 
    {
        var selectSessionLegislature = $("#criteresTravauxLegislature select")[0];
        selectSessionLegislature.options[0].selected = true;

        //Resynchronise la valeur du "skinned select" avec la valeur par défaut de la liste des catégories de documents.
        var monText = $('#criteresTravauxLegislature div.select-text');
        $(monText).text(selectSessionLegislature.options[0].text);
    }
}

function RafraichirListeCommissionEnErreur(XMLHttpRequest, textStatus, errorThrown) {
    AfficherCommissionsBase($("#CriteresTravauxType select")[0]);
    ResynchroniserListeTypeTravaux();
}

function AfficherCommissionsBase(selectTypeTravaux) {

    //Efface les éléments de la liste des catégories de documents.
	selectTypeTravaux.options.length = 0;
     
		jQuery.each(listeTypesTravauxBase, function() {
		selectTypeTravaux.options[selectTypeTravaux.length] = new Option(this.Valeur, this.Id);

    });
   

}

function ResynchroniserListeTypeTravaux() 
{
    var selectCategoriesDocuments = $("#CriteresTravauxType select")[0];
    
    //Resynchronise la valeur du "skinned select" avec la valeur par défaut de la liste des catégories de documents.   
    var monText = $('#CriteresTravauxType div.select-text');
    $(monText).text(selectCategoriesDocuments.options[0].text);

    ResynchroniserListeTypeDocument();
}

function ResynchroniserListeTypeDocument() 
{
    var selectCategoriesDocuments = $("#CriteresTravauxDocument select")[0];
    //selectCategoriesDocuments.options[6].selected = true;   
    
    //Resynchronise la valeur du "skinned select" avec la valeur par défaut de la liste des catégories de documents.    
    //var monText = $('#CriteresTravauxDocument div.select-text');
    //$(monText).text(selectCategoriesDocuments.options[0].text);
}
