View | Details | Raw Unified | Return to bug 8597
Collapse All | Expand All

(-)a/koha-tmpl/opac-tmpl/ccsr/en/css/colors.css (+748 lines)
Line 0 Link Here
1
/* ================================
2
 * !Main
3
 * ================================*/
4
5
div.clear {
6
    clear: both;
7
}
8
9
body {
10
    min-width:1000px;
11
    font-family: "Lucida Grande", Arial;
12
    padding:0;
13
    background-color : #eaeae6;
14
}
15
16
#container {
17
    background: #fff;
18
    border:1px solid #d2d2cf;
19
    -webkit-border-radius: 8px;
20
    -moz-border-radius: 8px;
21
    border-radius: 8px;
22
    margin:0 20px;
23
    padding: 10px;
24
    overflow: hidden;
25
}
26
27
a:link,
28
a:visited {
29
    color: #007fae;
30
}
31
a:hover {
32
    color: #00a5e2;
33
}
34
35
#container #ctn_lt {
36
    padding-left: 15px;
37
}
38
39
#opacnav {
40
    width:240px;
41
}
42
43
#opacmainuserblock, #news {
44
    margin-left:7em;
45
}
46
47
/* ================================
48
 * !Header
49
 * ================================*/
50
51
#header-wrapper {
52
    background: none;
53
}
54
55
#opac-main-search {
56
    background: none;
57
    border: none;
58
    display: table;
59
    margin: 40px 0 0 !important;
60
    padding: 0.7em 0 0 0.5em;
61
    width: 100%;
62
}
63
*:first-child+html #opac-main-search {
64
    display: block;
65
}
66
#opac-main-search a.logo {
67
    display: table-cell;
68
    padding: 8px 0 0 13px;
69
    vertical-align: top;
70
    width: 145px;
71
}
72
73
#opac-main-search #fluid {
74
    display: table-cell;
75
    margin: 0;
76
    padding: 0;
77
    position: relative;
78
    vertical-align: top;
79
}
80
81
#opac-main-search div#libraryname {
82
    display: table-cell;
83
    float: none;
84
    vertical-align: top;
85
    overflow: hidden;
86
    text-align: center;
87
    padding: 0 11px 17px;
88
    width: 128px;
89
}
90
91
/* IE 7 Hack */
92
*:first-child+html #opac-main-search a.logo,
93
*:first-child+html #opac-main-search #fluid,
94
*:first-child+html #opac-main-search div#libraryname {
95
    display: block;
96
    float: left;
97
    height: 100px;
98
}
99
*:first-child+html #opac-main-search #fluid {
100
    width: 800px;
101
}
102
#opac-main-search div#libraryname h1 {
103
    background-repeat: no-repeat;
104
    background-position: 0 0;
105
    display: block;
106
    margin: 0;
107
    position: relative;
108
}
109
#opac-main-search div#libraryname h1 img {
110
    display: block;
111
    margin: 0 0 7px;
112
    max-height: 80px;
113
}
114
115
#opac-main-search div#libraryname span#official-website {
116
    background: url("../../images/arrow-right-grey-logo.png") no-repeat scroll 0 50%;
117
    font: 11px/14px Arial;
118
    padding: 0 0 0 10px;
119
}
120
#opac-main-search div#libraryname span#official-website a {
121
    color: #696965;
122
    text-decoration: none;
123
}
124
#opac-main-search div#libraryname span#official-website a:hover {
125
    text-decoration: underline;
126
}
127
128
129
/* search form */
130
131
form#searchform {
132
    background: #a7a7a2 url("../../images/bg-search-bar.png") repeat-x scroll 0 0;
133
    -webkit-border-radius: 8px;
134
    -moz-border-radius: 8px;
135
    border-radius: 8px;
136
    display: block;
137
    padding: 12px 10px;
138
    position: relative;
139
}
140
141
form#searchform label {
142
    display: none;
143
}
144
145
form.single-library .input-wrapper {
146
    margin: 0 237px 0 0;
147
}
148
form.multi-libraries .input-wrapper {
149
    margin: 0 416px 0 0;
150
}
151
form#searchform .input-wrapper input[type="text"] {
152
    background: #fff;
153
    border: 1px solid #A0A09A;
154
    -webkit-border-radius: 8px;
155
    -moz-border-radius: 8px;
156
    border-radius: 8px;
157
    color: #868684;
158
    font-size: 12px !important;
159
    padding: 8px 8px 9px;
160
    width: 100% !important;
161
}
162
163
form#searchform select {
164
    left: -9999em;
165
    position: absolute;
166
}
167
168
form.multi-libraries #filters .jqTransformSelectWrapper {
169
    position: absolute;
170
    right: 229px;
171
    top: 12px;
172
}
173
174
form.single-library  #filters .jqTransformSelectWrapper,
175
form.multi-libraries #libraries .jqTransformSelectWrapper {
176
    position: absolute;
177
    right: 50px;
178
    top: 12px;
179
}
180
181
form#searchform input[type="submit"] {
182
    background: #619bb5 url("../../images/btn-search-bar.png") no-repeat 50% 50%;
183
    border: 1px solid #adadaa;
184
    -webkit-border-radius: 5px;
185
    -moz-border-radius: 5px;
186
    border-radius: 5px;
187
    color: #fff;
188
    cursor: pointer;
189
    font-size: 0;
190
    font-weight: normal;
191
    height: 33px;
192
    margin-left: 4px;
193
    margin-top: 0;
194
    padding: 0;
195
    position: absolute;
196
    right: 10px;
197
    top: 12px;
198
    width: 34px;
199
}
200
201
#moresearches {
202
    margin: 7px 10px 0;
203
}
204
#moresearches a:link,
205
#moresearches a:visited {
206
    background: url("../../images/arrow-right-grey-11x6.png") no-repeat scroll left center transparent;
207
    color: #007fae;
208
    font-size: 12px;
209
    font-weight: normal;
210
    margin-right: 12px;
211
    padding-left: 12px;
212
    text-decoration: none;
213
}
214
#moresearches a:hover {
215
    color: #00a5e2;
216
}
217
218
#moresearches span.pipe {
219
    display: none;
220
}
221
222
.transparent {
223
    zoom: 1;
224
    filter: alpha(opacity=50);
225
    opacity: 0.5;
226
}
227
228
div#top-bar {
229
    z-index: 9999999;
230
    position: fixed;
231
    top:0;
232
    left:0;
233
    margin: 0;
234
    padding: 0;
235
    width: 100%;
236
    height: 29px;
237
    background: #454543 url("../../images/img_bg_header.png") repeat-x 0 0;
238
}
239
240
241
ul#menu-left {
242
    margin: 0 0 0 30px;
243
    padding: 0;
244
    display: block;
245
    float: left;
246
    width: auto;
247
    height: 29px;
248
}
249
ul#menu-left li {
250
    margin: 0;
251
    padding: 0 8px 0 10px;
252
    float: left;
253
    height: 29px;
254
    list-style-type: none;
255
    background: url("../../images/img_sep_header.png") no-repeat left top;
256
}
257
ul#menu-left li#listsmenulink {
258
    padding: 1px 0 0 12px;
259
    border: none;
260
}
261
ul#menu-left #listsmenulink:hover {
262
    background: url("../../images/img_sep_header.png") no-repeat left top !important;
263
}
264
ul#menu-left li a#cartmenulink,
265
ul#menu-left li#listsmenulink a {
266
    margin: 2px 0 0 0;
267
    color: #9EE1FF;
268
    font-family: Arial;
269
    font-size: 13px;
270
    font-weight: bold;
271
    text-decoration: none;
272
    border: none;
273
}
274
ul#menu-left li a#cartmenulink:hover,
275
ul#menu-left li#listsmenulink a:hover {
276
    color: #9EE1FF;
277
}
278
279
ul#menu-left li#listsmenulink a {
280
    padding: 2px 0 0;
281
}
282
283
ul#menu-left li a#cartmenulink span,
284
ul#menu-left li#listsmenulink a span {
285
    margin: 0;
286
    padding: 0;
287
}
288
ul#menu-left li a#cartmenulink span#basketcount {
289
    margin: 0 0 0 5px;
290
    padding: 0;
291
    background: none;
292
}
293
ul#menu-left li a#cartmenulink span img,
294
ul#menu-left li#listsmenulink a span img {
295
    display: none;
296
}
297
298
ul#menu-left li a#cartmenulink {
299
    padding: 0 0 0 30px;
300
    background: url("../../images/img_toolbar-button-cart.png") no-repeat left center;
301
}
302
ul#menu-left li#listsmenulink a {
303
    padding: 0 0 0 20px;
304
    background: url("../../images/img_toolbar-button-lists.png") no-repeat left center;
305
}
306
307
div#cartDetails,
308
div#listsmenu {
309
    z-index: 9999999;
310
    top: 29px !important;
311
    margin: 0;
312
    padding: 10px !important;
313
    background: #649EB8;
314
    border-left: 1px solid #A0A09A !important;
315
    border-right: 1px solid #A0A09A !important;
316
    border-bottom: 1px solid #A0A09A !important;
317
    -webkit-border-radius: 0 0 7px 7px;
318
    -moz-border-radius: 0 0 7px 7px;
319
    border-radius: 0 0 7px 7px;
320
}
321
div#cartDetails {
322
    margin-left: -9px;
323
}
324
325
326
#members {
327
    background: none;
328
    margin: 0;
329
    padding: 0;
330
    float: right;
331
}
332
#members ul {
333
    margin: 0;
334
    margin-right: 20px;
335
    float: right;
336
}
337
#members li {
338
    background: none;
339
    margin:0;
340
    float: left;
341
    border-right: none;
342
}
343
#members ul li a {
344
    background: url("../../images/img_sep_header.png") no-repeat scroll right top transparent;
345
    color: #9EE1FF;
346
    display: block;
347
    font-family: Arial;
348
    font-size: 13px;
349
    height: 22px;
350
    padding: 7px 14px 0 3px;
351
    text-decoration: none;
352
}
353
354
#members li span.members {
355
    color:#fff;
356
    padding:7px 14px 0 9px;
357
    float: left;
358
    background: url(../../images/img_sep_header.png) no-repeat right top;
359
    height: 22px;
360
}
361
362
#members li span.members a {
363
    display:inline;
364
    background: none;
365
    padding: 0;
366
}
367
368
#members li a {
369
    padding:7px 14px 0 9px;
370
}
371
372
#members li a.logout {
373
    color:#ff825b;
374
    font-weight: normal;
375
    padding:7px 14px 0 9px;
376
}
377
378
div#listsmenu {
379
    margin-left: 1px;
380
}
381
div#listsmenu h4 {
382
    margin: 0 !important;
383
    color: #fff;
384
}
385
div#listsmenu ul li {
386
    margin: 0 !important;
