and the following js:
1:
2: function initCaps() {
3: $('#password').CreateBubblePopup({
4: innerHtml : w_msg,
5: manageMouseEvents : false,
6: innerHtmlStyle : {
7: color : '#ffffdf',
8: 'text-align' : 'center'
9: },
10: position: 'left',
11: alwaysVisible: true,
12: dropShadow: true,
13: themeName : 'all-blue',
14: themePath: '../img/jquerybubblepopup-theme'
15:
16: });
17: $('#password111').CreateBubblePopup({
18: innerHtml : w_msg,
19: manageMouseEvents : false,
20: innerHtmlStyle : {
21: color : '#ffffdf',
22: 'text-align' : 'center'
23: },
24: position: 'right',
25: alwaysVisible: true,
26: dropShadow: true,
27: themeName : 'all-blue',
28: themePath: '../img/jquerybubblepopup-theme',
29: });
30: $('#old_password, #new_password, #confirm_password, #google_password, #imap_password').CreateBubblePopup({
31: innerHtml : w_msg,
32: manageMouseEvents : false,
33: innerHtmlStyle : {
34: color : '#ffffdf',
35: 'text-align' : 'center'
36: },
37: position: 'top',
38: alwaysVisible: true,
39: dropShadow: true,
40: themeName : 'all-blue',
41: themePath: '../img/jquerybubblepopup-theme',
42: });
43:
44: $('#google_password, #imap_password').CreateBubblePopup({
45: innerHtml : w_msg,
46: manageMouseEvents : false,
47: innerHtmlStyle : {
48: color : '#ffffdf',
49: 'text-align' : 'center'
50: },
51: position: 'right',
52: alwaysVisible: true,
53: dropShadow: true,
54: themeName : 'all-blue',
55: themePath: '../img/jquerybubblepopup-theme',
56: });
57:
58: $(':password').focusout(function(){
59: $(':password').UnfreezeAllBubblePopups();
60: $(':password').HideAllBubblePopups();
61:
62:
63: });
64: $('.w_close').click(function(){
65: $(':password').UnfreezeAllBubblePopups();
66: $(':password').HideAllBubblePopups();
67: });
68:
69:
70: }
71:
72: var capslock = {
73: init : function() {
74: if(!document.getElementsByTagName) {
75: return;
76: }
77: // Find all password fields in the page, and set a keypress event on them
78: var inps = document.getElementsByTagName("input");
79: for(var i = 0, l = inps.length; i < l; i++) {
80: if(inps[i].type == "password") {
81: capslock.addEvent(inps[i], "keypress", capslock.keypress);
82: }
83: }
84: },
85: addEvent : function(obj, evt, fn) {
86: if(document.addEventListener) {
87: capslock.addEvent = function(obj, evt, fn) {
88: obj.addEventListener(evt, fn, false);
89: };
90: capslock.addEvent(obj, evt, fn);
91: } else if(document.attachEvent) {
92: capslock.addEvent = function(obj, evt, fn) {
93: obj.attachEvent('on' + evt, fn);
94: };
95: capslock.addEvent(obj, evt, fn);
96: } else {
97: // no support for addEventListener *or* attachEvent, so quietly exit
98: }
99: },
100: keypress : function(e) {
101: var ev = e ? e : window.event;
102: if(!ev) {
103: return;
104: }
105: var targ = ev.target ? ev.target : ev.srcElement;
106: // get key pressed
107: var which = -1;
108: if(ev.which) {
109: which = ev.which;
110: } else if(ev.keyCode) {
111: which = ev.keyCode;
112: }
113: // get shift status
114: var shift_status = false;
115: if(ev.shiftKey) {
116: shift_status = ev.shiftKey;
117: } else if(ev.modifiers) {
118: shift_status = !!(ev.modifiers & 4);
119: }
120: if(((which >= 65 && which <= 90) && !shift_status) || ((which >= 97 && which <= 122) && shift_status)) {
121: // uppercase, no shift key
122: capslock.show_warning(targ);
123: } else {
124: capslock.hide_warning(targ);
125: }
126: },
127: show_warning : function(targ) {
128: /*
129: if(!targ.warning) {
130: targ.warning = document.createElement('img');
131: targ.warning.src = "http://farm3.static.flickr.com/2145/2067574980_3ddd405905_o_d.png";
132: targ.warning.style.position = "absolute";
133: targ.warning.style.top = (targ.offsetTop - 73) + "px";
134: targ.warning.style.left = (targ.offsetLeft + targ.offsetWidth - 5) + "px";
135: targ.warning.style.zIndex = "999";
136: targ.warning.setAttribute("alt", "Warning: Caps Lock is on");
137: if(targ.warning.runtimeStyle) {
138: // PNG transparency for IE
139: targ.warning.runtimeStyle.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://farm3.static.flickr.com/2145/2067574980_3ddd405905_o_d.png',sizingMethod='scale')";
140: }
141: document.body.appendChild(targ.warning);
142: } */
143:
144: if(! $('#password').IsBubblePopupOpen() && $('#password').is(":focus")) {
145: $('#password').ShowBubblePopup();
146: $('#password').FreezeBubblePopup();
147: }
148:
149: if(! $('#password111').IsBubblePopupOpen() && $('#password111').is(":focus")){
150: $('#password111').ShowBubblePopup() ;
151: $('#password111').FreezeBubblePopup();
152: }
153:
154: if(! $('#old_password').IsBubblePopupOpen() && $('#old_password').is(":focus")){
155: $('#old_password').ShowBubblePopup();
156: $('#old_password').FreezeBubblePopup();
157: }
158:
159: if(! $('#new_password').IsBubblePopupOpen() && $('#new_password').is(":focus")){
160: $('#new_password').ShowBubblePopup();
161: $('#new_password').FreezeBubblePopup();
162: }
163:
164: if(! $('#confirm_password').IsBubblePopupOpen() && $('#confirm_password').is(":focus")){
165: $('#confirm_password').ShowBubblePopup();
166: $('#confirm_password').FreezeBubblePopup();
167: }
168:
169: if(! $('#google_password').IsBubblePopupOpen() && $('#google_password').is(":focus")){
170: $('#google_password').ShowBubblePopup();
171: $('#google_password').FreezeBubblePopup();
172: }
173:
174: if(! $('#imap_password').IsBubblePopupOpen() && $('#imap_password').is(":focus")){
175: $('#imap_password').ShowBubblePopup();
176: $('#imap_password').FreezeBubblePopup();
177: }
178:
179: // var alertMessage = "" + 'Caps ON' + "";
180: // $("#password").before(alertMessage);
181: // $("#capslock").fadeIn("slow");
182:
183: },
184: hide_warning : function(targ) {
185: /*
186: if(targ.warning) {
187: targ.warning.parentNode.removeChild(targ.warning);
188: targ.warning = null;
189: } */
190:
191: $(':password').UnfreezeAllBubblePopups();
192: $(':password').HideAllBubblePopups();
193:
194:
195: // $("#capslock").remove();
196: }
197: };
198: (function(i) {
199: var u = navigator.userAgent;
200: var e = /*@cc_on!@*/false;
201: var st = setTimeout;
202: if(/webkit/i.test(u)) {st(function() {
203: var dr = document.readyState;
204: if(dr == "loaded" || dr == "complete") {i()
205: } else {st(arguments.callee, 10);
206: }
207: }, 10);
208: } else if((/mozilla/i.test(u) && !/(compati)/.test(u)) || (/opera/i.test(u))) {
209: document.addEventListener("DOMContentLoaded", i, false);
210: } else if(e) {(function() {
211: var t = document.createElement('doc:rdy');
212: try {t.doScroll('left');
213: i();
214: t = null;
215: } catch(e) {st(arguments.callee, 0);
216: }
217: })();
218: } else {
219: window.onload = i;
220: }
221: })(capslock.init)