var IxFromDate, IxToDate;


function Init()
{
	var today;
	today = new Date();
	if (document.Search.lstAnnee.value == "")
	{
		document.Search.lstAnnee.value = parseInt(today.getYear(),10);
	}
}


function trim(str)
{
	while (str.charAt(0) == " ")
	{
		str = str.substring(1);
	}
	while (str.charAt(str.length - 1) == " ")
	{
		str = str.substring(0,str.length - 1);
	}
	return str;
}


function LastDayOfMonth(aMonth)
{
	switch (aMonth) 
	{
		case 1:
			return "31";
		case 2:
			return "28";
		case 3:
			return "31";
		case 4:
			return "30";
		case 5:
			return "31";
		case 6:
			return "30";
		case 7:
			return "31";
		case 8:
			return "31";
		case 9:
			return "30";
		case 10:
			return "31";
		case 11:
			return "30";
		case 12:
			return "31";
	}
}

function FormatDate(aDateData, aDefaultDay, aDefaultMonth)
{
	var lDatePart = "";
	var lDateLen = aDateData.length;
	var lDateData = "";
	var lCharCode;

	for (i = 0; i < lDateLen; i++)
	{
		lCharCode = aDateData.charCodeAt(i);  
		if (lCharCode < 47 || lCharCode > 57)
			return false;
		else if (lCharCode == 47) 
		{
			if (lDatePart.length == 0)
				lDatePart = aDefaultDay;
			else if (lDatePart.length == 1)
				lDatePart = "0" + lDatePart;
			lDateData = lDateData + lDatePart;
			lDatePart = "";
		} 
		else
			lDatePart = lDatePart + aDateData.charAt(i);
	}
	lDateData = lDateData + lDatePart;
	lDateLen = lDateData.length;
	if (lDateLen == 2)
	{
		if (parseInt(lDateData,10) > 50)
			gDateData = aDefaultDay + "/" + aDefaultMonth + "/19" + lDateData;
		else
			gDateData = aDefaultDay + "/" + aDefaultMonth + "/20" + lDateData;
	}
	else if (lDateLen == 4)
	{
		lDatePart = lDateData.substring(0,2);
		if (parseInt(lDatePart,10) <= 12)
		{
			if (aDefaultDay == "31")
				gDateData = LastDayOfMonth(parseInt(lDatePart,10)) + "/" + lDatePart;
			else
				gDateData = aDefaultDay + "/" + lDatePart;
			lDatePart = lDateData.substring(2,4);
			if (parseInt(lDatePart,10) > 50)
				gDateData = gDateData + "/19" + lDatePart;
			else
				gDateData = gDateData + "/20" + lDatePart;
		}
		else if (lDatePart == 19 || lDatePart == 20)
		{
			gDateData = aDefaultDay + "/" + aDefaultMonth + "/" + lDateData;
		} 
		else
			return false;
	}
	else if (lDateLen == 6)
	{
		gDateData = lDateData.substring(0,2);
		if (gDateData == "00")
			return false;
		lDatePart = lDateData.substring(2,4);
		if (parseInt(lDatePart,10) <= 12)
		{
			gDateData = lDateData.substring(0,2) + "/" + lDatePart;
			lDatePart = lDateData.substring(4,6);
			if (parseInt(lDatePart,10) > 50)
				gDateData = gDateData + "/19" + lDatePart;
			else
				gDateData = gDateData + "/20" + lDatePart;
		}
		else if (lDatePart == 19 || lDatePart == 20)
		{
			lDatePart = lDateData.substring(0,2);
			if (aDefaultDay == "31")
				gDateData = LastDayOfMonth(parseInt(lDatePart,10)) + "/" + lDatePart + "/" + lDateData.substring(2,6);
			else
				gDateData = aDefaultDay + "/" + lDatePart + "/" + lDateData.substring(2,6);
		}
		else
			return false;
	}
	else if (lDateLen == 8)
	{
		gDateData = lDateData.substring(0,2);
		lDatePart = lDateData.substring(2,4);
		if (gDateData == "00")
			return false;
		if (lDatePart == "00")
			return false;
		if (gDateData > LastDayOfMonth(parseInt(lDatePart)))
			return false;
		if (lDatePart > 12)
			return false;
		gDateData = gDateData + "/" + lDatePart;
		lDatePart = lDateData.substring(4,6);
		if (lDatePart != 19 && lDatePart != 20)
			return false;
		gDateData = gDateData + "/" + lDatePart + lDateData.substring(6,8);
	}
	else
	{
		return false;
	}	
	return true;
}