387
    padding: 0 !important;
388
    height: auto !important;
389
    background: none !important;
390
}
391
div#listsmenu ul li {
392
    float: none !important;
393
    margin: 0 !important;
394
    padding: 0 !important;
395
    list-style-type: none !important;
396
    background: none !important;
397
}
398
div#listsmenu a {
399
    margin: 0 !important;
400
    padding: 0 !important;
401
    color: #fff !important;
402
    font-weight: normal  !important;
403
    text-decoration: none;
404
    background: none !important;
405
}
406
div#listsmenu a:hover {
407
    text-decoration: underline;
408
}
409
410
#cartDetails,#cartUpdate,#holdDetails,#listsDetails {
411
    background-color : #FFF;
412
    border: 1px solid #739acf;
413
    color : #fff;
414
    display : none;
415
    margin : 0;
416
    padding : 10px;
417
    text-align : center;
418
    width : 180px;
419
    box-shadow: 1px 1px 3px #666;
420
    -moz-box-shadow: 1px 1px 3px #666;
421
    -webkit-box-shadow: 1px 1px 3px #666;
422
423
}
424
425
#cartmenulink, #listsmenulink {
426
    display : block;
427
    position : relative;
428
    background : #aaa;
429
    padding : 5px;
430
    float : left;
431
    color : #333;
432
    text-decoration : none;
433
    cursor : pointer;
434
}
435
436
#cartmenulink {
437
    background : #98CB58;
438
    color : #336600;
439
    font-size : 105%;
440
}
441
442
#cartmenulink[class], #listsmenulink[class] {
443
    background-image : ;
444
    background-position : ;
445
}
446
447
#cartmenulink span, #listsmenulink span {
448
    padding : 0 0 5px 10px;
449
    background-position:;
450
    left:;
451
    margin-bottom:;
452
}
453
454
#cartmenulink *, #listsmenulink * {
455
    background-image : none;
456
}
457
458
#cartmenulink span#basketcount span {
459
    color:#fff;
460
    margin:0 0 0 5px;
461
    padding:0;
462
    background:none;
463
    font-size:15px;
464
    font-weight:bold;
465
}
466
467
468
/* ================================
469
 * !jQtransform
470
 * ================================*/
471
472
.jqTransformSelectWrapper {
473
    background: none repeat scroll 0 0 #FFFFFF;
474
    border: 1px solid #A0A09A;
475
    border-radius: 8px 8px 8px 8px;
476
    color: #252525;
477
    font-family: Arial,Helvetica,sans-serif;
478
    font-size: 13px;
479
    float: left;
480
    margin-left: 5px;
481
    padding: 0;
482
    position: relative;
483
    width: 171px !important;
484
}
485
.jqTransformSelectWrapper div {
486
    height: 19px;
487
    padding: 9px 5px 4px;
488
    text-indent: 4px;
489
}
490
.jqTransformSelectWrapper div span {
491
    cursor: pointer;
492
    float: left;
493
}
494
495
.jqTransformSelectWrapper div a {
496
    background: url("../../images/img_select-puce.png") no-repeat scroll 0 50% transparent;
497
    display: block;
498
    height: 26px;
499
    outline: medium none;
500
    position: absolute;
501
    right: 3px;
502
    top: 3px;
503
    width: 25px;
504
}
505
506
.jqTransformSelectWrapper ul {
507
    background: none repeat scroll 0 0 #FFFFFF;
508
    border: 1px solid #A0A09A;
509
    -webkit-border-radius: 7px;
510
    -moz-border-radius: 7px;
511
    border-radius: 7px;
512
    height: auto !important;
513
    padding: 5px 0 !important;
514
    position: absolute;
515
    width: 100% !important;
516
}
517
.jqTransformSelectWrapper ul li {
518
    background: none repeat scroll 0 0 transparent !important;
519
    list-style: none outside none !important;
520
    margin: 0 !important;
521
    padding: 0 5px !important;
522
}
523
.jqTransformSelectWrapper ul li a {
524
    color: #252525 !important;
525
    display: block;
526
    font-family: Arial,Helvetica,sans-serif;
527
    font-size: 13px;
528
    font-weight: normal;
529
    padding-left: 5px;
530
    text-decoration: none;
531
}
532
.jqTransformSelectWrapper ul li a:hover {
533
    background: none repeat scroll 0 0 #F5F5F4;
534
}
535
536
537
/* ================================
538
 * !Footer
539
 * ================================*/
540
541
#main_footer {
542
    padding:0 30px;
543
    font-family:"Lucida Grande", Arial;
544
    margin-bottom: 65px;
545
}
546
547
#main_footer .colleft {
548
    float:left;
549
    margin-top:8px;
550
}
551
552
#main_footer .colleft ul {
553
    padding:0;
554
}
555
556
#main_footer .colleft li {
557
    display:inline;
558
    list-style:none;
559
}
560
561
#main_footer .colleft li.first {
562
    background:url(../../images/img_sep_footer.png) no-repeat right top;
563
    padding-right: 8px;
564
    margin-right: 10px;
565
}
566
567
#main_footer .colleft li a {
568
    color:#4f91b0;
569
    text-decoration:none;
570
    font-size:14px;
571
    font-weight: normal;
572
}
573
#main_footer .colleft li a:hover {
574
    color:#00a5e2;
575
}
576
577
#main_footer .colleft .copy {
578
    font-size:12px;
579
    color:#5f5f5f;
580
    margin-top:10px;
581
}
582
583
#main_footer .colright {
584
    float:right;
585
    width: auto;
586
}
587
588
#main_footer .colright .koha {
589
    float:left;
590
    background: url(../../images/img_logo_koha.jpg) no-repeat bottom right;
591
    width: 168px;
592
    height: 40px;
593
}
594
#main_footer .colright .koha a {
595
    display:block;
596
    padding:0;
597
    width: 168px;
598
    height: 40px;
599
    color:#5f5f5f;
600
    text-decoration: none;
601
    font-weight: normal;
602
}
603
604
div#changelanguage {
605
    padding-bottom: 2em;
606
}
607
608
609
/* ================================
610
 * !Page : Search results
611
 * ================================*/
612
613
/* breacrumbs */
614
615
body#results #breadcrumbs {
616
    margin: -1px 0 17px 2px;
617
    padding: 0;
618
}
619
body#results #breadcrumbs p {
620
    font: normal 11px/11px Arial;
621
    margin: 0;
622
    padding: 0;
623
}
624
body#results #breadcrumbs p a {
625
    color: #007fae;
626
    display: inline;
627
    text-decoration: none;
628
}
629
body#results #breadcrumbs p a:hover {
630
    color: #00a5e2;
631
}
632
633
body#results #breadcrumbs p a img {
634
    vertical-align: middle;
635
}
636
637
body#results #breadcrumbs p .rsaquo {
638
    color: #8d8d89;
639
    font-size: 20px;
640
    line-height: 11px;
641
    vertical-align: sub;
642
}
643
644
/* IE7 Hack */
645
*:first-child+html body#results #breadcrumbs p span {
646
    display: inline;
647
    font-size: 11px;
648
    font-weight: bold;
649
    vertical-align: top;
650
}
651
652
body#results #breadcrumbs p strong {
653
    color: #5f5f5f;
654
}
655
656
.nb_results {
657
    font-weight: bold;
658
}
659
660
/* search-facets */
661
662
body#results #search-facets {
663
    border: none;
664
}
665
body#results #search-facets h4 {
666
    background: none;
667
    border-bottom: 1px solid #E8E8E8;
668
    font-size: 90%;
669
    margin: 0 9px 10px 0;
670
    padding: 13px 0 7px;
671
    text-align: left;
672
}
673
674
body#results #search-facets a {
675
    color: #007fae;
676
}
677
body#results #search-facets a:hover {
678
    color: #00a5e2;
679
}
680
681
682
/* userresults */
683
684
body#results div#userresults {
685
    border-left: 1px solid #c8c8c4;
686
    padding: 0 20px 0;
687
}
688
689
690
/* searchresults */
691
692
body#results tr {
693
    border: none;
694
}
695
body#results tr td {
696
    background: #fff url("../../images/bg-result-light.png") repeat-x 0 0;
697
    border-top: 1px solid #c8c8c4;
698
    border-bottom: none;
699
    height: 115px;
700
    padding-top: 15px;
701
}
702
703
body#results .searchresults td.resultscontrol {
704
    background: #ddddda url("../../images/bg-results-control.png") repeat-x 0 100%;
705
    -moz-border-radius-topleft: 6px;
706
    -moz-border-radius-topright: 6px;
707
    -moz-border-radius-bottomright: 0px;
708
    -moz-border-radius-bottomleft: 0px;
709
    -webkit-border-radius: 6px 6px 0px 0px;
710
    border-radius: 6px 6px 0px 0px;
711
    border: none;
712
    border-bottom: 1px solid #b0b0ae;
713
    padding: 2px 7px 6px;
714
    height: auto;
715
}
716
717
718
/* Navigation */
719
720
body#results a.nav:link, div.pages a:link {
721
    background-color: #EEEEEE;
722
    border: 1px solid #CCCC99;
723
    color: #007FAE;
724
    font-weight: bold;
725
    padding: 1px 5px;
726
    text-decoration: none;
727
}
728
body#results a.nav:hover, div.pages a:hover {
729
    color: #00A5E2;
730
}
731
732
733
734
/* ================================
735
 * !Page : Opac detail
736
 * ================================*/
737
738
body#opac-detail .nav_results ul.pg_menu {
739
    display: table;
740
    height: auto;
741
    overflow: hidden;
742
    padding: 0;
743
    width: 100%;
744
}
745
body#opac-detail .nav_results ul.pg_menu li {
746
    display: table-cell;
747
    float: none;
748
}
(-)a/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc (+133 lines)
Line 0 Link Here
1
</title>
2
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3
<meta name="generator" content="Koha [% Version %]" /> <!-- leave this for stats -->
4
<link rel="shortcut icon" href="[% IF ( OpacFavicon ) %][% OpacFavicon %][% ELSE %][% themelang %]/includes/favicon.ico[% END %]" type="image/x-icon" />
5
<link rel="stylesheet" type="text/css" href="[% themelang %]/lib/jquery/jquery-ui.css" />
6
[% SET opaclayoutstylesheet='opac.css' UNLESS opaclayoutstylesheet %]
7
[% IF (opaclayoutstylesheet.match('^https?:|^\/')) %]
8
    <link rel="stylesheet" type="text/css" href="[% opaclayoutstylesheet %]" />
9
[% ELSE %]
10
    <link rel="stylesheet" type="text/css" href="[% themelang %]/css/[% opaclayoutstylesheet %]" />
