1 //////////////////////////////////////////////////////////////////////////////
2 // BASIC FUNCTIONS FOR COOKIE MANGEMENT //
3 //////////////////////////////////////////////////////////////////////////////
5 var CGIBIN = "/cgi-bin/koha/";
8 var nameCookie = "bib_list";
9 var valCookie = readCookie(nameCookie);
12 var arrayRecords = valCookie.split("/");
13 if(arrayRecords.length > 0){
14 var basketcount = " ("+(arrayRecords.length-1)+")";
22 function addMultiple(){
24 if(document.myform.bibid.length > 0){
25 for (var i=0; i < document.myform.bibid.length; i++)
27 if (document.myform.bibid[i].checked)
29 c_value = c_value + document.myform.bibid[i].value + "|";
32 var arrayChosen = c_value.split("|");
33 for(i=0;i<(arrayChosen.length-1);i++){
34 addRecord(arrayChosen[i],"","silent");
36 alert(i+MSG_NRECORDS_ADDED);
38 alert(MSG_NO_RECORD_SELECTED);
42 function writeCookie(name, val, wd) {
44 parent.opener.document.cookie = name + "=" + val;
47 parent.document.cookie = name + "=" + val;
51 function readCookieValue (str, val_beg) {
52 var val_end = str.indexOf(";", val_end);
55 return str.substring(val_beg, val_end);
58 function readCookie(name, wd) {
59 var str_name = name + "=";
60 var str_len = str_name.length;
63 str_cookie = parent.opener.document.cookie;
66 str_cookie = parent.document.cookie;
68 var coo_len = str_cookie.length;
73 if (str_cookie.substring(i, j) == str_name)
74 return readCookieValue(str_cookie, j);
75 i = str_cookie.indexOf(" ", i) + 1;
83 function delCookie(name) {
85 exp.setTime(exp.getTime()-1);
86 parent.opener.document.cookie = name + "=null; expires=" + exp.toGMTString();
90 ///////////////////////////////////////////////////////////////////
91 // SPECIFIC FUNCTIONS USING COOKIES //
92 ///////////////////////////////////////////////////////////////////
94 function openBasket() {
97 var nameCookie = "bib_list";
98 var valCookie = readCookie(nameCookie);
100 strCookie = nameCookie + "=" + valCookie;
107 // var Wmax = screen.width;
108 // var Hmax = screen.height;
113 var optWin = "dependant=yes,status=yes,scrollbars=yes,resizable=yes,toolbar=yes,height="+iH+",width="+iW;
114 var loc = CGIBIN + "opac-basket.pl?" + strCookie;
115 var basket = open(loc, "basket", optWin);
118 alert(MSG_BASKET_EMPTY);
119 //alert("Il n'y a aucune notice !");
124 function addRecord(val, selection, display) {
125 var nameCookie = "bib_list";
126 var valCookie = readCookie(nameCookie);
129 if ( ! valCookie ) { // empty basket
130 valCookie = val + '/';
132 updateBasket(1,document);
135 // is this record already in the basket ?
137 var arrayRecords = valCookie.split("/");
139 for (var i = 0; i < valCookie.length - 1; i++) {
140 if (val == arrayRecords[i]) {
150 if( display != "silent" ){
151 alert(MSG_RECORD_IN_BASKET);
155 valCookie += val + '/';
157 updateBasket(arrayRecords.length,document);
162 writeCookie(nameCookie, valCookie);
163 if (selection) { // ajout à partir d'une sélection de notices
166 if( display != "silent" ){
167 alert(MSG_RECORD_ADDED);
173 function addSelRecords(valSel) { // fonction permettant d'ajouter une sélection de notices
174 // (à partir d'une page de résultats) au panier
175 var arrayRecords = valSel.split("/");
178 for (i=0;i<arrayRecords.length;i++) {
179 if (arrayRecords[i]) {
180 nbAdd += addRecord(arrayRecords[i], 1);
190 msg = nbAdd+" "+MSG_NRECORDS_ADDED+", "+(i-nbAj)+" "+MSG_NRECORDS_IN_BASKET;
193 msg = nbAdd+" "+MSG_NRECORDS_ADDED;
198 msg = MSG_NO_RECORD_SELECTED;
201 msg = MSG_NO_RECORD_ADDED+" ("+MSG_NRECORDS_IN_BASKET+") !";
208 function selRecord(num, status) {
209 var str = document.myform.records.value
214 str = delRecord(num, str);
217 document.myform.records.value = str;
221 function delSelRecords() {
224 var nameCookie = "bib_list";
225 var valCookie = readCookie(nameCookie, 1);
228 var str = document.myform.records.value;
231 var str2 = valCookie;
233 s = str.indexOf("/");
235 num = str.substring(0, s)
236 str = delRecord(num,str);
237 str2 = delRecord(num,str2);
243 if (str2.length == 0) { // equivalent to emptying the basket
245 rep = confirm(MSG_CONFIRM_DEL_BASKET);
247 delCookie(nameCookie);
248 document.location = "about:blank";
249 updateBasket(0,top.opener.document);
255 writeCookie(nameCookie, str2, 1);
262 var nameCookie = "bib_list";
263 var valCookie = readCookie(nameCookie, 1);
264 strCookie = nameCookie + "=" + valCookie;
265 var arrayRecords = valCookie.split("/");
266 updateBasket(arrayRecords.length-1,top.opener.document);
267 document.location = CGIBIN + "opac-basket.pl?" + strCookie;
270 alert(MSG_NO_RECORD_SELECTED);
275 function delRecord (n, s) {
282 pos = aux.indexOf(n, pos+1);
283 var charAfter = aux.charAt(pos+n.length); // character right after the researched string
284 if (charAfter.match(re)) { // record number inside another one
287 else { // good record number
288 aux = s.substring(0, pos)+ s.substring(pos+n.length+1, s.length);
298 function delBasket() {
299 var nameCookie = "bib_list";
302 rep = confirm(MSG_CONFIRM_DEL_BASKET);
304 delCookie(nameCookie);
305 document.location = "about:blank";
306 updateBasket(0,top.opener.document);
313 if (document.myform.records.value) {
315 rep = confirm(MSG_CONFIRM_DEL_RECORDS);
320 updateBasket(arrayRecords.length-1,top.opener.document);
324 function sendBasket() {
325 var nameCookie = "bib_list";
326 var valCookie = readCookie(nameCookie);
327 var strCookie = nameCookie + "=" + valCookie;
329 var loc = CGIBIN + "opac-sendbasket.pl?" + strCookie;
331 var optWin="dependant=yes,scrollbars=no,resizable=no,height=300,width=400,top=50,left=100";
332 var win_form = open(loc,"win_form",optWin);
335 function printBasket() {
336 var loc = document.location + "&print=1";
337 document.location = loc;
340 function showMore() {
343 var nameCookie = "bib_list";
344 var valCookie = readCookie(nameCookie);
346 strCookie = nameCookie + "=" + valCookie;
348 var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=1";
349 document.location = loc;
352 function showLess() {
355 var nameCookie = "bib_list";
356 var valCookie = readCookie(nameCookie);
358 strCookie = nameCookie + "=" + valCookie;
360 var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=0";
361 document.location = loc;
364 function updateBasket(updated_value,target) {
365 if(typeof document.getElementById != "undefined") {
366 target.getElementById('basket').innerHTML = " ("+updated_value+")";
367 } else if (typeof document.layers != "undefined") {
368 target.layers['basket'].open();
369 target.layers['basket'].write(" ("+updated_value+")");
370 target.layers['basket'].close();
371 } else if(typeof document.all != "undefined" && typeof
372 document.getElementById == "undefined") {
373 target.all['basket'].innerHTML = " ("+updated_value+")";