Diffstat (limited to 'frontend/gamma/js/Bookmarklet_1.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/gamma/js/Bookmarklet_1.js | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/gamma/js/Bookmarklet_1.js b/frontend/gamma/js/Bookmarklet_1.js index c7c7ae6..89b83b1 100644 --- a/frontend/gamma/js/Bookmarklet_1.js +++ b/frontend/gamma/js/Bookmarklet_1.js @@ -1,214 +1,212 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +This file is part of Clipperz, the online password manager. For further information about its features and functionalities please refer to http://www.clipperz.com. -* Clipperz Community Edition is free software: you can redistribute - it and/or modify it under the terms of the GNU Affero General Public - License as published by the Free Software Foundation, either version - 3 of the License, or (at your option) any later version. +* Clipperz is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -* Clipperz Community Edition is distributed in the hope that it will - be useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +* Clipperz is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. * You should have received a copy of the GNU Affero General Public - License along with Clipperz Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ _cble = null; //----------------------------------------------------------------------------- isLoginForm = function(aForm) { var inputFields; var passwordFieldsFound; var i,c; //console.log("is login form: " + aForm.name + " (" + aForm.id + ")"); passwordFieldsFound = 0; inputFields = aForm.elements; c = inputFields.length; for (i=0; i<c; i++) { if (inputFields[i].type == "password") { passwordFieldsFound ++; } } //console.log("number of password fields found: " + passwordFieldsFound); return (passwordFieldsFound == 1); }; //----------------------------------------------------------------------------- findLoginForm = function(aDocument, aLevel) { var result; var documentForms; var i,c; result = null; try { documentForms = aDocument.getElementsByTagName('form'); c = documentForms.length; for (i=0; (i<c) && (result == null); i++) { if (isLoginForm(documentForms[i])) { result = documentForms[i]; } } if ((result == null) && (aLevel == 0)) { var iFrames; iFrames = aDocument.getElementsByTagName('iframe'); c = iFrames.length; for (i=0; (i<c) && (result == null); i++) { result = findLoginForm(iFrames[i].contentDocument, (aLevel + 1)); } } } catch (e) { _cble = e; } return result; }; //----------------------------------------------------------------------------- inputElementValues = function(anInputElement) { var result; // if ((anInputElement instanceof HTMLInputElement) && (anInputElement.getAttribute('name') != null)) { if ((anInputElement.tagName.toLowerCase() == "input") && (anInputElement.getAttribute('name') != null)) { result = {}; result.type = anInputElement.getAttribute('type') || "text"; result.name = anInputElement.getAttribute('name'); // result.value = anInputElement.getAttribute('value'); result.value = anInputElement.value; if (anInputElement.type.toLowerCase() == 'radio') { result.checked = anInputElement.checked; } // } else if ((anInputElement instanceof HTMLSelectElement) && (anInputElement.getAttribute('name') != null)) { } else if ((anInputElement.tagName.toLowerCase() == 'select') && (anInputElement.getAttribute('name') != null)) { var options; var c,i; //console.log("input element values: %o", anInputElement); result = {}; result.type = "select"; result.name = anInputElement.getAttribute('name'); result.options = []; options = anInputElement.options; c = options.length; for (i=0; i<c; i++) { var option; option = {}; option.selected = options[i].selected; option.label = options[i].label || options[i].innerHTML; option.value = options[i].value; result.options.push(option); } } else { result = null; } return result; }; //----------------------------------------------------------------------------- formParameters = function(aLoginForm) { var result; var i, c; var action; if (aLoginForm == null) { result = null; } else { var radioValues; var radioValueName; result = {}; radioValues = {}; action = aLoginForm.action; if (action.constructor != String) { action = aLoginForm.getAttribute('action'); } if (/^https?\:\/\/.*/.test(action)) { action = action; } else if (/^\/.*/.test(action)) { action = window.location.protocol + '/' + '/' + window.location.hostname + action; } else { action = window.location.href.replace(/\/[^\/]*$/, '/' + action); } result.attributes = {}; result.attributes.action = action; result.attributes.method = aLoginForm.getAttribute('method'); result.inputs = []; c = aLoginForm.elements.length; for (i=0; i<c; i++) { var inputElement; var elementValues; inputElement = aLoginForm.elements[i]; elementValues = inputElementValues(inputElement); if (elementValues != null) { if (elementValues.type != "radio") { result.inputs.push(elementValues); } else { var radioValue; var values; radioValue = radioValues[elementValues.name]; if (radioValue == null) { radioValue = {}; radioValue.name = elementValues.name; radioValue.type = "radio"; radioValue.options = []; radioValues[elementValues.name] = radioValue; } values = {}; values.value = elementValues.value; values.checked = elementValues.checked; radioValue.options.push(values); } } } for (radioValueName in radioValues) { if (typeof(radioValues[radioValueName]) != "function") { result.inputs.push(radioValues[radioValueName]); } } } return result; }; //----------------------------------------------------------------------------- pageParameters = function() { var result; result = {}; result['title'] = document.title; //<link rel="icon" href="http://example.com/favicon.ico" type="image/x-icon"> return result; }; |