11
[% END %]
12
[% IF ( opaccolorstylesheet ) %]
13
    [% IF (opaccolorstylesheet.match('^https?:|^\/')) %]
14
        <link rel="stylesheet" type="text/css" href="[% opaccolorstylesheet %]" />
15
    [% ELSE %]
16
        <link rel="stylesheet" type="text/css" href="[% themelang %]/css/[% opaccolorstylesheet %]" />
17
    [% END %]
18
[% END %]
19
[% IF ( opac_css_override ) %]
20
    <link rel="stylesheet" type="text/css" href="[% themelang %]/css/[% opac_css_override %]" />
21
[% END %]
22
<link rel="stylesheet" type="text/css" media="print" href="[% themelang %]/css/print.css" />
23
[% IF ( OPACUserCSS ) %]<style type="text/css">[% OPACUserCSS %]</style>[% END %]
24
<!-- yui js --> 
25
<script type="text/javascript" src="[% yuipath %]/utilities/utilities.js"></script> 
26
<script type="text/javascript" src="[% yuipath %]/container/container-min.js"></script> 
27
<script type="text/javascript" src="[% yuipath %]/menu/menu-min.js"></script> 
28
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
29
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
30
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
31
<script type="text/javascript" language="javascript" src="[% themelang %]/js/script.js"></script>
32
[% IF ( OPACAmazonCoverImages ) %]
33
<script type="text/javascript" language="javascript">//<![CDATA[
34
    var NO_AMAZON_IMAGE = _("No cover image available");
35
    //]]>
36
</script>
37
<script type="text/javascript" language="javascript" src="[% themelang %]/js/amazonimages.js"></script>
38
[% END %]
39
[% IF ( SyndeticsCoverImages ) %]
40
<script type="text/javascript" language="javascript">//<![CDATA[
41
        var NO_AMAZON_IMAGE = _("No cover image available");
42
    //]]>
43
</script>
44
<script type="text/javascript" language="javascript" src="[% themelang %]/js/amazonimages.js"></script>          [% END %]
45
46
[% IF ( opacbookbag ) %]<script type="text/javascript" language="javascript" src="[% themelang %]/js/basket.js">
47
[% ELSIF ( virtualshelves ) %]<script type="text/javascript" language="javascript" src="[% themelang %]/js/basket.js">
48
[% ELSE %]<script type="text/javascript" language="javascript"> var readCookie;[% END %]
49
</script>
50
51
<script type="text/javascript" language="javascript">
52
    //<![CDATA[
53
    [% IF ( opacbookbag ) %]var MSG_BASKET_EMPTY = _("Your cart is currently empty");
54
    var MSG_RECORD_IN_BASKET = _("This item is already in your cart");
55
    var MSG_RECORD_ADDED = _("This item has been added to your cart");
56
    var MSG_RECORD_REMOVED = _("This item has been removed from your cart");
57
    var MSG_NRECORDS_ADDED = _(" item(s) added to your cart");
58
    var MSG_NRECORDS_IN_BASKET = _("already in your cart");
59
    var MSG_NO_RECORD_SELECTED = _("No item was selected");
60
    var MSG_NO_RECORD_ADDED = _("No item was added to your cart");
61
    var MSG_CONFIRM_DEL_BASKET = _("Are you sure you want to empty your cart?");
62
    var MSG_CONFIRM_DEL_RECORDS = _("Are you sure you want to remove the selected items?");
63
    var MSG_ITEM_IN_CART = _("In your cart");
64
    var MSG_IN_YOUR_CART = _("Items in your cart: ");
65
    var MSG_ITEM_NOT_IN_CART = _("Add to your cart");
66
      $("#cartDetails").ready(function(){ $("#cmspan").html("<a href=\"#\" id=\"cartmenulink\" class=\"\"><span> "+_("Cart")+"<span id=\"basketcount\"><\/span><\/span><\/a>"); });
67
    [% ELSE %][% IF ( virtualshelves ) %]
68
    var MSG_NO_RECORD_SELECTED = _("No item was selected");[% END %][% END %]
69
    [% IF ( opacuserlogin ) %][% IF ( TagsEnabled ) %]var MSG_TAGS_DISABLED = _("Sorry, tags are not enabled on this system.");
70
    var MSG_TAG_ALL_BAD = _("Error! Your tag was entirely markup code.  It was NOT added.  Please try again with plain text.");
71
    var MSG_ILLEGAL_PARAMETER = _("Error! Illegal parameter");
72
    var MSG_TAG_SCRUBBED = _("Note: your tag contained markup code that was removed. The tag was added as ");
73
    var MSG_ADD_TAG_FAILED = _("Error! The add_tag operation failed on");
74
    var MSG_ADD_TAG_FAILED_NOTE = _("Note: you can only tag an item with a given term once.  Check 'My Tags' to see your current tags.");
75
    var MSG_DELETE_TAG_FAILED = _("Error! You cannot delete the tag");
76
    var MSG_DELETE_TAG_FAILED_NOTE = _("Note: you can only delete your own tags.")
77
    var MSG_LOGIN_REQUIRED = _("You must be logged in to add tags.");
78
    var MSG_TAGS_ADDED = _("Tags added: ");
79
    var MSG_TAGS_DELETED = _("Tags added: ");
80
    var MSG_TAGS_ERRORS = _("Errors: ");
81
    var MSG_MULTI_ADD_TAG_FAILED = _("Unable to add one or more tags.");[% END %][% END %]
82
    [% IF ( OPACAmazonCoverImages ) %]$(window).load(function() {
83
        verify_images();
84
    });[% END %]
85
    [% IF ( SyndeticsCoverImages ) %]$(window).load(function() {
86
        verify_images();
87
    });[% END %]
88
//]]>
89
[% IF ( opacbookbag ) %]</script><script type="text/javascript" language="javascript" src="[% themelang %]/js/basket.js">
90
[% ELSIF ( virtualshelves ) %]</script><script type="text/javascript" language="javascript" src="[% themelang %]/js/basket.js">
91
[% ELSE %]</script><script type="text/javascript" language="javascript">var readCookie;[% END %]</script>
92
[% IF ( opacuserlogin ) %][% IF ( TagsEnabled ) %]<script type="text/javascript" language="javascript" src="[% themelang %]/js/tags.js"></script>[% END %][% ELSE %][% END %]
93
[% IF ( GoogleJackets ) %]
94
<script type="text/javascript" language="javascript" src="[% themelang %]/js/google-jackets.js"></script>
95
<script type="text/javascript" language="javascript">
96
//<![CDATA[
97
    var NO_GOOGLE_JACKET = _("No cover image available");
98
//]]>
99
</script>
100
[% END %]
101
[% IF OpenLibraryCovers %]
102
<script type="text/javascript" language="javascript" src="[% themelang %]/js/openlibrary.js"></script>
103
<script type="text/javascript" language="javascript">
104
//<![CDATA[
105
var NO_OL_JACKET = _("No cover image available");
106
//]]>
107
</script>
108
[% END %]
109
110
[% IF OPACLocalCoverImages %]
111
<script type="text/javascript" language="javascript" src="[% themelang %]/js/localcovers.js"></script>
112
<script type="text/javascript" language="javascript">
113
//<![CDATA[
114
var NO_LOCAL_JACKET = _("No cover image available");
115
//]]>
116
</script>
117
[% END %]
118
119
[% IF ( BakerTaylorEnabled ) %]<script type="text/javascript" language="javascript" src="[% themelang %]/js/bakertaylorimages.js"></script>
120
<script type="text/javascript" language="javascript">
121
//<![CDATA[
122
    var NO_BAKERTAYLOR_IMAGE = _("No cover image available");
123
    $(window).load(function(){
124
        bt_verify_images();
125
    });
126
//]]>
127
</script>[% END %]
128
<link rel="unapi-server" type="application/xml" title="unAPI" href="[% OPACBaseURL %]/cgi-bin/koha/unapi" />
129
[% IF ( GoogleIndicTransliteration ) %]
130
        <script type="text/javascript" src="http://www.google.com/jsapi"></script>
131
        <script type="text/javascript" language="javascript" src="[% themelang %]/js/googleindictransliteration.js"></script>
132
[% END %]
133
(-)a/koha-tmpl/opac-tmpl/ccsr/en/includes/masthead.inc (+267 lines)
Line 0 Link Here
1
<div id="header-wrapper">
2
3
<div id="top-bar">
4
<ul id="menu-left">
5
6
    [% IF ( opacbookbag ) %]
7
        <li>
8
            <span id="cmspan"></span>
9
            <div id="cartDetails">Your cart is empty.</div>
10
        </li>
11
    [% END %]
12
13
    [% IF ( virtualshelves ) %]
14
15
    <li id="listsmenulink">
16
        <a href="/cgi-bin/koha/opac-shelves.pl"  class="">
17
            <span>Lists</span>
18
        </a>
19
    <div id="listsmenu" class="yuimenu" style="display: none">
20
        <h4>Public lists</h4>
21
            [% IF ( pubshelves ) %]
22
                <ul class="first-of-type">
23
                [% FOREACH pubshelvesloo IN pubshelvesloop %]
24
                <li class="yuimenuitem"><a href="/cgi-bin/koha/opac-shelves.pl?viewshelf=[% pubshelvesloo.shelfnumber %]&amp;sortfield=[% pubshelvesloo.sortfield %]">[% pubshelvesloo.shelfname |html %]</a></li>
25
                [% END %]
26
                <li class="yuimenuitem"><a class="yuimenuitemlabel" href="/cgi-bin/koha/opac-shelves.pl?display=publicshelves">[View All]</a></li>
27
            </ul>
28
            [% ELSE %]
29
            No public lists
30
            [% END %]
31
      [% IF ( opacuserlogin ) %]
32
        <h4>Your lists</h4>
33
        [% IF ( loggedinusername ) %]
34
            [% IF ( barshelves ) %]
35
                <ul class="first-of-type">
36
                [% FOREACH barshelvesloo IN barshelvesloop %]
37
                <li class="yuimenuitem"><a href="/cgi-bin/koha/opac-shelves.pl?viewshelf=[% barshelvesloo.shelfnumber %]&amp;sortfield=[% barshelvesloo.sortfield %]">[% barshelvesloo.shelfname |html %]</a></li>
38
                [% END %]
39
            <li class="yuimenuitem"><a class="yuimenuitemlabel" href="/cgi-bin/koha/opac-shelves.pl?display=privateshelves">[View all]</a></li>
40
            </ul>
41
            [% ELSE %]
42
                <ul class="first-of-type">
43
            <li>No private lists</li>
44
            <li class="yuimenuitem"><a class="yuimenuitemlabel" href="/cgi-bin/koha/opac-shelves.pl?display=privateshelves">[New list]</a></li></ul>
45
            [% END %]
46
        [% ELSE %]
