@@ -13,15 +13,16 @@ | |||
"tests" | |||
], | |||
"dependencies": { | |||
"blueimp-md5": "1.0.1", | |||
"handlebars": "1.3.0", | |||
"blueimp-md5": "~1.0.1", | |||
"handlebars": "~1.3.0", | |||
"jcrop": "~0.9.12", | |||
"jquery": "~1.10.0", | |||
"jsTimezoneDetect": "~1.0.5", | |||
"moment": "~2.8.3", | |||
"select2": "3.4.8", | |||
"select2": "~3.4.8", | |||
"zxcvbn": "*", | |||
"snapjs": "2.0.0-rc1", | |||
"snapjs": "~2.0.0-rc1", | |||
"strengthify": "*", | |||
"underscore": "1.6.0" | |||
"underscore": "~1.6.0" | |||
} | |||
} |
@@ -1,358 +0,0 @@ | |||
/** | |||
* This script gives you the zone info key representing your device's time zone setting. | |||
* | |||
* @name jsTimezoneDetect | |||
* @version 1.0.5 | |||
* @author Jon Nylander | |||
* @license MIT License - http://www.opensource.org/licenses/mit-license.php | |||
* | |||
* For usage and examples, visit: | |||
* http://pellepim.bitbucket.org/jstz/ | |||
* | |||
* Copyright (c) Jon Nylander | |||
*/ | |||
/*jslint undef: true */ | |||
/*global console, exports*/ | |||
(function(root) { | |||
/** | |||
* Namespace to hold all the code for timezone detection. | |||
*/ | |||
var jstz = (function () { | |||
'use strict'; | |||
var HEMISPHERE_SOUTH = 's', | |||
/** | |||
* Gets the offset in minutes from UTC for a certain date. | |||
* @param {Date} date | |||
* @returns {Number} | |||
*/ | |||
get_date_offset = function (date) { | |||
var offset = -date.getTimezoneOffset(); | |||
return (offset !== null ? offset : 0); | |||
}, | |||
get_date = function (year, month, date) { | |||
var d = new Date(); | |||
if (year !== undefined) { | |||
d.setFullYear(year); | |||
} | |||
d.setMonth(month); | |||
d.setDate(date); | |||
return d; | |||
}, | |||
get_january_offset = function (year) { | |||
return get_date_offset(get_date(year, 0 ,2)); | |||
}, | |||
get_june_offset = function (year) { | |||
return get_date_offset(get_date(year, 5, 2)); | |||
}, | |||
/** | |||
* Private method. | |||
* Checks whether a given date is in daylight saving time. | |||
* If the date supplied is after august, we assume that we're checking | |||
* for southern hemisphere DST. | |||
* @param {Date} date | |||
* @returns {Boolean} | |||
*/ | |||
date_is_dst = function (date) { | |||
var is_southern = date.getMonth() > 7, | |||
base_offset = is_southern ? get_june_offset(date.getFullYear()) : | |||
get_january_offset(date.getFullYear()), | |||
date_offset = get_date_offset(date), | |||
is_west = base_offset < 0, | |||
dst_offset = base_offset - date_offset; | |||
if (!is_west && !is_southern) { | |||
return dst_offset < 0; | |||
} | |||
return dst_offset !== 0; | |||
}, | |||
/** | |||
* This function does some basic calculations to create information about | |||
* the user's timezone. It uses REFERENCE_YEAR as a solid year for which | |||
* the script has been tested rather than depend on the year set by the | |||
* client device. | |||
* | |||
* Returns a key that can be used to do lookups in jstz.olson.timezones. | |||
* eg: "720,1,2". | |||
* | |||
* @returns {String} | |||
*/ | |||
lookup_key = function () { | |||
var january_offset = get_january_offset(), | |||
june_offset = get_june_offset(), | |||
diff = january_offset - june_offset; | |||
if (diff < 0) { | |||
return january_offset + ",1"; | |||
} else if (diff > 0) { | |||
return june_offset + ",1," + HEMISPHERE_SOUTH; | |||
} | |||
return january_offset + ",0"; | |||
}, | |||
/** | |||
* Uses get_timezone_info() to formulate a key to use in the olson.timezones dictionary. | |||
* | |||
* Returns a primitive object on the format: | |||
* {'timezone': TimeZone, 'key' : 'the key used to find the TimeZone object'} | |||
* | |||
* @returns Object | |||
*/ | |||
determine = function () { | |||
var key = lookup_key(); | |||
return new jstz.TimeZone(jstz.olson.timezones[key]); | |||
}, | |||
/** | |||
* This object contains information on when daylight savings starts for | |||
* different timezones. | |||
* | |||
* The list is short for a reason. Often we do not have to be very specific | |||
* to single out the correct timezone. But when we do, this list comes in | |||
* handy. | |||
* | |||
* Each value is a date denoting when daylight savings starts for that timezone. | |||
*/ | |||
dst_start_for = function (tz_name) { | |||
var ru_pre_dst_change = new Date(2010, 6, 15, 1, 0, 0, 0), // In 2010 Russia had DST, this allows us to detect Russia :) | |||
dst_starts = { | |||
'America/Denver': new Date(2011, 2, 13, 3, 0, 0, 0), | |||
'America/Mazatlan': new Date(2011, 3, 3, 3, 0, 0, 0), | |||
'America/Chicago': new Date(2011, 2, 13, 3, 0, 0, 0), | |||
'America/Mexico_City': new Date(2011, 3, 3, 3, 0, 0, 0), | |||
'America/Asuncion': new Date(2012, 9, 7, 3, 0, 0, 0), | |||
'America/Santiago': new Date(2012, 9, 3, 3, 0, 0, 0), | |||
'America/Campo_Grande': new Date(2012, 9, 21, 5, 0, 0, 0), | |||
'America/Montevideo': new Date(2011, 9, 2, 3, 0, 0, 0), | |||
'America/Sao_Paulo': new Date(2011, 9, 16, 5, 0, 0, 0), | |||
'America/Los_Angeles': new Date(2011, 2, 13, 8, 0, 0, 0), | |||
'America/Santa_Isabel': new Date(2011, 3, 5, 8, 0, 0, 0), | |||
'America/Havana': new Date(2012, 2, 10, 2, 0, 0, 0), | |||
'America/New_York': new Date(2012, 2, 10, 7, 0, 0, 0), | |||
'Europe/Helsinki': new Date(2013, 2, 31, 5, 0, 0, 0), | |||
'Pacific/Auckland': new Date(2011, 8, 26, 7, 0, 0, 0), | |||
'America/Halifax': new Date(2011, 2, 13, 6, 0, 0, 0), | |||
'America/Goose_Bay': new Date(2011, 2, 13, 2, 1, 0, 0), | |||
'America/Miquelon': new Date(2011, 2, 13, 5, 0, 0, 0), | |||
'America/Godthab': new Date(2011, 2, 27, 1, 0, 0, 0), | |||
'Europe/Moscow': ru_pre_dst_change, | |||
'Asia/Amman': new Date(2013, 2, 29, 1, 0, 0, 0), | |||
'Asia/Beirut': new Date(2013, 2, 31, 2, 0, 0, 0), | |||
'Asia/Damascus': new Date(2013, 3, 6, 2, 0, 0, 0), | |||
'Asia/Jerusalem': new Date(2013, 2, 29, 5, 0, 0, 0), | |||
'Asia/Yekaterinburg': ru_pre_dst_change, | |||
'Asia/Omsk': ru_pre_dst_change, | |||
'Asia/Krasnoyarsk': ru_pre_dst_change, | |||
'Asia/Irkutsk': ru_pre_dst_change, | |||
'Asia/Yakutsk': ru_pre_dst_change, | |||
'Asia/Vladivostok': ru_pre_dst_change, | |||
'Asia/Baku': new Date(2013, 2, 31, 4, 0, 0), | |||
'Asia/Yerevan': new Date(2013, 2, 31, 3, 0, 0), | |||
'Asia/Kamchatka': ru_pre_dst_change, | |||
'Asia/Gaza': new Date(2010, 2, 27, 4, 0, 0), | |||
'Africa/Cairo': new Date(2010, 4, 1, 3, 0, 0), | |||
'Europe/Minsk': ru_pre_dst_change, | |||
'Pacific/Apia': new Date(2010, 10, 1, 1, 0, 0, 0), | |||
'Pacific/Fiji': new Date(2010, 11, 1, 0, 0, 0), | |||
'Australia/Perth': new Date(2008, 10, 1, 1, 0, 0, 0) | |||
}; | |||
return dst_starts[tz_name]; | |||
}; | |||
return { | |||
determine: determine, | |||
date_is_dst: date_is_dst, | |||
dst_start_for: dst_start_for | |||
}; | |||
}()); | |||
/** | |||
* Simple object to perform ambiguity check and to return name of time zone. | |||
*/ | |||
jstz.TimeZone = function (tz_name) { | |||
'use strict'; | |||
/** | |||
* The keys in this object are timezones that we know may be ambiguous after | |||
* a preliminary scan through the olson_tz object. | |||
* | |||
* The array of timezones to compare must be in the order that daylight savings | |||
* starts for the regions. | |||
*/ | |||
var AMBIGUITIES = { | |||
'America/Denver': ['America/Denver', 'America/Mazatlan'], | |||
'America/Chicago': ['America/Chicago', 'America/Mexico_City'], | |||
'America/Santiago': ['America/Santiago', 'America/Asuncion', 'America/Campo_Grande'], | |||
'America/Montevideo': ['America/Montevideo', 'America/Sao_Paulo'], | |||
'Asia/Beirut': ['Asia/Amman', 'Asia/Jerusalem', 'Asia/Beirut', 'Europe/Helsinki','Asia/Damascus'], | |||
'Pacific/Auckland': ['Pacific/Auckland', 'Pacific/Fiji'], | |||
'America/Los_Angeles': ['America/Los_Angeles', 'America/Santa_Isabel'], | |||
'America/New_York': ['America/Havana', 'America/New_York'], | |||
'America/Halifax': ['America/Goose_Bay', 'America/Halifax'], | |||
'America/Godthab': ['America/Miquelon', 'America/Godthab'], | |||
'Asia/Dubai': ['Europe/Moscow'], | |||
'Asia/Dhaka': ['Asia/Yekaterinburg'], | |||
'Asia/Jakarta': ['Asia/Omsk'], | |||
'Asia/Shanghai': ['Asia/Krasnoyarsk', 'Australia/Perth'], | |||
'Asia/Tokyo': ['Asia/Irkutsk'], | |||
'Australia/Brisbane': ['Asia/Yakutsk'], | |||
'Pacific/Noumea': ['Asia/Vladivostok'], | |||
'Pacific/Tarawa': ['Asia/Kamchatka', 'Pacific/Fiji'], | |||
'Pacific/Tongatapu': ['Pacific/Apia'], | |||
'Asia/Baghdad': ['Europe/Minsk'], | |||
'Asia/Baku': ['Asia/Yerevan','Asia/Baku'], | |||
'Africa/Johannesburg': ['Asia/Gaza', 'Africa/Cairo'] | |||
}, | |||
timezone_name = tz_name, | |||
/** | |||
* Checks if a timezone has possible ambiguities. I.e timezones that are similar. | |||
* | |||
* For example, if the preliminary scan determines that we're in America/Denver. | |||
* We double check here that we're really there and not in America/Mazatlan. | |||
* | |||
* This is done by checking known dates for when daylight savings start for different | |||
* timezones during 2010 and 2011. | |||
*/ | |||
ambiguity_check = function () { | |||
var ambiguity_list = AMBIGUITIES[timezone_name], | |||
length = ambiguity_list.length, | |||
i = 0, | |||
tz = ambiguity_list[0]; | |||
for (; i < length; i += 1) { | |||
tz = ambiguity_list[i]; | |||
if (jstz.date_is_dst(jstz.dst_start_for(tz))) { | |||
timezone_name = tz; | |||
return; | |||
} | |||
} | |||
}, | |||
/** | |||
* Checks if it is possible that the timezone is ambiguous. | |||
*/ | |||
is_ambiguous = function () { | |||
return typeof (AMBIGUITIES[timezone_name]) !== 'undefined'; | |||
}; | |||
if (is_ambiguous()) { | |||
ambiguity_check(); | |||
} | |||
return { | |||
name: function () { | |||
return timezone_name; | |||
} | |||
}; | |||
}; | |||
jstz.olson = {}; | |||
/* | |||
* The keys in this dictionary are comma separated as such: | |||
* | |||
* First the offset compared to UTC time in minutes. | |||
* | |||
* Then a flag which is 0 if the timezone does not take daylight savings into account and 1 if it | |||
* does. | |||
* | |||
* Thirdly an optional 's' signifies that the timezone is in the southern hemisphere, | |||
* only interesting for timezones with DST. | |||
* | |||
* The mapped arrays is used for constructing the jstz.TimeZone object from within | |||
* jstz.determine_timezone(); | |||
*/ | |||
jstz.olson.timezones = { | |||
'-720,0' : 'Pacific/Majuro', | |||
'-660,0' : 'Pacific/Pago_Pago', | |||
'-600,1' : 'America/Adak', | |||
'-600,0' : 'Pacific/Honolulu', | |||
'-570,0' : 'Pacific/Marquesas', | |||
'-540,0' : 'Pacific/Gambier', | |||
'-540,1' : 'America/Anchorage', | |||
'-480,1' : 'America/Los_Angeles', | |||
'-480,0' : 'Pacific/Pitcairn', | |||
'-420,0' : 'America/Phoenix', | |||
'-420,1' : 'America/Denver', | |||
'-360,0' : 'America/Guatemala', | |||
'-360,1' : 'America/Chicago', | |||
'-360,1,s' : 'Pacific/Easter', | |||
'-300,0' : 'America/Bogota', | |||
'-300,1' : 'America/New_York', | |||
'-270,0' : 'America/Caracas', | |||
'-240,1' : 'America/Halifax', | |||
'-240,0' : 'America/Santo_Domingo', | |||
'-240,1,s' : 'America/Santiago', | |||
'-210,1' : 'America/St_Johns', | |||
'-180,1' : 'America/Godthab', | |||
'-180,0' : 'America/Argentina/Buenos_Aires', | |||
'-180,1,s' : 'America/Montevideo', | |||
'-120,0' : 'America/Noronha', | |||
'-120,1' : 'America/Noronha', | |||
'-60,1' : 'Atlantic/Azores', | |||
'-60,0' : 'Atlantic/Cape_Verde', | |||
'0,0' : 'UTC', | |||
'0,1' : 'Europe/London', | |||
'60,1' : 'Europe/Berlin', | |||
'60,0' : 'Africa/Lagos', | |||
'60,1,s' : 'Africa/Windhoek', | |||
'120,1' : 'Asia/Beirut', | |||
'120,0' : 'Africa/Johannesburg', | |||
'180,0' : 'Asia/Baghdad', | |||
'180,1' : 'Europe/Moscow', | |||
'210,1' : 'Asia/Tehran', | |||
'240,0' : 'Asia/Dubai', | |||
'240,1' : 'Asia/Baku', | |||
'270,0' : 'Asia/Kabul', | |||
'300,1' : 'Asia/Yekaterinburg', | |||
'300,0' : 'Asia/Karachi', | |||
'330,0' : 'Asia/Kolkata', | |||
'345,0' : 'Asia/Kathmandu', | |||
'360,0' : 'Asia/Dhaka', | |||
'360,1' : 'Asia/Omsk', | |||
'390,0' : 'Asia/Rangoon', | |||
'420,1' : 'Asia/Krasnoyarsk', | |||
'420,0' : 'Asia/Jakarta', | |||
'480,0' : 'Asia/Shanghai', | |||
'480,1' : 'Asia/Irkutsk', | |||
'525,0' : 'Australia/Eucla', | |||
'525,1,s' : 'Australia/Eucla', | |||
'540,1' : 'Asia/Yakutsk', | |||
'540,0' : 'Asia/Tokyo', | |||
'570,0' : 'Australia/Darwin', | |||
'570,1,s' : 'Australia/Adelaide', | |||
'600,0' : 'Australia/Brisbane', | |||
'600,1' : 'Asia/Vladivostok', | |||
'600,1,s' : 'Australia/Sydney', | |||
'630,1,s' : 'Australia/Lord_Howe', | |||
'660,1' : 'Asia/Kamchatka', | |||
'660,0' : 'Pacific/Noumea', | |||
'690,0' : 'Pacific/Norfolk', | |||
'720,1,s' : 'Pacific/Auckland', | |||
'720,0' : 'Pacific/Tarawa', | |||
'765,1,s' : 'Pacific/Chatham', | |||
'780,0' : 'Pacific/Tongatapu', | |||
'780,1,s' : 'Pacific/Apia', | |||
'840,0' : 'Pacific/Kiritimati' | |||
}; | |||
if (typeof exports !== 'undefined') { | |||
exports.jstz = jstz; | |||
} else { | |||
root.jstz = jstz; | |||
} | |||
})(this); |
@@ -1,5 +1,5 @@ | |||
<?php /** @var $l OC_L10N */ ?> | |||
<?php script('core', 'jstz') ?> | |||
<?php vendor_script('jsTimezoneDetect/jstz') ?> | |||
<!--[if IE 8]><style>input[type="checkbox"]{padding:0;}</style><![endif]--> | |||
<form method="post" name="login"> |
@@ -1,6 +1,5 @@ | |||
test/ | |||
src/ | |||
.bower.json | |||
bower.json | |||
.gitignore | |||
.jshintrc | |||
@@ -8,12 +7,14 @@ bower.json | |||
CHANGELOG* | |||
Gemfile | |||
gruntfile.js | |||
Gruntfile.js | |||
Makefile | |||
package.json | |||
README* | |||
# underscore | |||
underscore/** | |||
!underscore/.bower.json | |||
!underscore/underscore.js | |||
!underscore/LICENSE | |||
@@ -28,10 +29,12 @@ moment/benchmarks | |||
moment/locale | |||
moment/min/** | |||
moment/moment.js | |||
moment/scripts | |||
!moment/min/moment-with-locales.js | |||
# jquery | |||
jquery/** | |||
!jquery/.bower.json | |||
!jquery/jquery* | |||
!jquery/MIT-LICENSE.txt | |||
@@ -42,12 +45,17 @@ jcrop/css/jquery.Jcrop.min.css | |||
jcrop/js/** | |||
!jcrop/js/jquery.Jcrop.js | |||
# jsTimezoneDetect | |||
jsTimezoneDetect/jstz.min.js | |||
# handlebars | |||
handlebars/** | |||
!handlebars/.bower.json | |||
!handlebars/handlebars.js | |||
# select2 | |||
select2/** | |||
!select2/.bower.json | |||
!select2/select2.js | |||
!select2/select2.css | |||
!select2/select2.png | |||
@@ -57,6 +65,7 @@ select2/** | |||
#zxcvbn | |||
zxcvbn/** | |||
!zxcvbn/.bower.json | |||
!zxcvbn/zxcvbn.js | |||
!zxcvbn/LICENSE.txt | |||
@@ -0,0 +1,53 @@ | |||
{ | |||
"name": "blueimp-md5", | |||
"version": "1.0.3", | |||
"title": "JavaScript MD5", | |||
"description": "JavaScript MD5 implementation.", | |||
"keywords": [ | |||
"javascript", | |||
"md5" | |||
], | |||
"homepage": "https://github.com/blueimp/JavaScript-MD5", | |||
"author": { | |||
"name": "Sebastian Tschan", | |||
"url": "https://blueimp.net" | |||
}, | |||
"maintainers": [ | |||
{ | |||
"name": "Sebastian Tschan", | |||
"url": "https://blueimp.net" | |||
} | |||
], | |||
"contributors": [ | |||
{ | |||
"name": "Paul Johnston", | |||
"url": "http://pajhome.org.uk/crypt/md5" | |||
} | |||
], | |||
"repository": { | |||
"type": "git", | |||
"url": "git://github.com/blueimp/JavaScript-MD5.git" | |||
}, | |||
"bugs": "https://github.com/blueimp/JavaScript-MD5/issues", | |||
"licenses": [ | |||
{ | |||
"type": "MIT", | |||
"url": "http://www.opensource.org/licenses/MIT" | |||
} | |||
], | |||
"devDependencies": { | |||
"mocha": "1.11.0", | |||
"expect.js": "0.2.0", | |||
"uglify-js": "2.3.6" | |||
}, | |||
"main": "js/md5.js", | |||
"_release": "1.0.3", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "1.0.3", | |||
"commit": "299407012031ac6f60f832d3b5fa975fcb88b550" | |||
}, | |||
"_source": "git://github.com/blueimp/JavaScript-MD5.git", | |||
"_target": "~1.0.1", | |||
"_originalSource": "blueimp-md5" | |||
} |
@@ -0,0 +1,16 @@ | |||
{ | |||
"name": "handlebars", | |||
"version": "1.3.0", | |||
"main": "handlebars.js", | |||
"dependencies": {}, | |||
"homepage": "https://github.com/components/handlebars.js", | |||
"_release": "1.3.0", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "v1.3.0", | |||
"commit": "ddd21a44be399ae4de486ddd868bacf84e92b9c4" | |||
}, | |||
"_source": "git://github.com/components/handlebars.js.git", | |||
"_target": "~1.3.0", | |||
"_originalSource": "handlebars" | |||
} |
@@ -0,0 +1,14 @@ | |||
{ | |||
"name": "jcrop", | |||
"homepage": "https://github.com/tapmodo/Jcrop", | |||
"version": "0.9.12", | |||
"_release": "0.9.12", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "v0.9.12", | |||
"commit": "1902fbc6afa14481dc019a17e0dcb7d62b808a98" | |||
}, | |||
"_source": "git://github.com/tapmodo/Jcrop.git", | |||
"_target": "~0.9.12", | |||
"_originalSource": "jcrop" | |||
} |
@@ -0,0 +1,21 @@ | |||
{ | |||
"name": "jquery", | |||
"version": "1.10.2", | |||
"description": "jQuery component", | |||
"keywords": [ | |||
"jquery", | |||
"component" | |||
], | |||
"main": "jquery.js", | |||
"license": "MIT", | |||
"homepage": "https://github.com/jquery/jquery", | |||
"_release": "1.10.2", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "1.10.2", | |||
"commit": "16b079b164d62bd807c612806842a13bf9b04d17" | |||
}, | |||
"_source": "git://github.com/jquery/jquery.git", | |||
"_target": "~1.10.0", | |||
"_originalSource": "jquery" | |||
} |
@@ -0,0 +1,23 @@ | |||
{ | |||
"name": "jstzdetect", | |||
"version": "1.0.6", | |||
"main": "jstz.min.js", | |||
"ignore": [ | |||
"**/.*", | |||
"node_modules", | |||
"components", | |||
"bower_components", | |||
"test", | |||
"tests" | |||
], | |||
"homepage": "https://github.com/HenningM/jstimezonedetect", | |||
"_release": "1.0.6", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "v1.0.6", | |||
"commit": "bd595ed253292934991a414979007f3d51a1547d" | |||
}, | |||
"_source": "git://github.com/HenningM/jstimezonedetect.git", | |||
"_target": "~1.0.5", | |||
"_originalSource": "jsTimezoneDetect" | |||
} |
@@ -0,0 +1,22 @@ | |||
MIT License | |||
Copyright (c) 2012 Jon Nylander, project maintained at | |||
https://bitbucket.org/pellepim/jstimezonedetect | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
in the Software without restriction, including without limitation the rights to | |||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies | |||
of the Software, and to permit persons to whom the Software is furnished to | |||
do so, subject to the following conditions: | |||
The above copyright notice and this permission notice shall be included in | |||
all copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||
THE SOFTWARE. |
@@ -0,0 +1,358 @@ | |||
/** | |||
* This script gives you the zone info key representing your device's time zone setting. | |||
* | |||
* @name jsTimezoneDetect | |||
* @version 1.0.5 | |||
* @author Jon Nylander | |||
* @license MIT License - http://www.opensource.org/licenses/mit-license.php | |||
* | |||
* For usage and examples, visit: | |||
* http://pellepim.bitbucket.org/jstz/ | |||
* | |||
* Copyright (c) Jon Nylander | |||
*/ | |||
/*jslint undef: true */ | |||
/*global console, exports*/ | |||
(function(root) { | |||
/** | |||
* Namespace to hold all the code for timezone detection. | |||
*/ | |||
var jstz = (function () { | |||
'use strict'; | |||
var HEMISPHERE_SOUTH = 's', | |||
/** | |||
* Gets the offset in minutes from UTC for a certain date. | |||
* @param {Date} date | |||
* @returns {Number} | |||
*/ | |||
get_date_offset = function (date) { | |||
var offset = -date.getTimezoneOffset(); | |||
return (offset !== null ? offset : 0); | |||
}, | |||
get_date = function (year, month, date) { | |||
var d = new Date(); | |||
if (year !== undefined) { | |||
d.setFullYear(year); | |||
} | |||
d.setMonth(month); | |||
d.setDate(date); | |||
return d; | |||
}, | |||
get_january_offset = function (year) { | |||
return get_date_offset(get_date(year, 0 ,2)); | |||
}, | |||
get_june_offset = function (year) { | |||
return get_date_offset(get_date(year, 5, 2)); | |||
}, | |||
/** | |||
* Private method. | |||
* Checks whether a given date is in daylight saving time. | |||
* If the date supplied is after august, we assume that we're checking | |||
* for southern hemisphere DST. | |||
* @param {Date} date | |||
* @returns {Boolean} | |||
*/ | |||
date_is_dst = function (date) { | |||
var is_southern = date.getMonth() > 7, | |||
base_offset = is_southern ? get_june_offset(date.getFullYear()) : | |||
get_january_offset(date.getFullYear()), | |||
date_offset = get_date_offset(date), | |||
is_west = base_offset < 0, | |||
dst_offset = base_offset - date_offset; | |||
if (!is_west && !is_southern) { | |||
return dst_offset < 0; | |||
} | |||
return dst_offset !== 0; | |||
}, | |||
/** | |||
* This function does some basic calculations to create information about | |||
* the user's timezone. It uses REFERENCE_YEAR as a solid year for which | |||
* the script has been tested rather than depend on the year set by the | |||
* client device. | |||
* | |||
* Returns a key that can be used to do lookups in jstz.olson.timezones. | |||
* eg: "720,1,2". | |||
* | |||
* @returns {String} | |||
*/ | |||
lookup_key = function () { | |||
var january_offset = get_january_offset(), | |||
june_offset = get_june_offset(), | |||
diff = january_offset - june_offset; | |||
if (diff < 0) { | |||
return january_offset + ",1"; | |||
} else if (diff > 0) { | |||
return june_offset + ",1," + HEMISPHERE_SOUTH; | |||
} | |||
return january_offset + ",0"; | |||
}, | |||
/** | |||
* Uses get_timezone_info() to formulate a key to use in the olson.timezones dictionary. | |||
* | |||
* Returns a primitive object on the format: | |||
* {'timezone': TimeZone, 'key' : 'the key used to find the TimeZone object'} | |||
* | |||
* @returns Object | |||
*/ | |||
determine = function () { | |||
var key = lookup_key(); | |||
return new jstz.TimeZone(jstz.olson.timezones[key]); | |||
}, | |||
/** | |||
* This object contains information on when daylight savings starts for | |||
* different timezones. | |||
* | |||
* The list is short for a reason. Often we do not have to be very specific | |||
* to single out the correct timezone. But when we do, this list comes in | |||
* handy. | |||
* | |||
* Each value is a date denoting when daylight savings starts for that timezone. | |||
*/ | |||
dst_start_for = function (tz_name) { | |||
var ru_pre_dst_change = new Date(2010, 6, 15, 1, 0, 0, 0), // In 2010 Russia had DST, this allows us to detect Russia :) | |||
dst_starts = { | |||
'America/Denver': new Date(2011, 2, 13, 3, 0, 0, 0), | |||
'America/Mazatlan': new Date(2011, 3, 3, 3, 0, 0, 0), | |||
'America/Chicago': new Date(2011, 2, 13, 3, 0, 0, 0), | |||
'America/Mexico_City': new Date(2011, 3, 3, 3, 0, 0, 0), | |||
'America/Asuncion': new Date(2012, 9, 7, 3, 0, 0, 0), | |||
'America/Santiago': new Date(2012, 9, 3, 3, 0, 0, 0), | |||
'America/Campo_Grande': new Date(2012, 9, 21, 5, 0, 0, 0), | |||
'America/Montevideo': new Date(2011, 9, 2, 3, 0, 0, 0), | |||
'America/Sao_Paulo': new Date(2011, 9, 16, 5, 0, 0, 0), | |||
'America/Los_Angeles': new Date(2011, 2, 13, 8, 0, 0, 0), | |||
'America/Santa_Isabel': new Date(2011, 3, 5, 8, 0, 0, 0), | |||
'America/Havana': new Date(2012, 2, 10, 2, 0, 0, 0), | |||
'America/New_York': new Date(2012, 2, 10, 7, 0, 0, 0), | |||
'Europe/Helsinki': new Date(2013, 2, 31, 5, 0, 0, 0), | |||
'Pacific/Auckland': new Date(2011, 8, 26, 7, 0, 0, 0), | |||
'America/Halifax': new Date(2011, 2, 13, 6, 0, 0, 0), | |||
'America/Goose_Bay': new Date(2011, 2, 13, 2, 1, 0, 0), | |||
'America/Miquelon': new Date(2011, 2, 13, 5, 0, 0, 0), | |||
'America/Godthab': new Date(2011, 2, 27, 1, 0, 0, 0), | |||
'Europe/Moscow': ru_pre_dst_change, | |||
'Asia/Amman': new Date(2013, 2, 29, 1, 0, 0, 0), | |||
'Asia/Beirut': new Date(2013, 2, 31, 2, 0, 0, 0), | |||
'Asia/Damascus': new Date(2013, 3, 6, 2, 0, 0, 0), | |||
'Asia/Jerusalem': new Date(2013, 2, 29, 5, 0, 0, 0), | |||
'Asia/Yekaterinburg': ru_pre_dst_change, | |||
'Asia/Omsk': ru_pre_dst_change, | |||
'Asia/Krasnoyarsk': ru_pre_dst_change, | |||
'Asia/Irkutsk': ru_pre_dst_change, | |||
'Asia/Yakutsk': ru_pre_dst_change, | |||
'Asia/Vladivostok': ru_pre_dst_change, | |||
'Asia/Baku': new Date(2013, 2, 31, 4, 0, 0), | |||
'Asia/Yerevan': new Date(2013, 2, 31, 3, 0, 0), | |||
'Asia/Kamchatka': ru_pre_dst_change, | |||
'Asia/Gaza': new Date(2010, 2, 27, 4, 0, 0), | |||
'Africa/Cairo': new Date(2010, 4, 1, 3, 0, 0), | |||
'Europe/Minsk': ru_pre_dst_change, | |||
'Pacific/Apia': new Date(2010, 10, 1, 1, 0, 0, 0), | |||
'Pacific/Fiji': new Date(2010, 11, 1, 0, 0, 0), | |||
'Australia/Perth': new Date(2008, 10, 1, 1, 0, 0, 0) | |||
}; | |||
return dst_starts[tz_name]; | |||
}; | |||
return { | |||
determine: determine, | |||
date_is_dst: date_is_dst, | |||
dst_start_for: dst_start_for | |||
}; | |||
}()); | |||
/** | |||
* Simple object to perform ambiguity check and to return name of time zone. | |||
*/ | |||
jstz.TimeZone = function (tz_name) { | |||
'use strict'; | |||
/** | |||
* The keys in this object are timezones that we know may be ambiguous after | |||
* a preliminary scan through the olson_tz object. | |||
* | |||
* The array of timezones to compare must be in the order that daylight savings | |||
* starts for the regions. | |||
*/ | |||
var AMBIGUITIES = { | |||
'America/Denver': ['America/Denver', 'America/Mazatlan'], | |||
'America/Chicago': ['America/Chicago', 'America/Mexico_City'], | |||
'America/Santiago': ['America/Santiago', 'America/Asuncion', 'America/Campo_Grande'], | |||
'America/Montevideo': ['America/Montevideo', 'America/Sao_Paulo'], | |||
'Asia/Beirut': ['Asia/Amman', 'Asia/Jerusalem', 'Asia/Beirut', 'Europe/Helsinki','Asia/Damascus'], | |||
'Pacific/Auckland': ['Pacific/Auckland', 'Pacific/Fiji'], | |||
'America/Los_Angeles': ['America/Los_Angeles', 'America/Santa_Isabel'], | |||
'America/New_York': ['America/Havana', 'America/New_York'], | |||
'America/Halifax': ['America/Goose_Bay', 'America/Halifax'], | |||
'America/Godthab': ['America/Miquelon', 'America/Godthab'], | |||
'Asia/Dubai': ['Europe/Moscow'], | |||
'Asia/Dhaka': ['Asia/Yekaterinburg'], | |||
'Asia/Jakarta': ['Asia/Omsk'], | |||
'Asia/Shanghai': ['Asia/Krasnoyarsk', 'Australia/Perth'], | |||
'Asia/Tokyo': ['Asia/Irkutsk'], | |||
'Australia/Brisbane': ['Asia/Yakutsk'], | |||
'Pacific/Noumea': ['Asia/Vladivostok'], | |||
'Pacific/Tarawa': ['Asia/Kamchatka', 'Pacific/Fiji'], | |||
'Pacific/Tongatapu': ['Pacific/Apia'], | |||
'Asia/Baghdad': ['Europe/Minsk'], | |||
'Asia/Baku': ['Asia/Yerevan','Asia/Baku'], | |||
'Africa/Johannesburg': ['Asia/Gaza', 'Africa/Cairo'] | |||
}, | |||
timezone_name = tz_name, | |||
/** | |||
* Checks if a timezone has possible ambiguities. I.e timezones that are similar. | |||
* | |||
* For example, if the preliminary scan determines that we're in America/Denver. | |||
* We double check here that we're really there and not in America/Mazatlan. | |||
* | |||
* This is done by checking known dates for when daylight savings start for different | |||
* timezones during 2010 and 2011. | |||
*/ | |||
ambiguity_check = function () { | |||
var ambiguity_list = AMBIGUITIES[timezone_name], | |||
length = ambiguity_list.length, | |||
i = 0, | |||
tz = ambiguity_list[0]; | |||
for (; i < length; i += 1) { | |||
tz = ambiguity_list[i]; | |||
if (jstz.date_is_dst(jstz.dst_start_for(tz))) { | |||
timezone_name = tz; | |||
return; | |||
} | |||
} | |||
}, | |||
/** | |||
* Checks if it is possible that the timezone is ambiguous. | |||
*/ | |||
is_ambiguous = function () { | |||
return typeof (AMBIGUITIES[timezone_name]) !== 'undefined'; | |||
}; | |||
if (is_ambiguous()) { | |||
ambiguity_check(); | |||
} | |||
return { | |||
name: function () { | |||
return timezone_name; | |||
} | |||
}; | |||
}; | |||
jstz.olson = {}; | |||
/* | |||
* The keys in this dictionary are comma separated as such: | |||
* | |||
* First the offset compared to UTC time in minutes. | |||
* | |||
* Then a flag which is 0 if the timezone does not take daylight savings into account and 1 if it | |||
* does. | |||
* | |||
* Thirdly an optional 's' signifies that the timezone is in the southern hemisphere, | |||
* only interesting for timezones with DST. | |||
* | |||
* The mapped arrays is used for constructing the jstz.TimeZone object from within | |||
* jstz.determine_timezone(); | |||
*/ | |||
jstz.olson.timezones = { | |||
'-720,0' : 'Pacific/Majuro', | |||
'-660,0' : 'Pacific/Pago_Pago', | |||
'-600,1' : 'America/Adak', | |||
'-600,0' : 'Pacific/Honolulu', | |||
'-570,0' : 'Pacific/Marquesas', | |||
'-540,0' : 'Pacific/Gambier', | |||
'-540,1' : 'America/Anchorage', | |||
'-480,1' : 'America/Los_Angeles', | |||
'-480,0' : 'Pacific/Pitcairn', | |||
'-420,0' : 'America/Phoenix', | |||
'-420,1' : 'America/Denver', | |||
'-360,0' : 'America/Guatemala', | |||
'-360,1' : 'America/Chicago', | |||
'-360,1,s' : 'Pacific/Easter', | |||
'-300,0' : 'America/Bogota', | |||
'-300,1' : 'America/New_York', | |||
'-270,0' : 'America/Caracas', | |||
'-240,1' : 'America/Halifax', | |||
'-240,0' : 'America/Santo_Domingo', | |||
'-240,1,s' : 'America/Santiago', | |||
'-210,1' : 'America/St_Johns', | |||
'-180,1' : 'America/Godthab', | |||
'-180,0' : 'America/Argentina/Buenos_Aires', | |||
'-180,1,s' : 'America/Montevideo', | |||
'-120,0' : 'America/Noronha', | |||
'-120,1' : 'America/Noronha', | |||
'-60,1' : 'Atlantic/Azores', | |||
'-60,0' : 'Atlantic/Cape_Verde', | |||
'0,0' : 'Etc/UTC', | |||
'0,1' : 'Europe/London', | |||
'60,1' : 'Europe/Berlin', | |||
'60,0' : 'Africa/Lagos', | |||
'60,1,s' : 'Africa/Windhoek', | |||
'120,1' : 'Asia/Beirut', | |||
'120,0' : 'Africa/Johannesburg', | |||
'180,0' : 'Asia/Baghdad', | |||
'180,1' : 'Europe/Moscow', | |||
'210,1' : 'Asia/Tehran', | |||
'240,0' : 'Asia/Dubai', | |||
'240,1' : 'Asia/Baku', | |||
'270,0' : 'Asia/Kabul', | |||
'300,1' : 'Asia/Yekaterinburg', | |||
'300,0' : 'Asia/Karachi', | |||
'330,0' : 'Asia/Kolkata', | |||
'345,0' : 'Asia/Kathmandu', | |||
'360,0' : 'Asia/Dhaka', | |||
'360,1' : 'Asia/Omsk', | |||
'390,0' : 'Asia/Rangoon', | |||
'420,1' : 'Asia/Krasnoyarsk', | |||
'420,0' : 'Asia/Jakarta', | |||
'480,0' : 'Asia/Shanghai', | |||
'480,1' : 'Asia/Irkutsk', | |||
'525,0' : 'Australia/Eucla', | |||
'525,1,s' : 'Australia/Eucla', | |||
'540,1' : 'Asia/Yakutsk', | |||
'540,0' : 'Asia/Tokyo', | |||
'570,0' : 'Australia/Darwin', | |||
'570,1,s' : 'Australia/Adelaide', | |||
'600,0' : 'Australia/Brisbane', | |||
'600,1' : 'Asia/Vladivostok', | |||
'600,1,s' : 'Australia/Sydney', | |||
'630,1,s' : 'Australia/Lord_Howe', | |||
'660,1' : 'Asia/Kamchatka', | |||
'660,0' : 'Pacific/Noumea', | |||
'690,0' : 'Pacific/Norfolk', | |||
'720,1,s' : 'Pacific/Auckland', | |||
'720,0' : 'Pacific/Tarawa', | |||
'765,1,s' : 'Pacific/Chatham', | |||
'780,0' : 'Pacific/Tongatapu', | |||
'780,1,s' : 'Pacific/Apia', | |||
'840,0' : 'Pacific/Kiritimati' | |||
}; | |||
if (typeof exports !== 'undefined') { | |||
exports.jstz = jstz; | |||
} else { | |||
root.jstz = jstz; | |||
} | |||
})(this); |
@@ -0,0 +1,30 @@ | |||
{ | |||
"name": "moment", | |||
"version": "2.8.4", | |||
"main": "moment.js", | |||
"ignore": [ | |||
"**/.*", | |||
"node_modules", | |||
"bower_components", | |||
"test", | |||
"tests", | |||
"tasks", | |||
"component.json", | |||
"composer.json", | |||
"CONTRIBUTING.md", | |||
"ender.js", | |||
"Gruntfile.js", | |||
"package.js", | |||
"package.json" | |||
], | |||
"homepage": "https://github.com/moment/moment", | |||
"_release": "2.8.4", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "2.8.4", | |||
"commit": "7ae59de2fc3a1298ae829f6369fe3589b2cd87f8" | |||
}, | |||
"_source": "git://github.com/moment/moment.git", | |||
"_target": "~2.8.3", | |||
"_originalSource": "moment" | |||
} |
@@ -0,0 +1,24 @@ | |||
{ | |||
"name": "select2", | |||
"version": "3.4.8", | |||
"main": [ | |||
"select2.js", | |||
"select2.css", | |||
"select2.png", | |||
"select2x2.png", | |||
"select2-spinner.gif" | |||
], | |||
"dependencies": { | |||
"jquery": ">= 1.7.1" | |||
}, | |||
"homepage": "https://github.com/ivaynberg/select2", | |||
"_release": "3.4.8", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "3.4.8", | |||
"commit": "ee0f36a47e2133b23330fbec740b2d3a17a0d9c2" | |||
}, | |||
"_source": "git://github.com/ivaynberg/select2.git", | |||
"_target": "~3.4.8", | |||
"_originalSource": "select2" | |||
} |
@@ -0,0 +1,31 @@ | |||
{ | |||
"name": "Snap.js", | |||
"description": "A Library for creating beautiful mobile shelfs in Javascript (Facebook and Path style side menus)", | |||
"version": "2.0.0-rc1", | |||
"author": "Jacob Kelley <jakie8@gmail.com>", | |||
"keywords": [ | |||
"mobile shelfs", | |||
"nav", | |||
"menu", | |||
"mobile", | |||
"side menu" | |||
], | |||
"license": "MIT", | |||
"main": [ | |||
"./dist/latest/snap.js", | |||
"./dist/latest/snap.css" | |||
], | |||
"scripts": [ | |||
"snap.js" | |||
], | |||
"homepage": "https://github.com/jakiestfu/Snap.js", | |||
"_release": "2.0.0-rc1", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "v2.0.0-rc1", | |||
"commit": "15c77da330d9e8ca580a922bc748d88553838a73" | |||
}, | |||
"_source": "git://github.com/jakiestfu/Snap.js.git", | |||
"_target": "~2.0.0-rc1", | |||
"_originalSource": "snapjs" | |||
} |
@@ -0,0 +1,19 @@ | |||
{ | |||
"name": "strengthify", | |||
"homepage": "https://github.com/MorrisJobke/strengthify", | |||
"authors": [ | |||
"Morris Jobke <hey@morrisjobke.de>" | |||
], | |||
"description": "Combine jQuery and zxcvbn to create a password strength meter.", | |||
"main": "jquery.strengthify.js", | |||
"license": "MIT", | |||
"_release": "f1dd3eaf28", | |||
"_resolution": { | |||
"type": "branch", | |||
"branch": "master", | |||
"commit": "f1dd3eaf289be559885325a6585f6dd6ae2fa8c3" | |||
}, | |||
"_source": "git://github.com/MorrisJobke/strengthify.git", | |||
"_target": "*", | |||
"_originalSource": "strengthify" | |||
} |
@@ -0,0 +1,33 @@ | |||
{ | |||
"name": "underscore", | |||
"version": "1.6.0", | |||
"main": "underscore.js", | |||
"keywords": [ | |||
"util", | |||
"functional", | |||
"server", | |||
"client", | |||
"browser" | |||
], | |||
"ignore": [ | |||
"underscore-min.js", | |||
"docs", | |||
"test", | |||
"*.yml", | |||
"*.map", | |||
"CNAME", | |||
"index.html", | |||
"favicon.ico", | |||
"CONTRIBUTING.md" | |||
], | |||
"homepage": "https://github.com/jashkenas/underscore", | |||
"_release": "1.6.0", | |||
"_resolution": { | |||
"type": "version", | |||
"tag": "1.6.0", | |||
"commit": "1f4bf626f23a99f7a676f5076dc1b1475554c8f7" | |||
}, | |||
"_source": "git://github.com/jashkenas/underscore.git", | |||
"_target": "~1.6.0", | |||
"_originalSource": "underscore" | |||
} |
@@ -0,0 +1,14 @@ | |||
{ | |||
"name": "zxcvbn", | |||
"main": "zxcvbn.js", | |||
"homepage": "https://github.com/lowe/zxcvbn", | |||
"_release": "f2a8cda13d", | |||
"_resolution": { | |||
"type": "branch", | |||
"branch": "master", | |||
"commit": "f2a8cda13d247f4956d3334ee7cbae80a2c61a97" | |||
}, | |||
"_source": "git://github.com/lowe/zxcvbn.git", | |||
"_target": "*", | |||
"_originalSource": "zxcvbn" | |||
} |