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 writeCookie(name, val, wd) {
24 parent.opener.document.cookie = name + "=" + val;
27 parent.document.cookie = name + "=" + val;
31 function readCookieValue (str, val_beg) {
32 var val_end = str.indexOf(";", val_end);
35 return str.substring(val_beg, val_end);
38 function readCookie(name, wd) {
39 var str_name = name + "=";
40 var str_len = str_name.length;
43 str_cookie = parent.opener.document.cookie;
46 str_cookie = parent.document.cookie;
48 var coo_len = str_cookie.length;
53 if (str_cookie.substring(i, j) == str_name)
54 return readCookieValue(str_cookie, j);
55 i = str_cookie.indexOf(" ", i) + 1;
63 function delCookie(name) {
65 exp.setTime(exp.getTime()-1);
66 parent.opener.document.cookie = name + "=null; expires=" + exp.toGMTString();
70 ///////////////////////////////////////////////////////////////////
71 // SPECIFIC FUNCTIONS USING COOKIES //
72 ///////////////////////////////////////////////////////////////////
74 function openBasket() {
77 var nameCookie = "bib_list";
78 var valCookie = readCookie(nameCookie);
80 strCookie = nameCookie + "=" + valCookie;
87 var optWin = "dependant=yes,status=yes,scrollbars=yes,resizable=yes,toolbar=yes,height="+iH+",width="+iW;
88 var loc = CGIBIN + "opac-basket.pl?" + strCookie;
89 var basket = open(loc, "basket", optWin);
92 alert(MSG_BASKET_EMPTY);
97 function addRecord(val, selection) {
98 var nameCookie = "bib_list";
99 var valCookie = readCookie(nameCookie);
102 if ( ! valCookie ) { // empty basket
103 valCookie = val + '/';
105 updateBasket(1,document);
108 // is this record already in the basket ?
110 var arrayRecords = valCookie.split("/");
112 for (var i = 0; i < valCookie.length - 1; i++) {
113 if (val == arrayRecords[i]) {
123 alert(MSG_RECORD_IN_BASKET);
126 valCookie += val + '/';
128 updateBasket(arrayRecords.length,document);
133 writeCookie(nameCookie, valCookie);
134 if (selection) { // when adding a selection of records
137 alert(MSG_RECORD_ADDED);
142 function addMultiple(){
144 if(document.myform.bibid.length > 0) {
145 for (var i=0; i < document.myform.bibid.length; i++) {
146 if (document.myform.bibid[i].checked) {
147 c_value = c_value + document.myform.bibid[i].value + "/";
150 addSelRecords(c_value);
152 c_value = c_value + document.myform.bibid.value + "/";
153 addSelRecords(c_value);
158 function addSelRecords(valSel) { // function for adding a selection of biblios to the basket
159 // from the results list
160 var arrayRecords = valSel.split("/");
163 for (i=0;i<arrayRecords.length;i++) {
164 if (arrayRecords[i]) {
165 nbAdd += addRecord(arrayRecords[i], 1);
175 msg = nbAdd+" "+MSG_NRECORDS_ADDED+", "+(i-nbAdd)+" "+MSG_NRECORDS_IN_BASKET;
178 msg = nbAdd+" "+MSG_NRECORDS_ADDED;
183 msg = MSG_NO_RECORD_SELECTED;
186 msg = MSG_NO_RECORD_ADDED+" ("+MSG_NRECORDS_IN_BASKET+") !";
193 function selRecord(num, status) {
194 var str = document.myform.records.value
199 str = delRecord(num, str);
202 document.myform.records.value = str;
206 function delSelRecords() {
209 var nameCookie = "bib_list";
210 var valCookie = readCookie(nameCookie, 1);
213 var str = document.myform.records.value;
216 var str2 = valCookie;
218 s = str.indexOf("/");
220 num = str.substring(0, s)
221 str = delRecord(num,str);
222 str2 = delRecord(num,str2);
228 if (str2.length == 0) { // equivalent to emptying the basket
230 rep = confirm(MSG_CONFIRM_DEL_BASKET);
232 delCookie(nameCookie);
233 document.location = "about:blank";
234 updateBasket(0,top.opener.document);
240 writeCookie(nameCookie, str2, 1);
247 var nameCookie = "bib_list";
248 var valCookie = readCookie(nameCookie, 1);
249 strCookie = nameCookie + "=" + valCookie;
250 var arrayRecords = valCookie.split("/");
251 updateBasket(arrayRecords.length-1,top.opener.document);
252 document.location = CGIBIN + "opac-basket.pl?" + strCookie;
255 alert(MSG_NO_RECORD_SELECTED);
260 function delRecord (n, s) {
267 pos = aux.indexOf(n, pos+1);
268 var charAfter = aux.charAt(pos+n.length); // character right after the researched string
269 if (charAfter.match(re)) { // record number inside another one
272 else { // good record number
273 aux = s.substring(0, pos)+ s.substring(pos+n.length+1, s.length);
283 function delBasket() {
284 var nameCookie = "bib_list";
287 rep = confirm(MSG_CONFIRM_DEL_BASKET);
289 delCookie(nameCookie);
290 document.location = "about:blank";
291 updateBasket(0,top.opener.document);
298 if (document.myform.records.value) {
300 rep = confirm(MSG_CONFIRM_DEL_RECORDS);
305 updateBasket(arrayRecords.length-1,top.opener.document);
309 function sendBasket() {
310 var nameCookie = "bib_list";
311 var valCookie = readCookie(nameCookie);
312 var strCookie = nameCookie + "=" + valCookie;
314 var loc = CGIBIN + "opac-sendbasket.pl?" + strCookie;
316 var optWin="dependant=yes,scrollbars=no,resizable=no,height=300,width=400,top=50,left=100";
317 var win_form = open(loc,"win_form",optWin);
320 function printBasket() {
321 var loc = document.location + "&print=1";
322 document.location = loc;
325 function showMore() {
328 var nameCookie = "bib_list";
329 var valCookie = readCookie(nameCookie);
331 strCookie = nameCookie + "=" + valCookie;
333 var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=1";
334 document.location = loc;
337 function showLess() {
340 var nameCookie = "bib_list";
341 var valCookie = readCookie(nameCookie);
343 strCookie = nameCookie + "=" + valCookie;
345 var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=0";
346 document.location = loc;
349 function updateBasket(updated_value,target) {
350 if(typeof document.getElementById != "undefined") {
351 target.getElementById('basket').innerHTML = " ("+updated_value+")";
352 } else if (typeof document.layers != "undefined") {
353 target.layers['basket'].open();
354 target.layers['basket'].write(" ("+updated_value+")");
355 target.layers['basket'].close();
356 } else if(typeof document.all != "undefined" && typeof
357 document.getElementById == "undefined") {
358 target.all['basket'].innerHTML = " ("+updated_value+")";
362 function openBiblio(biblionumber) {
363 openerURL="opac-detail.pl?bib="+biblionumber;
364 opener.document.location = openerURL;