47
            <ul class="first-of-type"><li><a href="/cgi-bin/koha/opac-user.pl">Log in to create your own lists</a></li></ul>
48
        [% END %]
49
      [% END %]
50
    </div><!-- /listmenu /virtualshelves -->
51
[% END %]
52
<div id="listsDetails"></div>
53
54
</li>
55
</ul>
56
57
    <div id="members">
58
      [% IF ( opacuserlogin ) %]
59
        <ul>
60
    [% UNLESS ( loggedinusername ) %]
61
                   <li><a href="/cgi-bin/koha/opac-user.pl">Log in to your account</a></li>[% END %]
62
                [% IF ( loggedinusername ) %]
63
                    <li><span class="members">Welcome, <a href="/cgi-bin/koha/opac-user.pl"><span class="loggedinusername">[% FOREACH USER_INF IN USER_INFO %][% USER_INF.title %] [% USER_INF.firstname %] [% USER_INF.surname %][% END %]</span></a></span></li>
64
65
                [% END %]
66
                [% IF ( ShowOpacRecentSearchLink ) %]
67
                    <li><a href="/cgi-bin/koha/opac-search-history.pl" title="View your search history">Search history</a></li>
68
                [% END %]
69
                [% IF ( loggedinusername ) %]<li><a class="logout" id="logout" href="/cgi-bin/koha/opac-main.pl?logout.x=1">Log Out</a></li>[% END %]
70
        </ul>
71
      [% END %]
72
    </div>
73
74
    <div class="clear"></div>
75
76
</div>
77
78
<div id="opac-main-search" class="yui-g">
79
80
<a class="logo" href="/cgi-bin/koha/opac-main.pl">
81
    <img src="/opac-tmpl/prog/images/logo-koha.png" alt="Koha Online Catalog" />
82
</a>
83
84
<div id="fluid">
85
86
[% IF ( OpacPublic ) %]
87
<div id="fluid-offset">
88
[% UNLESS ( advsearch ) %]<form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="[% IF ( OpacAddMastheadLibraryPulldown ) %]multi-libraries[% ELSE %]single-library[% END %]">
89
    <label for="masthead_search" class="left"> Search 
90
    [% UNLESS ( OpacAddMastheadLibraryPulldown ) %]
91
            [% IF ( mylibraryfirst ) %] (in [% mylibraryfirst %] only)[% END %]
92
    [% END %]
93
    </label>
94
95
    <div id="filters">
96
    <select name="idx" id="masthead_search" class="left">
97
    [% IF ( ms_kw ) %]
98
        <option selected="selected" value="">Library catalog</option>
99
        [% ELSE %]
100
        <option value="">Library catalog</option>
101
        [% END %]
102
        [% IF ( ms_ti ) %]
103
        <option selected="selected" value="ti">Title</option>
104
        [% ELSE %]
105
        <option value="ti">Title</option>
106
        [% END %]
107
        [% IF ( ms_au ) %]
108
        <option selected="selected" value="au">Author</option>
109
        [% ELSE %]
110
        <option value="au">Author</option>
111
        [% END %]
112
        [% IF ( ms_su ) %]
113
        <option selected="selected" value="su">Subject</option>
114
        [% ELSE %]
115
        <option value="su">Subject</option>
116
        [% END %]
117
        [% IF ( ms_nb ) %]
118
        <option selected="selected" value="nb">ISBN</option>
119
        [% ELSE %]
120
        <option value="nb">ISBN</option>
121
        [% END %]
122
        [% IF ( ms_se ) %]
123
        <option selected="selected" value="se">Series</option>
124
        [% ELSE %]
125
        <option value="se">Series</option>
126
        [% END %]
127
        [% IF ( ms_callnum ) %]
128
        <option selected="selected" value="callnum">Call number</option>
129
        [% ELSE %]
130
        <option value="callnum">Call number</option>
131
        [% END %]</select>
132
    </div>
133
134
<div class="input-wrapper">
135
[% IF ( ms_value ) %]
136
        <input type="text" id = "transl1" name="q" value="[% ms_value |html %]" class="left" style="width: 35%; font-size: 111%;"/><div id="translControl"></div>
137
[% ELSE %]
138
        <input type="text" id = "transl1" name="q" class="left" style="width: 35%; font-size: 111%;"/><div id="translControl"></div>
139
[% END %]
140
</div>
141
142
   [% IF ( OpacAddMastheadLibraryPulldown ) %]
143
    <div id="libraries">
144
      <select name="limit" id="select_library" class="left">
145
         <option value="">All libraries</option>
146
         [% FOREACH BranchesLoo IN BranchesLoop %]
147
            [% IF ( BranchesLoo.selected ) %]<option selected="selected" value="branch:[% BranchesLoo.value %]">[% BranchesLoo.branchname %]</option>
148
            [% ELSE %]<option value="branch:[% BranchesLoo.value %]">[% BranchesLoo.branchname %]</option>[% END %]
149
         [% END %]
150
      </select>
151
    </div>
152
   [% ELSE %]
153
      [% IF ( opac_limit_override ) %]
154
          [% IF ( opac_search_limit ) %]
155
            <input name="limit" value="[% opac_search_limit %]" type="hidden" />
156
          [% END %]
157
      [% ELSE %]
158
          [% IF ( mylibraryfirst ) %] 
159
               <input name="limit" value="branch:[% mylibraryfirst %]" type="hidden" />
160
          [% END %]
161
      [% END %]
162
   [% END %]
163
164
165
    <input type="submit" value="Go" id="searchsubmit" class="left" />
166
[% IF ( opacbookbag ) %]<span id="cmspan"></span>[% END %]
167
168
    <div class="clear"></div>
169
170
    </form>
171
[% ELSE %] <!--advsearch -->
172
<form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="[% IF ( OpacAddMastheadLibraryPulldown ) %]multi-libraries[% ELSE %]single-library[% END %]">
173
    <label for="masthead_search" class="left"> Search
174
    [% UNLESS ( OpacAddMastheadLibraryPulldown ) %]
175
            [% IF ( mylibraryfirst ) %] (in [% mylibraryfirst %] only)[% END %]
176
    [% END %]
177
    </label>
178
179
    <div id="filters" class="transparent">
180
        <select name="idx" id="masthead_search" class="left" disabled="disabled">
181
            <option selected="selected" value="">Library Catalog</option>
182
        </select>
183
    </div>
184
185
<div class="input-wrapper">
186
    <input type="text" id = "transl1" name="q" class="left transparent" style="width: 35%; font-size: 111%;" disabled="disabled"/><div id="translControl"></div>
187
</div>
188
189
   [% IF ( OpacAddMastheadLibraryPulldown ) %]
190
        <div id="libraries">
191
          <select name="limit" id="select_library" class="left transparent">
192
             <option value="">All Libraries</option>
193
          </select>
194
        </div>
195
   [% END %]
196
197
198
    <input type="submit" value="Go" id="searchsubmit" class="left transparent" disabled="disabled" />
199
[% IF ( opacbookbag ) %]<span id="cmspan"></span>[% END %]
200
201
    <div class="clear"></div>
202
203
    </form>
