-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
255 lines (223 loc) · 14.9 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
var words = [];
var annotations = [];
window.onload = function () {
var textRaw = "LA COUR DE CASSATION, PREMIÈRE CHAMBRE CIVILE, a rendu l’arrêt suivant : Attendu, selon le jugement attaqué, que M. Z…, précédemment propriétaire d’un cheval de course, a formé opposition à l’ordonnance lui faisant injonction de payer à la Société du docteur X… (la société) divers frais vétérinaires engagés à la demande de M. Y…, entraîneur ; Sur le moyen unique, pris en sa première branche : Attendu que M. Z… fait grief au jugement de le condamner à payer à la société les sommes de 1 967, 45 euros, assortie des intérêts au taux légal à compter du 2 février 2012, et de 4, 72 euros au titre de la mise en demeure, ainsi que les frais de signification de l’ordonnance et la somme de 1 000 euros en application de l’article 700 du code de procédure civile alors, selon le moyen, que la juridiction de proximité ne pouvait statuer au fond après avoir déclaré recevable l’opposition à injonction de payer qu’après avoir mis à néant ladite ordonnance ; qu’en s’en abstenant, la juridiction de proximité a méconnu l’article 1420 du code civil ; Mais attendu que la juridiction de proximité a fait une exacte application de l’article 1420 du code de procédure civile en déclarant l’opposition recevable et en examinant le bien-fondé de la demande, dès lors que l’opposition suffit à mettre à néant l’ordonnance portant injonction de payer ; que le moyen n’est pas fondé ; Mais sur le moyen, pris en sa seconde branche : Vu l’article 455 du code de procédure civile ; Attendu que, pour condamner M. Z… à payer certaines sommes, notamment au titre de frais vétérinaires, le jugement retient qu’il avait mandaté M. Y… aux fins d’entraîner, puis de vendre son cheval de course, objet des soins dont paiement est réclamé, et que ce n’était pas à la société de s’inquiéter du transfert de propriété de l’équidé et du respect par M. Y… des termes de son mandat ; Qu’en se déterminant ainsi, sans répondre au moyen de défense opposé par M. Z…, qui faisait valoir que ne pouvait être mis à sa charge le prix de prestations effectuées après la vente du cheval lui appartenant, la juridiction de proximité n’a pas satisfait aux exigences du texte susvisé ; PAR CES MOTIFS : CASSE ET ANNULE, sauf en ce qu’il déclare recevable l’opposition à l’ordonnance d’injonction de payer du 6 avril 2012, le jugement rendu le 4 octobre 2013, entre les parties, par la juridiction de proximité de Villeneuve-sur-Lot ; remet, en conséquence, sur les autres points, la cause et les parties dans l’état où elles se trouvaient avant ledit jugement et, pour être fait droit, les renvoie devant la juridiction de proximité d’Agen ; Condamne la Société du docteur X… aux dépens ; Vu l’article 700 du code de procédure civile, rejette les demandes ; Dit que sur les diligences du procureur général près la Cour de cassation, le présent arrêt sera transmis pour être transcrit en marge ou à la suite du jugement partiellement cassé ; Ainsi fait et jugé par la Cour de cassation, première chambre civile, et prononcé par le président en son audience publique du douze mai deux mille seize. MOYEN ANNEXE au présent arrêt Moyen produit par la SCP Sevaux et Mathonnet, avocat aux Conseils, pour M. Z… Il est fait grief au jugement attaqué d’avoir condamné Monsieur Z… à payer à la SELARL du Docteur X… les sommes de 1. 967, 45 euros, assortie des intérêts au taux légal à compter du 2 février 2012, 4, 72 euros au titre de la mise en demeure et des frais de signification de l’ordonnance portant injonction de payer et 1. 000 euros en application de l’article 700 du code de procédure civile ; Aux motifs que l’article 1383 du code civil dispose que chacun est responsable du dommage qu’il a causé non seulement par son fait, mais encore par sa négligence ou par son imprudence ; que l’article 1998 du code civil dispose que le mandant est tenu d’exécuter les engagements contractés par le mandataire, conformément au pouvoir qui lui a été donné ; qu’il n’est tenu de ce qui a pu être fait au-delà, qu’autant qu’il l’a ratifié expressément ou tacitement ; qu’en l’espèce, il s’évince des circonstances alléguées à l’audience par le défendeur lui-même, qu’il avait mandaté Monsieur Y… Jacques aux fins d’entraîner, puis de vendre son cheval de course dénommé Man Sylver, objet des soins de la part de la SELARL du Docteur X… à ces fins sur la période des factures impayées produites et non contestées en tant que telles ; que ce n’était donc pas à la SELARL du Docteur X… de s’inquiéter du transfert ou non de la propriété du cheval et du respect ou non par Monsieur Y… Jacques des termes du mandat reçu de la part de Monsieur Z… Jean-Pierre ; alors que sollicitée, elle doit respecter le Serment de Bourgelat qui est aux vétérinaires ce que le Serment d’Hippocrate est aux médecins ; que le tribunal constate au surplus que Monsieur Z… Jean-Pierre, qui outre d’être particulièrement défaillant dans l’intérêt porté à son cheval, si l’on en croit ses dires, et pour le moins léger en signant, toujours selon ses dires, les documents de transfert de sa propriété « en blanc », n’a pas appelé en la cause Monsieur Y… Jacques pour le garantir en expiant les fautes qu’il lui reproche dans l’exécution de son mandat ; que pas plus que Monsieur A…, pour les soins facturés depuis le 16 août 2011 ; que Monsieur Z… Jean-Pierre, qui se prétend victime d’une procédure abusive et d’un abus de droit d’ester en justice de la part du demandeur, succombant à l’instance, n’établit pas la preuve d’un préjudice ; qu’en conséquence, il y a lieu de condamner Monsieur Z… Jean-Pierre à payer à la SELARL du Docteur X… la somme de 1. 967, 45 euros outre les intérêts au taux légal à compter du 2 février 2012, date de l’avis de réception de la mise en demeure versé au débats sic, en application de l’article 1153 du code civil ; Alors que, d’une part, que la juridiction de proximité ne pouvait statuer au fond après avoir déclaré recevable l’opposition à injonction de payer qu’après avoir mis à néant ladite ordonnance ; qu’en s’en abstenant, la juridiction de proximité a méconnu l’article 1420 du code civil ; Et alors, d’autre part, subsidiairement, que toute obligation de Monsieur Z… à l’égard de son cheval, son intérêt à le voir prendre en charge par un tiers, ou le mandat conféré à un tiers pour en prendre soin pour son compte et de le vendre ayant pris fin par cette vente, c’est de façon pertinente, sans qu’on puisse lui reprocher de n’avoir mis en cause ni son mandataire, ni l’acquéreur du cheval, que Monsieur Z… faisait valoir qu’il ne pouvait être mis à sa charge le prix de prestations effectuées après la vente du cheval lui appartenant ; qu’en s’abstenant de répondre à ce chef pertinent de ses écritures, la juridiction de proximité a, quel qu’en ait été le mérite, et quel que soit le fondement de sa décision, entaché sa décision d’un défaut de réponse à conclusions et l’a ainsi privée de motifs en violation de l’article 455 du code de procédure civile ;";
//Parse text char after char to an array of words.
var currentWord = "", iWord = 0, wordStarted = false;
for(i=0; i<textRaw.length; i++){
var charI = textRaw.charAt(i);
if(isPunctuation(charI)){
//If there is a punctuation after a word started, it is the end of the word -> add the word
if(wordStarted) {
words.push({
word: currentWord,
trueWord: true,
class: "",
id: "word-"+iWord,
index: iWord, //To count true words
annotation: "",
type:0
});
iWord++;
currentWord = "";
wordStarted = false;
}
//Add the punctuation as a (false) word
words.push({
word: charI,
trueWord: false,
class: "",
id: "",
index: -1,
annotation: ""
});
} else {
if (!wordStarted) {
wordStarted = true;
}
currentWord += charI;
}
}
//Definitions of types to create buttons
var typeAnnotations = [
{
name:"avocat",
type:1
},{
name:"loi",
type:2
},{
name:"partie",
type:3
}
];
//List of words, each word annotated can be click to remove the corresponding annotation
new Vue({
el: '#text',
data: {
words: words
},
methods: {
removeAnnotation: function (event){
var annotation = event.target.getAttribute("annotation");
if(annotation!="") {
removeAnnotation(annotation);
}
return true;
}
}
});
//Definition of button actions
var actionsVue = new Vue({
el: '#actions',
data: {
typeAnnotations: typeAnnotations,
jsonExported: "",
jsonToImport: ""
},
methods: {
annotate: function (event) {
var type = event.target.getAttribute("type");
addAnnotationWithSelectedText(type);
},
exportAnnotations: function(event){
var jsonAnnotations = [];
annotations.forEach(function(annotation) {
jsonAnnotations.push({
firstWord: annotation.firstWord,
indexOccurrenceWord: annotation.indexOccurrenceWord,
numberOfWords: annotation.numberOfWords,
type: annotation.type
});
});
this.jsonExported = JSON.stringify(jsonAnnotations);
},
importAnnotations: function(event){
removeAllAnnotations();
jsonAnnotations = JSON.parse(this.jsonToImport);
jsonAnnotations.forEach(function(annotation){
addAnnotationFromJson(annotation);
});
},
clearAnnotations: function(event){
removeAllAnnotations();
}
}
});
};
function isPunctuation(charToTest){
return charToTest.length==1 && (/[ .;:\-,’…«»()]+/).test(charToTest);
}
function removeAllAnnotations(){
while(annotations.length>0){
removeAnnotation(annotations[0].id);
}
}
function addAnnotationWithSelectedText(type){
var firstIndex = null, lastIndex = null; //in the array of all words (false and true)
var firstWord = null, numberOfWords = 0;
var selection = window.getSelection();
var wordsSpanSelected = document.querySelectorAll("#text span");
for(var index=0; index<wordsSpanSelected.length; index++){
var wordSpanSelected = wordsSpanSelected[index];
if(selection.containsNode(wordSpanSelected, true)){
var id = wordSpanSelected.getAttribute('id').substring(5);
if(id != "") {
var word = getWordFromId(id);
if (firstIndex == null) {
firstIndex = index;
firstWord = word.word;
}
numberOfWords++;
lastIndex = index;
}
}
}
clearSelection();
addAnnotation(firstIndex, lastIndex, firstWord, numberOfWords, type);
}
function addAnnotationFromJson(annotationJson){
//Calculus of firstIndex and lastIndex
var firstIndex=null, lastIndex=null;
var nbOccurrenceWord = 0, nbWordFromFirst = 0;
for(var i=0; i<words.length; i++){
var word = words[i];
if(word.trueWord){
if(word.word.toUpperCase() == annotationJson.firstWord.toUpperCase()){
nbOccurrenceWord++;
}
if(firstIndex == null && nbOccurrenceWord == annotationJson.indexOccurrenceWord){
firstIndex = i;
}
if(firstIndex!=null) {
nbWordFromFirst++;
if (nbWordFromFirst == annotationJson.numberOfWords) {
lastIndex = i;
break;
}
}
}
}
addAnnotation(firstIndex, lastIndex, annotationJson.firstWord, annotationJson.numberOfWords, annotationJson.type);
}
function addAnnotation(firstIndex, lastIndex, firstWord, numberOfWords, type){
var indexAnnotation = annotations.length;
//Add class "annotated" to annotated words
var firstWordReached = false, indexOccurrenceWord = 1, wordsOfAnnotation=[];
words.forEach(function(word, index){
if(index >= firstIndex && index <= lastIndex){
firstWordReached = true;
word.class += " annotated";
word.type = type;
word.annotation = indexAnnotation;
wordsOfAnnotation.push(word);
}
if(!firstWordReached && word.word.toUpperCase()==firstWord.toUpperCase()){
indexOccurrenceWord++;
}
});
annotations.push({
id: indexAnnotation,
wordsOfAnnotation: wordsOfAnnotation,
firstWord:firstWord,
indexOccurrenceWord: indexOccurrenceWord,
numberOfWords: numberOfWords,
type: type
});
console.log("add annotation:", indexAnnotation, " firstWord:", firstWord, " firstIndex:", firstIndex, ", lastIndex:", lastIndex);
}
function removeAnnotation(indexAnnotation){
console.log("remove annotation:", indexAnnotation);
for (var i = 0; i < annotations.length; i++) {
var annotation = annotations[i];
if(annotation.id == indexAnnotation){
//Remove class "annotated"
annotation.wordsOfAnnotation.forEach(function(word){
word.class = word.class.replace("annotated", "");
word.annotation = "";
word.type = 0;
});
//Remove annotation from array
annotations.splice(i,1);
return;
}
}
console.error("annotation not found:",indexAnnotation);
}
//Get word (of array words) with its index (only true words are indexed)
function getWordFromId(id){
var wordWithId = null;
words.forEach(function(word){
if(word.index==id){
wordWithId = word;
}
});
return wordWithId;
}
function clearSelection() {
if ( document.selection ) {
document.selection.empty();
} else if ( window.getSelection ) {
window.getSelection().removeAllRanges();
}
}