{
	"translatorID": "2dc0b23d-64d8-4933-b629-5c003451ccf7",
	"label": "Légifrance",
	"creator": "Guillaume Adreani",
	"target": "^https?:\\/\\/(www.)?legifrance\\.gouv\\.fr/",
	"minVersion": "2.1.9",
	"maxVersion": "",
	"priority": 100,
	"inRepository": true,
	"translatorType": 4,
	"browserSupport": "gcsibv",
	"lastUpdated": "2013-04-17 03:09:28"
}

/*
	***** BEGIN LICENSE BLOCK *****
	
	Copyright © 2013 Guillaume Adreani (guillaume.adreani@gmail.com @adreagui] for Droit.org
	
	This file is part of Zotero.
	
	Zotero is free software: you can redistribute it and/or modify
	it under the terms of the GNU Affero General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.
	
	Zotero is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU Affero General Public License for more details.
	
	You should have received a copy of the GNU Affero General Public License
	along with Zotero.  If not, see <http://www.gnu.org/licenses/>.
	
	***** END LICENSE BLOCK *****
*/

/*
Thanks to Sebastian Karcher and Aurimas Vinckevicius

*/

var legifrancecaseRegexp = /https?:\/\/(www.)?legifrance\\.gouv\\.fr\/.+JURITEXT|CETATEXT|CONSTEXT.+/ 
// Détection occurences multiples uniquement pour la jurisprudence ... pour l'instant

	function detectWeb(doc, url) {
		if (url.match(/.CETATEXT|CONSTEXT|JURITEXT./)) { // Détection jurisprudence 
			return "case";
		} else if (url.match(/LEGIARTI|affichCodeArticle|affichTexteArticle|KALICONT|JORFTEXT|CNILTEXT/)) { // Détection textes législatifs 
			return "statute"; // Détection lois et codes
		} else if (url.match(/rechJuriConst|rechExpJuriConst|rechJuriAdmin|rechExpJuriAdmin|rechJuriJudi|rechExpJuriJudi/)) { // Détection occurences multiples uniquement pour la jurisprudence
			return "multiple"; // occurences multiples
		} else return false;
	}

	function scrapecase(doc) { //Jurisprudence

		var newItem = new Zotero.Item("case");

		// Paramètres communs

		var title = ZU.xpathText(doc, '//h2[@class="title"]');
		newItem.title = title;
		newItem.url = doc.location.href;
		var rtfurl = ZU.xpathText(doc, '//a[contains(text(), "Télécharger")]/@href');
		if (rtfurl) {
			newItem.attachments = [{
				url: "http://www.legifrance.gouv.fr/" + rtfurl,
				title: "Document en RTF",
				mimeType: "application/rtf"
			}];
		}

		// Situation selon les juridictions

		// Conseil constitutionnel 

		a = title.match(/(.*) - (.*) - (.*) - (.*)/)
		if (a) {
			var numero = a[1];
			var date = a[2];
			var texteparties = a[3]
			var formation = a[4];
			newItem.court = 'Conseil constitutionnel';
			newItem.docketNumber = numero;
			newItem.date = date;
			newItem.extra = texteparties;
		}
		
		// Conseil d'État avec indication de publication
		b = title.match(/(Conseil d'État), (.*), (s*[0-9/]+), (s*[0-9]+), (.*Lebon)/)
		if (b) {
			var cour = b[1];
			var formation = b[2];
			var date = b[3];
			var numero = b[4];
			var publication = b[5];
		  	newItem.court = 'Conseil d\'État';
			newItem.extra = formation;
			newItem.date = date;
			newItem.docketNumber = numero;
			newItem.reporter = publication;
		}

		// Conseil d'État sans indication de publication
		c = title.match(/(Conseil d'État), (.*), (s*[0-9/]+), (s*[0-9]+)/)
		if (c) {
			var formation = c[2];
			var date = c[3];
			var numero = c[4];
		   	newItem.court = 'Conseil d\'État';
			newItem.extra = formation;
			newItem.date = date;
			newItem.docketNumber = numero;
		}

		// Tribunal des conflits (jp administrative)
		d = title.match(/(Tribunal des Conflits), , (s*[0-9/]+), (.*)/)
		if (d) {
			var date = d[2];
			var numero = d[3];
			newItem.court = 'Tribunal des Conflits';
			newItem.date = date;
			newItem.docketNumber = numero;
		}

		// Cours administratives d'appel avec publication // très rares cas sans publication
		e = title.match(/(Cour administrative .*), (.*), (s*[0-9/]+), (.*), (.*Lebon)/)
		if (e) {
			var cour = e[1];
			var formation = e[2];
			var date = e[3];
			var numero = e[4];
			var publication = e[5];
			newItem.court = cour;
			newItem.extra = formation;
			newItem.date = date;
			newItem.docketNumber = numero;
			newItem.reporter = publication;
		}

		var f; // tribunaux administratifs avec chambre
		f = title.match(/(|Tribunal Administratif|administratif.*), (.*chambre), (s*[0-9/]+), (s*[0-9]+)/)
		if (f) {
			var cour = f[1];
			var formation = f[2];
			var date = f[3];
			var numero = f[4];
			newItem.court = 'Tribunal ' + cour;
			newItem.date = date;
			newItem.docketNumber = numero;
		}

		var g; // tribunaux administratifs sans chambre avec publication
		g = title.match(/(Tribunal Administratif|administratif.*), du (.*), (s*[0-9-]+), (.*Lebon)/)
		if (g) {
			var cour = g[1];
			var date = g[2];
			var numero = g[3];
			var publication = g[4];
			newItem.court = 'Tribunal ' + cour;
			newItem.date = date;
			newItem.docketNumber = numero;
			newItem.reporter = publication;
		}

		// Note : présence d'autres cas pour les TA

		var h; // Cour de cassation 
		h = title.match(/(Cour de cassation), (.*), (.*), (s*[0-9-. ]+), (.*)/)
		if (h) {
			var nature = h[1];
			var formation = h[2];
			var date = h[3];
			var numero = h[4];
			var publication = h[5];
			newItem.court = 'Cour de cassation';
			if (nature) newItem.tags.push(nature);
			newItem.extra = formation;
			newItem.date = date;
			newItem.docketNumber = numero;
			newItem.reporter = publication;
		}

		var i; // cours d'appel et tribunaux
		i = title.match(/(Cour d'appel.*|Tribunal.*|Conseil.*|Chambre.*|Juridiction.*|Commission.*|Cour d'assises.*) de (.*), (.*), (s*[0-9/]+)/)
		if (i) {
			var cour = i[1];
			var lieu = i[2];
			var date = i[3];
			var numero = i[4];
			newItem.court = cour + ' de ' + lieu;
			newItem.date = date;
			newItem.docketNumber = numero;
		}

		// Tribunal des conflits - Base CASS
		j = title.match(/(Tribunal des conflits), (.*), (.*), (s*[0-9-. ]+), (.*)/)
		if (j) {
			var nature = j[2];
			var date = j[3];
			var numero = j[4];
			var publication = j[5];
			newItem.court = 'Tribunal des conflits';
			if (nature) newItem.tags.push(nature);
			newItem.date = date;
			newItem.docketNumber = numero;
			newItem.reporter = publication;

		}
		newItem.complete();
	}

	function scrapelegislation(doc, url) { //Législation

		var newItem = new Zotero.Item("statute");

		var title = ZU.xpathText(doc, '//h2[@class="title"]');
		newItem.title = title;
		newItem.accessDate = 'CURRENT_TIMESTAMP';

		// 
		var a; // Codes
		a = title.match(/(Code.*) - Article (.*)/)
		if (a) {
			var code = a[1];
			var codeNumber = a[2];
			newItem.code = code;
			newItem.codeNumber = codeNumber;
		}

		var b; // Lois 1er modèle
		b = title.match(/(LOI|Décret) n[o°] (s*[0-9-]+) du ((s*[0-9]+) (janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre) (s*[0-9z]+))/)
		if (b) {

			var code = b[2];
			var date = b[3];
			newItem.code = code; // publicLawNumber non défini 
			newItem.date = date;

		}

		var c; // Lois 2ème modèle
		c = title.match(/(Loi|Décret) n[o°](s*[0-9-]+) du ((s*[0-9]+) (janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre) (s*[0-9z]+))/)
		if (c) {

			var code = c[2];
			var date = c[3];
			newItem.code = code; // publicLawNumber non défini 
			newItem.date = date;

		}

		var e; // CNIL
		e = title.match(/(Délibération) (s*[0-9-]+) du ((s*[0-9]+) (.*) (s*[0-9]+))/)
		if (e) {
			var nameOfAct = e[1];
			var code = e[2];
			var date = e[3];
			newItem.nameOfAct = nameOfAct + ' de la Commission Nationale de l\'Informatique et des Libertés';
			newItem.code = code;
			newItem.date = date;
		}
		
		newItem.complete();
	}

	function doWeb(doc, url) {
		if (detectWeb(doc, url) == "case") {
			scrapecase(doc, url);
		} else if (detectWeb(doc, url) == "statute") {
			scrapelegislation(doc, url);
		} else if (detectWeb(doc, url) == "multiple") {
			var items = Zotero.Utilities.getItemArray(doc, doc, legifrancecaseRegexp);
			var articles = [];
			Zotero.selectItems(items, function (items) {
				if (!items) {
					return true;
				}
				for (var i in items) {
					articles.push(i);
				}
				Zotero.Utilities.processDocuments(articles, scrapecase);

			});

		}
	} /** BEGIN TEST CASES **/
var testCases = [
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriConst.do?oldAction=rechJuriConst&idTexte=CONSTEXT000026458384&fastReqId=79382296&fastPos=1",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Décision 2012-274 QPC - 28 septembre 2012 - Consorts G. [Calcul de l'indemnité de réduction due par le donataire ou le légataire d'une exploitation agricole en Alsace-Moselle] - Conformité",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriConst.do?oldAction=rechJuriConst&idTexte=CONSTEXT000026458384&fastReqId=79382296&fastPos=1",
				"court": "Conseil constitutionnel",
				"docketNumber": "Décision 2012-274 QPC",
				"date": "28 septembre 2012",
				"extra": "Consorts G. [Calcul de l'indemnité de réduction due par le donataire ou le légataire d'une exploitation agricole en Alsace-Moselle]",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026845833&fastReqId=1276712822&fastPos=1",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Tribunal des Conflits, , 17/12/2012, C3871",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026845833&fastReqId=1276712822&fastPos=1",
				"court": "Tribunal des Conflits",
				"date": "17/12/2012",
				"docketNumber": "C3871",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000021750743&fastReqId=754258727&fastPos=1",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Tribunal Administratif de Nantes, 5ème chambre, 17/12/2009, 0802183",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000021750743&fastReqId=754258727&fastPos=1",
				"court": "Tribunal Administratif de Nantes, 5ème chambre",
				"date": "17/12/2009",
				"docketNumber": "0802183",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026925589&fastReqId=1836722737&fastPos=1",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Cour administrative d'appel de Bordeaux, 2ème chambre (formation à 3), 08/01/2013, 11BX01796, Inédit au recueil Lebon",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026925589&fastReqId=1836722737&fastPos=1",
				"court": "Cour administrative d'appel de Bordeaux",
				"extra": "2ème chambre (formation à 3)",
				"date": "08/01/2013",
				"docketNumber": "11BX01796",
				"reporter": "Inédit au recueil Lebon",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000026815591&fastReqId=673705389&fastPos=2",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [
					"Cour de cassation"
				],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Cour de cassation, Chambre mixte, 21 décembre 2012, 12-15.063, Publié au bulletin",
				"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000026815591&fastReqId=673705389&fastPos=2",
				"court": "Cour de cassation",
				"extra": "Chambre mixte",
				"date": "21 décembre 2012",
				"docketNumber": "12-15.063",
				"reporter": "Publié au bulletin",
				"libraryCatalog": "Légifrance",
				"accessDate": "CURRENT_TIMESTAMP"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000026870360&fastReqId=1277546473&fastPos=1",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Cour d'appel de Limoges, 27 décembre 2012, 11/01637",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000026870360&fastReqId=1277546473&fastPos=1",
				"court": "Cour d'appel de Limoges",
				"date": "27 décembre 2012",
				"docketNumber": "11/01637",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000020391875&fastReqId=1321603064&fastPos=9",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Conseil de prud'hommes de Bordeaux, 13 janvier 2009, 04/00973",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000020391875&fastReqId=1321603064&fastPos=9",
				"court": "Conseil de prud'hommes de Bordeaux",
				"date": "13 janvier 2009",
				"docketNumber": "04/00973",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000026304473&fastReqId=2146436360&fastPos=11",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [
					"civile"
				],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Tribunal des conflits, civile, 14 mai 2012, 12-03.836, Publié au bulletin",
				"url": "http://www.legifrance.gouv.fr/affichJuriJudi.do?oldAction=rechJuriJudi&idTexte=JURITEXT000026304473&fastReqId=2146436360&fastPos=11",
				"court": "Tribunal des conflits",
				"date": "14 mai 2012",
				"docketNumber": "12-03.836",
				"reporter": "Publié au bulletin",
				"libraryCatalog": "Légifrance",
				"accessDate": "CURRENT_TIMESTAMP"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000006419320&cidTexte=LEGITEXT000006070721&dateTexte=20130114&fastPos=2&fastReqId=490815339&oldAction=rechCodeArticle",
		"items": [
			{
				"itemType": "statute",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [],
				"title": "Code civil - Article 16",
				"accessDate": "CURRENT_TIMESTAMP",
				"code": "Code civil",
				"codeNumber": "16",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichCnil.do?oldAction=rechExpCnil&id=CNILTEXT000017653865&fastReqId=131680152&fastPos=1",
		"items": [
			{
				"itemType": "statute",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [],
				"title": "Délibération de la Commission Nationale de l'Informatique et des Libertés",
				"accessDate": "CURRENT_TIMESTAMP",
				"nameOfAct": "Délibération de la Commission Nationale de l'Informatique et des Libertés",
				"code": "97-008",
				"date": "04 février 1997",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026910036&fastReqId=1849242527&fastPos=10",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Conseil d'État, 1ère et 6ème sous-sections réunies, 07/01/2013, 343126",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026910036&fastReqId=1849242527&fastPos=10",
				"court": "Conseil d'État",
				"extra": "1ère et 6ème sous-sections réunies",
				"date": "07/01/2013",
				"docketNumber": "343126",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026910028&fastReqId=726489675&fastPos=15",
		"items": [
			{
				"itemType": "case",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [
					{
						"title": "Document en RTF",
						"mimeType": "application/rtf"
					}
				],
				"title": "Conseil d'État, 10ème sous-section jugeant seule, 28/12/2012, 331405, Inédit au recueil Lebon",
				"accessDate": "CURRENT_TIMESTAMP",
				"url": "http://www.legifrance.gouv.fr/affichJuriAdmin.do?oldAction=rechJuriAdmin&idTexte=CETATEXT000026910028&fastReqId=726489675&fastPos=15",
				"court": "Conseil d'État",
				"extra": "10ème sous-section jugeant seule",
				"date": "28/12/2012",
				"docketNumber": "331405",
				"reporter": "Inédit au recueil Lebon",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000026871286&fastPos=1&fastReqId=217867052&categorieLien=id&oldAction=rechTexte",
		"items": [
			{
				"itemType": "statute",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [],
				"title": "LOI n° 2012-1561 du 31 décembre 2012 relative à la représentation communale dans les communautés de communes et d'agglomération",
				"accessDate": "CURRENT_TIMESTAMP",
				"code": "2012-1561",
				"date": "31 décembre 2012",
				"libraryCatalog": "Légifrance"
			}
		]
	},
	{
		"type": "web",
		"url": "http://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000000320901&fastPos=4&fastReqId=702580559&categorieLien=id&oldAction=rechTexte",
		"items": [
			{
				"itemType": "statute",
				"creators": [],
				"notes": [],
				"tags": [],
				"seeAlso": [],
				"attachments": [],
				"title": "Loi n°85-1483 du 31 décembre 1985 AUTORISANT L'APPROBATION D'UN ACCORD DE COOPERATION EN MATIERE ECONOMIQUE ET FINANCIERE ENTRE LE GOUVERNEMENT DE LA REPUBLIQUE FRANCAISE ET LE GOUVERNEMENT DE LA REPUBLIQUE GABONAISE,SIGNE A PARIS LE 14-04-1983",
				"accessDate": "CURRENT_TIMESTAMP",
				"code": "85-1483",
				"date": "31 décembre 1985",
				"libraryCatalog": "Légifrance"
			}
		]
	}
]
/** END TEST CASES **/