flipclockjs-rails 0.5.5.1 → 0.7.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95e2081a9c1990a2e960d57c809765af59c5d5d5
4
- data.tar.gz: 78f6458ffd2a79bacdbe066c8f2ce2ac0cf5b5ea
3
+ metadata.gz: 1000338f302f4f0f26849e8dd01ade93ce3d2970
4
+ data.tar.gz: 2889f501b070538663a00f9d40091ab9ffd38a3d
5
5
  SHA512:
6
- metadata.gz: 11ee71ef8357155e33ac0a859493e56ecec8f15a0e60a90823a8567c748cfd690a93f707613313bb0b2d916a9e868e26c35df5503f95f92fa3ddc68e6be9d203
7
- data.tar.gz: 937b7e99f2f3b3f53ba9026888f0a5e6ed0ad29ba53d7f2f2f5c00108e70ece90ca4977a9f39039b059d2321232fdc442d83c95e262e4fc692be2567da5cde9a
6
+ metadata.gz: 2e11845cd77e97b15aac6c29e387dc8ddce03021e6bf94c6c4e82cc4ce3025a9f0344959cc78269709bedba81a7b6c7f11be79252335147eb67053db81dc003f
7
+ data.tar.gz: 1ae5e39ffc6faa99a31e501e80ef63e3252bddf80a530b3eb93337d09de5ff2cdd53a85dbef99dd2ccf09da8f44177adedfc4f67d575102f0ab44a9189bb84ba
data/README.md CHANGED
@@ -4,13 +4,15 @@
4
4
 
