Diffstat (limited to 'frontend/beta/js/Bookmarklet.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/beta/js/Bookmarklet.js | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/frontend/beta/js/Bookmarklet.js b/frontend/beta/js/Bookmarklet.js index b8a0c0e..59f4fef 100644 --- a/frontend/beta/js/Bookmarklet.js +++ b/frontend/beta/js/Bookmarklet.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | _cble = null; | 26 | _cble = null; |
30 | 27 | ||
31 | //----------------------------------------------------------------------------- | 28 | //----------------------------------------------------------------------------- |
32 | 29 | ||
33 | isLoginForm = function(aForm) { | 30 | isLoginForm = function(aForm) { |
34 | var inputFields; | 31 | var inputFields; |
35 | var passwordFieldsFound; | 32 | var passwordFieldsFound; |
36 | var i,c; | 33 | var i,c; |
37 | 34 | ||
38 | //console.log('is login form: ' + aForm.name + ' (' + aForm.id + ')'); | 35 | //console.log('is login form: ' + aForm.name + ' (' + aForm.id + ')'); |
39 | passwordFieldsFound = 0; | 36 | passwordFieldsFound = 0; |
40 | inputFields = aForm.elements; | 37 | inputFields = aForm.elements; |
41 | c = inputFields.length; | 38 | c = inputFields.length; |
42 | for (i=0; i<c; i++) { | 39 | for (i=0; i<c; i++) { |
43 | if (inputFields[i].type == 'password') { | 40 | if (inputFields[i].type == 'password') { |
44 | passwordFieldsFound ++; | 41 | passwordFieldsFound ++; |
45 | } | 42 | } |
46 | } | 43 | } |
47 | //console.log('number of password fields found: ' + passwordFieldsFound); | 44 | //console.log('number of password fields found: ' + passwordFieldsFound); |
48 | return (passwordFieldsFound == 1); | 45 | return (passwordFieldsFound == 1); |
49 | }; | 46 | }; |
50 | 47 | ||
51 | //----------------------------------------------------------------------------- | 48 | //----------------------------------------------------------------------------- |
52 | 49 | ||
53 | findLoginForm = function(aDocument, aLevel) { | 50 | findLoginForm = function(aDocument, aLevel) { |
54 | varresult; | 51 | varresult; |
55 | vardocumentForms; | 52 | vardocumentForms; |
56 | var i,c; | 53 | var i,c; |
57 | 54 | ||
58 | result = null; | 55 | result = null; |
59 | 56 | ||
60 | try { | 57 | try { |
61 | documentForms = aDocument.getElementsByTagName('form'); | 58 | documentForms = aDocument.getElementsByTagName('form'); |
62 | 59 | ||
63 | c = documentForms.length; | 60 | c = documentForms.length; |
64 | for (i=0; (i<c) && (result == null); i++) { | 61 | for (i=0; (i<c) && (result == null); i++) { |
65 | if (isLoginForm(documentForms[i])) { | 62 | if (isLoginForm(documentForms[i])) { |
66 | result = documentForms[i]; | 63 | result = documentForms[i]; |
67 | } | 64 | } |
68 | } | 65 | } |
69 | 66 | ||
70 | if ((result == null) && (aLevel == 0)) { | 67 | if ((result == null) && (aLevel == 0)) { |
71 | var iFrames; | 68 | var iFrames; |
72 | 69 | ||
73 | iFrames = aDocument.getElementsByTagName('iframe'); | 70 | iFrames = aDocument.getElementsByTagName('iframe'); |
74 | c = iFrames.length; | 71 | c = iFrames.length; |
75 | for (i=0; (i<c) && (result == null); i++) { | 72 | for (i=0; (i<c) && (result == null); i++) { |
76 | result = findLoginForm(iFrames[i].contentDocument, (aLevel + 1)); | 73 | result = findLoginForm(iFrames[i].contentDocument, (aLevel + 1)); |
77 | } | 74 | } |
78 | } | 75 | } |
79 | } catch (e) { | 76 | } catch (e) { |
80 | _cble = e; | 77 | _cble = e; |
81 | } | 78 | } |
82 | 79 | ||
83 | return result; | 80 | return result; |
84 | }; | 81 | }; |
85 | 82 | ||
86 | //----------------------------------------------------------------------------- | 83 | //----------------------------------------------------------------------------- |
87 | 84 | ||
88 | inputElementValues = function(anInputElement) { | 85 | inputElementValues = function(anInputElement) { |
89 | varresult; | 86 | varresult; |
90 | 87 | ||
91 | //if ((anInputElement instanceof HTMLInputElement) && (anInputElement.getAttribute('name') != null)) { | 88 | //if ((anInputElement instanceof HTMLInputElement) && (anInputElement.getAttribute('name') != null)) { |
92 | if ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('name') != null)) { | 89 | if ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('name') != null)) { |
93 | result = {}; | 90 | result = {}; |
94 | result.type = anInputElement.getAttribute('type') || 'text'; | 91 | result.type = anInputElement.getAttribute('type') || 'text'; |
95 | result.name = anInputElement.getAttribute('name'); | 92 | result.name = anInputElement.getAttribute('name'); |
96 | // result.value = anInputElement.getAttribute('value'); | 93 | // result.value = anInputElement.getAttribute('value'); |
97 | result.value = anInputElement.value; | 94 | result.value = anInputElement.value; |
98 | if (anInputElement.type.toLowerCase() == 'radio') { | 95 | if (anInputElement.type.toLowerCase() == 'radio') { |
99 | result.checked = anInputElement.checked; | 96 | result.checked = anInputElement.checked; |
100 | } | 97 | } |
101 | //} else if ((anInputElement instanceof HTMLSelectElement) && (anInputElement.getAttribute('name') != null)) { | 98 | //} else if ((anInputElement instanceof HTMLSelectElement) && (anInputElement.getAttribute('name') != null)) { |
102 | } else if ((anInputElement.tagName.toLowerCase() == 'select') && (anInputElement.getAttribute('name') != null)) { | 99 | } else if ((anInputElement.tagName.toLowerCase() == 'select') && (anInputElement.getAttribute('name') != null)) { |
103 | varoptions; | 100 | varoptions; |
104 | var c,i; | 101 | var c,i; |
105 | 102 | ||
106 | //console.log('input element values: %o', anInputElement); | 103 | //console.log('input element values: %o', anInputElement); |
107 | result = {}; | 104 | result = {}; |
108 | result.type = 'select'; | 105 | result.type = 'select'; |
109 | result.name = anInputElement.getAttribute('name'); | 106 | result.name = anInputElement.getAttribute('name'); |
110 | 107 | ||
111 | result.options = []; | 108 | result.options = []; |
112 | options = anInputElement.options; | 109 | options = anInputElement.options; |
113 | c = options.length; | 110 | c = options.length; |
114 | for (i=0; i<c; i++) { | 111 | for (i=0; i<c; i++) { |
115 | varoption; | 112 | varoption; |
116 | 113 | ||
117 | option = {}; | 114 | option = {}; |
118 | option.selected = options[i].selected; | 115 | option.selected = options[i].selected; |
119 | option.label = options[i].label || options[i].innerHTML; | 116 | option.label = options[i].label || options[i].innerHTML; |
120 | option.value = options[i].value; | 117 | option.value = options[i].value; |