var filtre= new function() {};
filtre.AppliquerReglesAuDOM= function() {
    $("input.inputFiltre").keyup(function(e) {
        var texteFiltre= $(this).attr("value").toLowerCase();
        var tempsTotal= 0;        
        
        // On tourne dans chacune des rows qu'on doit filtrer
        $(".tr_filtre").each(function() {            
            var tr= this;
            
            // Pour chaque row, on va chercher le texte dans lequel on doit fouiller.
            $.each($("#" + $(tr).attr("id")) , function(i, element) {
                var cacherRow= true;
                
                // Si on trouve la string, on note qu'on ne doit pas cacher cette row.
                $("#" + $(element).attr("id") + " td").each(function() {
                    if ($(this).text().toLowerCase().indexOf(texteFiltre) >= 0) {
                        cacherRow= false;
                    }
                });
                
                // Et finalement, si on doit le faire, on la cache.
                if (cacherRow) {
                    $(tr).css("display", "none");
                }
                else {
                    try {
                        $(tr).css("display", "table-row");
                    }
                    catch (ex) {
                        // IE ne supporte pas la propriété « table-row ».
                        $(tr).css("display", "inline");
                    }
                }
            });
        });
    });
	// Filtre pour les Calendriers
	$("input.date-pick").change(function()
	{	
        var texteFiltre= $(this).attr("value").toLowerCase();
        var tempsTotal= 0;
        
        // On tourne dans chacune des rows qu'on doit filtrer
        $(".tr_filtre").each(function() {            
            var tr= this;
            
            // Pour chaque row, on va chercher le texte dans lequel on doit fouiller.
            $.each($("#" + $(tr).attr("id")) , function(i, element) 
			{
                var cacherRow= true;
                
                // Si on trouve la string, on note qu'on ne doit pas cacher cette row.
				var td = $("#" + $(element).attr("id") + " td")[1];
				var td2 = $("#" + $(element).attr("id") + " td")[2];
                td = $(td).html().toString();
				td2 = $(td2).html().toString();
				
				if(CompareDates(td) || CompareDates(td2))
				{
					cacherRow = false;
				}

                // Et finalement, si on doit le faire, on la cache.
                if (cacherRow) {
                    $(tr).css("display", "none");
                }
                else {
                    try {
                        $(tr).css("display", "table-row");
                    }
                    catch (ex) {
                        // IE ne supporte pas la propriété « table-row ».
                        $(tr).css("display", "inline");
                    }
                }
            });
        });
    });
    // On mets des ID pour les filtres.
    $("table.tableauFiltre tr").each(function(i) {
        if (!$(this).hasClass("filtrePas")) {
            $(this).addClass("tr_filtre");
        }
    });

    try {
        // On redonne le focus au premier champ qu'on trouve!
        if (typeof $("input")[0] != "undefined") {
        
            //  Finalement, non!
            if (typeof $("div#noFocus")[0] == "undefined") {
                //$("input")[0].focus();
            }
        }
    }
    catch (ex) 
	{
    }
};
function DateFiltre()
	{	
        var texteFiltre= $("input.date-pick").val().toLowerCase();
        var tempsTotal= 0;
        
        // On tourne dans chacune des rows qu'on doit filtrer
        $(".tr_filtre").each(function() {            
            var tr= this;
            
            // Pour chaque row, on va chercher le texte dans lequel on doit fouiller.
            $.each($("#" + $(tr).attr("id")) , function(i, element) 
			{
                var cacherRow= true;
                
                // Si on trouve la string, on note qu'on ne doit pas cacher cette row.
				var td = $("#" + $(element).attr("id") + " td")[1];
				var td2 = $("#" + $(element).attr("id") + " td")[2];
                td = $(td).html().toString();
				td2 = $(td2).html().toString();
				
				if(CompareDates(td) || CompareDates(td2))
				{
					cacherRow = false;
				}

                // Et finalement, si on doit le faire, on la cache.
                if (cacherRow) {
                    $(tr).css("display", "none");
                }
                else {
                    try {
                        $(tr).css("display", "table-row");
                    }
                    catch (ex) {
                        // IE ne supporte pas la propriété « table-row ».
                        $(tr).css("display", "inline");
                    }
                }
            });
        });
	}
function CompareDates(NumericDate_Selected)
{
	var First_Date = document.getElementById('First_Date').value;
	var Second_Date = document.getElementById('Second_Date').value;
	
	setCookie('First_Date', First_Date, 1);
	setCookie('Second_Date', Second_Date, 1);
	
	var FirstDate_Array = First_Date.split("-");
	var SecondDate_Array = Second_Date.split("-");
	var SelectedDate_Array = NumericDate_Selected.split("-");
	new Date(2001,0,1,12,0,0) 
	First_Date = new Date(FirstDate_Array[0],FirstDate_Array[1],FirstDate_Array[2],0,0,0);
	Second_Date = new Date(SecondDate_Array[0],SecondDate_Array[1],SecondDate_Array[2],0,0,0);
	NumericDate_Selected = new Date(SelectedDate_Array[0],SelectedDate_Array[1],SelectedDate_Array[2],0,0,0);
	
	if (First_Date <= NumericDate_Selected && 
	    Second_Date >= NumericDate_Selected)
	{
		return true;
	}
	return false;
}
function setCookie(name,value,days) 
{     
	if (days) 
	{         
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = ";expires="+date.toGMTString();
	}    
	else 
		var expires = "";
		
	document.cookie = name+"="+value+expires+";path=/";
}  	
function getCookie(name) 
{     
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) 
	{         
		var c = ca[i];         
		while (c.charAt(0)==' ')
		c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0)
		 	return c.substring(nameEQ.length,c.length);
	}     
	return null;
}  
function deleteCookie(name) 
{     
	setCookie(name,"",-1);
}
function SetDateTextFields()
{
	if(getCookie('First_Date') && getCookie('Second_Date'))
	{
		$("#First_Date").val(getCookie('First_Date')); 
		$("#Second_Date").val(getCookie('Second_Date'));
	}
	else
	{
		var currentTime = new Date();
		$("#Second_Date").val(currentTime.getFullYear() + "-" + (currentTime.getMonth() + 1) + "-" + currentTime.getDate());	
	}
}
$(document).ready(function() {
    filtre.AppliquerReglesAuDOM();
	SetDateTextFields();
	DateFiltre();
});
