]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/kpac/functions.js
LP#1706124: Make include inactive patrons checkbox sticky
[working/Evergreen.git] / Open-ILS / web / js / ui / default / kpac / functions.js
1 \r
2 function __$(str) { return document.getElementById(str); }\r
3 function attachEvt(type, el, evt) { // object, function\r
4         if(window.addEventListener) {\r
5           if(type.toLowerCase()=='mousewheel') el.addEventListener('DOMMouseScroll', evt, false);\r
6           el.addEventListener(type, evt, false);  // standard event attaching\r
7         }\r
8         else if(window.attachEvent) el.attachEvent('on'+type, evt);  // IE 5+\r
9         else el['on'+type] = evt;  // if all else fails...\r
10 }\r
11 \r
12 function getElementsByClass(str, parent) {\r
13         var arr = [];\r
14         var p = parent || document;\r
15         var els = p.getElementsByTagName("*");\r
16         var len = els.length;\r
17         \r
18         for(var i=0; i<len; i++) {\r
19                 var it = els.item(i);\r
20                 if(typeof it.className != "undefined" && it.className.indexOf(str) >= 0)\r
21                         arr.push(it);\r
22         }\r
23         \r
24         return arr;\r
25 }\r
26 \r
27 \r
28 function helpPopup(str, target, evt) {\r
29         var el = __$(str); if(!el || !target) return;\r
30         var maxWidth = 400;\r
31         \r
32         if(el.style.display!="none" && el.style.display!="") {\r
33                 el.style.display="none";\r
34                 el.style.top = "0px";\r
35                 el.style.left= "0px";\r
36                 el.parentNode.style.zIndex="-1";\r
37                 return;\r
38         }\r
39         \r
40         var src = evt.target || evt.srcElement;\r
41         var sTop = document.documentElement.scrollTop;\r
42         var sLeft = document.documentElement.scrollLeft;\r
43         el.style.display="block";\r
44         \r
45         var content = getElementsByClass("popup_content", el);\r
46         if(content[0].offsetWidth>maxWidth) content[0].style.width=maxWidth+"px";\r
47         \r
48         var elRect = el.getBoundingClientRect();\r
49         var tRect = target.getBoundingClientRect();\r
50         var elWidth = el.offsetWidth;\r
51         var elHeight = el.offsetHeight;\r
52         var tWidth = target.offsetWidth;\r
53         var tHeight = target.offsetHeight;\r
54         \r
55         var top = tRect.top - elRect.top - elHeight + 10;\r
56         var left = tRect.left - elRect.left - (elWidth/2 - (tWidth/2));\r
57 \r
58         el.style.top = top+"px";\r
59         el.style.left= left+"px";\r
60         el.parentNode.style.zIndex = "100000";\r
61         el.origSrc = src;\r
62 }\r
63 \r
64 function bodyClick(evt) {\r
65 // hide any visible help popups\r
66         var popups = getElementsByClass("popup_wrapper_inner");\r
67         var len = popups.length;\r
68         var src = evt.target || evt.srcElement;\r
69         \r
70         for(var i=0; i<len; i++) {\r
71                 var it = popups[i];\r
72                 if(it.origSrc && it.origSrc!=src) {\r
73                         it.style.display="none";\r
74                         it.style.top = "0px";\r
75                         it.style.left= "0px";\r
76                         it.parentNode.style.zIndex="-1";\r
77                 }\r
78         }\r
79 }\r
80 \r
81 attachEvt('click', document, bodyClick);\r
82 \r