/***************************************************************************
- * Copyright (C) 2003-2009 Polytechnique.org *
+ * Copyright (C) 2003-2010 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
{'url_prefix': 'http://add.my.yahoo.com/content?.intl=fr&url=',
'img': 'images/goodies/add-yahoo.gif',
'alt': 'Add to My Yahoo!',
- 'title': 'Ajouter à My Yahoo!'},
- {'url_prefix': 'http://www.newsgator.com/ngs/subscriber/subext.aspx?url=',
- 'img': 'images/goodies/add-newsgator.gif',
- 'alt': 'Subscribe in NewsGator Online',
- 'title': 'Ajouter à Newsgator'}
+ 'title': 'Ajouter à My Yahoo!'}
]
};
url = document.URL;
fqdn = url.replace(/^https?:\/\/([^\/]*)\/.*$/,'$1');
light = (url.indexOf('display=light') > url.indexOf('?'));
+ resource_page = (url.indexOf('rss') > -1 || url.indexOf('ical') > -1);
$("a,link").each(
function(i) {
href = 'http://' + fqdn + '/' + href;
}
}
- if (this.nodeName.toLowerCase() == 'a') {
+ if (this.nodeName.toLowerCase() == 'a' && !resource_page) {
if (rss && href.indexOf('prefs/rss') < 0 && (href.indexOf('xml') > -1 || href.indexOf('hash'))) {
goodiesPopup(this, __goodies_rss);
} else if (ical) {
// {{{ function checkPassword
-function getType(char) {
- if (char >= 'a' && char <= 'z') {
+function getType(c) {
+ if (c >= 'a' && c <= 'z') {
return 1;
- } else if (char >= 'A' && char <= 'Z') {
+ } else if (c >= 'A' && c <= 'Z') {
return 2;
- } else if (char >= '0' && char <= '9') {
+ } else if (c >= '0' && c <= '9') {
return 3;
} else {
return 4;
}
}
-function checkPassword(box, okLabel) {
+function differentTypes(password) {
var prev = 0;
+
+ for (i = 0 ; i < password.length ; ++i) {
+ var type = getType(password.charAt(i));
+ if (prev != 0 && prev != type) {
+ return true;
+ }
+ prev = type;
+ }
+ return false;
+}
+
+function passwordStrength(password) {
var prop = 0;
- var pass = box.value;
- var types = Array(0, 0, 0, 0, 0);
+ var prev = 0;
var firstType = true;
- for (i = 0 ; i < pass.length ; ++i) {
- type = getType(pass.charAt(i));
+ var types = Array(0, 0, 0, 0, 0);
+
+ for (i = 0 ; i < password.length ; ++i) {
+ var type = getType(password.charAt(i));
if (prev != 0 && prev != type) {
prop += 5;
+ firstType = false;
}
prop += i;
if (types[type] == 0 && !firstType) {
prop += 15;
- } else {
- firstType = false;
}
types[type]++;
prev = type;
}
- if (pass.length < 6) {
+ if (password.length < 6) {
+ prop *= 0.75;
+ }
+ if (firstType) {
prop *= 0.75;
}
if (prop > 100) {
} else if (prop < 0) {
prop = 0;
}
+
+ return prop;
+}
+
+function checkPassword(box, okLabel) {
+ var password = box.value;
+ var prop = passwordStrength(password);
+
if (prop >= 60) {
color = "#4f4";
bgcolor = "#050";
ok = true;
- } else if (prop >= 40) {
+ } else if (prop >= 35) {
color = "#ff4";
bgcolor = "#750";
ok = true;
}, 750)
.parent().stop()
.animate({ backgroundColor: bgcolor }, 750);
- var submitButton = $(":submit[@name='" + passwordprompt_submit + "']");
- if (ok && pass.length >= 6) {
+ var submitButton = $(":submit[name='" + passwordprompt_submit + "']");
+ if (ok && password.length >= 6 && differentTypes(password)) {
submitButton.attr("value", okLabel);
submitButton.removeAttr("disabled");
} else {