A. Far saluted immaculately indiscriminate ouch along darn reliable cuckoo goodness but and jay far into mute and into much amidst far owing the a because since to the oh near much crud with darn and before inventoried scurrilously or hey far darn wedded worm fit terrier depen ding regardless darn on less. indiscriminate ouch along darn reliable cuckoo goodness buT.
A. Far saluted immaculately indiscriminate ouch along darn reliable cuckoo goodness but and jay far into mute and into much amidst far owing the a because since to the oh near much crud with darn.
A. Far saluted immaculately indiscriminate ouch along darn reliable cuckoo goodness but and jay far into mute and into much amidst far owing the a because since to the oh near much crud with darn.
A. Far saluted immaculately indiscriminate ouch along darn reliable cuckoo goodness but and jay far into mute and into much amidst far owing the a because since to the oh near much crud with darn.
A. Far saluted immaculately indiscriminate ouch along darn reliable cuckoo goodness but and jay far into mute and into much amidst far owing the a because since to the oh near much crud with darn.
A. Far saluted immaculately indiscriminate ouch along darn reliable cuckoo goodness but and jay far into mute and into much amidst far owing the a because since to the oh near much crud with darn.
At JPs contracting, we want to make your project a success. From the small one-off jobs, to large project plans, we will give you the confidence to improve and grow like you've always wanted to!
-
-
-
\ No newline at end of file
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0731.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0731.JPG
deleted file mode 100644
index 117449e..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0731.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0732.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0732.JPG
deleted file mode 100644
index 0b8f3bb..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0732.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0733.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0733.JPG
deleted file mode 100644
index 3cc9854..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0733.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0734.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0734.JPG
deleted file mode 100644
index 2748747..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0734.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0735.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0735.JPG
deleted file mode 100644
index 4105c70..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0735.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0736.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0736.JPG
deleted file mode 100644
index cbb08ba..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0736.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0737.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0737.JPG
deleted file mode 100644
index dc03c94..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0737.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0738.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0738.JPG
deleted file mode 100644
index 64f30ba..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0738.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0739.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0739.JPG
deleted file mode 100644
index 4feaffc..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0739.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0740.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0740.JPG
deleted file mode 100644
index c9a043c..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0740.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0741.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0741.JPG
deleted file mode 100644
index abdffdd..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0741.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0742.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0742.JPG
deleted file mode 100644
index 3d639db..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0742.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0743.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0743.JPG
deleted file mode 100644
index 4c511b2..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0743.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0744.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0744.JPG
deleted file mode 100644
index e58af01..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0744.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0745.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0745.JPG
deleted file mode 100644
index 87374d9..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0745.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0746.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0746.JPG
deleted file mode 100644
index 5853a02..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0746.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0747.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0747.JPG
deleted file mode 100644
index 4ade2ea..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0747.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0749.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0749.JPG
deleted file mode 100644
index 4c9a948..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0749.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0750.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0750.JPG
deleted file mode 100644
index 988b67d..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0750.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0751.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0751.JPG
deleted file mode 100644
index 47bfe9c..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0751.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0752.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0752.JPG
deleted file mode 100644
index 973b59e..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0752.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0753.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0753.JPG
deleted file mode 100644
index c4ceeb1..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0753.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0771.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0771.JPG
deleted file mode 100644
index b5b2e29..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0771.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0772.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0772.JPG
deleted file mode 100644
index fba4fa6..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0772.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0773.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0773.JPG
deleted file mode 100644
index d08224c..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0773.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0774.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0774.JPG
deleted file mode 100644
index f4671d5..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0774.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0775.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0775.JPG
deleted file mode 100644
index 0df7aec..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0775.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck @ club early mercy/IMG_0776.JPG b/build/projects/Decks/Floating deck @ club early mercy/IMG_0776.JPG
deleted file mode 100644
index 4b48019..0000000
Binary files a/build/projects/Decks/Floating deck @ club early mercy/IMG_0776.JPG and /dev/null differ
diff --git a/build/projects/Decks/Floating deck.html b/build/projects/Decks/Floating deck.html
deleted file mode 100644
index ee5e02d..0000000
--- a/build/projects/Decks/Floating deck.html
+++ /dev/null
@@ -1,416 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0043.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0043.JPG
deleted file mode 100644
index 92014d0..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0043.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0044.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0044.JPG
deleted file mode 100644
index fea70a9..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0044.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0045.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0045.JPG
deleted file mode 100644
index 3e8c681..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0045.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0046.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0046.JPG
deleted file mode 100644
index 75ac947..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0046.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0047.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0047.JPG
deleted file mode 100644
index 4450ef3..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0047.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0048.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0048.JPG
deleted file mode 100644
index a22515a..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0048.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0049.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0049.JPG
deleted file mode 100644
index 80d72ea..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0049.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0050.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0050.JPG
deleted file mode 100644
index 427ac95..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0050.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0051.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0051.JPG
deleted file mode 100644
index 8f3e3d6..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0051.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0052.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0052.JPG
deleted file mode 100644
index 168f261..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0052.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0053.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0053.JPG
deleted file mode 100644
index ca5b95d..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0053.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0054.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0054.JPG
deleted file mode 100644
index 206d2fe..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0054.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0055.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0055.JPG
deleted file mode 100644
index 46db01f..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0055.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0056.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0056.JPG
deleted file mode 100644
index 4cb070b..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0056.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0057.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0057.JPG
deleted file mode 100644
index d950ac2..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0057.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0058.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0058.JPG
deleted file mode 100644
index e80299e..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0058.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0059.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0059.JPG
deleted file mode 100644
index 459aabc..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0059.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0060.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0060.JPG
deleted file mode 100644
index ffb1fc7..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0060.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0061.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0061.JPG
deleted file mode 100644
index 96a0001..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0061.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0062.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0062.JPG
deleted file mode 100644
index 9258a9c..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0062.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0063.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0063.JPG
deleted file mode 100644
index ddbb0c3..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0063.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0064.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0064.JPG
deleted file mode 100644
index ca41dbf..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0064.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0065.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0065.JPG
deleted file mode 100644
index c6a211a..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0065.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0066.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0066.JPG
deleted file mode 100644
index 2245a84..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0066.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0067.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0067.JPG
deleted file mode 100644
index 99479aa..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0067.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0068.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0068.JPG
deleted file mode 100644
index a8faf8e..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0068.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0069.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0069.JPG
deleted file mode 100644
index 0a2ba0d..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0069.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0070.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0070.JPG
deleted file mode 100644
index 6edf46e..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0070.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0071.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0071.JPG
deleted file mode 100644
index 45cafd1..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0071.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0072.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0072.JPG
deleted file mode 100644
index 9c6dfab..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0072.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0073.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0073.JPG
deleted file mode 100644
index 208b70b..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0073.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0074.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0074.JPG
deleted file mode 100644
index b363275..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0074.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0075.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0075.JPG
deleted file mode 100644
index 320664a..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0075.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0076.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0076.JPG
deleted file mode 100644
index 3ae527a..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0076.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0080.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0080.JPG
deleted file mode 100644
index df48ca8..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0080.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0081.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0081.JPG
deleted file mode 100644
index 276b162..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0081.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_0082.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_0082.JPG
deleted file mode 100644
index 9d6b489..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_0082.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_2604.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_2604.JPG
deleted file mode 100644
index ec9fa8a..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_2604.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_2605.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_2605.JPG
deleted file mode 100644
index 76c7690..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_2605.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Almost there/IMG_2612.JPG b/build/projects/Decks/Hockley Valley Almost there/IMG_2612.JPG
deleted file mode 100644
index 536a51c..0000000
Binary files a/build/projects/Decks/Hockley Valley Almost there/IMG_2612.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete.html b/build/projects/Decks/Hockley Valley Complete.html
deleted file mode 100644
index 919c569..0000000
--- a/build/projects/Decks/Hockley Valley Complete.html
+++ /dev/null
@@ -1,936 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0119.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0119.JPG
deleted file mode 100644
index 3ca1e1c..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0119.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0120.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0120.JPG
deleted file mode 100644
index 44a26a7..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0120.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0121.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0121.JPG
deleted file mode 100644
index d8a294c..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0121.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0122.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0122.JPG
deleted file mode 100644
index a213365..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0122.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0123.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0123.JPG
deleted file mode 100644
index f26456f..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0123.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0124.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0124.JPG
deleted file mode 100644
index cf84a67..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0124.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0125.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0125.JPG
deleted file mode 100644
index a84a401..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0125.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0126.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0126.JPG
deleted file mode 100644
index 7e11ed7..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0126.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0127.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0127.JPG
deleted file mode 100644
index 4d192cf..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0127.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0145.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0145.JPG
deleted file mode 100644
index 5bfc1b9..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0145.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0146.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0146.JPG
deleted file mode 100644
index acb1242..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0146.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0147.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0147.JPG
deleted file mode 100644
index 1a4e417..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0147.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0148.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0148.JPG
deleted file mode 100644
index 7c08316..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0148.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0149.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0149.JPG
deleted file mode 100644
index 55ce4cd..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0149.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0150.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0150.JPG
deleted file mode 100644
index b04c522..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0150.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0151.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0151.JPG
deleted file mode 100644
index 66ac43b..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0151.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0152.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0152.JPG
deleted file mode 100644
index 5e27c79..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0152.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0153.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0153.JPG
deleted file mode 100644
index a13a237..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0153.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0154.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0154.JPG
deleted file mode 100644
index aee8b45..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0154.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0155.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0155.JPG
deleted file mode 100644
index bab1c94..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0155.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0156.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0156.JPG
deleted file mode 100644
index f24e4ea..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0156.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0157.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0157.JPG
deleted file mode 100644
index 49a60c2..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0157.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0158.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0158.JPG
deleted file mode 100644
index 071b98a..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0158.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0159.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0159.JPG
deleted file mode 100644
index c3fb0c2..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0159.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0160.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0160.JPG
deleted file mode 100644
index f373d08..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0160.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0162.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0162.JPG
deleted file mode 100644
index 276add4..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0162.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0163.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0163.JPG
deleted file mode 100644
index e5effa0..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0163.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0164.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0164.JPG
deleted file mode 100644
index f546787..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0164.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0165.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0165.JPG
deleted file mode 100644
index ef97207..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0165.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0166.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0166.JPG
deleted file mode 100644
index f6de526..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0166.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0167.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0167.JPG
deleted file mode 100644
index eacd37c..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0167.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0168.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0168.JPG
deleted file mode 100644
index 974ea05..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0168.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0169.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0169.JPG
deleted file mode 100644
index 08eb83c..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0169.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0170.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0170.JPG
deleted file mode 100644
index 9b98f05..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0170.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0171.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0171.JPG
deleted file mode 100644
index e9c2d5e..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0171.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0172.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0172.JPG
deleted file mode 100644
index fd0f20e..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0172.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0173.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0173.JPG
deleted file mode 100644
index 9bd99bf..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0173.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0174.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0174.JPG
deleted file mode 100644
index 26bf62d..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0174.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0175.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0175.JPG
deleted file mode 100644
index 6e42345..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0175.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0176.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0176.JPG
deleted file mode 100644
index 5b0b007..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0176.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0177.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0177.JPG
deleted file mode 100644
index 59bb38b..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0177.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0178.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0178.JPG
deleted file mode 100644
index 40dd1ed..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0178.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0179.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0179.JPG
deleted file mode 100644
index e493544..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0179.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0180.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0180.JPG
deleted file mode 100644
index cafa0c9..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0180.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0181.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0181.JPG
deleted file mode 100644
index 0b9e70d..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0181.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0182.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0182.JPG
deleted file mode 100644
index b22614a..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0182.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0183.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0183.JPG
deleted file mode 100644
index 5d34909..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0183.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0184.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0184.JPG
deleted file mode 100644
index 10aa128..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0184.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0185.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0185.JPG
deleted file mode 100644
index d40c3c6..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0185.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0186.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0186.JPG
deleted file mode 100644
index 647007b..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0186.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0187.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0187.JPG
deleted file mode 100644
index 5d4429d..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0187.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0188.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0188.JPG
deleted file mode 100644
index 1c55774..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0188.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0189.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0189.JPG
deleted file mode 100644
index 2ee1829..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0189.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0190.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0190.JPG
deleted file mode 100644
index 76698a3..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0190.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0191.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0191.JPG
deleted file mode 100644
index 1838f0d..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0191.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0192.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0192.JPG
deleted file mode 100644
index 72c0a74..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0192.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0193.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0193.JPG
deleted file mode 100644
index f752a44..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0193.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0194.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0194.JPG
deleted file mode 100644
index 74a2bf6..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0194.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_0195.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_0195.JPG
deleted file mode 100644
index 6dca3be..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_0195.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Complete/IMG_2577.JPG b/build/projects/Decks/Hockley Valley Complete/IMG_2577.JPG
deleted file mode 100644
index 4d46b75..0000000
Binary files a/build/projects/Decks/Hockley Valley Complete/IMG_2577.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing.html b/build/projects/Decks/Hockley Valley Framing.html
deleted file mode 100644
index 1577ab8..0000000
--- a/build/projects/Decks/Hockley Valley Framing.html
+++ /dev/null
@@ -1,506 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3062.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3062.JPG
deleted file mode 100644
index ef24b07..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3062.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3063.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3063.JPG
deleted file mode 100644
index 0fc92da..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3063.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3064.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3064.JPG
deleted file mode 100644
index 63e16dc..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3064.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3065.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3065.JPG
deleted file mode 100644
index 7b9a49d..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3065.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3066.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3066.JPG
deleted file mode 100644
index bc44918..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3066.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3067.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3067.JPG
deleted file mode 100644
index 94df94c..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3067.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3068.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3068.JPG
deleted file mode 100644
index 170bad0..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3068.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3069.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3069.JPG
deleted file mode 100644
index a210013..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3069.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3070.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3070.JPG
deleted file mode 100644
index 6fa3579..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3070.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3071.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3071.JPG
deleted file mode 100644
index 52ccbbb..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3071.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3072.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3072.JPG
deleted file mode 100644
index 47e4d15..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3072.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3073.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3073.JPG
deleted file mode 100644
index b383664..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3073.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3074.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3074.JPG
deleted file mode 100644
index 168a050..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3074.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3075.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3075.JPG
deleted file mode 100644
index 5344a84..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3075.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3076.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3076.JPG
deleted file mode 100644
index 54a9ab3..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3076.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3077.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3077.JPG
deleted file mode 100644
index 1a04a00..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3077.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley Framing/IMG_3078.JPG b/build/projects/Decks/Hockley Valley Framing/IMG_3078.JPG
deleted file mode 100644
index 407fbb5..0000000
Binary files a/build/projects/Decks/Hockley Valley Framing/IMG_3078.JPG and /dev/null differ
diff --git a/build/projects/Decks/Hockley Valley existing deck demo.html b/build/projects/Decks/Hockley Valley existing deck demo.html
deleted file mode 100644
index 8ad8c9c..0000000
--- a/build/projects/Decks/Hockley Valley existing deck demo.html
+++ /dev/null
@@ -1,786 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2828.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2828.JPG
deleted file mode 100644
index f8b655e..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2828.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2829.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2829.JPG
deleted file mode 100644
index bd505de..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2829.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2830.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2830.JPG
deleted file mode 100644
index 17fb682..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2830.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2831.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2831.JPG
deleted file mode 100644
index 4bcc86a..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2831.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2832.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2832.JPG
deleted file mode 100644
index 361525d..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2832.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2833.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2833.JPG
deleted file mode 100644
index dcfd3e3..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2833.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2834.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2834.JPG
deleted file mode 100644
index bc21bb1..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_2834.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3246.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3246.JPG
deleted file mode 100644
index 8843d1a..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3246.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3247.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3247.JPG
deleted file mode 100644
index 7e3189b..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3247.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3248.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3248.JPG
deleted file mode 100644
index 89080f9..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3248.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3249.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3249.JPG
deleted file mode 100644
index 2ddb9d9..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3249.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3250.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3250.JPG
deleted file mode 100644
index 3aace6c..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3250.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3251.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3251.JPG
deleted file mode 100644
index 04f1bdc..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3251.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3252.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3252.JPG
deleted file mode 100644
index e286a30..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3252.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3253.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3253.JPG
deleted file mode 100644
index b126f68..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3253.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3254.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3254.JPG
deleted file mode 100644
index e8f5e56..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3254.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3255.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3255.JPG
deleted file mode 100644
index ccf1e58..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3255.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3256.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3256.JPG
deleted file mode 100644
index 4142454..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3256.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3257.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3257.JPG
deleted file mode 100644
index 2ad73d3..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3257.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3258.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3258.JPG
deleted file mode 100644
index fa9e235..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3258.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3259.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3259.JPG
deleted file mode 100644
index a0bdd84..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3259.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3260.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3260.JPG
deleted file mode 100644
index d38911b..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3260.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3261.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3261.JPG
deleted file mode 100644
index 81a3283..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3261.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3262.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3262.JPG
deleted file mode 100644
index c9ece03..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3262.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3263.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3263.JPG
deleted file mode 100644
index 036ec64..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3263.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3266.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3266.JPG
deleted file mode 100644
index 4f2b172..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3266.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3267.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3267.JPG
deleted file mode 100644
index eaf201d..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3267.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3323.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3323.JPG
deleted file mode 100644
index 27f9936..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3323.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3324.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3324.JPG
deleted file mode 100644
index 79acfe7..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3324.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3325.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3325.JPG
deleted file mode 100644
index 2fba0bf..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3325.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3326.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3326.JPG
deleted file mode 100644
index a966e2d..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3326.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3327.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3327.JPG
deleted file mode 100644
index ae55ff8..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3327.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3328.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3328.JPG
deleted file mode 100644
index c7ec67d..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3328.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3329.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3329.JPG
deleted file mode 100644
index 27b5f91..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Almost there/IMG_3329.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Befores.html b/build/projects/Design Build/Yongehurst-Richmond Hill Befores.html
deleted file mode 100644
index 44692da..0000000
--- a/build/projects/Design Build/Yongehurst-Richmond Hill Befores.html
+++ /dev/null
@@ -1,1236 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1502.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1502.JPG
deleted file mode 100644
index 0d7d824..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1502.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1957.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1957.JPG
deleted file mode 100644
index 61a6017..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1957.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1958.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1958.JPG
deleted file mode 100644
index 3476b3d..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1958.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1959.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1959.JPG
deleted file mode 100644
index d2d7f86..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1959.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1960.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1960.JPG
deleted file mode 100644
index 62de710..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1960.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1961.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1961.JPG
deleted file mode 100644
index bc928e4..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Inspiration and concept/IMG_1961.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Insulation.html b/build/projects/Design Build/Yongehurst-Richmond Hill Insulation.html
deleted file mode 100644
index 731edea..0000000
--- a/build/projects/Design Build/Yongehurst-Richmond Hill Insulation.html
+++ /dev/null
@@ -1,546 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Yongehurst-Richmond Hill Steel fabrication and install
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1721.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1721.JPG
deleted file mode 100644
index 614febe..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1721.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1723.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1723.JPG
deleted file mode 100644
index 24bba9e..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1723.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1724.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1724.JPG
deleted file mode 100644
index 504b0ac..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1724.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1808.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1808.JPG
deleted file mode 100644
index a132448..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1808.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1809.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1809.JPG
deleted file mode 100644
index ed38dcd..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1809.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1810.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1810.JPG
deleted file mode 100644
index c8c275b..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1810.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1811.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1811.JPG
deleted file mode 100644
index e347e38..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1811.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1812.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1812.JPG
deleted file mode 100644
index 7d45dec..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1812.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1813.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1813.JPG
deleted file mode 100644
index fa542e4..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1813.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1814.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1814.JPG
deleted file mode 100644
index 91142e0..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1814.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1815.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1815.JPG
deleted file mode 100644
index da289fb..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1815.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1816.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1816.JPG
deleted file mode 100644
index c48db8d..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1816.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1817.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1817.JPG
deleted file mode 100644
index f2b2a1b..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1817.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1818.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1818.JPG
deleted file mode 100644
index b4f5c11..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1818.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1819.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1819.JPG
deleted file mode 100644
index 1797e17..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1819.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1821.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1821.JPG
deleted file mode 100644
index 2f658fa..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1821.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1822.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1822.JPG
deleted file mode 100644
index e01e163..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1822.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1823.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1823.JPG
deleted file mode 100644
index 3d8cd66..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1823.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1847.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1847.JPG
deleted file mode 100644
index d83082e..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1847.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1882.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1882.JPG
deleted file mode 100644
index 66ba0f0..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1882.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1883.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1883.JPG
deleted file mode 100644
index e9514b9..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1883.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1884.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1884.JPG
deleted file mode 100644
index 2f13a75..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1884.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1981.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1981.JPG
deleted file mode 100644
index f350f42..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1981.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1982.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1982.JPG
deleted file mode 100644
index 3e90a37..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_1982.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9669.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9669.JPG
deleted file mode 100644
index d1bc78e..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9669.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9726.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9726.JPG
deleted file mode 100644
index f42d9d2..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9726.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9727.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9727.JPG
deleted file mode 100644
index 9ed41ae..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9727.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9740.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9740.JPG
deleted file mode 100644
index f2a33c2..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9740.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9741.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9741.JPG
deleted file mode 100644
index 1970bda..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9741.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9742.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9742.JPG
deleted file mode 100644
index ae1d20a..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9742.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9745.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9745.JPG
deleted file mode 100644
index cb35a8c..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9745.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9746.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9746.JPG
deleted file mode 100644
index 739e198..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9746.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9747.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9747.JPG
deleted file mode 100644
index 114f399..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9747.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9869.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9869.JPG
deleted file mode 100644
index bcd79b0..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9869.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9870.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9870.JPG
deleted file mode 100644
index 56b71dc..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9870.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9871.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9871.JPG
deleted file mode 100644
index a9a1404..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9871.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9872.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9872.JPG
deleted file mode 100644
index 25e8b8c..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9872.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9873.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9873.JPG
deleted file mode 100644
index 367216a..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9873.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9874.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9874.JPG
deleted file mode 100644
index ac875c8..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9874.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9875.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9875.JPG
deleted file mode 100644
index 4547efd..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9875.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9876.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9876.JPG
deleted file mode 100644
index a24c8ea..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9876.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9877.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9877.JPG
deleted file mode 100644
index 02b8e55..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9877.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9878.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9878.JPG
deleted file mode 100644
index 24e29e9..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9878.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9879.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9879.JPG
deleted file mode 100644
index 5574af9..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9879.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9880.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9880.JPG
deleted file mode 100644
index 4864473..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9880.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9881.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9881.JPG
deleted file mode 100644
index 6b56519..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9881.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9882.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9882.JPG
deleted file mode 100644
index f69f156..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9882.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9883.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9883.JPG
deleted file mode 100644
index 0c334d1..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9883.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9884.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9884.JPG
deleted file mode 100644
index 9742c08..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9884.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9885.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9885.JPG
deleted file mode 100644
index d3019b7..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9885.JPG and /dev/null differ
diff --git a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9886.JPG b/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9886.JPG
deleted file mode 100644
index 996d0d9..0000000
Binary files a/build/projects/Design Build/Yongehurst-Richmond Hill Steel fabrication and install/IMG_9886.JPG and /dev/null differ
diff --git a/build/projects/Flagstone porch.html b/build/projects/Flagstone porch.html
deleted file mode 100644
index 08d9d22..0000000
--- a/build/projects/Flagstone porch.html
+++ /dev/null
@@ -1,345 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
");
- headerElement.text(this.config.time[key].text); // Options
- headerElement.css("font-size", Math.round(this.config.text_size * this.data.attributes.item_size));
- headerElement.css("line-height", Math.round(this.config.text_size * this.data.attributes.item_size) + "px");
- headerElement.appendTo(textElement);
-
- var numberElement = $("");
- numberElement.css("font-size", Math.round(2 * this.config.text_size * this.data.attributes.item_size));
- numberElement.css("line-height", Math.round(this.config.text_size * this.data.attributes.item_size) + "px");
- numberElement.appendTo(textElement);
-
- this.data.text_elements[key] = numberElement;
- }
-
- this.start();
- if (!this.config.start) {
- this.data.paused = true;
- }
-
- // Set up interval fallback
- var _this = this;
- this.data.interval_fallback = useWindow.setInterval(function(){
- _this.update.call(_this, true);
- }, 100);
- };
-
- TC_Instance.prototype.update = function(nodraw) {
- if(typeof nodraw === "undefined") {
- nodraw = false;
- }
- else if(nodraw && this.data.paused) {
- return;
- }
-
- if(limited_mode) {
- //Per unit clearing doesn't work in IE8 using explorer canvas, so do it in one time. The downside is that radial fade cant be used
- this.data.attributes.context.clearRect(0, 0, this.data.attributes.canvas[0].width, this.data.attributes.canvas[0].hright);
- }
- var diff, old_diff;
-
- var prevDate = this.data.prev_time;
- var curDate = new Date();
- this.data.prev_time = curDate;
-
- if (prevDate === null)
- prevDate = curDate;
-
- // If not counting past zero, and time < 0, then simply draw the zero point once, and call stop
- if (!this.config.count_past_zero) {
- if (curDate > this.data.attributes.ref_date) {
- for(var i = 0; i < this.data.drawn_units.length; i++) {
- var key = this.data.drawn_units[i];
-
- // Set the text value
- this.data.text_elements[key].text("0");
- var x = (i * this.data.attributes.item_size) + (this.data.attributes.item_size / 2);
- var y = this.data.attributes.item_size / 2;
- var color = this.config.time[key].color;
- this.drawArc(x, y, color, 0);
- }
- this.stop();
- return;
- }
- }
-
- // Compare current time with reference
- diff = (this.data.attributes.ref_date - curDate) / 1000;
- old_diff = (this.data.attributes.ref_date - prevDate) / 1000;
-
- var floor = this.config.animation !== "smooth";
-
- var visible_times = parse_times(diff, old_diff, this.data.total_duration, this.data.drawn_units, floor);
- var all_times = parse_times(diff, old_diff, secondsIn["Years"], allUnits, floor);
-
- var i = 0;
- var j = 0;
- var lastKey = null;
-
- var cur_shown = this.data.drawn_units.slice();
- for (var i in allUnits) {
- var key = allUnits[i];
-
- // Notify (all) listeners
- if (Math.floor(all_times.raw_time[key]) !== Math.floor(all_times.raw_old_time[key])) {
- this.notifyListeners(key, Math.floor(all_times.time[key]), Math.floor(diff), "all");
- }
-
- if (cur_shown.indexOf(key) < 0)
- continue;
-
- // Notify (visible) listeners
- if (Math.floor(visible_times.raw_time[key]) !== Math.floor(visible_times.raw_old_time[key])) {
- this.notifyListeners(key, Math.floor(visible_times.time[key]), Math.floor(diff), "visible");
- }
-
- if(!nodraw) {
- // Set the text value
- this.data.text_elements[key].text(Math.floor(Math.abs(visible_times.time[key])));
-
- var x = (j * this.data.attributes.item_size) + (this.data.attributes.item_size / 2);
- var y = this.data.attributes.item_size / 2;
- var color = this.config.time[key].color;
-
- if (this.config.animation === "smooth") {
- if (lastKey !== null && !limited_mode) {
- if (Math.floor(visible_times.time[lastKey]) > Math.floor(visible_times.old_time[lastKey])) {
- this.radialFade(x, y, color, 1, key);
- this.data.state.fading[key] = true;
- }
- else if (Math.floor(visible_times.time[lastKey]) < Math.floor(visible_times.old_time[lastKey])) {
- this.radialFade(x, y, color, 0, key);
- this.data.state.fading[key] = true;
- }
- }
- if (!this.data.state.fading[key]) {
- this.drawArc(x, y, color, visible_times.pct[key]);
- }
- }
- else {
- this.animateArc(x, y, color, visible_times.pct[key], visible_times.old_pct[key], (new Date()).getTime() + tick_duration);
- }
- }
- lastKey = key;
- j++;
- }
-
- // Dont request another update if we should be paused
- if(this.data.paused || nodraw) {
- return;
- }
-
- // We need this for our next frame either way
- var _this = this;
- var update = function() {
- _this.update.call(_this);
- };
-
- // Either call next update immediately, or in a second
- if (this.config.animation === "smooth") {
- // Smooth animation, Queue up the next frame
- this.data.animation_frame = useWindow.requestAnimationFrame(update, _this.element, _this);
- }
- else {
- // Tick animation, Don't queue until very slightly after the next second happens
- var delay = (diff % 1) * 1000;
- if (delay < 0)
- delay = 1000 + delay;
- delay += 50;
-
- _this.data.animation_frame = useWindow.setTimeout(function() {
- _this.data.animation_frame = useWindow.requestAnimationFrame(update, _this.element, _this);
- }, delay);
- }
- };
-
- TC_Instance.prototype.animateArc = function(x, y, color, target_pct, cur_pct, animation_end) {
- if (this.data.attributes.context === null)
- return;
-
- var diff = cur_pct - target_pct;
- if (Math.abs(diff) > 0.5) {
- if (target_pct === 0) {
- this.radialFade(x, y, color, 1);
- }
- else {
- this.radialFade(x, y, color, 0);
- }
- }
- else {
- var progress = (tick_duration - (animation_end - (new Date()).getTime())) / tick_duration;
- if (progress > 1)
- progress = 1;
-
- var pct = (cur_pct * (1 - progress)) + (target_pct * progress);
- this.drawArc(x, y, color, pct);
-
- //var show_pct =
- if (progress >= 1)
- return;
- var _this = this;
- useWindow.requestAnimationFrame(function() {
- _this.animateArc(x, y, color, target_pct, cur_pct, animation_end);
- }, this.element);
- }
- };
-
- TC_Instance.prototype.drawArc = function(x, y, color, pct) {
- if (this.data.attributes.context === null)
- return;
-
- var clear_radius = Math.max(this.data.attributes.outer_radius, this.data.attributes.item_size / 2);
- if(!limited_mode) {
- this.data.attributes.context.clearRect(
- x - clear_radius,
- y - clear_radius,
- clear_radius * 2,
- clear_radius * 2
- );
- }
-
- if (this.config.use_background) {
- this.data.attributes.context.beginPath();
- this.data.attributes.context.arc(x, y, this.data.attributes.radius, 0, 2 * Math.PI, false);
- this.data.attributes.context.lineWidth = this.data.attributes.line_width * this.config.bg_width;
-
- // line color
- this.data.attributes.context.strokeStyle = this.config.circle_bg_color;
- this.data.attributes.context.stroke();
- }
-
- // Direction
- var startAngle, endAngle, counterClockwise;
- var defaultOffset = (-0.5 * Math.PI);
- var fullCircle = 2 * Math.PI;
- startAngle = defaultOffset + (this.config.start_angle / 360 * fullCircle);
- var offset = (2 * pct * Math.PI);
-
- if (this.config.direction === "Both") {
- counterClockwise = false;
- startAngle -= (offset / 2);
- endAngle = startAngle + offset;
- }
- else {
- if (this.config.direction === "Clockwise") {
- counterClockwise = false;
- endAngle = startAngle + offset;
- }
- else {
- counterClockwise = true;
- endAngle = startAngle - offset;
- }
- }
-
- this.data.attributes.context.beginPath();
- this.data.attributes.context.arc(x, y, this.data.attributes.radius, startAngle, endAngle, counterClockwise);
- this.data.attributes.context.lineWidth = this.data.attributes.line_width;
-
- // line color
- this.data.attributes.context.strokeStyle = color;
- this.data.attributes.context.stroke();
- };
-
- TC_Instance.prototype.radialFade = function(x, y, color, from, key) {
- // TODO: Make fade_time option
- var rgb = hexToRgb(color);
- var _this = this; // We have a few inner scopes here that will need access to our instance
-
- var step = 0.2 * ((from === 1) ? -1 : 1);
- var i;
- for (i = 0; from <= 1 && from >= 0; i++) {
- // Create inner scope so our variables are not changed by the time the Timeout triggers
- (function() {
- var delay = 50 * i;
- var rgba = "rgba(" + rgb.r + ", " + rgb.g + ", " + rgb.b + ", " + (Math.round(from * 10) / 10) + ")";
- useWindow.setTimeout(function() {
- _this.drawArc(x, y, rgba, 1);
- }, delay);
- }());
- from += step;
- }
- if (typeof key !== undefined) {
- useWindow.setTimeout(function() {
- _this.data.state.fading[key] = false;
- }, 50 * i);
- }
- };
-
- TC_Instance.prototype.timeLeft = function() {
- if (this.data.paused && typeof this.data.timer === "number") {
- return this.data.timer;
- }
- var now = new Date();
- return ((this.data.attributes.ref_date - now) / 1000);
- };
-
- TC_Instance.prototype.start = function() {
- useWindow.cancelAnimationFrame(this.data.animation_frame);
- useWindow.clearTimeout(this.data.animation_frame)
-
- // Check if a date was passed in html attribute or jquery data
- var attr_data_date = $(this.element).data('date');
- if (typeof attr_data_date === "undefined") {
- attr_data_date = $(this.element).attr('data-date');
- }
- if (typeof attr_data_date === "string") {
- this.data.attributes.ref_date = parse_date(attr_data_date);
- }
- // Check if this is an unpause of a timer
- else if (typeof this.data.timer === "number") {
- if (this.data.paused) {
- this.data.attributes.ref_date = (new Date()).getTime() + (this.data.timer * 1000);
- }
- }
- else {
- // Try to get data-timer
- var attr_data_timer = $(this.element).data('timer');
- if (typeof attr_data_timer === "undefined") {
- attr_data_timer = $(this.element).attr('data-timer');
- }
- if (typeof attr_data_timer === "string") {
- attr_data_timer = parseFloat(attr_data_timer);
- }
- if (typeof attr_data_timer === "number") {
- this.data.timer = attr_data_timer;
- this.data.attributes.ref_date = (new Date()).getTime() + (attr_data_timer * 1000);
- }
- else {
- // data-timer and data-date were both not set
- // use config date
- this.data.attributes.ref_date = this.config.ref_date;
- }
- }
-
- // Start running
- this.data.paused = false;
- this.update.call(this);
- };
-
- TC_Instance.prototype.restart = function() {
- this.data.timer = false;
- this.start();
- };
-
- TC_Instance.prototype.stop = function() {
- if (typeof this.data.timer === "number") {
- this.data.timer = this.timeLeft(this);
- }
- // Stop running
- this.data.paused = true;
- useWindow.cancelAnimationFrame(this.data.animation_frame);
- };
-
- TC_Instance.prototype.destroy = function() {
- this.clearListeners();
- this.stop();
- useWindow.clearInterval(this.data.interval_fallback);
- this.data.interval_fallback = null;
-
- this.container.remove();
- $(this.element).removeAttr('data-tc-id');
- $(this.element).removeData('tc-id');
- };
-
- TC_Instance.prototype.setOptions = function(options) {
- if (this.config === null) {
- this.default_options.ref_date = new Date();
- this.config = $.extend(true, {}, this.default_options);
- }
- $.extend(true, this.config, options);
-
- // Use window.top if use_top_frame is true
- if(this.config.use_top_frame) {
- useWindow = window.top;
- }
- else {
- useWindow = window;
- }
- updateUsedWindow();
-
- this.data.total_duration = this.config.total_duration;
- if (typeof this.data.total_duration === "string") {
- if (typeof secondsIn[this.data.total_duration] !== "undefined") {
- // If set to Years, Months, Days, Hours or Minutes, fetch the secondsIn value for that
- this.data.total_duration = secondsIn[this.data.total_duration];
- }
- else if (this.data.total_duration === "Auto") {
- // If set to auto, total_duration is the size of 1 unit, of the unit type bigger than the largest shown
- for(var i = 0; i < Object.keys(this.config.time).length; i++) {
- var unit = Object.keys(this.config.time)[i];
- if (this.config.time[unit].show) {
- this.data.total_duration = secondsIn[nextUnits[unit]];
- break;
- }
- }
- }
- else {
- // If it's a string, but neither of the above, user screwed up.
- this.data.total_duration = secondsIn["Years"];
- console.error("Valid values for TimeCircles config.total_duration are either numeric, or (string) Years, Months, Days, Hours, Minutes, Auto");
- }
- }
- };
-
- TC_Instance.prototype.addListener = function(f, context, type) {
- if (typeof f !== "function")
- return;
- if (typeof type === "undefined")
- type = "visible";
- this.listeners[type].push({func: f, scope: context});
- };
-
- TC_Instance.prototype.notifyListeners = function(unit, value, total, type) {
- for (var i = 0; i < this.listeners[type].length; i++) {
- var listener = this.listeners[type][i];
- listener.func.apply(listener.scope, [unit, value, total]);
- }
- };
-
- TC_Instance.prototype.default_options = {
- ref_date: new Date(),
- start: true,
- animation: "smooth",
- count_past_zero: true,
- circle_bg_color: "#60686F",
- use_background: true,
- fg_width: 0.08,
- bg_width: 1.5,
- text_size: 0.10,
- total_duration: "Auto",
- direction: "Clockwise",
- use_top_frame: false,
- start_angle: 0.05,
- time: {
- Days: {
- show: true,
- text: "Days",
- color: "#FC6"
- },
- Hours: {
- show: true,
- text: "Hours",
- color: "#9CF"
- },
- Minutes: {
- show: true,
- text: "Minutes",
- color: "#BFB"
- },
- Seconds: {
- show: true,
- text: "Seconds",
- color: "#F99"
- }
- }
- };
-
- // Time circle class
- var TC_Class = function(elements, options) {
- this.elements = elements;
- this.options = options;
- this.foreach();
- };
-
- TC_Class.prototype.getInstance = function(element) {
- var instance;
-
- var cur_id = $(element).data("tc-id");
- if (typeof cur_id === "undefined") {
- cur_id = guid();
- $(element).attr("data-tc-id", cur_id);
- }
- if (typeof TC_Instance_List[cur_id] === "undefined") {
- var options = this.options;
- var element_options = $(element).data('options');
- if (typeof element_options === "string") {
- element_options = JSON.parse(element_options);
- }
- if (typeof element_options === "object") {
- options = $.extend(true, {}, this.options, element_options);
- }
- instance = new TC_Instance(element, options);
- TC_Instance_List[cur_id] = instance;
- }
- else {
- instance = TC_Instance_List[cur_id];
- if (typeof this.options !== "undefined") {
- instance.setOptions(this.options);
- }
- }
- return instance;
- };
-
- TC_Class.prototype.addTime = function(seconds_to_add) {
- this.foreach(function(instance) {
- instance.addTime(seconds_to_add);
- });
- };
-
- TC_Class.prototype.foreach = function(callback) {
- var _this = this;
- this.elements.each(function() {
- var instance = _this.getInstance(this);
- if (typeof callback === "function") {
- callback(instance);
- }
- });
- return this;
- };
-
- TC_Class.prototype.start = function() {
- this.foreach(function(instance) {
- instance.start();
- });
- return this;
- };
-
- TC_Class.prototype.stop = function() {
- this.foreach(function(instance) {
- instance.stop();
- });
- return this;
- };
-
- TC_Class.prototype.restart = function() {
- this.foreach(function(instance) {
- instance.restart();
- });
- return this;
- };
-
- TC_Class.prototype.rebuild = function() {
- this.foreach(function(instance) {
- instance.initialize(false);
- });
- return this;
- };
-
- TC_Class.prototype.getTime = function() {
- return this.getInstance(this.elements[0]).timeLeft();
- };
-
- TC_Class.prototype.addListener = function(f, type) {
- if (typeof type === "undefined")
- type = "visible";
- var _this = this;
- this.foreach(function(instance) {
- instance.addListener(f, _this.elements, type);
- });
- return this;
- };
-
- TC_Class.prototype.destroy = function() {
- this.foreach(function(instance) {
- instance.destroy();
- });
- return this;
- };
-
- TC_Class.prototype.end = function() {
- return this.elements;
- };
-
- $.fn.TimeCircles = function(options) {
- return new TC_Class(this, options);
- };
-}(jQuery));
diff --git a/build/static/scripts/bootstrap-datepicker.js b/build/static/scripts/bootstrap-datepicker.js
deleted file mode 100644
index e720abb..0000000
--- a/build/static/scripts/bootstrap-datepicker.js
+++ /dev/null
@@ -1,1671 +0,0 @@
-/* =========================================================
- * bootstrap-datepicker.js
- * Repo: https://github.com/eternicode/bootstrap-datepicker/
- * Demo: http://eternicode.github.io/bootstrap-datepicker/
- * Docs: http://bootstrap-datepicker.readthedocs.org/
- * Forked from http://www.eyecon.ro/bootstrap-datepicker
- * =========================================================
- * Started by Stefan Petre; improvements by Andrew Rowls + contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================= */
-
-(function($, undefined){
-
- var $window = $(window);
-
- function UTCDate(){
- return new Date(Date.UTC.apply(Date, arguments));
- }
- function UTCToday(){
- var today = new Date();
- return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());
- }
- function alias(method){
- return function(){
- return this[method].apply(this, arguments);
- };
- }
-
- var DateArray = (function(){
- var extras = {
- get: function(i){
- return this.slice(i)[0];
- },
- contains: function(d){
- // Array.indexOf is not cross-browser;
- // $.inArray doesn't work with Dates
- var val = d && d.valueOf();
- for (var i=0, l=this.length; i < l; i++)
- if (this[i].valueOf() === val)
- return i;
- return -1;
- },
- remove: function(i){
- this.splice(i,1);
- },
- replace: function(new_array){
- if (!new_array)
- return;
- if (!$.isArray(new_array))
- new_array = [new_array];
- this.clear();
- this.push.apply(this, new_array);
- },
- clear: function(){
- this.length = 0;
- },
- copy: function(){
- var a = new DateArray();
- a.replace(this);
- return a;
- }
- };
-
- return function(){
- var a = [];
- a.push.apply(a, arguments);
- $.extend(a, extras);
- return a;
- };
- })();
-
-
- // Picker object
-
- var Datepicker = function(element, options){
- this.dates = new DateArray();
- this.viewDate = UTCToday();
- this.focusDate = null;
-
- this._process_options(options);
-
- this.element = $(element);
- this.isInline = false;
- this.isInput = this.element.is('input');
- this.component = this.element.is('.date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;
- this.hasInput = this.component && this.element.find('input').length;
- if (this.component && this.component.length === 0)
- this.component = false;
-
- this.picker = $(DPGlobal.template);
- this._buildEvents();
- this._attachEvents();
-
- if (this.isInline){
- this.picker.addClass('datepicker-inline').appendTo(this.element);
- }
- else {
- this.picker.addClass('datepicker-dropdown dropdown-menu');
- }
-
- if (this.o.rtl){
- this.picker.addClass('datepicker-rtl');
- }
-
- this.viewMode = this.o.startView;
-
- if (this.o.calendarWeeks)
- this.picker.find('tfoot th.today')
- .attr('colspan', function(i, val){
- return parseInt(val) + 1;
- });
-
- this._allow_update = false;
-
- this.setStartDate(this._o.startDate);
- this.setEndDate(this._o.endDate);
- this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);
-
- this.fillDow();
- this.fillMonths();
-
- this._allow_update = true;
-
- this.update();
- this.showMode();
-
- if (this.isInline){
- this.show();
- }
- };
-
- Datepicker.prototype = {
- constructor: Datepicker,
-
- _process_options: function(opts){
- // Store raw options for reference
- this._o = $.extend({}, this._o, opts);
- // Processed options
- var o = this.o = $.extend({}, this._o);
-
- // Check if "de-DE" style date is available, if not language should
- // fallback to 2 letter code eg "de"
- var lang = o.language;
- if (!dates[lang]){
- lang = lang.split('-')[0];
- if (!dates[lang])
- lang = defaults.language;
- }
- o.language = lang;
-
- switch (o.startView){
- case 2:
- case 'decade':
- o.startView = 2;
- break;
- case 1:
- case 'year':
- o.startView = 1;
- break;
- default:
- o.startView = 0;
- }
-
- switch (o.minViewMode){
- case 1:
- case 'months':
- o.minViewMode = 1;
- break;
- case 2:
- case 'years':
- o.minViewMode = 2;
- break;
- default:
- o.minViewMode = 0;
- }
-
- o.startView = Math.max(o.startView, o.minViewMode);
-
- // true, false, or Number > 0
- if (o.multidate !== true){
- o.multidate = Number(o.multidate) || false;
- if (o.multidate !== false)
- o.multidate = Math.max(0, o.multidate);
- else
- o.multidate = 1;
- }
- o.multidateSeparator = String(o.multidateSeparator);
-
- o.weekStart %= 7;
- o.weekEnd = ((o.weekStart + 6) % 7);
-
- var format = DPGlobal.parseFormat(o.format);
- if (o.startDate !== -Infinity){
- if (!!o.startDate){
- if (o.startDate instanceof Date)
- o.startDate = this._local_to_utc(this._zero_time(o.startDate));
- else
- o.startDate = DPGlobal.parseDate(o.startDate, format, o.language);
- }
- else {
- o.startDate = -Infinity;
- }
- }
- if (o.endDate !== Infinity){
- if (!!o.endDate){
- if (o.endDate instanceof Date)
- o.endDate = this._local_to_utc(this._zero_time(o.endDate));
- else
- o.endDate = DPGlobal.parseDate(o.endDate, format, o.language);
- }
- else {
- o.endDate = Infinity;
- }
- }
-
- o.daysOfWeekDisabled = o.daysOfWeekDisabled||[];
- if (!$.isArray(o.daysOfWeekDisabled))
- o.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\s]*/);
- o.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){
- return parseInt(d, 10);
- });
-
- var plc = String(o.orientation).toLowerCase().split(/\s+/g),
- _plc = o.orientation.toLowerCase();
- plc = $.grep(plc, function(word){
- return (/^auto|left|right|top|bottom$/).test(word);
- });
- o.orientation = {x: 'auto', y: 'auto'};
- if (!_plc || _plc === 'auto')
- ; // no action
- else if (plc.length === 1){
- switch (plc[0]){
- case 'top':
- case 'bottom':
- o.orientation.y = plc[0];
- break;
- case 'left':
- case 'right':
- o.orientation.x = plc[0];
- break;
- }
- }
- else {
- _plc = $.grep(plc, function(word){
- return (/^left|right$/).test(word);
- });
- o.orientation.x = _plc[0] || 'auto';
-
- _plc = $.grep(plc, function(word){
- return (/^top|bottom$/).test(word);
- });
- o.orientation.y = _plc[0] || 'auto';
- }
- },
- _events: [],
- _secondaryEvents: [],
- _applyEvents: function(evs){
- for (var i=0, el, ch, ev; i < evs.length; i++){
- el = evs[i][0];
- if (evs[i].length === 2){
- ch = undefined;
- ev = evs[i][1];
- }
- else if (evs[i].length === 3){
- ch = evs[i][1];
- ev = evs[i][2];
- }
- el.on(ev, ch);
- }
- },
- _unapplyEvents: function(evs){
- for (var i=0, el, ev, ch; i < evs.length; i++){
- el = evs[i][0];
- if (evs[i].length === 2){
- ch = undefined;
- ev = evs[i][1];
- }
- else if (evs[i].length === 3){
- ch = evs[i][1];
- ev = evs[i][2];
- }
- el.off(ev, ch);
- }
- },
- _buildEvents: function(){
- if (this.isInput){ // single input
- this._events = [
- [this.element, {
- focus: $.proxy(this.show, this),
- keyup: $.proxy(function(e){
- if ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)
- this.update();
- }, this),
- keydown: $.proxy(this.keydown, this)
- }]
- ];
- }
- else if (this.component && this.hasInput){ // component: input + button
- this._events = [
- // For components that are not readonly, allow keyboard nav
- [this.element.find('input'), {
- focus: $.proxy(this.show, this),
- keyup: $.proxy(function(e){
- if ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)
- this.update();
- }, this),
- keydown: $.proxy(this.keydown, this)
- }],
- [this.component, {
- click: $.proxy(this.show, this)
- }]
- ];
- }
- else if (this.element.is('div')){ // inline datepicker
- this.isInline = true;
- }
- else {
- this._events = [
- [this.element, {
- click: $.proxy(this.show, this)
- }]
- ];
- }
- this._events.push(
- // Component: listen for blur on element descendants
- [this.element, '*', {
- blur: $.proxy(function(e){
- this._focused_from = e.target;
- }, this)
- }],
- // Input: listen for blur on element
- [this.element, {
- blur: $.proxy(function(e){
- this._focused_from = e.target;
- }, this)
- }]
- );
-
- this._secondaryEvents = [
- [this.picker, {
- click: $.proxy(this.click, this)
- }],
- [$(window), {
- resize: $.proxy(this.place, this)
- }],
- [$(document), {
- 'mousedown touchstart': $.proxy(function(e){
- // Clicked outside the datepicker, hide it
- if (!(
- this.element.is(e.target) ||
- this.element.find(e.target).length ||
- this.picker.is(e.target) ||
- this.picker.find(e.target).length
- )){
- this.hide();
- }
- }, this)
- }]
- ];
- },
- _attachEvents: function(){
- this._detachEvents();
- this._applyEvents(this._events);
- },
- _detachEvents: function(){
- this._unapplyEvents(this._events);
- },
- _attachSecondaryEvents: function(){
- this._detachSecondaryEvents();
- this._applyEvents(this._secondaryEvents);
- },
- _detachSecondaryEvents: function(){
- this._unapplyEvents(this._secondaryEvents);
- },
- _trigger: function(event, altdate){
- var date = altdate || this.dates.get(-1),
- local_date = this._utc_to_local(date);
-
- this.element.trigger({
- type: event,
- date: local_date,
- dates: $.map(this.dates, this._utc_to_local),
- format: $.proxy(function(ix, format){
- if (arguments.length === 0){
- ix = this.dates.length - 1;
- format = this.o.format;
- }
- else if (typeof ix === 'string'){
- format = ix;
- ix = this.dates.length - 1;
- }
- format = format || this.o.format;
- var date = this.dates.get(ix);
- return DPGlobal.formatDate(date, format, this.o.language);
- }, this)
- });
- },
-
- show: function(){
- if (!this.isInline)
- this.picker.appendTo('body');
- this.picker.show();
- this.place();
- this._attachSecondaryEvents();
- this._trigger('show');
- },
-
- hide: function(){
- if (this.isInline)
- return;
- if (!this.picker.is(':visible'))
- return;
- this.focusDate = null;
- this.picker.hide().detach();
- this._detachSecondaryEvents();
- this.viewMode = this.o.startView;
- this.showMode();
-
- if (
- this.o.forceParse &&
- (
- this.isInput && this.element.val() ||
- this.hasInput && this.element.find('input').val()
- )
- )
- this.setValue();
- this._trigger('hide');
- },
-
- remove: function(){
- this.hide();
- this._detachEvents();
- this._detachSecondaryEvents();
- this.picker.remove();
- delete this.element.data().datepicker;
- if (!this.isInput){
- delete this.element.data().date;
- }
- },
-
- _utc_to_local: function(utc){
- return utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));
- },
- _local_to_utc: function(local){
- return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));
- },
- _zero_time: function(local){
- return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());
- },
- _zero_utc_time: function(utc){
- return utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));
- },
-
- getDates: function(){
- return $.map(this.dates, this._utc_to_local);
- },
-
- getUTCDates: function(){
- return $.map(this.dates, function(d){
- return new Date(d);
- });
- },
-
- getDate: function(){
- return this._utc_to_local(this.getUTCDate());
- },
-
- getUTCDate: function(){
- return new Date(this.dates.get(-1));
- },
-
- setDates: function(){
- var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
- this.update.apply(this, args);
- this._trigger('changeDate');
- this.setValue();
- },
-
- setUTCDates: function(){
- var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
- this.update.apply(this, $.map(args, this._utc_to_local));
- this._trigger('changeDate');
- this.setValue();
- },
-
- setDate: alias('setDates'),
- setUTCDate: alias('setUTCDates'),
-
- setValue: function(){
- var formatted = this.getFormattedDate();
- if (!this.isInput){
- if (this.component){
- this.element.find('input').val(formatted).change();
- }
- }
- else {
- this.element.val(formatted).change();
- }
- },
-
- getFormattedDate: function(format){
- if (format === undefined)
- format = this.o.format;
-
- var lang = this.o.language;
- return $.map(this.dates, function(d){
- return DPGlobal.formatDate(d, format, lang);
- }).join(this.o.multidateSeparator);
- },
-
- setStartDate: function(startDate){
- this._process_options({startDate: startDate});
- this.update();
- this.updateNavArrows();
- },
-
- setEndDate: function(endDate){
- this._process_options({endDate: endDate});
- this.update();
- this.updateNavArrows();
- },
-
- setDaysOfWeekDisabled: function(daysOfWeekDisabled){
- this._process_options({daysOfWeekDisabled: daysOfWeekDisabled});
- this.update();
- this.updateNavArrows();
- },
-
- place: function(){
- if (this.isInline)
- return;
- var calendarWidth = this.picker.outerWidth(),
- calendarHeight = this.picker.outerHeight(),
- visualPadding = 10,
- windowWidth = $window.width(),
- windowHeight = $window.height(),
- scrollTop = $window.scrollTop();
-
- var zIndex = parseInt(this.element.parents().filter(function(){
- return $(this).css('z-index') !== 'auto';
- }).first().css('z-index'))+10;
- var offset = this.component ? this.component.parent().offset() : this.element.offset();
- var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);
- var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);
- var left = offset.left,
- top = offset.top;
-
- this.picker.removeClass(
- 'datepicker-orient-top datepicker-orient-bottom '+
- 'datepicker-orient-right datepicker-orient-left'
- );
-
- if (this.o.orientation.x !== 'auto'){
- this.picker.addClass('datepicker-orient-' + this.o.orientation.x);
- if (this.o.orientation.x === 'right')
- left -= calendarWidth - width;
- }
- // auto x orientation is best-placement: if it crosses a window
- // edge, fudge it sideways
- else {
- // Default to left
- this.picker.addClass('datepicker-orient-left');
- if (offset.left < 0)
- left -= offset.left - visualPadding;
- else if (offset.left + calendarWidth > windowWidth)
- left = windowWidth - calendarWidth - visualPadding;
- }
-
- // auto y orientation is best-situation: top or bottom, no fudging,
- // decision based on which shows more of the calendar
- var yorient = this.o.orientation.y,
- top_overflow, bottom_overflow;
- if (yorient === 'auto'){
- top_overflow = -scrollTop + offset.top - calendarHeight;
- bottom_overflow = scrollTop + windowHeight - (offset.top + height + calendarHeight);
- if (Math.max(top_overflow, bottom_overflow) === bottom_overflow)
- yorient = 'top';
- else
- yorient = 'bottom';
- }
- this.picker.addClass('datepicker-orient-' + yorient);
- if (yorient === 'top')
- top += height;
- else
- top -= calendarHeight + parseInt(this.picker.css('padding-top'));
-
- this.picker.css({
- top: top,
- left: left,
- zIndex: zIndex
- });
- },
-
- _allow_update: true,
- update: function(){
- if (!this._allow_update)
- return;
-
- var oldDates = this.dates.copy(),
- dates = [],
- fromArgs = false;
- if (arguments.length){
- $.each(arguments, $.proxy(function(i, date){
- if (date instanceof Date)
- date = this._local_to_utc(date);
- dates.push(date);
- }, this));
- fromArgs = true;
- }
- else {
- dates = this.isInput
- ? this.element.val()
- : this.element.data('date') || this.element.find('input').val();
- if (dates && this.o.multidate)
- dates = dates.split(this.o.multidateSeparator);
- else
- dates = [dates];
- delete this.element.data().date;
- }
-
- dates = $.map(dates, $.proxy(function(date){
- return DPGlobal.parseDate(date, this.o.format, this.o.language);
- }, this));
- dates = $.grep(dates, $.proxy(function(date){
- return (
- date < this.o.startDate ||
- date > this.o.endDate ||
- !date
- );
- }, this), true);
- this.dates.replace(dates);
-
- if (this.dates.length)
- this.viewDate = new Date(this.dates.get(-1));
- else if (this.viewDate < this.o.startDate)
- this.viewDate = new Date(this.o.startDate);
- else if (this.viewDate > this.o.endDate)
- this.viewDate = new Date(this.o.endDate);
-
- if (fromArgs){
- // setting date by clicking
- this.setValue();
- }
- else if (dates.length){
- // setting date by typing
- if (String(oldDates) !== String(this.dates))
- this._trigger('changeDate');
- }
- if (!this.dates.length && oldDates.length)
- this._trigger('clearDate');
-
- this.fill();
- },
-
- fillDow: function(){
- var dowCnt = this.o.weekStart,
- html = '
';
- if (this.o.calendarWeeks){
- var cell = '
';
- html += cell;
- this.picker.find('.datepicker-days thead tr:first-child').prepend(cell);
- }
- while (dowCnt < this.o.weekStart + 7){
- html += '
'+dates[this.o.language].daysMin[(dowCnt++)%7]+'
';
- }
- html += '
';
- this.picker.find('.datepicker-days thead').append(html);
- },
-
- fillMonths: function(){
- var html = '',
- i = 0;
- while (i < 12){
- html += ''+dates[this.o.language].monthsShort[i++]+'';
- }
- this.picker.find('.datepicker-months td').html(html);
- },
-
- setRange: function(range){
- if (!range || !range.length)
- delete this.range;
- else
- this.range = $.map(range, function(d){
- return d.valueOf();
- });
- this.fill();
- },
-
- getClassNames: function(date){
- var cls = [],
- year = this.viewDate.getUTCFullYear(),
- month = this.viewDate.getUTCMonth(),
- today = new Date();
- if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){
- cls.push('old');
- }
- else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){
- cls.push('new');
- }
- if (this.focusDate && date.valueOf() === this.focusDate.valueOf())
- cls.push('focused');
- // Compare internal UTC date with local today, not UTC today
- if (this.o.todayHighlight &&
- date.getUTCFullYear() === today.getFullYear() &&
- date.getUTCMonth() === today.getMonth() &&
- date.getUTCDate() === today.getDate()){
- cls.push('today');
- }
- if (this.dates.contains(date) !== -1)
- cls.push('active');
- if (date.valueOf() < this.o.startDate || date.valueOf() > this.o.endDate ||
- $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1){
- cls.push('disabled');
- }
- if (this.range){
- if (date > this.range[0] && date < this.range[this.range.length-1]){
- cls.push('range');
- }
- if ($.inArray(date.valueOf(), this.range) !== -1){
- cls.push('selected');
- }
- }
- return cls;
- },
-
- fill: function(){
- var d = new Date(this.viewDate),
- year = d.getUTCFullYear(),
- month = d.getUTCMonth(),
- startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
- startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
- endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
- endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
- todaytxt = dates[this.o.language].today || dates['en'].today || '',
- cleartxt = dates[this.o.language].clear || dates['en'].clear || '',
- tooltip;
- this.picker.find('.datepicker-days thead th.datepicker-switch')
- .text(dates[this.o.language].months[month]+' '+year);
- this.picker.find('tfoot th.today')
- .text(todaytxt)
- .toggle(this.o.todayBtn !== false);
- this.picker.find('tfoot th.clear')
- .text(cleartxt)
- .toggle(this.o.clearBtn !== false);
- this.updateNavArrows();
- this.fillMonths();
- var prevMonth = UTCDate(year, month-1, 28),
- day = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());
- prevMonth.setUTCDate(day);
- prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);
- var nextMonth = new Date(prevMonth);
- nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);
- nextMonth = nextMonth.valueOf();
- var html = [];
- var clsName;
- while (prevMonth.valueOf() < nextMonth){
- if (prevMonth.getUTCDay() === this.o.weekStart){
- html.push('
');
- if (this.o.calendarWeeks){
- // ISO 8601: First week contains first thursday.
- // ISO also states week starts on Monday, but we can be more abstract here.
- var
- // Start of current week: based on weekstart/current date
- ws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),
- // Thursday of this week
- th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
- // First Thursday of year, year from thursday
- yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),
- // Calendar week: ms between thursdays, div ms per day, div 7 days
- calWeek = (th - yth) / 864e5 / 7 + 1;
- html.push('
'+ calWeek +'
');
-
- }
- }
- clsName = this.getClassNames(prevMonth);
- clsName.push('day');
-
- if (this.o.beforeShowDay !== $.noop){
- var before = this.o.beforeShowDay(this._utc_to_local(prevMonth));
- if (before === undefined)
- before = {};
- else if (typeof(before) === 'boolean')
- before = {enabled: before};
- else if (typeof(before) === 'string')
- before = {classes: before};
- if (before.enabled === false)
- clsName.push('disabled');
- if (before.classes)
- clsName = clsName.concat(before.classes.split(/\s+/));
- if (before.tooltip)
- tooltip = before.tooltip;
- }
-
- clsName = $.unique(clsName);
- html.push('
'+prevMonth.getUTCDate() + '
');
- if (prevMonth.getUTCDay() === this.o.weekEnd){
- html.push('
');
- }
- prevMonth.setUTCDate(prevMonth.getUTCDate()+1);
- }
- this.picker.find('.datepicker-days tbody').empty().append(html.join(''));
-
- var months = this.picker.find('.datepicker-months')
- .find('th:eq(1)')
- .text(year)
- .end()
- .find('span').removeClass('active');
-
- $.each(this.dates, function(i, d){
- if (d.getUTCFullYear() === year)
- months.eq(d.getUTCMonth()).addClass('active');
- });
-
- if (year < startYear || year > endYear){
- months.addClass('disabled');
- }
- if (year === startYear){
- months.slice(0, startMonth).addClass('disabled');
- }
- if (year === endYear){
- months.slice(endMonth+1).addClass('disabled');
- }
-
- html = '';
- year = parseInt(year/10, 10) * 10;
- var yearCont = this.picker.find('.datepicker-years')
- .find('th:eq(1)')
- .text(year + '-' + (year + 9))
- .end()
- .find('td');
- year -= 1;
- var years = $.map(this.dates, function(d){
- return d.getUTCFullYear();
- }),
- classes;
- for (var i = -1; i < 11; i++){
- classes = ['year'];
- if (i === -1)
- classes.push('old');
- else if (i === 10)
- classes.push('new');
- if ($.inArray(year, years) !== -1)
- classes.push('active');
- if (year < startYear || year > endYear)
- classes.push('disabled');
- html += ''+year+'';
- year += 1;
- }
- yearCont.html(html);
- },
-
- updateNavArrows: function(){
- if (!this._allow_update)
- return;
-
- var d = new Date(this.viewDate),
- year = d.getUTCFullYear(),
- month = d.getUTCMonth();
- switch (this.viewMode){
- case 0:
- if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){
- this.picker.find('.prev').css({visibility: 'hidden'});
- }
- else {
- this.picker.find('.prev').css({visibility: 'visible'});
- }
- if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){
- this.picker.find('.next').css({visibility: 'hidden'});
- }
- else {
- this.picker.find('.next').css({visibility: 'visible'});
- }
- break;
- case 1:
- case 2:
- if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()){
- this.picker.find('.prev').css({visibility: 'hidden'});
- }
- else {
- this.picker.find('.prev').css({visibility: 'visible'});
- }
- if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()){
- this.picker.find('.next').css({visibility: 'hidden'});
- }
- else {
- this.picker.find('.next').css({visibility: 'visible'});
- }
- break;
- }
- },
-
- click: function(e){
- e.preventDefault();
- var target = $(e.target).closest('span, td, th'),
- year, month, day;
- if (target.length === 1){
- switch (target[0].nodeName.toLowerCase()){
- case 'th':
- switch (target[0].className){
- case 'datepicker-switch':
- this.showMode(1);
- break;
- case 'prev':
- case 'next':
- var dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);
- switch (this.viewMode){
- case 0:
- this.viewDate = this.moveMonth(this.viewDate, dir);
- this._trigger('changeMonth', this.viewDate);
- break;
- case 1:
- case 2:
- this.viewDate = this.moveYear(this.viewDate, dir);
- if (this.viewMode === 1)
- this._trigger('changeYear', this.viewDate);
- break;
- }
- this.fill();
- break;
- case 'today':
- var date = new Date();
- date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
-
- this.showMode(-2);
- var which = this.o.todayBtn === 'linked' ? null : 'view';
- this._setDate(date, which);
- break;
- case 'clear':
- var element;
- if (this.isInput)
- element = this.element;
- else if (this.component)
- element = this.element.find('input');
- if (element)
- element.val("").change();
- this.update();
- this._trigger('changeDate');
- if (this.o.autoclose)
- this.hide();
- break;
- }
- break;
- case 'span':
- if (!target.is('.disabled')){
- this.viewDate.setUTCDate(1);
- if (target.is('.month')){
- day = 1;
- month = target.parent().find('span').index(target);
- year = this.viewDate.getUTCFullYear();
- this.viewDate.setUTCMonth(month);
- this._trigger('changeMonth', this.viewDate);
- if (this.o.minViewMode === 1){
- this._setDate(UTCDate(year, month, day));
- }
- }
- else {
- day = 1;
- month = 0;
- year = parseInt(target.text(), 10)||0;
- this.viewDate.setUTCFullYear(year);
- this._trigger('changeYear', this.viewDate);
- if (this.o.minViewMode === 2){
- this._setDate(UTCDate(year, month, day));
- }
- }
- this.showMode(-1);
- this.fill();
- }
- break;
- case 'td':
- if (target.is('.day') && !target.is('.disabled')){
- day = parseInt(target.text(), 10)||1;
- year = this.viewDate.getUTCFullYear();
- month = this.viewDate.getUTCMonth();
- if (target.is('.old')){
- if (month === 0){
- month = 11;
- year -= 1;
- }
- else {
- month -= 1;
- }
- }
- else if (target.is('.new')){
- if (month === 11){
- month = 0;
- year += 1;
- }
- else {
- month += 1;
- }
- }
- this._setDate(UTCDate(year, month, day));
- }
- break;
- }
- }
- if (this.picker.is(':visible') && this._focused_from){
- $(this._focused_from).focus();
- }
- delete this._focused_from;
- },
-
- _toggle_multidate: function(date){
- var ix = this.dates.contains(date);
- if (!date){
- this.dates.clear();
- }
- else if (ix !== -1){
- this.dates.remove(ix);
- }
- else {
- this.dates.push(date);
- }
- if (typeof this.o.multidate === 'number')
- while (this.dates.length > this.o.multidate)
- this.dates.remove(0);
- },
-
- _setDate: function(date, which){
- if (!which || which === 'date')
- this._toggle_multidate(date && new Date(date));
- if (!which || which === 'view')
- this.viewDate = date && new Date(date);
-
- this.fill();
- this.setValue();
- this._trigger('changeDate');
- var element;
- if (this.isInput){
- element = this.element;
- }
- else if (this.component){
- element = this.element.find('input');
- }
- if (element){
- element.change();
- }
- if (this.o.autoclose && (!which || which === 'date')){
- this.hide();
- }
- },
-
- moveMonth: function(date, dir){
- if (!date)
- return undefined;
- if (!dir)
- return date;
- var new_date = new Date(date.valueOf()),
- day = new_date.getUTCDate(),
- month = new_date.getUTCMonth(),
- mag = Math.abs(dir),
- new_month, test;
- dir = dir > 0 ? 1 : -1;
- if (mag === 1){
- test = dir === -1
- // If going back one month, make sure month is not current month
- // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)
- ? function(){
- return new_date.getUTCMonth() === month;
- }
- // If going forward one month, make sure month is as expected
- // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)
- : function(){
- return new_date.getUTCMonth() !== new_month;
- };
- new_month = month + dir;
- new_date.setUTCMonth(new_month);
- // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11
- if (new_month < 0 || new_month > 11)
- new_month = (new_month + 12) % 12;
- }
- else {
- // For magnitudes >1, move one month at a time...
- for (var i=0; i < mag; i++)
- // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
- new_date = this.moveMonth(new_date, dir);
- // ...then reset the day, keeping it in the new month
- new_month = new_date.getUTCMonth();
- new_date.setUTCDate(day);
- test = function(){
- return new_month !== new_date.getUTCMonth();
- };
- }
- // Common date-resetting loop -- if date is beyond end of month, make it
- // end of month
- while (test()){
- new_date.setUTCDate(--day);
- new_date.setUTCMonth(new_month);
- }
- return new_date;
- },
-
- moveYear: function(date, dir){
- return this.moveMonth(date, dir*12);
- },
-
- dateWithinRange: function(date){
- return date >= this.o.startDate && date <= this.o.endDate;
- },
-
- keydown: function(e){
- if (this.picker.is(':not(:visible)')){
- if (e.keyCode === 27) // allow escape to hide and re-show picker
- this.show();
- return;
- }
- var dateChanged = false,
- dir, newDate, newViewDate,
- focusDate = this.focusDate || this.viewDate;
- switch (e.keyCode){
- case 27: // escape
- if (this.focusDate){
- this.focusDate = null;
- this.viewDate = this.dates.get(-1) || this.viewDate;
- this.fill();
- }
- else
- this.hide();
- e.preventDefault();
- break;
- case 37: // left
- case 39: // right
- if (!this.o.keyboardNavigation)
- break;
- dir = e.keyCode === 37 ? -1 : 1;
- if (e.ctrlKey){
- newDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);
- newViewDate = this.moveYear(focusDate, dir);
- this._trigger('changeYear', this.viewDate);
- }
- else if (e.shiftKey){
- newDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);
- newViewDate = this.moveMonth(focusDate, dir);
- this._trigger('changeMonth', this.viewDate);
- }
- else {
- newDate = new Date(this.dates.get(-1) || UTCToday());
- newDate.setUTCDate(newDate.getUTCDate() + dir);
- newViewDate = new Date(focusDate);
- newViewDate.setUTCDate(focusDate.getUTCDate() + dir);
- }
- if (this.dateWithinRange(newDate)){
- this.focusDate = this.viewDate = newViewDate;
- this.setValue();
- this.fill();
- e.preventDefault();
- }
- break;
- case 38: // up
- case 40: // down
- if (!this.o.keyboardNavigation)
- break;
- dir = e.keyCode === 38 ? -1 : 1;
- if (e.ctrlKey){
- newDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);
- newViewDate = this.moveYear(focusDate, dir);
- this._trigger('changeYear', this.viewDate);
- }
- else if (e.shiftKey){
- newDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);
- newViewDate = this.moveMonth(focusDate, dir);
- this._trigger('changeMonth', this.viewDate);
- }
- else {
- newDate = new Date(this.dates.get(-1) || UTCToday());
- newDate.setUTCDate(newDate.getUTCDate() + dir * 7);
- newViewDate = new Date(focusDate);
- newViewDate.setUTCDate(focusDate.getUTCDate() + dir * 7);
- }
- if (this.dateWithinRange(newDate)){
- this.focusDate = this.viewDate = newViewDate;
- this.setValue();
- this.fill();
- e.preventDefault();
- }
- break;
- case 32: // spacebar
- // Spacebar is used in manually typing dates in some formats.
- // As such, its behavior should not be hijacked.
- break;
- case 13: // enter
- focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;
- this._toggle_multidate(focusDate);
- dateChanged = true;
- this.focusDate = null;
- this.viewDate = this.dates.get(-1) || this.viewDate;
- this.setValue();
- this.fill();
- if (this.picker.is(':visible')){
- e.preventDefault();
- if (this.o.autoclose)
- this.hide();
- }
- break;
- case 9: // tab
- this.focusDate = null;
- this.viewDate = this.dates.get(-1) || this.viewDate;
- this.fill();
- this.hide();
- break;
- }
- if (dateChanged){
- if (this.dates.length)
- this._trigger('changeDate');
- else
- this._trigger('clearDate');
- var element;
- if (this.isInput){
- element = this.element;
- }
- else if (this.component){
- element = this.element.find('input');
- }
- if (element){
- element.change();
- }
- }
- },
-
- showMode: function(dir){
- if (dir){
- this.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + dir));
- }
- this.picker
- .find('>div')
- .hide()
- .filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName)
- .css('display', 'block');
- this.updateNavArrows();
- }
- };
-
- var DateRangePicker = function(element, options){
- this.element = $(element);
- this.inputs = $.map(options.inputs, function(i){
- return i.jquery ? i[0] : i;
- });
- delete options.inputs;
-
- $(this.inputs)
- .datepicker(options)
- .bind('changeDate', $.proxy(this.dateUpdated, this));
-
- this.pickers = $.map(this.inputs, function(i){
- return $(i).data('datepicker');
- });
- this.updateDates();
- };
- DateRangePicker.prototype = {
- updateDates: function(){
- this.dates = $.map(this.pickers, function(i){
- return i.getUTCDate();
- });
- this.updateRanges();
- },
- updateRanges: function(){
- var range = $.map(this.dates, function(d){
- return d.valueOf();
- });
- $.each(this.pickers, function(i, p){
- p.setRange(range);
- });
- },
- dateUpdated: function(e){
- // `this.updating` is a workaround for preventing infinite recursion
- // between `changeDate` triggering and `setUTCDate` calling. Until
- // there is a better mechanism.
- if (this.updating)
- return;
- this.updating = true;
-
- var dp = $(e.target).data('datepicker'),
- new_date = dp.getUTCDate(),
- i = $.inArray(e.target, this.inputs),
- l = this.inputs.length;
- if (i === -1)
- return;
-
- $.each(this.pickers, function(i, p){
- if (!p.getUTCDate())
- p.setUTCDate(new_date);
- });
-
- if (new_date < this.dates[i]){
- // Date being moved earlier/left
- while (i >= 0 && new_date < this.dates[i]){
- this.pickers[i--].setUTCDate(new_date);
- }
- }
- else if (new_date > this.dates[i]){
- // Date being moved later/right
- while (i < l && new_date > this.dates[i]){
- this.pickers[i++].setUTCDate(new_date);
- }
- }
- this.updateDates();
-
- delete this.updating;
- },
- remove: function(){
- $.map(this.pickers, function(p){ p.remove(); });
- delete this.element.data().datepicker;
- }
- };
-
- function opts_from_el(el, prefix){
- // Derive options from element data-attrs
- var data = $(el).data(),
- out = {}, inkey,
- replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');
- prefix = new RegExp('^' + prefix.toLowerCase());
- function re_lower(_,a){
- return a.toLowerCase();
- }
- for (var key in data)
- if (prefix.test(key)){
- inkey = key.replace(replace, re_lower);
- out[inkey] = data[key];
- }
- return out;
- }
-
- function opts_from_locale(lang){
- // Derive options from locale plugins
- var out = {};
- // Check if "de-DE" style date is available, if not language should
- // fallback to 2 letter code eg "de"
- if (!dates[lang]){
- lang = lang.split('-')[0];
- if (!dates[lang])
- return;
- }
- var d = dates[lang];
- $.each(locale_opts, function(i,k){
- if (k in d)
- out[k] = d[k];
- });
- return out;
- }
-
- var old = $.fn.datepicker;
- $.fn.datepicker = function(option){
- var args = Array.apply(null, arguments);
- args.shift();
- var internal_return;
- this.each(function(){
- var $this = $(this),
- data = $this.data('datepicker'),
- options = typeof option === 'object' && option;
- if (!data){
- var elopts = opts_from_el(this, 'date'),
- // Preliminary otions
- xopts = $.extend({}, defaults, elopts, options),
- locopts = opts_from_locale(xopts.language),
- // Options priority: js args, data-attrs, locales, defaults
- opts = $.extend({}, defaults, locopts, elopts, options);
- if ($this.is('.input-daterange') || opts.inputs){
- var ropts = {
- inputs: opts.inputs || $this.find('input').toArray()
- };
- $this.data('datepicker', (data = new DateRangePicker(this, $.extend(opts, ropts))));
- }
- else {
- $this.data('datepicker', (data = new Datepicker(this, opts)));
- }
- }
- if (typeof option === 'string' && typeof data[option] === 'function'){
- internal_return = data[option].apply(data, args);
- if (internal_return !== undefined)
- return false;
- }
- });
- if (internal_return !== undefined)
- return internal_return;
- else
- return this;
- };
-
- var defaults = $.fn.datepicker.defaults = {
- autoclose: false,
- beforeShowDay: $.noop,
- calendarWeeks: false,
- clearBtn: false,
- daysOfWeekDisabled: [],
- endDate: Infinity,
- forceParse: true,
- format: 'mm/dd/yyyy',
- keyboardNavigation: true,
- language: 'en',
- minViewMode: 0,
- multidate: false,
- multidateSeparator: ',',
- orientation: "auto",
- rtl: false,
- startDate: -Infinity,
- startView: 0,
- todayBtn: false,
- todayHighlight: false,
- weekStart: 0
- };
- var locale_opts = $.fn.datepicker.locale_opts = [
- 'format',
- 'rtl',
- 'weekStart'
- ];
- $.fn.datepicker.Constructor = Datepicker;
- var dates = $.fn.datepicker.dates = {
- en: {
- days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
- daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
- daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
- months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
- monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- today: "Today",
- clear: "Clear"
- }
- };
-
- var DPGlobal = {
- modes: [
- {
- clsName: 'days',
- navFnc: 'Month',
- navStep: 1
- },
- {
- clsName: 'months',
- navFnc: 'FullYear',
- navStep: 1
- },
- {
- clsName: 'years',
- navFnc: 'FullYear',
- navStep: 10
- }],
- isLeapYear: function(year){
- return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));
- },
- getDaysInMonth: function(year, month){
- return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
- },
- validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
- nonpunctuation: /[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,
- parseFormat: function(format){
- // IE treats \0 as a string end in inputs (truncating the value),
- // so it's a bad format delimiter, anyway
- var separators = format.replace(this.validParts, '\0').split('\0'),
- parts = format.match(this.validParts);
- if (!separators || !separators.length || !parts || parts.length === 0){
- throw new Error("Invalid date format.");
- }
- return {separators: separators, parts: parts};
- },
- parseDate: function(date, format, language){
- if (!date)
- return undefined;
- if (date instanceof Date)
- return date;
- if (typeof format === 'string')
- format = DPGlobal.parseFormat(format);
- var part_re = /([\-+]\d+)([dmwy])/,
- parts = date.match(/([\-+]\d+)([dmwy])/g),
- part, dir, i;
- if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){
- date = new Date();
- for (i=0; i < parts.length; i++){
- part = part_re.exec(parts[i]);
- dir = parseInt(part[1]);
- switch (part[2]){
- case 'd':
- date.setUTCDate(date.getUTCDate() + dir);
- break;
- case 'm':
- date = Datepicker.prototype.moveMonth.call(Datepicker.prototype, date, dir);
- break;
- case 'w':
- date.setUTCDate(date.getUTCDate() + dir * 7);
- break;
- case 'y':
- date = Datepicker.prototype.moveYear.call(Datepicker.prototype, date, dir);
- break;
- }
- }
- return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0);
- }
- parts = date && date.match(this.nonpunctuation) || [];
- date = new Date();
- var parsed = {},
- setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],
- setters_map = {
- yyyy: function(d,v){
- return d.setUTCFullYear(v);
- },
- yy: function(d,v){
- return d.setUTCFullYear(2000+v);
- },
- m: function(d,v){
- if (isNaN(d))
- return d;
- v -= 1;
- while (v < 0) v += 12;
- v %= 12;
- d.setUTCMonth(v);
- while (d.getUTCMonth() !== v)
- d.setUTCDate(d.getUTCDate()-1);
- return d;
- },
- d: function(d,v){
- return d.setUTCDate(v);
- }
- },
- val, filtered;
- setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
- setters_map['dd'] = setters_map['d'];
- date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
- var fparts = format.parts.slice();
- // Remove noop parts
- if (parts.length !== fparts.length){
- fparts = $(fparts).filter(function(i,p){
- return $.inArray(p, setters_order) !== -1;
- }).toArray();
- }
- // Process remainder
- function match_part(){
- var m = this.slice(0, parts[i].length),
- p = parts[i].slice(0, m.length);
- return m === p;
- }
- if (parts.length === fparts.length){
- var cnt;
- for (i=0, cnt = fparts.length; i < cnt; i++){
- val = parseInt(parts[i], 10);
- part = fparts[i];
- if (isNaN(val)){
- switch (part){
- case 'MM':
- filtered = $(dates[language].months).filter(match_part);
- val = $.inArray(filtered[0], dates[language].months) + 1;
- break;
- case 'M':
- filtered = $(dates[language].monthsShort).filter(match_part);
- val = $.inArray(filtered[0], dates[language].monthsShort) + 1;
- break;
- }
- }
- parsed[part] = val;
- }
- var _date, s;
- for (i=0; i < setters_order.length; i++){
- s = setters_order[i];
- if (s in parsed && !isNaN(parsed[s])){
- _date = new Date(date);
- setters_map[s](_date, parsed[s]);
- if (!isNaN(_date))
- date = _date;
- }
- }
- }
- return date;
- },
- formatDate: function(date, format, language){
- if (!date)
- return '';
- if (typeof format === 'string')
- format = DPGlobal.parseFormat(format);
- var val = {
- d: date.getUTCDate(),
- D: dates[language].daysShort[date.getUTCDay()],
- DD: dates[language].days[date.getUTCDay()],
- m: date.getUTCMonth() + 1,
- M: dates[language].monthsShort[date.getUTCMonth()],
- MM: dates[language].months[date.getUTCMonth()],
- yy: date.getUTCFullYear().toString().substring(2),
- yyyy: date.getUTCFullYear()
- };
- val.dd = (val.d < 10 ? '0' : '') + val.d;
- val.mm = (val.m < 10 ? '0' : '') + val.m;
- date = [];
- var seps = $.extend([], format.separators);
- for (var i=0, cnt = format.parts.length; i <= cnt; i++){
- if (seps.length)
- date.push(seps.shift());
- date.push(val[format.parts[i]]);
- }
- return date.join('');
- },
- headTemplate: ''+
- '
");if(r.controlsContainer){e(r.controlsContainer).append(t);r.directionNav=e("."+i+"direction-nav li a",r.controlsContainer)}else{r.append(t);r.directionNav=e("."+i+"direction-nav li a",r)}v.directionNav.update();r.directionNav.bind(u,function(t){t.preventDefault();var n;if(a===""||a===t.type){n=e(this).hasClass(i+"next")?r.getTarget("next"):r.getTarget("prev");r.flexAnimate(n,r.vars.pauseOnAction)}a===""&&(a=t.type);v.setToClearWatchedEvent()})},update:function(){var e=i+"disabled";r.pagingCount===1?r.directionNav.addClass(e).attr("tabindex","-1"):r.vars.animationLoop?r.directionNav.removeClass(e).removeAttr("tabindex"):r.animatingTo===0?r.directionNav.removeClass(e).filter("."+i+"prev").addClass(e).attr("tabindex","-1"):r.animatingTo===r.last?r.directionNav.removeClass(e).filter("."+i+"next").addClass(e).attr("tabindex","-1"):r.directionNav.removeClass(e).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=e('
");if(r.controlsContainer){e(r.controlsContainer).append(t);r.directionNav=e("."+i+"direction-nav li a",r.controlsContainer)}else{r.append(t);r.directionNav=e("."+i+"direction-nav li a",r)}v.directionNav.update();r.directionNav.bind(u,function(t){t.preventDefault();var n;if(a===""||a===t.type){n=e(this).hasClass(i+"next")?r.getTarget("next"):r.getTarget("prev");r.flexAnimate(n,r.vars.pauseOnAction)}a===""&&(a=t.type);v.setToClearWatchedEvent()})},update:function(){var e=i+"disabled";r.pagingCount===1?r.directionNav.addClass(e).attr("tabindex","-1"):r.vars.animationLoop?r.directionNav.removeClass(e).removeAttr("tabindex"):r.animatingTo===0?r.directionNav.removeClass(e).filter("."+i+"prev").addClass(e).attr("tabindex","-1"):r.animatingTo===r.last?r.directionNav.removeClass(e).filter("."+i+"next").addClass(e).attr("tabindex","-1"):r.directionNav.removeClass(e).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=e('
').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
-
- var that = this;
-
- // set dimensions
- this.container.width(this.element.width()+1);
- this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
- this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));
-
- // fix list height to match