5
5
  This gem packages [FlipClock.js](https://github.com/objectivehtml/FlipClock) for the Rails 3.1+ asset pipeline.
6
6
 
7
+ FlipClock JS version: **0.7.7**
8
+
7
9
  FlipClock.js requires `jQuery 1.7.x+`.
8
10
 
9
11
  ## Installation
10
12
 
11
13
  Add this line to your application's Gemfile:
12
14
  ```
13
- gem 'flipclockjs-rails', '~> 0.5.5b.1'
15
+ gem 'flipclockjs-rails', '~> 0.7.7'
14
16
  ```
15
17
 
16
18
  And then execute:
@@ -1,5 +1,5 @@
1
1
  module Flipclockjs
2
2
  module Rails
3
- VERSION = '0.5.5.1'
3
+ VERSION = '0.7.7'
4
4
  end
5
5
  end
@@ -16,11 +16,15 @@ Base.extend = function(_instance, _static) { // subclass
16
16
 
17
17
  // build the prototype
18
18
  Base._prototyping = true;
19
+
19
20
  var proto = new this();
21
+
20
22
  extend.call(proto, _instance);
21
- proto.base = function() {
22
- // call this method from any other method to invoke that method's ancestor
23
- };
23
+
24
+ proto.base = function() {
25
+ // call this method from any other method to invoke that method's ancestor
26
+ };
27
+
24
28
  delete Base._prototyping;
25
29
 
26
30
  // create the wrapper for the constructor function
@@ -165,7 +169,7 @@ var FlipClock;
165
169
  */
166
170
 
167
171
  FlipClock = function(obj, digit, options) {
168
- if(typeof digit == "object") {
172
+ if(digit instanceof Object && digit instanceof Date === false) {
169
173
  options = digit;
170
174
  digit = 0;
171
175
  }
@@ -193,13 +197,13 @@ var FlipClock;
193
197
  * Build Date
194
198
  */
195
199
 
196
- buildDate: '2014-06-03',
200
+ buildDate: '2014-10-06',
197
201
 
198
202
  /**
199
203
  * Version
200
204
  */
201
205
 
202
- version: '0.5.5',
206
+ version: '0.7.5',
203
207
 
204
208
  /**
205
209
  * Sets the default options
@@ -330,6 +334,12 @@ var FlipClock;
330
334
 
331
335
  FlipClock.Face = FlipClock.Base.extend({
332
336
 
337
+ /**
338
+ * Sets whether or not the clock should start upon instantiation
339
+ */
340
+
341
+ autoStart: true,
342
+
333
343
  /**
334
344
  * An array of jQuery objects used for the dividers (the colons)
335
345
  */
@@ -356,16 +366,21 @@ var FlipClock;
356
366
  */
357
367
 
358
368
  constructor: function(factory, options) {
359
- this.base(options);
360
- this.factory = factory;
361
369
  this.dividers = [];
370
+ this.lists = [];
371
+ this.base(options);
372
+ this.factory = factory;
362
373
  },
363
374
 
364
375
  /**
365
376
  * Build the clock face
366
377
  */
367
378
 
368
- build: function() {},
379
+ build: function() {
380
+ if(this.autoStart) {
381
+ this.start();
382
+ }
383
+ },
369
384
 
370
385
  /**
371
386
  * Creates a jQuery object used for the digit divider
@@ -376,7 +391,6 @@ var FlipClock;
376
391
  */
377
392
 
378
393
  createDivider: function(label, css, excludeDots) {
379
-
380
394
  if(typeof css == "boolean" || !css) {
381
395
  excludeDots = css;
382
396
  css = label;
@@ -400,7 +414,11 @@ var FlipClock;
400
414
  '</span>'
401
415
  ];
402
416
 
403
- return $(html.join(''));
417
+ var $html = $(html.join(''));
418
+
419
+ this.dividers.push($html);
420
+
421
+ return $html;
404
422
  },
405
423
 
406
424
  /**
@@ -417,9 +435,9 @@ var FlipClock;
417
435
  }
418
436
 
419
437
  var obj = new FlipClock.List(this.factory, digit, options);
438
+
439
+ this.lists.push(obj);
420
440
 
421
- //this.factory.$wrapper.append(obj.$obj);
422
-
423
441
  return obj;
424
442
  },
425
443
 
@@ -430,22 +448,25 @@ var FlipClock;
430
448
  reset: function() {
431
449
  this.factory.time = new FlipClock.Time(
432
450
  this.factor,
433
- this.factory.original ? Math.round(this.factory.original) : 0
451
+ this.factory.original ? Math.round(this.factory.original) : 0,
452
+ {
453
+ minimumDigits: this.factory.minimumDigits
454
+ }
434
455
  );
456
+
435
457
  this.flip(this.factory.original, false);
436
458
  },
437
459
 
438
460
  /**
439
- * Sets the clock time (deprecated, duplicate method)
440
- *
461
+ * Append a newly created list to the clock
462
+ */
441
463
 
442
- setTime: function(time) {
443
- this.flip();
464
+ appendDigitToClock: function(obj) {
465
+ obj.$el.append(false);
444
466
  },
445
- */
446
-
467
+
447
468
  /**
448
- * Sets the clock time
469
+ * Add a digit to the clock face
449
470
  */
450
471
 
451
472
  addDigit: function(digit) {
@@ -456,10 +477,8 @@ var FlipClock;
456
477
  flip: this.factory.classes.flip
457
478
  }
458
479
  });
459
-
460
- obj.$obj.insertBefore(this.factory.lists[0].$obj);
461
-
462
- this.factory.lists.unshift(obj);
480
+
481
+ this.appendDigitToClock(obj);
463
482
  },
464
483
 
465
484
  /**
@@ -473,24 +492,38 @@ var FlipClock;
473
492
  */
474
493
 
475
494
  stop: function() {},
476
-
495
+
496
+ /**
497
+ * Auto increments/decrements the value of the clock face
498
+ */
499
+
500
+ autoIncrement: function() {
501
+ if(!this.factory.countdown) {
502
+ this.increment();
503
+ }
504
+ else {
505
+ this.decrement();
506
+ }
507
+ },
508
+
477
509
  /**
478
- * Increments the time with each face flip
510
+ * Increments the value of the clock face
479
511
  */
480
512
 
481
513
  increment: function() {
482
- if (!(this.factory.time.time instanceof Date)) {
483
- if(!this.factory.countdown) {
484
- this.factory.time.addSecond();
485
- }
486
- else {
487
- if(this.factory.time.getTimeSeconds() == 0) {
488
- this.factory.stop()
489
- }
490
- else {
491
- this.factory.time.subSecond();
492
- }
493
- }
514
+ this.factory.time.addSecond();
515
+ },
516
+
517
+ /**
518
+ * Decrements the value of the clock face
519
+ */
520
+
521
+ decrement: function() {
522
+ if(this.factory.time.getTimeSeconds() == 0) {
523
+ this.factory.stop()
524
+ }
525
+ else {
526
+ this.factory.time.subSecond();
494
527
  }
495
528
  },
496
529
 
@@ -501,36 +534,20 @@ var FlipClock;
501
534
  flip: function(time, doNotAddPlayClass) {
502
535
  var t = this;
503
536
 
504
- this.increment();
505
-
506
- var offset = t.factory.lists.length - time.length;
507
-
508
- if(offset < 0) {
509
- offset = 0;
510
- }
511
-
512
537
  $.each(time, function(i, digit) {
513
- i += offset;
514
-
515
- var list = t.factory.lists[i];
516
-
538
+ var list = t.lists[i];
539
+
517
540
  if(list) {
518
- list.select(digit);
519
-
520
- if(!doNotAddPlayClass) {
541
+ if(!doNotAddPlayClass && digit != list.digit) {
521
542
  list.play();
522
543
  }
544
+
545
+ list.select(digit);
523
546
  }
524
547
  else {
525
548
  t.addDigit(digit);
526
549
  }
527
550
  });
528
-
529
- for(var x = 0; x < time.length; x++) {
530
- if(x >= offset && t.factory.lists[x].digit != time[x]) {
531
- t.factory.lists[x].select(time[x]);
532
- }
533
- }
534
551
  }
535
552
 
536
553
  });
@@ -564,6 +581,16 @@ var FlipClock;
564
581
 
565
582
  FlipClock.Factory = FlipClock.Base.extend({
566
583
 
584
+ /**
585
+ * The clock's animation rate.
586
+ *
587
+ * Note, currently this property doesn't do anything.
588
+ * This property is here to be used in the future to
589
+ * programmaticaly set the clock's animation speed
590
+ */
591
+
592
+ animationRate: 1000,
593
+
567
594
  /**
568
595
  * Auto start the clock on page load (True|False)
569
596
  */
@@ -605,6 +632,12 @@ var FlipClock;
605
632
 
606
633
  clockFace: 'HourlyCounter',
607
634
 
635
+ /**
636
+ * The name of the clock face class in use
637
+ */
638
+
639
+ countdown: false,
640
+
608
641
  /**
609
642
  * The name of the default clock face class to use if the defined
610
643
  * clockFace variable is not a valid FlipClock.Face object
@@ -619,10 +652,16 @@ var FlipClock;
619
652
  defaultLanguage: 'english',
620
653
 
621
654
  /**
622
- * The language being used to display labels (string)
655
+ * The jQuery object
656
+ */
657
+
658
+ $el: false,
659
+
660
+ /**
661
+ * The FlipClock.Face object
623
662
  */
624
663
 
625
- language: 'english',
664
+ face: true,
626
665
 
627
666
  /**
628
667
  * The language object after it has been loaded
@@ -630,18 +669,24 @@ var FlipClock;
630
669
 
631
670
  lang: false,
632
671
 
672
+ /**
673
+ * The language being used to display labels (string)
674
+ */
675
+
676
+ language: 'english',
677
+
678
+ /**
679
+ * The minimum digits the clock must have
680
+ */
681
+
682
+ minimumDigits: 0,
683
+
633
684
  /**
634
685
  * The original starting value of the clock. Used for the reset method.
635
686
  */
636
687
 
637
688
  original: false,
638
689
 
639
- /**
640
- * The FlipClock.Face object
641
- */
642
-
643
- face: true,
644
-
645
690
  /**
646
691
  * Is the clock running? (True|False)
647
692
  */
@@ -661,13 +706,7 @@ var FlipClock;
661
706
  timer: false,
662
707
 
663
708
  /**
664
- * An array of FlipClock.List objects
665
- */
666
-
667
- lists: [],
668
-
669
- /**
670
- * The wrapping jQuery object
709
+ * The jQuery object (depcrecated)
671
710
  */
672
711
 
673
712
  $wrapper: false,
@@ -686,24 +725,32 @@ var FlipClock;
686
725
  options = {};
687
726
  }
688
727
 
689
- this.lists = [];
690
- this.running = false;
691
- this.base(options);
692
- this.$wrapper = $(obj).addClass(this.classes.wrapper);
728
+ this.lists = [];
729
+ this.running = false;
730
+ this.base(options);
731
+
732
+ this.$el = $(obj).addClass(this.classes.wrapper);
733
+
734
+ // Depcrated support of the $wrapper property.
735
+ this.$wrapper = this.$el;
736
+
693
737
  this.original = (digit instanceof Date) ? digit : (digit ? Math.round(digit) : 0);
694
- this.time = new FlipClock.Time(this, this.original, {
695
- minimumDigits: options.minimumDigits ? options.minimumDigits : 0,
696
- animationRate: options.animationRate ? options.animationRate : 1000
738
+
739
+ this.time = new FlipClock.Time(this, this.original, {
740
+ minimumDigits: this.minimumDigits,
741
+ animationRate: this.animationRate
697
742
  });
698
743
 
699
- this.timer = new FlipClock.Timer(this, options);
744
+ this.timer = new FlipClock.Timer(this, options);
700
745
 
701
- this.lang = this.loadLanguage(this.language);
702
- this.face = this.loadClockFace(this.clockFace, options);
746
+ this.loadLanguage(this.language);
747
+
748
+ this.loadClockFace(this.clockFace, options);
703
749
 
704
750
  if(this.autoStart) {
705
751
  this.start();
706
752
  }
753
+
707
754
  },
708
755
 
709
756
  /**
@@ -714,9 +761,18 @@ var FlipClock;
714
761
  */
715
762
 
716
763
  loadClockFace: function(name, options) {
717
- var face, suffix = 'Face';
764
+ var face, suffix = 'Face', hasStopped = false;
718
765
 
719
766
  name = name.ucfirst()+suffix;
767
+
768
+ if(this.face.stop) {
769
+ this.stop();
770
+ hasStopped = true;
771
+ }
772
+
773
+ this.$el.html('');
774
+
775
+ this.time.minimumDigits = this.minimumDigits;
720
776
 
721
777
  if(FlipClock[name]) {
722
778
  face = new FlipClock[name](this, options);
@@ -726,11 +782,16 @@ var FlipClock;
726
782
  }
727
783
 
728
784
  face.build();
729
-
730
- return face;
731
- },
785
+
786
+ this.face = face
787
+
788
+ if(hasStopped) {
789
+ this.start();
790
+ }
732
791
 
733
-
792
+ return this.face;
793
+ },
794
+
734
795
  /**
735
796
  * Load the FlipClock.Lang object
736
797
  *
@@ -750,7 +811,7 @@ var FlipClock;
750
811
  lang = FlipClock.Lang[this.defaultLanguage];
751
812
  }
752
813
 
753
- return lang;
814
+ return this.lang = lang;
754
815
  },
755
816
 
756
817
  /**
@@ -812,7 +873,9 @@ var FlipClock;
812
873
  this.timer.stop(callback);
813
874
 
814
875
  for(var x in this.lists) {
815
- this.lists[x].stop();
876
+ if (this.lists.hasOwnProperty(x)) {
877
+ this.lists[x].stop();
878
+ }
816
879
  }
817
880
  },
818
881
 
@@ -864,7 +927,7 @@ var FlipClock;
864
927
  *
865
928
  * @param array An array of digits
866
929
  */
867
- flip: function(doNotAddPlayClass) {
930
+ flip: function(doNotAddPlayClass) {
868
931
  this.face.flip(false, doNotAddPlayClass);
869
932
  }
870
933
 
@@ -922,7 +985,13 @@ var FlipClock;
922
985
  factory: false,
923
986
 
924
987
  /**
925
- * The wrapping jQuery object
988
+ * The jQuery object
989
+ */
990
+
991
+ $el: false,
992
+
993
+ /**
994
+ * The jQuery object (deprecated)
926
995
  */
927
996
 
928
997
  $obj: false,
@@ -932,7 +1001,13 @@ var FlipClock;
932
1001
  */
933
1002
 
934
1003
  items: [],
935
-
1004
+
1005
+ /**
1006
+ * The last digit
1007
+ */
1008
+
1009
+ lastDigit: 0,
1010
+
936
1011
  /**
937
1012
  * Constructor
938
1013
  *
@@ -941,18 +1016,20 @@ var FlipClock;
941
1016
  * @param object An object to override the default properties
942
1017
  */
943
1018
 
944
- minimumDigits: 0,
945
-
946
1019
  constructor: function(factory, digit, options) {
947
1020
  this.factory = factory;
948
- this.digit = digit;
949
- this.$obj = this.createList();
1021
+ this.digit = digit;
1022
+ this.lastDigit = digit;
1023
+ this.$el = this.createList();
950
1024
 
1025
+ // Depcrated support of the $obj property.
1026
+ this.$obj = this.$el;
1027
+
951
1028
  if(digit > 0) {
952
1029
  this.select(digit);
953
1030
  }
954
-
955
- this.factory.$wrapper.append(this.$obj);
1031
+
1032
+ this.factory.$el.append(this.$el);
956
1033
  },
957
1034
 
958
1035
  /**
@@ -969,28 +1046,18 @@ var FlipClock;
969
1046
  this.digit = digit;
970
1047
  }
971
1048
 
972
- var target = this.$obj.find('[data-digit="'+digit+'"]');
973
- var active = this.$obj.find('.'+this.classes.active).removeClass(this.classes.active);
974
- var before = this.$obj.find('.'+this.classes.before).removeClass(this.classes.before);
1049
+ if(this.digit != this.lastDigit) {
1050
+ var $delete = this.$el.find('.'+this.classes.before).removeClass(this.classes.before);
975
1051
 
976
- if(!this.factory.countdown) {
977
- if(target.is(':first-child')) {
978
- this.$obj.find(':last-child').addClass(this.classes.before);
979
- }
980
- else {
981
- target.prev().addClass(this.classes.before);
982
- }
983
- }
984
- else {
985
- if(target.is(':last-child')) {
986
- this.$obj.find(':first-child').addClass(this.classes.before);
987
- }
988
- else {
989
- target.next().addClass(this.classes.before);
990
- }
991
- }
992
-
993
- target.addClass(this.classes.active);
1052
+ this.$el.find('.'+this.classes.active).removeClass(this.classes.active)
1053
+ .addClass(this.classes.before);
1054
+
1055
+ this.appendListItem(this.classes.active, this.digit);
1056
+
1057
+ $delete.remove();
1058
+
1059
+ this.lastDigit = this.digit;
1060
+ }
994
1061
  },
995
1062
 
996
1063
  /**
@@ -998,7 +1065,7 @@ var FlipClock;
998
1065
  */
999
1066
 
1000
1067
  play: function() {
1001
- this.$obj.addClass(this.factory.classes.play);
1068
+ this.$el.addClass(this.factory.classes.play);
1002
1069
  },
1003
1070
 
1004
1071
  /**
@@ -1009,40 +1076,67 @@ var FlipClock;
1009
1076
  var t = this;
1010
1077
 
1011
1078
  setTimeout(function() {
1012
- t.$obj.removeClass(t.factory.classes.play);
1079
+ t.$el.removeClass(t.factory.classes.play);
1013
1080
  }, this.factory.timer.interval);
1014
1081
  },
1015
1082
 
1016
1083
  /**
1017
- * Create the list of digits and appends it to the DOM object
1084
+ * Creates the list item HTML and returns as a string
1018
1085
  */
1019
1086
 
1020
- createList: function() {
1021
-
1022
- var html = $('<ul class="'+this.classes.flip+' '+(this.factory.running ? this.factory.classes.play : '')+'" />');
1023
-
1024
- for(var x = 0; x < 10; x++) {
1025
- var item = $([
1026
- '<li data-digit="'+x+'">',
1087
+ createListItem: function(css, value) {
1088
+ return [
1089
+ '<li class="'+(css ? css : '')+'">',
1027
1090
  '<a href="#">',
1028
1091
  '<div class="up">',
1029
1092
  '<div class="shadow"></div>',
1030
- '<div class="inn">'+x+'</div>',
1093
+ '<div class="inn">'+(value ? value : '')+'</div>',
1031
1094
  '</div>',
1032
1095
  '<div class="down">',
1033
1096
  '<div class="shadow"></div>',
1034
- '<div class="inn">'+x+'</div>',
1097
+ '<div class="inn">'+(value ? value : '')+'</div>',
1035
1098
  '</div>',
1036
1099
  '</a>',
1037
- '</li>'].join(''));
1038
-
1039
- this.items.push(item);
1040
-
1041
- html.append(item);
1042
- }
1043
-
1100
+ '</li>'
1101
+ ].join('');
1102
+ },
1103
+
1104
+ /**
1105
+ * Append the list item to the parent DOM node
1106
+ */
1107
+
1108
+ appendListItem: function(css, value) {
1109
+ var html = this.createListItem(css, value);
1110
+
1111
+ this.$el.append(html);
1112
+ },
1113
+
1114
+ /**
1115
+ * Create the list of digits and appends it to the DOM object
1116
+ */
1117
+
1118
+ createList: function() {
1119
+
1120
+ var lastDigit = this.getPrevDigit() ? this.getPrevDigit() : this.digit;
1121
+
1122
+ var html = $([
1123
+ '<ul class="'+this.classes.flip+' '+(this.factory.running ? this.factory.classes.play : '')+'">',
1124
+ this.createListItem(this.classes.before, lastDigit),
1125
+ this.createListItem(this.classes.active, this.digit),
1126
+ '</ul>'
1127
+ ].join(''));
1128
+
1044
1129
  return html;
1130
+ },
1131
+
1132
+ getNextDigit: function() {
1133
+ return this.digit == 9 ? 0 : this.digit + 1;
1134
+ },
1135
+
1136
+ getPrevDigit: function() {
1137
+ return this.digit == 0 ? 9 : this.digit - 1;
1045
1138
  }
1139
+
1046
1140
  });
1047
1141
 
1048
1142
 
@@ -1079,11 +1173,7 @@ var FlipClock;
1079
1173
  * @param object An object of properties to override the default
1080
1174
  */
1081
1175
 
1082
- $.fn.FlipClock = function(digit, options) {
1083
- if(typeof digit == "object") {
1084
- options = digit;
1085
- digit = 0;
1086
- }
1176
+ $.fn.FlipClock = function(digit, options) {
1087
1177
  return new FlipClock($(this), digit, options);
1088
1178
  };
1089
1179
 
@@ -1127,7 +1217,7 @@ var FlipClock;
1127
1217
  FlipClock.Time = FlipClock.Base.extend({
1128
1218
 
1129
1219
  /**
1130
- * The time (in seconds)
1220
+ * The time (in seconds) or a date object
1131
1221
  */
1132
1222
 
1133
1223
  time: 0,
@@ -1139,7 +1229,7 @@ var FlipClock;
1139
1229
  factory: false,
1140
1230
 
1141
1231
  /**
1142
- * The minimum number of digits the clock face will have
1232
+ * The minimum number of digits the clock face must have
1143
1233
  */
1144
1234
 
1145
1235
  minimumDigits: 0,
@@ -1153,6 +1243,14 @@ var FlipClock;
1153
1243
  */
1154
1244
 
1155
1245
  constructor: function(factory, time, options) {
1246
+ if(typeof options != "object") {
1247
+ options = {};
1248
+ }
1249
+
1250
+ if(!options.minimumDigits) {
1251
+ options.minimumDigits = factory.minimumDigits;
1252
+ }
1253
+
1156
1254
  this.base(options);
1157
1255
  this.factory = factory;
1158
1256
 
@@ -1160,7 +1258,7 @@ var FlipClock;
1160
1258
  this.time = time;
1161
1259
  }
1162
1260
  },
1163
-
1261
+
1164
1262
  /**
1165
1263
  * Convert a string or integer to an array of digits
1166
1264
  *
@@ -1210,7 +1308,7 @@ var FlipClock;
1210
1308
 
1211
1309
  digitize: function(obj) {
1212
1310
  var data = [];
1213
-
1311
+
1214
1312
  $.each(obj, function(i, value) {
1215
1313
  value = value.toString();
1216
1314
 
@@ -1232,12 +1330,26 @@ var FlipClock;
1232
1330
  data.unshift('0');
1233
1331
  }
1234
1332
  }
1235
-
1333
+
1236
1334
  return data;
1237
1335
  },
1238
1336
 
1239
1337
  /**
1240
- * Gets a daily breakdown
1338
+ * Gets a new Date object for the current time
1339
+ *
1340
+ * @return array Returns a Date object
1341
+ */
1342
+
1343
+ getDateObject: function() {
1344
+ if(this.time instanceof Date) {
1345
+ return this.time;
1346
+ }
1347
+
1348
+ return new Date((new Date()).getTime() + this.getTimeSeconds() * 1000);
1349
+ },
1350
+
1351
+ /**
1352
+ * Gets a digitized daily counter
1241
1353
  *
1242
1354
  * @return object Returns a digitized object
1243
1355
  */
@@ -1322,15 +1434,25 @@ var FlipClock;
1322
1434
  * @return object returns a digitized object
1323
1435
  */
1324
1436
 
1325
- getMilitaryTime: function() {
1326
- var date = new Date();
1327
- var obj = this.digitize([
1437
+ getMilitaryTime: function(date, showSeconds) {
1438
+ if(typeof showSeconds === "undefined") {
1439
+ showSeconds = true;
1440
+ }
1441
+
1442
+ if(!date) {
1443
+ date = this.getDateObject();
1444
+ }
1445
+
1446
+ var data = [
1328
1447
  date.getHours(),
1329
- date.getMinutes(),
1330
- date.getSeconds()
1331
- ]);
1448
+ date.getMinutes()
1449
+ ];
1332
1450
 
1333
- return obj;
1451
+ if(showSeconds === true) {
1452
+ data.push(date.getSeconds());
1453
+ }
1454
+
1455
+ return this.digitize(data);
1334
1456
  },
1335
1457
 
1336
1458
  /**
@@ -1369,21 +1491,54 @@ var FlipClock;
1369
1491
  * @return int Returns a floored integer
1370
1492
  */
1371
1493
 
1372
- getTimeSeconds: function(mod) {
1494
+ getTimeSeconds: function(date) {
1495
+ if(!date) {
1496
+ date = new Date();
1497
+ }
1498
+
1373
1499
  if (this.time instanceof Date) {
1374
1500
  if (this.factory.countdown) {
1375
- if ((new Date()).getTime() > this.time.getTime()) {
1376
- this.factory.stop();
1377
- }
1378
- return Math.max(this.time.getTime()/1000 - (new Date()).getTime()/1000,0);
1501
+ return Math.max(this.time.getTime()/1000 - date.getTime()/1000,0);
1379
1502
  } else {
1380
- return (new Date()).getTime()/1000 - this.time.getTime()/1000 ;
1503
+ return date.getTime()/1000 - this.time.getTime()/1000 ;
1381
1504
  }
1382
1505
  } else {
1383
1506
  return this.time;
1384
1507
  }
1385
1508
  },
1386
1509
 
1510
+ /**
1511
+ * Gets the current twelve hour time
1512
+ *
1513
+ * @return object Returns a digitized object
1514
+ */
1515
+
1516
+ getTime: function(date, showSeconds) {
1517
+ if(typeof showSeconds === "undefined") {
1518
+ showSeconds = true;
1519
+ }
1520
+
1521
+ if(!date) {
1522
+ date = this.getDateObject();
1523
+ }
1524
+
1525
+ console.log(date);
1526
+
1527
+
1528
+ var hours = date.getHours();
1529
+ var merid = hours > 12 ? 'PM' : 'AM';
1530
+ var data = [
1531
+ hours > 12 ? hours - 12 : (hours === 0 ? 12 : hours),
1532
+ date.getMinutes()
1533
+ ];
1534
+
1535
+ if(showSeconds === true) {
1536
+ data.push(date.getSeconds());
1537
+ }
1538
+
1539
+ return this.digitize(data);
1540
+ },
1541
+
1387
1542
  /**
1388
1543
  * Gets number of seconds
1389
1544
  *
@@ -1405,26 +1560,7 @@ var FlipClock;
1405
1560
 
1406
1561
  return Math.ceil(seconds);
1407
1562
  },
1408
-
1409
- /**
1410
- * Gets the current twelve hour time
1411
- *
1412
- * @return object Returns a digitized object
1413
- */
1414
-
1415
- getTime: function() {
1416
- var date = new Date();
1417
- var hours = date.getHours();
1418
- var merid = hours > 12 ? 'PM' : 'AM';
1419
- var obj = this.digitize([
1420
- hours > 12 ? hours - 12 : (hours === 0 ? 12 : hours),
1421
- date.getMinutes(),
1422
- date.getSeconds()
1423
- ]);
1424
1563
 
1425
- return obj;
1426
- },
1427
-
1428
1564
  /**
1429
1565
  * Gets number of weeks
1430
1566
  *
@@ -1432,7 +1568,7 @@ var FlipClock;
1432
1568
  * @return int Retuns a floored integer
1433
1569
  */
1434
1570
 
1435
- getWeeks: function() {
1571
+ getWeeks: function(mod) {
1436
1572
  var weeks = this.getTimeSeconds() / 60 / 60 / 24 / 7;
1437
1573
 
1438
1574
  if(mod) {
@@ -1476,7 +1612,12 @@ var FlipClock;
1476
1612
  */
1477
1613
 
1478
1614
  addSeconds: function(x) {
1479
- this.time += x;
1615
+ if(this.time instanceof Date) {
1616
+ this.time.setSeconds(this.time.getSeconds() + x);
1617
+ }
1618
+ else {
1619
+ this.time += x;
1620
+ }
1480
1621
  },
1481
1622
 
1482
1623
  /**
@@ -1492,7 +1633,12 @@ var FlipClock;
1492
1633
  */
1493
1634
 
1494
1635
  subSeconds: function(x) {
1495
- this.time -= x;
1636
+ if(this.time instanceof Date) {
1637
+ this.time.setSeconds(this.time.getSeconds() - x);
1638
+ }
1639
+ else {
1640
+ this.time -= x;
1641
+ }
1496
1642
  },
1497
1643
 
1498
1644
  /**
@@ -1579,7 +1725,7 @@ var FlipClock;
1579
1725
  interval: 1000,
1580
1726
 
1581
1727
  /**
1582
- * The rate of the animation in milliseconds
1728
+ * The rate of the animation in milliseconds (not currently in use)
1583
1729
  */
1584
1730
 
1585
1731
  animationRate: 1000,
@@ -1748,7 +1894,6 @@ var FlipClock;
1748
1894
  */
1749
1895
 
1750
1896
  constructor: function(factory, options) {
1751
- factory.countdown = false;
1752
1897
  this.base(factory, options);
1753
1898
  },
1754
1899
 
@@ -1760,27 +1905,29 @@ var FlipClock;
1760
1905
 
1761
1906
  build: function(time) {
1762
1907
  var t = this;
1763
- var children = this.factory.$wrapper.find('ul');
1908
+ var children = this.factory.$el.find('ul');
1909
+
1910
+ if(!this.factory.time.time) {
1911
+ this.factory.original = new Date();
1912
+
1913
+ this.factory.time = new FlipClock.Time(this.factory, this.factory.original);
1914
+ }
1915
+
1916
+ var time = time ? time : this.factory.time.getMilitaryTime(false, this.showSeconds);
1764
1917
 
1765
- time = time ? time : (this.factory.time.time || this.factory.time.getMilitaryTime());
1766
-
1767
1918
  if(time.length > children.length) {
1768
1919
  $.each(time, function(i, digit) {
1769
- t.factory.lists.push(t.createList(digit));
1920
+ t.createList(digit);
1770
1921
  });
1771
1922
  }
1772
1923
 
1773
- this.dividers.push(this.createDivider());
1774
- this.dividers.push(this.createDivider());
1775
-
1776
- $(this.dividers[0]).insertBefore(this.factory.lists[this.factory.lists.length - 2].$obj);
1777
- $(this.dividers[1]).insertBefore(this.factory.lists[this.factory.lists.length - 4].$obj);
1778
-
1779
- this._clearExcessDigits();
1924
+ this.createDivider();
1925
+ this.createDivider();
1926
+
1927
+ $(this.dividers[0]).insertBefore(this.lists[this.lists.length - 2].$el);
1928
+ $(this.dividers[1]).insertBefore(this.lists[this.lists.length - 4].$el);
1780
1929
 
1781
- if(this.autoStart) {
1782
- this.start();
1783
- }
1930
+ this.base();
1784
1931
  },
1785
1932
 
1786
1933
  /**
@@ -1788,22 +1935,11 @@ var FlipClock;
1788
1935
  */
1789
1936
 
1790
1937
  flip: function(time, doNotAddPlayClass) {
1791
- time = time ? time : this.factory.time.getMilitaryTime();
1792
- this.base(time, doNotAddPlayClass);
1793
- },
1794
-
1795
- /**
1796
- * Clear the excess digits from the tens columns for sec/min
1797
- */
1798
-
1799
- _clearExcessDigits: function() {
1800
- var tenSeconds = this.factory.lists[this.factory.lists.length - 2];
1801
- var tenMinutes = this.factory.lists[this.factory.lists.length - 4];
1938
+ this.autoIncrement();
1802
1939
 
1803
- for(var x = 6; x < 10; x++) {
1804
- tenSeconds.$obj.find('li:last-child').remove();
1805
- tenMinutes.$obj.find('li:last-child').remove();
1806
- }
1940
+ time = time ? time : this.factory.time.getMilitaryTime(false, this.showSeconds);
1941
+
1942
+ this.base(time, doNotAddPlayClass);
1807
1943
  }
1808
1944
 
1809
1945
  });
@@ -1823,9 +1959,11 @@ var FlipClock;
1823
1959
 
1824
1960
  FlipClock.CounterFace = FlipClock.Face.extend({
1825
1961
 
1826
- autoStart: false,
1962
+ /**
1963
+ * Tells the counter clock face if it should auto-increment
1964
+ */
1827
1965
 
1828
- minimumDigits: 2,
1966
+ shouldAutoIncrement: false,
1829
1967
 
1830
1968
  /**
1831
1969
  * Constructor
@@ -1835,9 +1973,16 @@ var FlipClock;
1835
1973
  */
1836
1974
 
1837
1975
  constructor: function(factory, options) {
1838
- factory.timer.interval = 0;
1839
- factory.autoStart = false;
1840
- factory.running = true;
1976
+
1977
+ if(typeof options != "object") {
1978
+ options = {};
1979
+ }
1980
+
1981
+ factory.autoStart = options.autoStart ? true : false;
1982
+
1983
+ if(options.autoStart) {
1984
+ this.shouldAutoIncrement = true;
1985
+ }
1841
1986
 
1842
1987
  factory.increment = function() {
1843
1988
  factory.countdown = false;
@@ -1863,50 +2008,44 @@ var FlipClock;
1863
2008
  this.base(factory, options);
1864
2009
  },
1865
2010
 
1866
- /**
1867
- * Increments the time with each face flip
1868
- */
1869
-
1870
- increment: function() {},
1871
-
1872
2011
  /**
1873
2012
  * Build the clock face
1874
2013
  */
1875
2014
 
1876
2015
  build: function() {
1877
2016
  var t = this;
1878
- var children = this.factory.$wrapper.find('ul');
1879
- var lists = [];
2017
+ var children = this.factory.$el.find('ul');
1880
2018
  var time = this.factory.getTime().digitize([this.factory.getTime().time]);
1881
2019
 
1882
2020
  if(time.length > children.length) {
1883
2021
  $.each(time, function(i, digit) {
1884
- var list = t.createList(digit, {
1885
- minimumDigits: t.minimumDigits,
1886
- });
2022
+ var list = t.createList(digit);
1887
2023
 
1888
2024
  list.select(digit);
1889
- lists.push(list);
1890
2025
  });
1891
2026
 
1892
2027
  }
1893
2028
 
1894
- $.each(lists, function(i, list) {
2029
+ $.each(this.lists, function(i, list) {
1895
2030
  list.play();
1896
2031
  });
1897
2032
 
1898
- this.factory.lists = lists;
2033
+ this.base();
1899
2034
  },
1900
2035
 
1901
2036
  /**
1902
2037
  * Flip the clock face
1903
2038
  */
1904
2039
 
1905
- flip: function(time, doNotAddPlayClass) {
2040
+ flip: function(time, doNotAddPlayClass) {
2041
+ if(this.shouldAutoIncrement) {
2042
+ this.autoIncrement();
2043
+ }
2044
+
1906
2045
  if(!time) {
1907
2046
  time = this.factory.getTime().digitize([this.factory.getTime().time]);
1908
2047
  }
1909
-
2048
+
1910
2049
  this.base(time, doNotAddPlayClass);
1911
2050
  },
1912
2051
 
@@ -1916,7 +2055,7 @@ var FlipClock;
1916
2055
 
1917
2056
  reset: function() {
1918
2057
  this.factory.time = new FlipClock.Time(
1919
- this.factor,
2058
+ this.factory,
1920
2059
  this.factory.original ? Math.round(this.factory.original) : 0
1921
2060
  );
1922
2061
 
@@ -1958,39 +2097,32 @@ var FlipClock;
1958
2097
  * Build the clock face
1959
2098
  */
1960
2099
 
1961
- build: function(excludeHours, time) {
1962
- var t = this;
1963
- var children = this.factory.$wrapper.find('ul');
1964
- var lists = [];
1965
- var offset = 0;
2100
+ build: function(time) {
2101
+ var t = this;
2102
+ var children = this.factory.$el.find('ul');
2103
+ var offset = 0;
1966
2104
 
1967
- time = time ? time : this.factory.time.getDayCounter(this.showSeconds);
2105
+ time = time ? time : this.factory.time.getDayCounter(this.showSeconds);
1968
2106
 
1969
2107
  if(time.length > children.length) {
1970
2108
  $.each(time, function(i, digit) {
1971
- lists.push(t.createList(digit));
2109
+ t.createList(digit);
1972
2110
  });
1973
2111
  }
1974
2112
 
1975
- this.factory.lists = lists;
1976
-
1977
2113
  if(this.showSeconds) {
1978
- $(this.createDivider('Seconds')).insertBefore(this.factory.lists[this.factory.lists.length - 2].$obj);
2114
+ $(this.createDivider('Seconds')).insertBefore(this.lists[this.lists.length - 2].$el);
1979
2115
  }
1980
2116
  else
1981
2117
  {
1982
2118
  offset = 2;
1983
2119
  }
1984
2120
 
1985
- $(this.createDivider('Minutes')).insertBefore(this.factory.lists[this.factory.lists.length - 4 + offset].$obj);
1986
- $(this.createDivider('Hours')).insertBefore(this.factory.lists[this.factory.lists.length - 6 + offset].$obj);
1987
- $(this.createDivider('Days', true)).insertBefore(this.factory.lists[0].$obj);
1988
-
1989
- this._clearExcessDigits();
2121
+ $(this.createDivider('Minutes')).insertBefore(this.lists[this.lists.length - 4 + offset].$el);
2122
+ $(this.createDivider('Hours')).insertBefore(this.lists[this.lists.length - 6 + offset].$el);
2123
+ $(this.createDivider('Days', true)).insertBefore(this.lists[0].$el);
1990
2124
 
1991
- if(this.autoStart) {
1992
- this.start();
1993
- }
2125
+ this.base();
1994
2126
  },
1995
2127
 
1996
2128
  /**
@@ -2002,21 +2134,9 @@ var FlipClock;
2002
2134
  time = this.factory.time.getDayCounter(this.showSeconds);
2003
2135
  }
2004
2136
 
2005
- this.base(time, doNotAddPlayClass);
2006
- },
2007
-
2008
- /**
2009
- * Clear the excess digits from the tens columns for sec/min
2010
- */
2137
+ this.autoIncrement();
2011
2138
 
2012
- _clearExcessDigits: function() {
2013
- var tenSeconds = this.factory.lists[this.factory.lists.length - 2];
2014
- var tenMinutes = this.factory.lists[this.factory.lists.length - 4];
2015
-
2016
- for(var x = 6; x < 10; x++) {
2017
- tenSeconds.$obj.find('li:last-child').remove();
2018
- tenMinutes.$obj.find('li:last-child').remove();
2019
- }
2139
+ this.base(time, doNotAddPlayClass);
2020
2140
  }
2021
2141
 
2022
2142
  });
@@ -2038,7 +2158,7 @@ var FlipClock;
2038
2158
 
2039
2159
  FlipClock.HourlyCounterFace = FlipClock.Face.extend({
2040
2160
 
2041
- clearExcessDigits: true,
2161
+ // clearExcessDigits: true,
2042
2162
 
2043
2163
  /**
2044
2164
  * Constructor
@@ -2056,34 +2176,25 @@ var FlipClock;
2056
2176
  */
2057
2177
 
2058
2178
  build: function(excludeHours, time) {
2059
- var t = this;
2060
- var children = this.factory.$wrapper.find('ul');
2061
- var lists = [];
2179
+ var t = this;
2180
+ var children = this.factory.$el.find('ul');
2062
2181
 
2063
- time = time ? time : this.factory.time.getHourCounter();
2182
+ time = time ? time : this.factory.time.getHourCounter();
2064
2183
 
2065
2184
  if(time.length > children.length) {
2066
2185
  $.each(time, function(i, digit) {
2067
- lists.push(t.createList(digit));
2186
+ t.createList(digit);
2068
2187
  });
2069
2188
  }
2070
2189
 
2071
- this.factory.lists = lists;
2072
-
2073
- $(this.createDivider('Seconds')).insertBefore(this.factory.lists[this.factory.lists.length - 2].$obj);
2074
- $(this.createDivider('Minutes')).insertBefore(this.factory.lists[this.factory.lists.length - 4].$obj);
2190
+ $(this.createDivider('Seconds')).insertBefore(this.lists[this.lists.length - 2].$el);
2191
+ $(this.createDivider('Minutes')).insertBefore(this.lists[this.lists.length - 4].$el);
2075
2192
 
2076
2193
  if(!excludeHours) {
2077
- $(this.createDivider('Hours', true)).insertBefore(this.factory.lists[0].$obj);
2194
+ $(this.createDivider('Hours', true)).insertBefore(this.lists[0].$el);
2078
2195
  }
2079
2196
 
2080
- if(this.clearExcessDigits) {
2081
- this._clearExcessDigits();
2082
- }
2083
-
2084
- if(this.autoStart) {
2085
- this.start();
2086
- }
2197
+ this.base();
2087
2198
  },
2088
2199
 
2089
2200
  /**
@@ -2093,22 +2204,21 @@ var FlipClock;
2093
2204
  flip: function(time, doNotAddPlayClass) {
2094
2205
  if(!time) {
2095
2206
  time = this.factory.time.getHourCounter();
2096
- }
2207
+ }
2208
+
2209
+ this.autoIncrement();
2210
+
2097
2211
  this.base(time, doNotAddPlayClass);
2098
2212
  },
2099
-
2213
+
2100
2214
  /**
2101
- * Clear the excess digits from the tens columns for sec/min
2215
+ * Append a newly created list to the clock
2102
2216
  */
2103
-
2104
- _clearExcessDigits: function() {
2105
- var tenSeconds = this.factory.lists[this.factory.lists.length - 2];
2106
- var tenMinutes = this.factory.lists[this.factory.lists.length - 4];
2107
-
2108
- for(var x = 6; x < 10; x++) {
2109
- tenSeconds.$obj.find('li:last-child').remove();
2110
- tenMinutes.$obj.find('li:last-child').remove();
2111
- }
2217
+
2218
+ appendDigitToClock: function(obj) {
2219
+ this.base(obj);
2220
+
2221
+ this.dividers[0].insertAfter(this.dividers[0].next());
2112
2222
  }
2113
2223
 
2114
2224
  });
@@ -2128,7 +2238,7 @@ var FlipClock;
2128
2238
  */
2129
2239
 
2130
2240
  FlipClock.MinuteCounterFace = FlipClock.HourlyCounterFace.extend({
2131
-
2241
+
2132
2242
  clearExcessDigits: false,
2133
2243
 
2134
2244
  /**
@@ -2158,8 +2268,9 @@ var FlipClock;
2158
2268
  if(!time) {
2159
2269
  time = this.factory.time.getMinuteCounter();
2160
2270
  }
2271
+
2161
2272
  this.base(time, doNotAddPlayClass);
2162
- },
2273
+ }
2163
2274
 
2164
2275
  });
2165
2276
 
@@ -2195,13 +2306,13 @@ var FlipClock;
2195
2306
  * @param object Pass the time that should be used to display on the clock.
2196
2307
  */
2197
2308
 
2198
- build: function(time) {
2199
- var t = this;
2200
-
2201
- time = time ? time : (this.factory.time.time ? this.factory.time.time : this.factory.time.getTime());
2202
-
2309
+ build: function() {
2310
+ var t = this;
2311
+
2312
+ var time = this.factory.time.getTime(false, this.showSeconds);
2313
+
2203
2314
  this.base(time);
2204
- this.meridiumText = this._isPM() ? 'PM' : 'AM';
2315
+ this.meridiumText = this.getMeridium();
2205
2316
  this.meridium = $([
2206
2317
  '<ul class="flip-clock-meridium">',
2207
2318
  '<li>',
@@ -2209,8 +2320,8 @@ var FlipClock;
2209
2320
  '</li>',
2210
2321
  '</ul>'
2211
2322
  ].join(''));
2212
-
2213
- this.meridium.insertAfter(this.factory.lists[this.factory.lists.length-1].$obj);
2323
+
2324
+ this.meridium.insertAfter(this.lists[this.lists.length-1].$el);
2214
2325
  },
2215
2326
 
2216
2327
  /**
@@ -2218,11 +2329,11 @@ var FlipClock;
2218
2329
  */
2219
2330
 
2220
2331
  flip: function(time, doNotAddPlayClass) {
2221
- if(this.meridiumText != this._getMeridium()) {
2222
- this.meridiumText = this._getMeridium();
2332
+ if(this.meridiumText != this.getMeridium()) {
2333
+ this.meridiumText = this.getMeridium();
2223
2334
  this.meridium.find('a').html(this.meridiumText);
2224
2335
  }
2225
- this.base(this.factory.time.getTime(), doNotAddPlayClass);
2336
+ this.base(this.factory.time.getTime(false, this.showSeconds), doNotAddPlayClass);
2226
2337
  },
2227
2338
 
2228
2339
  /**
@@ -2231,7 +2342,7 @@ var FlipClock;
2231
2342
  * @return string Returns the meridium (AM|PM)
2232
2343
  */
2233
2344
 
2234
- _getMeridium: function() {
2345
+ getMeridium: function() {
2235
2346
  return new Date().getHours() >= 12 ? 'PM' : 'AM';
2236
2347
  },
2237
2348
 
@@ -2241,22 +2352,18 @@ var FlipClock;
2241
2352
  * @return bool Returns true or false
2242
2353
  */
2243
2354
 
2244
- _isPM: function() {
2245
- return this._getMeridium() == 'PM' ? true : false;
2355
+ isPM: function() {
2356
+ return this.getMeridium() == 'PM' ? true : false;
2246
2357
  },
2247
-
2358
+
2248
2359
  /**
2249
- * Clear the excess digits from the tens columns for sec/min
2360
+ * Is it currently before the post-medirium?
2361
+ *
2362
+ * @return bool Returns true or false
2250
2363
  */
2251
2364
 
2252
- _clearExcessDigits: function() {
2253
- var tenSeconds = this.factory.lists[this.factory.lists.length - 2];
2254
- var tenMinutes = this.factory.lists[this.factory.lists.length - 4];
2255
-
2256
- for(var x = 6; x < 10; x++) {
2257
- tenSeconds.$obj.find('li:last-child').remove();
2258
- tenMinutes.$obj.find('li:last-child').remove();
2259
- }
2365
+ isAM: function() {
2366
+ return this.getMeridium() == 'AM' ? true : false;
2260
2367
  }
2261
2368
 
2262
2369
  });
@@ -2311,8 +2418,8 @@ var FlipClock;
2311
2418
 
2312
2419
  /* Create various aliases for convenience */
2313
2420
 
2314
- FlipClock.Lang['da'] = FlipClock.Lang.Danish;
2315
- FlipClock.Lang['da-dk'] = FlipClock.Lang.Danish;
2421
+ FlipClock.Lang['da'] = FlipClock.Lang.Danish;
2422
+ FlipClock.Lang['da-dk'] = FlipClock.Lang.Danish;
2316
2423
  FlipClock.Lang['danish'] = FlipClock.Lang.Danish;
2317
2424
 
2318
2425
  }(jQuery));
@@ -2383,7 +2490,7 @@ var FlipClock;
2383
2490
 
2384
2491
  'years' : 'A&#241;os',
2385
2492
  'months' : 'Meses',
2386
- 'days' : 'D&#205;as',
2493
+ 'days' : 'D&#237;as',
2387
2494
  'hours' : 'Horas',
2388
2495
  'minutes' : 'Minutos',
2389
2496
  'seconds' : 'Segundo'
@@ -2397,6 +2504,34 @@ var FlipClock;
2397
2504
  FlipClock.Lang['spanish'] = FlipClock.Lang.Spanish;
2398
2505
 
2399
2506
  }(jQuery));
2507
+ (function($) {
2508
+
2509
+ /**
2510
+ * FlipClock Finnish Language Pack
2511
+ *
2512
+ * This class will used to translate tokens into the Finnish language.
2513
+ *
2514
+ */
2515
+
2516
+ FlipClock.Lang.Finnish = {
2517
+
2518
+ 'years' : 'Vuotta',
2519
+ 'months' : 'Kuukautta',
2520
+ 'days' : 'Päivää',
2521
+ 'hours' : 'Tuntia',
2522
+ 'minutes' : 'Minuuttia',
2523
+ 'seconds' : 'Sekuntia'
2524
+
2525
+ };
2526
+
2527
+ /* Create various aliases for convenience */
2528
+
2529
+ FlipClock.Lang['fi'] = FlipClock.Lang.Finnish;
2530
+ FlipClock.Lang['fi-fi'] = FlipClock.Lang.Finnish;
2531
+ FlipClock.Lang['finnish'] = FlipClock.Lang.Finnish;
2532
+
2533
+ }(jQuery));
2534
+
2400
2535
  (function($) {
2401
2536
 
2402
2537
  /**
@@ -2507,6 +2642,62 @@ var FlipClock;
2507
2642
 
2508
2643
  }(jQuery));
2509
2644
 
2645
+ (function($) {
2646
+
2647
+ /**
2648
+ * FlipClock Norwegian-Bokmål Language Pack
2649
+ *
2650
+ * This class will used to translate tokens into the Norwegian language.
2651
+ *
2652
+ */
2653
+
2654
+ FlipClock.Lang.Norwegian = {
2655
+
2656
+ 'years' : 'År',
2657
+ 'months' : 'Måneder',
2658
+ 'days' : 'Dager',
2659
+ 'hours' : 'Timer',
2660
+ 'minutes' : 'Minutter',
2661
+ 'seconds' : 'Sekunder'
2662
+
2663
+ };
2664
+
2665
+ /* Create various aliases for convenience */
2666
+
2667
+ FlipClock.Lang['no'] = FlipClock.Lang.Norwegian;
2668
+ FlipClock.Lang['nb'] = FlipClock.Lang.Norwegian;
2669
+ FlipClock.Lang['no-nb'] = FlipClock.Lang.Norwegian;
2670
+ FlipClock.Lang['norwegian'] = FlipClock.Lang.Norwegian;
2671
+
2672
+ }(jQuery));
2673
+
2674
+ (function($) {
2675
+
2676
+ /**
2677
+ * FlipClock Portuguese Language Pack
2678
+ *
2679
+ * This class will used to translate tokens into the Portuguese language.
2680
+ *
2681
+ */
2682
+
2683
+ FlipClock.Lang.Portuguese = {
2684
+
2685
+ 'years' : 'Anos',
2686
+ 'months' : 'Meses',
2687
+ 'days' : 'Dias',
2688
+ 'hours' : 'Horas',
2689
+ 'minutes' : 'Minutos',
2690
+ 'seconds' : 'Segundos'
2691
+
2692
+ };
2693
+
2694
+ /* Create various aliases for convenience */
2695
+
2696
+ FlipClock.Lang['pt'] = FlipClock.Lang.Portuguese;
2697
+ FlipClock.Lang['pt-br'] = FlipClock.Lang.Portuguese;
2698
+ FlipClock.Lang['portuguese'] = FlipClock.Lang.Portuguese;
2699
+
2700
+ }(jQuery));
2510
2701
  (function($) {
2511
2702
 
2512
2703
  /**
@@ -2556,8 +2747,8 @@ var FlipClock;
2556
2747
 
2557
2748
  /* Create various aliases for convenience */
2558
2749
 
2559
- FlipClock.Lang['sv'] = FlipClock.Lang.Danish;
2560
- FlipClock.Lang['sv-se'] = FlipClock.Lang.Danish;
2561
- FlipClock.Lang['swedish'] = FlipClock.Lang.Danish;
2750
+ FlipClock.Lang['sv'] = FlipClock.Lang.Swedish;
2751
+ FlipClock.Lang['sv-se'] = FlipClock.Lang.Swedish;
2752
+ FlipClock.Lang['swedish'] = FlipClock.Lang.Swedish;
2562
2753
 
2563
2754
  }(jQuery));