204
[% END %]
205
206
<div id="moresearches">
207
<a href="/cgi-bin/koha/opac-search.pl">Advanced search</a>
208
[% IF ( OpacBrowser ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-browser.pl">Browse by hierarchy</a>[% END %]
209
[% IF ( OpacAuthorities ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-authorities-home.pl">Browse by author or subject</a>[% END %]
210
[% IF ( opacuserlogin && reviewson && OpacShowRecentComments ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-showreviews.pl">Recent comments</a>[% END %]
211
[% IF ( TagsEnabled ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-tags.pl">Tag cloud</a>[% END %]
212
[% IF ( OpacCloud ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-tags_subject.pl">Subject cloud</a>[% END %]
213
[% IF ( OpacTopissue ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-topissues.pl">Most popular</a>[% END %]
214
[% IF ( suggestion ) %]
215
  [% IF ( AnonSuggestions ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-suggestions.pl">Purchase suggestions</a>
216
  [% ELSIF ( OPACViewOthersSuggestions ) %]<span class="pipe"> | </span><a href="/cgi-bin/koha/opac-suggestions.pl">Purchase suggestions</a>
217
  [% END %]
218
[% END %]
219
</div>
220
 </div>
221
</div>
222
223
<div id="libraryname">
224
    [% IF ( opacheader ) %]
225
        <h1>
226
            [% opacheader %]
227
        </h1>
228
  [% END %]
229
</div>
230
231
[% END %]  <!-- OpacPublic --> 
232
233
</div>
234
</div>
235
236
<div id="container">
237
<div id="ctn_lt">
238
<div id="ctn_rt">
239
<div id="ctn_lb">
240
<div id="ctn_rb">
241
242
<div id="breadcrumbs" class="yui-g">
243
<p><a href="/cgi-bin/koha/opac-main.pl" title="Accueil">Accueil</a>
244
[% IF ( searchdesc ) %]<span class="rsaquo"> &rsaquo; </span><a href="/cgi-bin/koha/opac-search.pl" title="rechercher">Recherche</a><span class="rsaquo"> &rsaquo; </span>
245
[% IF ( total ) %]<strong>Your search returned [% total |html %] results.</strong>
246
[% IF ( related ) %] (related searches: [% FOREACH relate IN related %][% relate.related_search %][% END %]). [% END %]
247
<a href="[% OPACBaseURL %]/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;count=[% countrss |html %]&amp;sort_by=acqdate_dsc&amp;format=rss2" class="rsssearchlink">
248
<img src="/opac-tmpl/prog/images/feed-icon-16x16.png" alt="Subscribe to this search" title="Subscribe to this search" border="0" class="rsssearchicon"/></a>
249
[% ELSE %]
250
<strong>No results found!</strong>
251
<p>
252
    [% IF ( searchdesc ) %]
253
    No results found for that in [% LibraryName %] catalog. <a href="[% OPACBaseURL %]/cgi-bin/koha/opac-search.pl?[% query_cgi |html %][% limit_cgi |html %]&amp;format=rss2" class="rsssearchlink"><img src="/opac-tmpl/prog/images/feed-icon-16x16.png" alt="Subscribe to this search" title="Subscribe to this search" border="0" class="rsssearchicon"/></a>
254
    [% ELSE %]
255
    You did not specify any search criteria.
256
    [% END %]
257
</p>
258
[% IF ( OPACNoResultsFound ) %]
259
<div id="noresultsfound">
260
[% OPACNoResultsFound %]
261
</div>
262
[% END %]
263
264
</div>
265
[% END %]</p>[% END %]</div>
266
267
<div class="ctn_in">
(-)a/koha-tmpl/opac-tmpl/ccsr/en/includes/navigation.inc (+6 lines)
Line 0 Link Here
1
[% IF IsPatronPage %]
2
[% INCLUDE usermenu.inc %]
3
[% END %]
4
[% OpacNav %]
5
[% OpacNavBottom %]
6
(-)a/koha-tmpl/opac-tmpl/ccsr/en/includes/opac-bottom.inc (+89 lines)
Line 0 Link Here
1
[% IF ( opaccredits ) %]
2
    <div class="ft">
3
        [% opaccredits %]
4
    </div>
5
[% END %]
6
</div>
7
8
<div class="clear"></div>
9
</div>
10
</div>
11
</div>
12
</div>
13
</div>
14
</div>
15
16
<div id="main_footer">
17
    <div class="colleft">
18
    </div>
19
    [% IF ( OpacKohaUrl ) %]
20
    <div class="colright">
21
        <div class="koha">
22
            [% IF template.name.match('opac-main.tt') %]
23
                <a class="koha_url" href="http://koha-community.org">Powered by</a>
24
            [% ELSE %]
25
                <a class="koha_url" rel="nofollow" href="http://koha-community.org">Powered by</a>
26
            [% END %]
27
        </div>
28
    </div>
29
    [% END %]
30
    <div class="clear"></div>
31
</div>
32
33
[% IF ( opaclanguagesdisplay || OpacKohaUrl ) %]
34
    [% IF ( languages_loop && opaclanguagesdisplay ) %]
35
        [% UNLESS ( one_language_enabled ) %]
36
            <div id="changelanguage" class="ft">
37
            <div class="lang" style="float:left;padding: 0.1em 0;"><strong>Languages:&nbsp;</strong></div>
38
            <ul id="i18nMenu" class="footermenu">
39
            [% FOREACH languages_loo IN languages_loop %]
40
41
                [% IF ( languages_loo.group_enabled ) %]
42
                [% IF ( languages_loo.plural ) %]
43
                <li class="more" style="float:left;"><a class="sublangs" id="show[% languages_loo.rfc4646_subtag %]" href="#">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</a><div id="sub[% languages_loo.rfc4646_subtag %]">
44
                <div class="bd"><ul>
45
                [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %]
46
            [% IF ( sublanguages_loo.enabled ) %]
47
                    [% IF ( sublanguages_loo.sublanguage_current ) %]
48
                        <li> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</li>
49
                    [% ELSE %]
50
                    <li><a href="/cgi-bin/koha/changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</a></li>
51
            [% END %]
52
                    [% END %]
53
54
                [% END %]
55
                </ul></div></div></li>
56
57
                [% ELSE %]
58
                [% IF ( languages_loo.group_enabled ) %]
59
                    [% IF ( languages_loo.current ) %]
60
                        <li style="float:left;">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</li>
61
                    [% ELSE %]
62
                        <li style="float:left;"><a href="/cgi-bin/koha/changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</a></li>
63
                    [% END %]
64
            [% END %]
65
                [% END %]
66
                [% END %]
67
68
            [% END %]
69
            </ul>
70
            </div>
71
        [% END %]
72
    [% END %]
73
74
[% END %]
75
76
77
<script type="text/javascript" src="/opac-tmpl/lib/jquery/plugins/jquery.jqtransform_select.js"></script>
78
<script type="text/javascript">
79
$(function() {
80
    //find all form with class jqtransform and apply the plugin
81
    $("form#searchform").jqTransform();
82
});
83
84
[% IF ( opacuserjs ) %][% opacuserjs %][% END %]
85
86
</script>
87
88
</body>
89
</html>
(-)a/koha-tmpl/opac-tmpl/ccsr/en/js/basket.js (+537 lines)
Line 0 Link Here
1
//////////////////////////////////////////////////////////////////////////////
2
// BASIC FUNCTIONS FOR COOKIE MANAGEMENT //
3
//////////////////////////////////////////////////////////////////////////////
4
5
var CGIBIN = "/cgi-bin/koha/";
6
7
8
var nameCookie = "bib_list";
9
var valCookie = readCookie(nameCookie);
10
11
if(valCookie){
12
    var arrayRecords = valCookie.split("/");
13
    if(arrayRecords.length > 0){
14
        var basketcount = arrayRecords.length-1;
15
    } else {
16
        var basketcount = "";
17
    }
18
} else {
19
        var basketcount = "";
20
}
21
22
function writeCookie(name, val, wd) {
23
    if (wd) {
24
        parent.opener.document.cookie = name + "=" + val;
25
    }
26
    else {
27
        parent.document.cookie = name + "=" + val;
28
    }
29
}
30
31
function readCookieValue (str, val_beg) {
32
    var val_end = str.indexOf(";", val_end);
33
    if (val_end == -1)
34
        val_end = str.length;
35
    return str.substring(val_beg, val_end);
36
}
37
38
function readCookie(name, wd) {
39
    var str_name = name + "=";
40
    var str_len = str_name.length;
41
    var str_cookie = "";
42
    if (wd) {
43
        str_cookie = parent.opener.document.cookie;
44
    }
45
    else {
46
        str_cookie = parent.document.cookie;
47
    }
48
        // fixed - getting the part of the basket that is bib_list
49
        var cookie_parts = str_cookie.split(";");
50
            for(var i=0;i < cookie_parts.length;i++) {
51
                var c = cookie_parts[i];
52
                    while (c.charAt(0)==' ') c = c.substring(1,c.length);
53
            if(c.indexOf(str_name) == 0) return c.substring(str_name.length,c.length);
54
            }
55
    return null;
56
}
57
58
function delCookie(name) {
59
    var exp = new Date();
60
    exp.setTime(exp.getTime()-1);
61
    if(parent.opener){
62
    parent.opener.document.cookie = name + "=null; expires=" + exp.toGMTString();
63
    } else {
64
    document.cookie = name + "=null; expires=" + exp.toGMTString();
65
    }
66
}
67
68
///////////////////////////////////////////////////////////////////
69
// SPECIFIC FUNCTIONS USING COOKIES //
70
///////////////////////////////////////////////////////////////////
71
72
function openBasket() {
73
    var strCookie = "";
74
    var nameCookie = "bib_list";
75
    var valCookie = readCookie(nameCookie);
76
    if ( valCookie ) {
77
        strCookie = nameCookie + "=" + valCookie;
78
    }
79
80
    if ( strCookie ) {
81
        var iW = 820;
82
        var iH = 450;
83
        var optWin = "dependant=yes,status=yes,scrollbars=yes,resizable=yes,toolbar=no,location=yes,height="+iH+",width="+iW;
84
        var loc = CGIBIN + "opac-basket.pl?" + strCookie;
85
        var basket = open(loc, "basket", optWin);
86
        if (window.focus) {basket.focus()}
87
    }
88
    else {
89
        showCartUpdate(MSG_BASKET_EMPTY);
90
    }
91
}
92
93
function addRecord(val, selection,NoMsgAlert) {
94
    var nameCookie = "bib_list";
95
    var valCookie = readCookie(nameCookie);
96
    var write = 0;
97
98
    if ( ! valCookie ) { // empty basket
99
        valCookie = val + '/';
100
        write = 1;
101
        updateBasket(1);
102
    }
103
    else {
104
        // is this record already in the basket ?
105
        var found = false;
106
        var arrayRecords = valCookie.split("/");
107
        for (var i = 0; i < valCookie.length - 1; i++) {
108
            if (val == arrayRecords[i]) {
109
                found = true;
110
                break;
111
            }
112
        }
113
        if ( found ) {
114
            if (selection) {
115
                return 0;
116
            }
117
            if (! NoMsgAlert ) {
118
                showCartUpdate(MSG_RECORD_IN_BASKET);
119
            }
120
        }
121
        else {
122
            valCookie += val + '/';
123
            write = 1;
124
            updateBasket(arrayRecords.length);
125
        }
126
    }
127
128
    if (write) {
129
        writeCookie(nameCookie, valCookie);
130
        if (selection) { // when adding a selection of records
131
            updateLink(val,"add");
132
            return 1;
133
        }
134
        if (! NoMsgAlert ) {
135
            showCartUpdate(MSG_RECORD_ADDED);
136
            updateLink(val,"add");
137
        }
138
    }
139
}
140
141
function AllAreChecked(s){
142
    if (! s.length)    { return false;}
143
    var l = s.length;
144
    for (var i=0; i < l; i++) {
145
        if(! s[i].checked) { return false; }
146
    }
147
    return true;
148
}
149
150
function SelectAll(){
151
    if(document.bookbag_form.biblionumber.length > 0) {
152
        var checky = AllAreChecked(document.bookbag_form.biblionumber);
153
        var l = document.bookbag_form.biblionumber.length;
154
        for (var i=0; i < l; i++) {
155
            document.bookbag_form.biblionumber[i].checked = (checky) ? false : true;
156
        }
157
    }
158
}
159
160
function addMultiple(){
161
    var c_value = "";
162
    if(document.bookbag_form.biblionumber.length > 0) {
163
        for (var i=0; i < document.bookbag_form.biblionumber.length; i++) {
164
            if (document.bookbag_form.biblionumber[i].checked) {
165
                c_value = c_value + document.bookbag_form.biblionumber[i].value + "/";
166
            }
167
        }
168
        addSelRecords(c_value);
169
    } else {
170
        c_value = c_value + document.bookbag_form.biblionumber.value + "/";
171
        addSelRecords(c_value);
172
    }
173
}
174
175
function addSelRecords(valSel) { // function for adding a selection of biblios to the basket
176
                                                // from the results list
177
    var arrayRecords = valSel.split("/");
178
    var i = 0;
179
    var nbAdd = 0;
180
    for (i=0;i<arrayRecords.length;i++) {
181
        if (arrayRecords[i]) {
182
            nbAdd += addRecord(arrayRecords[i], 1);
183
        }
184
        else {
185
            break;
186
        }
187
    }
188
    var msg = "";
189
    if (nbAdd) {
190
        if (i > nbAdd) {
191
            msg = nbAdd+" "+MSG_NRECORDS_ADDED+", "+(i-nbAdd)+" "+MSG_NRECORDS_IN_BASKET;
192
        }
193
        else {
194
            msg = nbAdd+" "+MSG_NRECORDS_ADDED;
195
        }
196
    }
197
    else {
198
        if (i < 1) {
199
            msg = MSG_NO_RECORD_SELECTED;
200
        }
201
        else {
202
            msg = MSG_NO_RECORD_ADDED+" ("+MSG_NRECORDS_IN_BASKET+") !";
203
        }
204
    }
205
    showCartUpdate(msg);
206
}
207
208
function showCartUpdate(msg){
209
    // set body of popup window
210
    $("#cartDetails").html(msg);
211
    showCart();
212
    setTimeout("hideCart()",2000);    
213
}
214
215
function showListsUpdate(msg){
216
       // set body of popup window
217
       $("#listsDetails").html(msg);
218
       showLists();
219
       setTimeout("hideLists()",2000); 
220
}
221
222
function selRecord(num, status) {
223
    var str = document.myform.records.value
224
    if (status){
225
        str += num+"/";
226
    }
227
    else {
228
        str = delRecord(num, str);
229
    }
230
231
    document.myform.records.value = str;
232
}
233
234
function delSingleRecord(biblionumber){
235
    var nameCookie = "bib_list";
236
    var valCookie = readCookie(nameCookie);
237
    var arrayRecords = valCookie.split("/");
238
    var pos = jQuery.inArray(biblionumber,arrayRecords);
239
    arrayRecords.splice(pos,1);
240
    valCookie = arrayRecords.join("/");
241
    writeCookie( nameCookie, valCookie );
242
    updateBasket( arrayRecords.length-1 );
243
    updateLink(biblionumber,"del");
244
    showCartUpdate(MSG_RECORD_REMOVED);
245
}
246
247
function delSelRecords() {
248
    var recordsSel = 0;
249
    var end = 0;
250
    var nameCookie = "bib_list";
251
    var valCookie = readCookie(nameCookie, 1);
252
    if (valCookie) {
253
        var str = document.myform.records.value;
254
        if (str.length > 0){
255
            recordsSel = 1;
256
            var str2 = valCookie;
257
            while (!end){
258
                s = str.indexOf("/");
259
                if (s>0){
260
                    num = str.substring(0, s);
261
                    str = delRecord(num,str);
262
                    str2 = delRecord(num,str2);
263
                    updateLink(num,"del",top.opener);
264
                } else {
265
                    end = 1;
266
                }
267
            }
268
269
            if (str2.length == 0) { // equivalent to emptying the basket
270
                var rep = false;
271
                rep = confirm(MSG_CONFIRM_DEL_BASKET);
272
                if (rep) {
273
                    delCookie(nameCookie);
274
                    document.location = "about:blank";
275
                    updateBasket(0,top.opener);
276
                    window.close();
277
                } else {
278
                    return;
279
                }
280
            } else {
281
                writeCookie(nameCookie, str2, 1);
282
            }
283
        }
284
    }
285
286
    if (recordsSel) {
287
        var strCookie = "";
288
        var nameCookie = "bib_list";
289
        var valCookie = readCookie(nameCookie, 1);
290
        strCookie = nameCookie + "=" + valCookie;
291
        var arrayRecords = valCookie.split("/");
292
        updateBasket(arrayRecords.length-1,top.opener);
293
        document.location = CGIBIN + "opac-basket.pl?" + strCookie;
294
    }
295
    else {
296
        alert(MSG_NO_RECORD_SELECTED);
297
    }
298
}
299
300
function delRecord (n, s) {
301
    var re = /\d/;
302
    var aux = s;
303
    var found = 0;
304
    var pos = -1;
305
306
    while (!found) {
307
        pos = aux.indexOf(n, pos+1);
308
        var charAfter = aux.charAt(pos+n.length); // character right after the researched string
309
        if (charAfter.match(re)) { // record number inside another one
310
            continue;
311
        }
312
        else { // good record number
313
            aux = s.substring(0, pos)+ s.substring(pos+n.length+1, s.length);
314
            s = aux;
315
            found = 1;
316
        }
317
    }
318
319
    return s;
320
}
321
322
323
function delBasket() {
324
    var nameCookie = "bib_list";
325
326
    var rep = false;
327
    rep = confirm(MSG_CONFIRM_DEL_BASKET);
328
    if (rep) {
329
        delCookie(nameCookie);
330
        updateAllLinks(top.opener);
331
        document.location = "about:blank";
332
        updateBasket(0,top.opener);
333
        window.close();
334
    }
335
}
336
337
338
function quit() {
339
    if (document.myform.records.value) {
340
        var rep = false;
341
        rep = confirm(MSG_CONFIRM_DEL_RECORDS);
342
        if (rep) {
343
            delSelRecords();
344
        }
345
    }
346
    updateBasket(arrayRecords.length-1,top.opener);
347
    window.close();
348
}
349
350
function sendBasket() {
351
    var nameCookie = "bib_list";
352
    var valCookie = readCookie(nameCookie);
353
    var strCookie = nameCookie + "=" + valCookie;
354
355
    var loc = CGIBIN + "opac-sendbasket.pl?" + strCookie;
356
357
    var optWin="dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100";
358
    var win_form = open(loc,"win_form",optWin);
359
}
360
361
function downloadBasket() {
362
    var nameCookie = "bib_list";
363
    var valCookie = readCookie(nameCookie);
364
    var strCookie = nameCookie + "=" + valCookie;
365
366
    var loc = CGIBIN + "opac-downloadcart.pl?" + strCookie;
367
368
    open(loc,"win_form",'dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100');
369
}
370
371
function printBasket() {
372
    var loc = document.location + "&print=1";
373
    document.location = loc;
374
}
375
376
function showMore() {
377
    var strCookie = "";
378
379
    var nameCookie = "bib_list";
380
    var valCookie = readCookie(nameCookie);
381
    if (valCookie) {
382
        strCookie = nameCookie + "=" + valCookie;
383
    }
384
    var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=1";
385
    document.location = loc;
386
}
387
388
function showLess() {
389
    var strCookie = "";
390
391
    var nameCookie = "bib_list";
392
    var valCookie = readCookie(nameCookie);
393
    if (valCookie) {
394
        strCookie = nameCookie + "=" + valCookie;
395
    }
396
    var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=0";
397
    document.location = loc;
398
}
399
400
function updateBasket(updated_value,target) {
401
    if(target){
402
    target.$('#basketcount').html("<span>"+updated_value+"</span>");
403
    target.$('#cartDetails').html(MSG_IN_YOUR_CART+updated_value);
404
    } else {
405
    $('#basketcount').html("<span>"+updated_value+"</span>");
406
    $('#cartDetails').html(MSG_IN_YOUR_CART+updated_value);
407
    }
408
    var basketcount = updated_value;
409
}
410
411
function openBiblio(dest,biblionumber) {
412
    openerURL=dest+"?biblionumber="+biblionumber;
413
    opener.document.location = openerURL;
414
    opener.focus();
415
}
416
417
function addSelToShelf() {
418
    var items = document.getElementById('records').value;
419
    if(items){
420
    document.location = "/cgi-bin/koha/opac-addbybiblionumber.pl?biblionumber="+items;
421
    } else {
422
        alert(MSG_NO_RECORD_SELECTED);
423
    }
424
}
425
426
///  vShelfAdd()  builds url string for multiple-biblio adds.
427
428
function vShelfAdd() {
429
        bibs= new Array;
430
        if(document.bookbag_form.biblionumber.length > 0) {
431
                for (var i=0; i < document.bookbag_form.biblionumber.length; i++) {
432
                        if (document.bookbag_form.biblionumber[i].checked) {
433
                                bibs.push("biblionumber=" +  document.bookbag_form.biblionumber[i].value);
434
                        }
435
                }
436
        if (bibs.length == 0) { showListsUpdate(MSG_NO_RECORD_SELECTED); }
437
            return bibs.join("&");
438
        } else {
439
            if (document.bookbag_form.biblionumber.checked) {
440
                return "biblionumber=" + document.bookbag_form.biblionumber.value;
441
            }
442
        }
443
}
444
445
function showCart(){
446
        var position = $("#cartmenulink").offset();
447
        var scrolld = $(window).scrollTop();
448
        var top = position.top + $("#cartmenulink").outerHeight();
449
        if( scrolld > top ){
450
            top = scrolld + 15;
451
        }
452
        var menuWidth = 200;
453
        var buttonWidth = $("#cartmenulink").innerWidth();
454
        var buttonOffset = menuWidth - buttonWidth;
455
        var left = position.left;
456
        $("#cartDetails").css("position","fixed").css("left",left);
457
        $("#cartDetails").fadeIn("fast");
458
}
459
460
function showLists(){
461
    var position = $("#listsmenulink").offset();
462
    var top = position.top + $("#listsmenulink").outerHeight();
463
    var menuWidth = 200;
464
    var buttonWidth = $("#listsmenulink").innerWidth();
465
    var buttonOffset = menuWidth - buttonWidth;
466
    var left = position.left;
467
    $("#listsDetails").css("position","fixed").css("top",top);
468
    $("#listsDetails").css("position","fixed").css("left",left);
469
    $("#listsDetails").fadeIn("fast");
470
}
471
472
function hideCart(){
473
    $("#cartDetails").fadeOut("fast");
474
}
475
476
function hideLists(){
477
    $("#listsDetails").fadeOut("fast");
478
}
479
480
function updateLink(val,op,target){
481
    if(target){
482
        if(op == "add"){
483
            target.$("a.cart"+val).html(MSG_ITEM_IN_CART).addClass("incart");
484
            target.$("a.cartR"+val).show();
485
        } else {
486
            target.$("a.cart"+val).html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart cart"+val);
487
            target.$("a.cartR"+val).hide();
488
        }
489
    } else {
490
        if(op == "add"){
491
            $("a.cart"+val).html(MSG_ITEM_IN_CART).addClass("incart");
492
            $("a.cartR"+val).show();
493
        } else {
494
            $("a.cart"+val).html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart cart"+val);
495
            $("a.cartR"+val).hide();
496
        }
497
    }
498
}
499
500
function updateAllLinks(target){
501
    if(target){
502
        target.$("a.incart").html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart");
503
        target.$("a.cartRemove").hide();
504
    } else {
505
        $("a.incart").html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart");
506
        $("a.cartRemove").hide();
507
    }
508
}
509
510
$("#cartDetails").ready(function(){
511
    $("#cartDetails,#cartmenulink").click(function(){ hideCart(); });
512
    $("#cartmenulink").click(function(){ openBasket(); return false; });
513
    $("#cartmenulink").hoverIntent(function(){
514
        showCart();
515
    },function(){
516
        hideCart();
517
    });
518
    if(basketcount){ updateBasket(basketcount) }
519
});
520
521
$("#listsmenu").ready(function(){
522
   $("#listsmenulink").mouseenter(function(){
523
             var position = $("#listsmenulink").offset();
524
           var top = position.top + $("#listsmenulink").outerHeight();
525
            var menuWidth = 200;
526
           var buttonWidth = $("#listsmenulink").innerWidth();
527
            var buttonOffset = menuWidth - buttonWidth;
528
            var left = position.left;
529
              $("#listsmenu").css("position","fixed").css("top",top);
530
                $("#listsmenu").css("position","fixed").css("left",left);
531
              $("#listsmenu").fadeIn("fast");
532
        });
533
    $("#listsmenulink").mouseleave(function(){
534
             $("#listsmenu").fadeOut("fast");
535
       });
536
});
537
(-)a/koha-tmpl/opac-tmpl/ccsr/en/js/script.js (+110 lines)
Line 0 Link Here
1
function _(s) { return s } // dummy function for gettext
2
function confirmDelete(message) {
3
    return (confirm(message) ? true : false);
4
}
5
6
function Dopop(link) {
7
    newin=window.open(link,'popup','width=500,height=400,toolbar=false,scrollbars=yes,resizeable=yes');
8
}
9
10
$.datepicker.setDefaults({
11
        showOn: "both",
12
        changeMonth: true,
13
        changeYear: true,
14
        buttonImage: '/opac-tmpl/prog/famfamfam/silk/calendar.png',
15
        buttonImageOnly: true,
16
        showButtonPanel: true
17
    });
18
19
$(document).ready(function(){
20
    $(".close").click(function(){
21
        window.close();
22
    });
23
    $(".focus").focus();
24
    $( ".datepicker" ).datepicker();
25
    // http://jqueryui.com/demos/datepicker/#date-range
26
    var dates = $( ".datepickerfrom, .datepickerto" ).datepicker({
27
        changeMonth: true,
28
        numberOfMonths: 1,
29
        onSelect: function( selectedDate ) {
30
            var option = this.id == "from" ? "minDate" : "maxDate",
31
                instance = $( this ).data( "datepicker" );
32
                date = $.datepicker.parseDate(
33
                    instance.settings.dateFormat ||
34
                    $.datepicker._defaults.dateFormat,
35
                    selectedDate, instance.settings );
36
            dates.not( this ).datepicker( "option", option, date );
37
        }
38
    });
39
    // clear the basket when user logs out
40
    $("#logout").click(function(){
41
        var nameCookie = "bib_list";
42
        var valCookie = readCookie(nameCookie);
43
        if (valCookie) { // basket has contents
44
            updateBasket(0,null);
45
            delCookie(nameCookie);
46
            return true;
47
        } else {
48
            return true;
49
        }
50
    });
51
});
52
53
// build Change Language menus
54
YAHOO.util.Event.onContentReady("changelanguage", function () {
55
    $(".sublangs").each(function(){
56
        var menuid = $(this).attr("id");
57
        var menuid = menuid.replace("show","");
58
59
        var oMenu = new YAHOO.widget.Menu("sub"+menuid, { zindex: 2 });
60
        function positionoMenu() {
61
            oMenu.align("bl", "tl");
62
        }
63
        oMenu.subscribe("beforeShow", function () {
64
        if (this.getRoot() == this) {
65
            positionoMenu();
66
        }
67
        });
68
        oMenu.render();
69
        oMenu.cfg.setProperty("context", ["show"+menuid, "bl", "tl"]);
70
        function onYahooClick(p_oEvent) {
71
            // Position and display the menu        
72
            positionoMenu();
73
            oMenu.show();
74
            // Stop propagation and prevent the default "click" behavior
75
            YAHOO.util.Event.stopEvent(p_oEvent);
76
        }
77
        YAHOO.util.Event.addListener("show"+menuid, "click", onYahooClick);
78
        YAHOO.widget.Overlay.windowResizeEvent.subscribe(positionoMenu);
79
        
80
    });
81
});
82
83
/*
84
// Build lists menu
85
YAHOO.util.Event.onContentReady("listsmenu", function () {
86
    YAHOO.widget.Menu.prototype.onRender = function () { };
87
    $("#listsmenu").css("display","block").css("visibility","hidden");
88
    $("#listsmenulink").attr("href","#");
89
    var listMenu = new YAHOO.widget.Menu("listsmenu");
90
        listMenu.render();
91
        listMenu.cfg.setProperty("context", ["listsmenulink", "tr", "br"]);
92
        listMenu.cfg.setProperty("effect",{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.05});
93
        listMenu.subscribe("beforeShow",positionlistMenu);
94
        listMenu.subscribe("show", listMenu.focus);
95
        function positionlistMenu() {
96
                    listMenu.align("tr", "br");
97
        }
98
        YAHOO.util.Event.addListener("listsmenulink", "click", listMenu.show, null, listMenu);
99
        YAHOO.widget.Overlay.windowResizeEvent.subscribe(positionlistMenu);
100
 });
101
*/
102
103
jQuery.fn.preventDoubleFormSubmit = function() {
104
    jQuery(this).submit(function() {
105
        if (this.beenSubmitted)
106
            return false;
107
        else
108
            this.beenSubmitted = true;
109
    });
110
};
(-)a/koha-tmpl/opac-tmpl/lib/jquery/plugins/jquery.jqtransform_select.js (-1 / +366 lines)
Line 0 Link Here
0
- 
1
/*
2
 *
3
 * jqTransform
4
 * by mathieu vilaplana mvilaplana@dfc-e.com
5
 * Designer ghyslain armand garmand@dfc-e.com
6
 *
7
 *
8
 * Version 1.0 25.09.08
9
 * Version 1.1 06.08.09
10
 * Add event click on Checkbox and Radio
11
 * Auto calculate the size of a select element
12
 * Can now, disabled the elements
13
 * Correct bug in ff if click on select (overflow=hidden)
14
 * No need any more preloading !!
15
 *
16
 ******************************************** */
17
18
(function($){
19
 var defaultOptions = {preloadImg:true};
20
        var jqTransformImgPreloaded = false;
21
22
  var jqTransformPreloadHoverFocusImg = function(strImgUrl) {
23
            //guillemets to remove for ie
24
          strImgUrl = strImgUrl.replace(/^url\((.*)\)/,'$1').replace(/^\"(.*)\"$/,'$1');
25
         var imgHover = new Image();
26
            imgHover.src = strImgUrl.replace(/\.([a-zA-Z]*)$/,'-hover.$1');
27
                var imgFocus = new Image();
28
            imgFocus.src = strImgUrl.replace(/\.([a-zA-Z]*)$/,'-focus.$1');
29
        };
30
31
32
   /***************************
33
     Labels
34
       ***************************/
35
   var jqTransformGetLabel = function(objfield){
36
          var selfForm = $(objfield.get(0).form);
37
                var oLabel = objfield.next();
38
          if(!oLabel.is('label')) {
39
                      oLabel = objfield.prev();
40
                      if(oLabel.is('label')){
41
                                var inputname = objfield.attr('id');
42
                           if(inputname){
43
                                 oLabel = selfForm.find('label[for="'+inputname+'"]');
44
                          }
45
                      }
46
              }
47
              if(oLabel.is('label')){return oLabel.css('cursor','pointer');}
48
         return false;
49
  };
50
51
    /* Hide all open selects */
52
    var jqTransformHideSelect = function(oTarget){
53
         var ulVisible = $('.jqTransformSelectWrapper ul:visible');
54
             ulVisible.each(function(){
55
                     var oSelect = $(this).parents(".jqTransformSelectWrapper:first").find("select").get(0);
56
                        //do not hide if click on the label object associated to the select
57
                    if( !(oTarget && oSelect.oLabel && oSelect.oLabel.get(0) == oTarget.get(0)) ){$(this).hide();}
58
         });
59
    };
60
     /* Check for an external click */
61
      var jqTransformCheckExternalClick = function(event) {
62
          if ($(event.target).parents('.jqTransformSelectWrapper').length === 0) { jqTransformHideSelect($(event.target)); }
63
     };
64
65
    /* Apply document listener */
66
  var jqTransformAddDocumentListener = function (){
67
              $(document).mousedown(jqTransformCheckExternalClick);
68
  };
69
70
    /* Add a new handler for the reset action */
71
   var jqTransformReset = function(f){
72
            var sel;
73
               $('.jqTransformSelectWrapper select', f).each(function(){sel = (this.selectedIndex<0) ? 0 : this.selectedIndex; $('ul', $(this).parent()).each(function(){$('a:eq('+ sel +')', this).click();});});
74
            $('a.jqTransformCheckbox, a.jqTransformRadio', f).removeClass('jqTransformChecked');
75
           $('input:checkbox, input:radio', f).each(function(){if(this.checked){$('a', $(this).parent()).addClass('jqTransformChecked');}});
76
      };
77
78
    /***************************
79
     Buttons
80
       ***************************/
81
  $.fn.jqTransInputButton = function(){
82
          return this.each(function(){
83
                   var newBtn = $('<button id="'+ this.id +'" name="'+ this.name +'" type="'+ this.type +'" class="'+ this.className +' jqTransformButton"><span><span>'+ $(this).attr('value') +'</span></span>')
84
                                .hover(function(){newBtn.addClass('jqTransformButton_hover');},function(){newBtn.removeClass('jqTransformButton_hover')})
85
                              .mousedown(function(){newBtn.addClass('jqTransformButton_click')})
86
                             .mouseup(function(){newBtn.removeClass('jqTransformButton_click')})
87
                    ;
88
                      $(this).replaceWith(newBtn);
89
           });
90
    };
91
92
    /***************************
93
     Text Fields
94
   ***************************/
95
  $.fn.jqTransInputText = function(){
96
            return this.each(function(){
97
                   var $input = $(this);
98
99
                 if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;}
100
                 $input.addClass('jqtranformdone');
101
102
                    var oLabel = jqTransformGetLabel($(this));
103
                     oLabel && oLabel.bind('click',function(){$input.focus();});
104
105
                   var inputSize=$input.width();
106
                  if($input.attr('size')){
107
                               inputSize = $input.attr('size')*10;
108
                            $input.css('width',inputSize);
109
                 }
110
111
                     $input.addClass("jqTransformInput").wrap('<div class="jqTransformInputWrapper"><div class="jqTransformInputInner"><div></div></div></div>');
112
                   var $wrapper = $input.parent().parent().parent();
113
                      $wrapper.css("width", inputSize+10);
114
                   $input
115
                         .focus(function(){$wrapper.addClass("jqTransformInputWrapper_focus");})
116
                                .blur(function(){$wrapper.removeClass("jqTransformInputWrapper_focus");})
117
                              .hover(function(){$wrapper.addClass("jqTransformInputWrapper_hover");},function(){$wrapper.removeClass("jqTransformInputWrapper_hover");})
118
                     ;
119
120
                     /* If this is safari we need to add an extra class */
121
                  $.browser.safari && $wrapper.addClass('jqTransformSafari');
122
                    $.browser.safari && $input.css('width',$wrapper.width()+16);
123
                   this.wrapper = $wrapper;
124
125
              });
126
    };
127
128
    /***************************
129
     Check Boxes
130
   ***************************/
131
  $.fn.jqTransCheckBox = function(){
132
             return this.each(function(){
133
                   if($(this).hasClass('jqTransformHidden')) {return;}
134
135
                   var $input = $(this);
136
                  var inputSelf = this;
137
138
                 //set the click on the label
139
                   var oLabel=jqTransformGetLabel($input);
140
                        oLabel && oLabel.click(function(){aLink.trigger('click');});
141
142
                  var aLink = $('<a href="#" class="jqTransformCheckbox"></a>');
143
                 //wrap and add the link
144
                        $input.addClass('jqTransformHidden').wrap('<span class="jqTransformCheckboxWrapper"></span>').parent().prepend(aLink);
145
                 //on change, change the class of the link
146
                      $input.change(function(){
147
                              this.checked && aLink.addClass('jqTransformChecked') || aLink.removeClass('jqTransformChecked');
148
                               return true;
149
                   });
150
                    // Click Handler, trigger the click and change event on the input
151
                      aLink.click(function(){
152
                                //do nothing if the original input is disabled
153
                         if($input.attr('disabled')){return false;}
154
                             //trigger the envents on the input object
155
                              $input.trigger('click').trigger("change");
156
                             return false;
157
                  });
158
159
                   // set the default state
160
                       this.checked && aLink.addClass('jqTransformChecked');
161
          });
162
    };
163
     /***************************
164
     Radio Buttons
165
         ***************************/
166
  $.fn.jqTransRadio = function(){
167
                return this.each(function(){
168
                   if($(this).hasClass('jqTransformHidden')) {return;}
169
170
                   var $input = $(this);
171
                  var inputSelf = this;
172
173
                 oLabel = jqTransformGetLabel($input);
174
                  oLabel && oLabel.click(function(){aLink.trigger('click');});
175
176
                  var aLink = $('<a href="#" class="jqTransformRadio" rel="'+ this.name +'"></a>');
177
                      $input.addClass('jqTransformHidden').wrap('<span class="jqTransformRadioWrapper"></span>').parent().prepend(aLink);
178
179
                   $input.change(function(){
180
                              inputSelf.checked && aLink.addClass('jqTransformChecked') || aLink.removeClass('jqTransformChecked');
181
                          return true;
182
                   });
183
                    // Click Handler
184
                       aLink.click(function(){
185
                                if($input.attr('disabled')){return false;}
186
                             $input.trigger('click').trigger('change');
187
188
                            // uncheck all others of same name input radio elements
189
                                $('input[name="'+$input.attr('name')+'"]',inputSelf.form).not($input).each(function(){
190
                                 $(this).attr('type')=='radio' && $(this).trigger('change');
191
                            });
192
193
                           return false;
194
                  });
195
                    // set the default state
196
                       inputSelf.checked && aLink.addClass('jqTransformChecked');
197
             });
198
    };
199
200
    /***************************
201
     TextArea
202
      ***************************/
203
  $.fn.jqTransTextarea = function(){
204
             return this.each(function(){
205
                   var textarea = $(this);
206
207
                       if(textarea.hasClass('jqtransformdone')) {return;}
208
                     textarea.addClass('jqtransformdone');
209
210
                 oLabel = jqTransformGetLabel(textarea);
211
                        oLabel && oLabel.click(function(){textarea.focus();});
212
213
                        var strTable = '<table cellspacing="0" cellpadding="0" border="0" class="jqTransformTextarea">';
214
                       strTable +='<tr><td id="jqTransformTextarea-tl"></td><td id="jqTransformTextarea-tm"></td><td id="jqTransformTextarea-tr"></td></tr>';
215
                 strTable +='<tr><td id="jqTransformTextarea-ml">&nbsp;</td><td id="jqTransformTextarea-mm"><div></div></td><td id="jqTransformTextarea-mr">&nbsp;</td></tr>';
216
                  strTable +='<tr><td id="jqTransformTextarea-bl"></td><td id="jqTransformTextarea-bm"></td><td id="jqTransformTextarea-br"></td></tr>';
217
                 strTable +='</table>';
218
                 var oTable = $(strTable)
219
                                       .insertAfter(textarea)
220
                                 .hover(function(){
221
                                             !oTable.hasClass('jqTransformTextarea-focus') && oTable.addClass('jqTransformTextarea-hover');
222
                                 },function(){
223
                                          oTable.removeClass('jqTransformTextarea-hover');
224
                                       })
225
                             ;
226
227
                     textarea
228
                               .focus(function(){oTable.removeClass('jqTransformTextarea-hover').addClass('jqTransformTextarea-focus');})
229
                             .blur(function(){oTable.removeClass('jqTransformTextarea-focus');})
230
                            .appendTo($('#jqTransformTextarea-mm div',oTable))
231
                     ;
232
                      this.oTable = oTable;
233
                  if($.browser.safari){
234
                          $('#jqTransformTextarea-mm',oTable)
235
                                    .addClass('jqTransformSafariTextarea')
236
                                 .find('div')
237
                                           .css('height',textarea.height())
238
                                               .css('width',textarea.width())
239
                         ;
240
                      }
241
              });
242
    };
243
244
    /***************************
245
     Select
246
        ***************************/
247
  $.fn.jqTransSelect = function(){
248
               return this.each(function(index){
249
                      var $select = $(this);
250
251
                        if($select.hasClass('jqTransformHidden')) {return;}
252
                    if($select.attr('multiple')) {return;}
253
254
                        var oLabel  =  jqTransformGetLabel($select);
255
                   /* First thing we do is Wrap it */
256
                     var $wrapper = $select
257
                         .addClass('jqTransformHidden')
258
                         .wrap('<div class="jqTransformSelectWrapper"></div>')
259
                          .parent()
260
                              .css({zIndex: 1000-index})
261
                     ;
262
263
                     /* Now add the html for the select */
264
                  $wrapper.prepend('<div><span></span><a href="#" class="jqTransformSelectOpen"></a></div><ul></ul>');
265
                   var $ul = $('ul', $wrapper).css('width',$select.width()).hide();
266
                       /* Now we add the options */
267
                   $('option', this).each(function(i){
268
                            var oLi = $('<li><a href="#" index="'+ i +'">'+ $(this).html() +'</a></li>');
269
                          $ul.append(oLi);
270
                       });
271
272
                   /* Add click handler to the a */
273
                       $ul.find('a').click(function(){
274
                                        $('a.selected', $wrapper).removeClass('selected');
275
                                     $(this).addClass('selected');
276
                                  /* Fire the onchange event */
277
                                  if ($select[0].selectedIndex != $(this).attr('index') && $select[0].onchange) { $select[0].selectedIndex = $(this).attr('index'); $select[0].onchange(); }
278
                                     $select[0].selectedIndex = $(this).attr('index');
279
                                      $('span:eq(0)', $wrapper).html($(this).html());
280
                                        $ul.hide();
281
                                    return false;
282
                  });
283
                    /* Set the default */
284
                  $('a:eq('+ this.selectedIndex +')', $ul).click();
285
                      $('span:first', $wrapper).click(function(){$("a.jqTransformSelectOpen",$wrapper).trigger('click');});
286
                  oLabel && oLabel.click(function(){$("a.jqTransformSelectOpen",$wrapper).trigger('click');});
287
                   this.oLabel = oLabel;
288
289
                 /* Apply the click handler to the Open */
290
                      var oLinkOpen = $('a.jqTransformSelectOpen', $wrapper)
291
                         .click(function(){
292
                                     //Check if box is already open to still allow toggle, but close all other selects
293
                                      if( $ul.css('display') == 'none' ) {jqTransformHideSelect();}
294
                                  if($select.attr('disabled')){return false;}
295
296
                                   $ul.slideToggle('fast', function(){
297
                                            var offSet = ($('a.selected', $ul).offset().top - $ul.offset().top);
298
                                           $ul.animate({scrollTop: offSet});
299
                                      });
300
                                    return false;
301
                          })
302
                     ;
303
304
                     // Set the new width
305
                   var iSelectWidth = $select.outerWidth();
306
                       var oSpan = $('span:first',$wrapper);
307
                  var newWidth = (iSelectWidth > oSpan.innerWidth())?iSelectWidth+oLinkOpen.outerWidth():$wrapper.width();
308
                       $wrapper.css('width',newWidth);
309
                        $ul.css('width',newWidth-2);
310
                   oSpan.css({width:iSelectWidth});
311
312
                      // Calculate the height if necessary, less elements that the default height
313
                    //show the ul to calculate the block, if ul is not displayed li height value is 0
314
                      $ul.css({display:'block',visibility:'hidden'});
315
                        var iSelectHeight = ($('li',$ul).length)*($('li:first',$ul).height());//+1 else bug ff
316
                 (iSelectHeight < $ul.height()) && $ul.css({height:iSelectHeight,'overflow':'hidden'});//hidden else bug with ff
317
                        $ul.css({display:'none',visibility:'visible'});
318
319
               });
320
    };
321
     $.fn.jqTransform = function(options){
322
          var opt = $.extend({},defaultOptions,options);
323
324
                /* each form */
325
                 return this.each(function(){
326
                  var selfForm = $(this);
327
                        if(selfForm.hasClass('jqtransformdone')) {return;}
328
                     selfForm.addClass('jqtransformdone');
329
330
                 //$('input:submit, input:reset, input[type="button"]', this).jqTransInputButton();
331
                     //$('input:text, input:password', this).jqTransInputText();
332
                    //$('input:checkbox', this).jqTransCheckBox();
333
                 //$('input:radio', this).jqTransRadio();
334
                       //$('textarea', this).jqTransTextarea();
335
336
                      if( $('select', this).jqTransSelect().length > 0 ){jqTransformAddDocumentListener();}
337
                  selfForm.bind('reset',function(){var action = function(){jqTransformReset(this);}; window.setTimeout(action, 10);});
338
339
                  //preloading dont needed anymore since normal, focus and hover image are the same one
340
                  /*if(opt.preloadImg && !jqTransformImgPreloaded){
341
                              jqTransformImgPreloaded = true;
342
                                var oInputText = $('input:text:first', selfForm);
343
                              if(oInputText.length > 0){
344
                                     //pour ie on eleve les ""
345
                                      var strWrapperImgUrl = oInputText.get(0).wrapper.css('background-image');
346
                                      jqTransformPreloadHoverFocusImg(strWrapperImgUrl);
347
                                     var strInnerImgUrl = $('div.jqTransformInputInner',$(oInputText.get(0).wrapper)).css('background-image');
348
                                      jqTransformPreloadHoverFocusImg(strInnerImgUrl);
349
                               }
350
351
                             var oTextarea = $('textarea',selfForm);
352
                                if(oTextarea.length > 0){
353
                                      var oTable = oTextarea.get(0).oTable;
354
                                  $('td',oTable).each(function(){
355
                                                var strImgBack = $(this).css('background-image');
356
                                              jqTransformPreloadHoverFocusImg(strImgBack);
357
                                   });
358
                            }
359
                      }*/
360
361
362
          }); /* End Form each */
363
364
       };/* End the Plugin */
365
366
})(jQuery);

Return to bug 8597