function CheckFromDate(FormName, IxFormName)
{
	if (FormName.value == "")
	{
		IxFormName = "";
		return;
	}
	if (FormatDate(FormName.value, "01", "01"))
		FormName.value = gDateData;
	else
	{
		window.alert("Date invalide.");
		FormName.value = "";
	}
	IxFormName.value = FormName.value.substring(6,10) + FormName.value.substring(3,5) + FormName.value.substring(0,2)
}


function CheckToDate(FormName, IxFormName)
{
	if (FormName.value == "")
	{
		IxFormName = "";
		return;
	}
	if (FormatDate(FormName.value, "31", "12"))
		FormName.value = gDateData;
	else
	{
		window.alert("Date invalide.");
		FormName.value = "";
	}
	IxFormName.value = FormName.value.substring(6,10) + FormName.value.substring(3,5) + FormName.value.substring(0,2) + "ZZZ"
}

function TypeDocRetour()
{
/* onload ="javascript:window.location=document.location;" */
	if (document.Search.RadioGroup1[0].checked==true)
	{
		document.Search.dateseancedepuis.value = ""
		document.Search.dateseancedepuis.disabled = true;
		document.Search.Numero.value="N° de rapport";
		Gereliste = InsererNumRapport()
		<!--search.Seance.disabled = true;--!>
		document.Search.dateseancejusqua.value = ""
		document.Search.dateseancejusqua.disabled = true;
	}
	else
	{
		document.Search.dateseancedepuis.disabled = false;
		<!--search.Seance.disabled = false;--!>
		document.Search.dateseancejusqua.disabled = false;
		document.Search.Numero.value="N° de délibération";
		Gereliste = InsererNumDelib()
	}
}

function TypeDoc(flag)
{
	if (flag==1)
	{
		document.Search.dateseancedepuis.value = ""
		document.Search.dateseancedepuis.disabled = true;
		document.Search.Numero.value="N° de rapport";
		Gereliste = InsererNumRapport()
		<!--search.Seance.disabled = true;--!>
		document.Search.dateseancejusqua.value = ""
		document.Search.dateseancejusqua.disabled = true;
	}
	else
	{
		document.Search.dateseancedepuis.disabled = false;
		<!--search.Seance.disabled = false;--!>
		document.Search.dateseancejusqua.disabled = false;
		document.Search.Numero.value="N° de délibération";
		Gereliste = InsererNumDelib()
	}
}

function DoSearch()
{
	document.Search.request.value = "";
	document.Search.request2.value = "";
	var ChampTexte = trim(document.Search.texte.value);
	var Lefiltre = "xfilter(name " + '"' + "*.pdf" +  '"' + ")";
	
	document.Search.fileConditions.value = Lefiltre;
	ChampTexte = Remplace(ChampTexte, 'ç', 'c');
	ChampTexte = Remplace(ChampTexte, 'é', 'e');
	ChampTexte = Remplace(ChampTexte, 'è', 'e');
	ChampTexte = Remplace(ChampTexte, 'ê', 'e');
	ChampTexte = Remplace(ChampTexte, 'ë', 'e');
	ChampTexte = Remplace(ChampTexte, 'à', 'a');
	ChampTexte = Remplace(ChampTexte, 'â', 'a');
	ChampTexte = Remplace(ChampTexte, 'ä', 'a');
	ChampTexte = Remplace(ChampTexte, 'î', 'i');
	ChampTexte = Remplace(ChampTexte, 'ï', 'i');
	ChampTexte = Remplace(ChampTexte, 'ô', 'o');
	ChampTexte = Remplace(ChampTexte, 'ö', 'o');
	ChampTexte = Remplace(ChampTexte, 'ù', 'u');
	ChampTexte = Remplace(ChampTexte, 'û', 'u');
	ChampTexte = Remplace(ChampTexte, 'ü', 'u');
	
	/* CAS D'UNE RECHERCHE PLEIN TEXTE*/			
	if (document.Search.lstAnnee.value =="" && document.Search.commissions.value =="" && document.Search.Seance.value =="" && document.Search.theme.value =="" && document.Search.Service.value =="" && document.Search.Rapporteur.value =="" && document.Search.lstMois.value =="" && document.Search.TypeDoc.value ==""  && document.Search.Secteur.value ==""  && document.Search.Seance.value ==""  && document.Search.dateseancedepuis.value ==""  && document.Search.dateseancejusqua.value =="" &&	document.Search.NumRestriction.value =="" )
	{
		if (ChampTexte == "") 
		{
			document.Search.request.value ="";			
		}
		else 
		{
			document.Search.request.value ="";
			ChampTexte=ChampTexte.toUpperCase();
			addToRequest(trim(ChampTexte))
		}
		document.Search.submit()
	}
		
	/* CAS D'UNE RECHERCHE MULTI-CRITERES*/
	else
	{
		/* PLEIN TEXTE */
		if (ChampTexte == "") 
		{
			document.Search.request.value ="";			
		}
		else 
		{
			document.Search.request.value ="";
			ChampTexte=ChampTexte.toUpperCase();
			addToRequest(trim(ChampTexte))
		}
		
		/* GESTION DES DATES */
		if (document.Search.dateseancedepuis.value.length != 0 || document.Search.dateseancejusqua.value.length != 0)
		{
			document.Search.request2.value += ' +DateSeance::';
			if (document.Search.dateseancedepuis.value.length != 0) 
			{
				document.Search.request2.value +=
				document.Search.dateseancedepuis.value.substring(6,10) +
				document.Search.dateseancedepuis.value.substring(3,5) +
				document.Search.dateseancedepuis.value.substring(0,2);
			}
			else 
			{
				document.Search.request2.value += "19000101";	
				
			}
			
			document.Search.request2.value += '~~';
			
			if (document.Search.dateseancejusqua.value.length != 0) 
			{
				document.Search.request2.value +=
				document.Search.dateseancejusqua.value.substring(6,10) +
				document.Search.dateseancejusqua.value.substring(3,5) +
				document.Search.dateseancejusqua.value.substring(0,2);		
			} 
			else 
			{
				document.Search.request2.value += "21000101";
				
			}
		}			
							
		if (document.Search.lstAnnee.value !="" ) 
		{
			if (document.Search.lstMois.value !=="") 
			{
				var Gestdate = document.Search.lstAnnee.value 
				Gestdate += document.Search.lstMois.value + '01~~';
				Gestdate += document.Search.lstAnnee.value;
				Gestdate += document.Search.lstMois.value;
				var RecupMois = LastDayOfMonth(parseInt(document.Search.lstMois.value));
				Gestdate += RecupMois;
				addToRequest2(' ( DateSeance contains "' + Gestdate + '") ');
			}
			else
			{
				var Gestdate = document.Search.lstAnnee.value 
				Gestdate += '0101~~';
				Gestdate += document.Search.lstAnnee.value;
				Gestdate += '12';
				var RecupMois = LastDayOfMonth(parseInt('12'));
				Gestdate += RecupMois;
				addToRequest2(' ( DateSeance contains "' + Gestdate + '") ');
			}
		}
		
		/* NUMDELIB */
		if (document.Search.NumRestriction.value !="" ) 
		{
			var Strkey = trim(document.Search.NumRestriction.value);			
//			addToRequest("+Keywords::" + '"' + Strkey + '"')
			addToRequest2(' ( NUM_DEFINITIF contains "' + Strkey + '") ');
		}
		
		/* TYPESEANCE */			
		if (document.Search.Seance.value !="" )
		{
			var Strkey2 = document.Search.Seance.value;
			Strkeywords2 =  Remplace(Strkey2,"-"," ");
//			addToRequest("+Keywords::" + '"' + Strkeywords2 + '"')
			addToRequest2(' ( TYPE_SEANCE contains "' + Strkeywords2 + '") ');
		}
		
		/* SECTEUR */
		if (document.Search.Secteur.value !="" )
		{
			var StrSujet = document.Search.Secteur.value;
			StrSujet =  Remplace(StrSujet,"-"," ");
//			addToRequest("+Subject::" + '"' + StrSujet + '"') 
			addToRequest2(' ( THEME contains "' + StrSujet + '") ');
		}
		
		/* THEME */
		if (document.Search.theme.value !="" )
		{
			var StrSujet = document.Search.theme.value;
			Strtheme =  Remplace(theme,"-"," ");
//			addToRequest("+Subject::" + '"' + Strtheme + '"') 
			addToRequest2(' ( THEME contains "' + StrSujet + '") ');
		}

		/* TYPE DE DOCUMENT */
		if (document.Search.TypeDoc.value !="" )
		{
//			addToRequest("+Keywords::" + document.Search.TypeDoc.value)
			addToRequest2(' ( TYPE_DOCUMENT contains "' + document.Search.TypeDoc.value + '") ');
		}
		
		/* COMMISSIONS */
		if (document.Search.commissions.value !="" )
		{
			var StrCOM = document.Search.commissions.value;
			StrCOM =  Remplace(StrCOM,"-"," ");
//			addToRequest("+Subject::" + '"' + StrCOM + '"') 
			addToRequest2(' ( COMMISSION_PRINCIPALE contains "' + StrCOM + '") ');
		}
		
		/* RAPPORTEUR */
		if (document.Search.Rapporteur.value !="" )
		{
			var StrRapp = document.Search.Rapporteur.value;
			StrRapp =  Remplace(StrRapp,"-"," ");
//			addToRequest("+Author::" + '"' + StrRapp + '"') 
			addToRequest2(' ( RAPPORTEUR contains "' + StrRapp + '") ');
		}
		
		/* SERVICE */
		if (document.Search.Service.value !="" )
		{
			var StrSERV = document.Search.Service.value;
			StrSERV =  Remplace(StrSERV,"-"," ");
//			addToRequest("+Author::" + '"' + StrSERV + '"') 
			addToRequest2(' ( SERVICE_REF contains "' + StrSERV + '") ');
		}
		
		document.Search.submit()
	}
}
	
function addToRequest(s)
{
	if (document.Search.request=="")
		document.Search.request.value =  s 
	else 
	{
		if(document.Search.request.value != "")
			document.Search.request.value = document.Search.request.value + " " + s 
		else
			document.Search.request.value =  s 
	}
}

function addToRequest2(s)
{
	if (document.Search.request2=="")
		document.Search.request2.value =  s 
	else 
		if(document.Search.request2.value != "")
			document.Search.request2.value = document.Search.request2.value + " and " + s 
		else
			document.Search.request2.value =  s 
}
	
function Remplace(expr,a,b) 
{
	var i=0
	while (i!=-1) 
	{
		i=expr.indexOf(a,i);
		if (i>=0)
		{
			expr=expr.substring(0,i)+b+expr.substring(i+a.length);
			i+=b.length;
		}
	}
	return expr
}		
	
	
function montre(titre)
{
	var hauteur = 450
	var largeur =450
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	var options =  "menubar=no,scrollbars=yes,statusbar=no"
	window.open(titre,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	<!--fenetre=window.open("ListeTheme.asp",'','toolbar=no,location=no,directories=no,status=no,scrollbars=Yes,resizable=yes,copyhistory=no,width=450,height=350')!-->
}

function InsererNumDelib()
{
	document.Search.Tri.options.length=0;
	var p=new Option("N° de Délibération",2);
	document.Search.Tri.options[document.Search.Tri.options.length]=p;
	var o=new Option("Date de séance",1);
	document.Search.Tri.options[document.Search.Tri.options.length]=o;
	
	document.Search.Tri.options.selectedIndex.text="N° de Délibération";
}

function InsererNumRapport()
{
	document.Search.Tri.options.length=0;
	var p=new Option("N° de Rapport",2);
	document.Search.Tri.options[document.Search.Tri.options.length]=p;

	var o=new Option("Date de séance",1);
	document.Search.Tri.options[document.Search.Tri.options.length]=o;

	document.Search.Tri.options.selectedIndex.text="N° de Délibération";
}

function Supprimer(list)
{
	list.options[2]=null;
}
	
function GereRetour(valeur)
{
/*	onKeypress="GereRetour(window.event.keyCode);"*/
/*	if (valeur == 13 )
		CheckFromDate(document.Search.dateseancedepuis.value, document.Search.DateRestriction1.value);*/
}

function SetDateRestriction(aMonthRestriction, aDateRestriction)
{
	var today;
	var nYear;
	var nMonth;
	var nTotalMonth;

	if (aMonthRestriction.value == "")
		return;
		
	today = new Date();
	nYear = parseInt(today.getYear(),10);
	nMonth = parseInt(today.getMonth(),10);
	nTotalMonth = nYear*12 + nMonth - parseInt(aMonthRestriction.value,10);
	
	nYear = parseInt(nTotalMonth/12);
	nMonth = parseInt(nTotalMonth%12);

	aDateRestriction.value = nYear*100 + nMonth + 1;
}

function DisplayODJSeance()
{
	SetDateRestriction(document.formODJSeance.MonthRestriction,document.formODJSeance.DateRestriction);
	document.formODJSeance.submit();
}

