diff --git a/.metadata/.lock b/.metadata/.lock
new file mode 100644
index 0000000..e69de29
diff --git a/.metadata/.log b/.metadata/.log
new file mode 100644
index 0000000..214e975
--- /dev/null
+++ b/.metadata/.log
@@ -0,0 +1,52 @@
+!SESSION 2016-04-18 10:03:46.534 -----------------------------------------------
+eclipse.buildId=3.6.1.201410201044
+java.version=1.6.0_65
+java.vendor=Apple Inc.
+BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
+Framework arguments: -keyring /Users/Starr/.eclipse_keyring -showlocation
+Command-line arguments: -os macosx -ws cocoa -arch x86 -keyring /Users/Starr/.eclipse_keyring -consoleLog -showlocation
+
+!ENTRY org.eclipse.core.net 1 0 2016-04-18 10:03:55.721
+!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
+!SESSION 2016-04-18 11:20:50.423 -----------------------------------------------
+eclipse.buildId=unknown
+java.version=1.6.0_65
+java.vendor=Apple Inc.
+BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
+Framework arguments: -keyring /Users/Starr/.eclipse_keyring -showlocation
+Command-line arguments: -os macosx -ws cocoa -arch x86 -keyring /Users/Starr/.eclipse_keyring -consoleLog -showlocation
+
+!ENTRY org.eclipse.core.resources 2 10035 2016-04-18 11:21:00.483
+!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
+
+!ENTRY org.eclipse.core.net 1 0 2016-04-18 11:21:01.483
+!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
+
+!ENTRY org.eclipse.core.jobs 4 2 2016-04-18 13:57:18.563
+!MESSAGE An internal error occurred during: "Sending Analytics Ping ...".
+!STACK 0
+java.lang.NullPointerException
+ at com.aptana.usage.internal.DefaultAnalyticsEventHandler.getAnalyticsLogger(DefaultAnalyticsEventHandler.java:207)
+ at com.aptana.usage.internal.DefaultAnalyticsEventHandler.sendEventSync(DefaultAnalyticsEventHandler.java:224)
+ at com.aptana.usage.internal.DefaultAnalyticsEventHandler$1.run(DefaultAnalyticsEventHandler.java:75)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
+!SESSION 2016-04-20 17:12:35.525 -----------------------------------------------
+eclipse.buildId=3.6.1.201410201044
+java.version=1.6.0_65
+java.vendor=Apple Inc.
+BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
+Framework arguments: -keyring /Users/Starr/.eclipse_keyring -showlocation
+Command-line arguments: -os macosx -ws cocoa -arch x86 -keyring /Users/Starr/.eclipse_keyring -consoleLog -showlocation
+
+!ENTRY org.eclipse.core.net 1 0 2016-04-20 17:12:43.560
+!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
+!SESSION 2016-04-22 09:35:46.915 -----------------------------------------------
+eclipse.buildId=3.6.1.201410201044
+java.version=1.6.0_65
+java.vendor=Apple Inc.
+BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
+Framework arguments: -keyring /Users/Starr/.eclipse_keyring -showlocation
+Command-line arguments: -os macosx -ws cocoa -arch x86 -keyring /Users/Starr/.eclipse_keyring -consoleLog -showlocation
+
+!ENTRY org.eclipse.core.net 1 0 2016-04-22 09:35:57.498
+!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
diff --git a/.metadata/.plugins/com.aptana.core.io/connections.2 b/.metadata/.plugins/com.aptana.core.io/connections.2
new file mode 100644
index 0000000..46f1522
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.core.io/connections.2
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.editor.common/dialog_settings.xml b/.metadata/.plugins/com.aptana.editor.common/dialog_settings.xml
new file mode 100644
index 0000000..5ca0b77
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.editor.common/dialog_settings.xml
@@ -0,0 +1,3 @@
+
+
diff --git a/.metadata/.plugins/com.aptana.index.core/114577082.index b/.metadata/.plugins/com.aptana.index.core/114577082.index
new file mode 100644
index 0000000..92f230f
Binary files /dev/null and b/.metadata/.plugins/com.aptana.index.core/114577082.index differ
diff --git a/.metadata/.plugins/com.aptana.index.core/3574646304.index b/.metadata/.plugins/com.aptana.index.core/3574646304.index
new file mode 100644
index 0000000..bac4484
Binary files /dev/null and b/.metadata/.plugins/com.aptana.index.core/3574646304.index differ
diff --git a/.metadata/.plugins/com.aptana.index.core/3575558297.index b/.metadata/.plugins/com.aptana.index.core/3575558297.index
new file mode 100644
index 0000000..3848714
Binary files /dev/null and b/.metadata/.plugins/com.aptana.index.core/3575558297.index differ
diff --git a/.metadata/.plugins/com.aptana.index.core/3814113146.index b/.metadata/.plugins/com.aptana.index.core/3814113146.index
new file mode 100644
index 0000000..bac4484
Binary files /dev/null and b/.metadata/.plugins/com.aptana.index.core/3814113146.index differ
diff --git a/.metadata/.plugins/com.aptana.index.core/4010369919.index b/.metadata/.plugins/com.aptana.index.core/4010369919.index
new file mode 100644
index 0000000..e35ab2e
Binary files /dev/null and b/.metadata/.plugins/com.aptana.index.core/4010369919.index differ
diff --git a/.metadata/.plugins/com.aptana.index.core/58249507.index b/.metadata/.plugins/com.aptana.index.core/58249507.index
new file mode 100644
index 0000000..bac4484
Binary files /dev/null and b/.metadata/.plugins/com.aptana.index.core/58249507.index differ
diff --git a/.metadata/.plugins/com.aptana.index.core/603426839.index b/.metadata/.plugins/com.aptana.index.core/603426839.index
new file mode 100644
index 0000000..bac4484
Binary files /dev/null and b/.metadata/.plugins/com.aptana.index.core/603426839.index differ
diff --git a/.metadata/.plugins/com.aptana.syncing.core/defaultConnection.2 b/.metadata/.plugins/com.aptana.syncing.core/defaultConnection.2
new file mode 100644
index 0000000..60d5857
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.syncing.core/defaultConnection.2
@@ -0,0 +1,7 @@
+
+
+
+Default
+file:/Users/Starr
+
+
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.syncing.core/sites.2 b/.metadata/.plugins/com.aptana.syncing.core/sites.2
new file mode 100644
index 0000000..dc24d7a
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.syncing.core/sites.2
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-1044362825.json b/.metadata/.plugins/com.aptana.usage/events/-1044362825.json
new file mode 100644
index 0000000..3ac6af7
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-1044362825.json
@@ -0,0 +1 @@
+{"dateTime":"1461335758539","name":"ti.start","payload":"{}","type":"ti.start"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-1339090106.json b/.metadata/.plugins/com.aptana.usage/events/-1339090106.json
new file mode 100644
index 0000000..4bcf449
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-1339090106.json
@@ -0,0 +1 @@
+{"dateTime":"1461005835450","name":"editor.closed.css","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.css.CSSSourceEditor@1dfbb9d\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-1473547606.json b/.metadata/.plugins/com.aptana.usage/events/-1473547606.json
new file mode 100644
index 0000000..982ea3d
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-1473547606.json
@@ -0,0 +1 @@
+{"dateTime":"1461005834285","name":"editor.opened.css","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.css.CSSSourceEditor@1dfbb9d\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-1686039459.json b/.metadata/.plugins/com.aptana.usage/events/-1686039459.json
new file mode 100644
index 0000000..3a0c24a
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-1686039459.json
@@ -0,0 +1 @@
+{"dateTime":"1460991837075","name":"perspective.activate.WebPerspective","payload":"{}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-1698967374.json b/.metadata/.plugins/com.aptana.usage/events/-1698967374.json
new file mode 100644
index 0000000..47cd20a
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-1698967374.json
@@ -0,0 +1 @@
+{"dateTime":"1460991836516","name":"ti.start","payload":"{}","type":"ti.start"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-1709191871.json b/.metadata/.plugins/com.aptana.usage/events/-1709191871.json
new file mode 100644
index 0000000..41a7083
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-1709191871.json
@@ -0,0 +1 @@
+{"dateTime":"1460991836650","name":"perspective.activate.WebPerspective","payload":"{}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-245009907.json b/.metadata/.plugins/com.aptana.usage/events/-245009907.json
new file mode 100644
index 0000000..a330c6b
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-245009907.json
@@ -0,0 +1 @@
+{"dateTime":"1461190591956","name":"editor.closed.js","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.js.JSSourceEditor@5e675\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-27233722.json b/.metadata/.plugins/com.aptana.usage/events/-27233722.json
new file mode 100644
index 0000000..f058595
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-27233722.json
@@ -0,0 +1 @@
+{"dateTime":"1460991866397","name":"editor.opened.css","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.css.CSSSourceEditor@1b54df4\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/-84660077.json b/.metadata/.plugins/com.aptana.usage/events/-84660077.json
new file mode 100644
index 0000000..cacec32
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/-84660077.json
@@ -0,0 +1 @@
+{"dateTime":"1461190364605","name":"ti.start","payload":"{}","type":"ti.start"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/1247312837.json b/.metadata/.plugins/com.aptana.usage/events/1247312837.json
new file mode 100644
index 0000000..54f2f76
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/1247312837.json
@@ -0,0 +1 @@
+{"dateTime":"1461190470052","name":"editor.opened.js","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.js.JSSourceEditor@1e4c2a\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/1277624133.json b/.metadata/.plugins/com.aptana.usage/events/1277624133.json
new file mode 100644
index 0000000..68b8140
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/1277624133.json
@@ -0,0 +1 @@
+{"dateTime":"1461773249047","name":"editor.opened.js","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.js.JSSourceEditor@14bcfef\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/2023304995.json b/.metadata/.plugins/com.aptana.usage/events/2023304995.json
new file mode 100644
index 0000000..d1d2361
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/2023304995.json
@@ -0,0 +1 @@
+{"dateTime":"1460996462869","name":"ti.start","payload":"{}","type":"ti.start"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/24949821.json b/.metadata/.plugins/com.aptana.usage/events/24949821.json
new file mode 100644
index 0000000..48378e5
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/24949821.json
@@ -0,0 +1 @@
+{"dateTime":"1461190517616","name":"editor.opened.js","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.js.JSSourceEditor@5e675\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/263080997.json b/.metadata/.plugins/com.aptana.usage/events/263080997.json
new file mode 100644
index 0000000..b7b11f7
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/263080997.json
@@ -0,0 +1 @@
+{"dateTime":"1461190495470","name":"editor.closed.js","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.js.JSSourceEditor@1e4c2a\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/59963425.json b/.metadata/.plugins/com.aptana.usage/events/59963425.json
new file mode 100644
index 0000000..5435a64
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/59963425.json
@@ -0,0 +1 @@
+{"dateTime":"1461190501893","name":"editor.closed.js","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.js.JSSourceEditor@4506f\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/com.aptana.usage/events/97859734.json b/.metadata/.plugins/com.aptana.usage/events/97859734.json
new file mode 100644
index 0000000..3b6c967
--- /dev/null
+++ b/.metadata/.plugins/com.aptana.usage/events/97859734.json
@@ -0,0 +1 @@
+{"dateTime":"1461005834397","name":"editor.closed.js","payload":"{\"uid\":\"8219e6fa-1701-44ab-90e5-5f2de0e99ec2\",\"instance\":\"com.aptana.editor.js.JSSourceEditor@1cc1ef4\"}","type":"app.feature"}
\ No newline at end of file
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
new file mode 100644
index 0000000..25cb955
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
new file mode 100644
index 0000000..6b2aaa7
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree
new file mode 100644
index 0000000..c87dc29
Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/com.aptana.core.io.2 b/.metadata/.plugins/org.eclipse.core.resources/.safetable/com.aptana.core.io.2
new file mode 100644
index 0000000..10d16ee
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.safetable/com.aptana.core.io.2
@@ -0,0 +1,3 @@
+#safe table
+#Mon Apr 18 13:57:18 CDT 2016
+connections=connections.2
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/com.aptana.syncing.core.2 b/.metadata/.plugins/org.eclipse.core.resources/.safetable/com.aptana.syncing.core.2
new file mode 100644
index 0000000..f9e1551
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.safetable/com.aptana.syncing.core.2
@@ -0,0 +1,4 @@
+#safe table
+#Mon Apr 18 13:57:18 CDT 2016
+defaultConnection=defaultConnection.2
+sites=sites.2
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
new file mode 100644
index 0000000..a51ea09
Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.css.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.css.core.prefs
new file mode 100644
index 0000000..78dac0e
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.css.core.prefs
@@ -0,0 +1,2 @@
+CSS_INDEX_VERSION=0.13
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.editor.common.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.editor.common.prefs
new file mode 100644
index 0000000..ebcf329
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.editor.common.prefs
@@ -0,0 +1,16 @@
+AbstractTextEditor.Color.Background=255,255,255
+AbstractTextEditor.Color.Background.SystemDefault=false
+AbstractTextEditor.Color.Foreground=0,0,0
+AbstractTextEditor.Color.Foreground.SystemDefault=false
+AbstractTextEditor.Color.SelectionForeground=0,0,0
+AbstractTextEditor.Color.SelectionForeground.SystemDefault=false
+CONFLICTING_COLOR=255,61,61
+INCOMING_COLOR=0,0,0
+OUTGOING_COLOR=0,0,0
+RESOLVED_COLOR=115,255,101
+additionIndicationColor=115,255,101
+changeIndicationColor=115,255,101
+com.aptana.editor.common.characterPairColor=127,127,127
+currentLineColor=232,242,254
+deletionIndicationColor=255,61,61
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.editor.html.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.editor.html.prefs
new file mode 100644
index 0000000..0ee3b79
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.editor.html.prefs
@@ -0,0 +1,2 @@
+HTML_INDEX_VERSION=0.14
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.js.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.js.core.prefs
new file mode 100644
index 0000000..40fbce8
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.js.core.prefs
@@ -0,0 +1,2 @@
+JS_INDEX_VERSION=0.36
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.portal.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.portal.ui.prefs
new file mode 100644
index 0000000..0a253b1
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.portal.ui.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+last_known_studio_version=3.6.2.1413590556
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.rcp.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.rcp.prefs
new file mode 100644
index 0000000..8a730c1
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.rcp.prefs
@@ -0,0 +1,3 @@
+EDITOR_LINE_NUMBER_SET=true
+WORKSPACE_ENCODING_SET=true
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.theme.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.theme.prefs
new file mode 100644
index 0000000..e7078cf
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.theme.prefs
@@ -0,0 +1,9 @@
+ACTIVE_HYPERLINK_COLOR=13,17,113
+ACTIVE_THEME=Light Studio
+HYPERLINK_COLOR=13,17,113
+THEME_CHANGED=1461335760178
+eclipse.preferences.version=1
+hyperlinkColor=13,17,113
+hyperlinkColor.SystemDefault=false
+reverted_console=true
+themes/Light\ Studio=I01vbiBBcHIgMTggMTA6MDM6NTcgQ0RUIDIwMTYKbmFtZT1MaWdodCBTdHVkaW8Kc2VsZWN0aW9uPVwjYjRkNWZmZmYKbGluZUhpZ2hsaWdodD1cI2U4ZjJmZWZmCmZvcmVncm91bmQ9XCMwMDAwMDAKYmFja2dyb3VuZD1cI2ZmZmZmZgpjYXJldD1cIzAwMDAwMAotQ29tbW9uLT1eZG9udC5tYXRjaAotQU5TSS09XmRvbnQubWF0Y2gKYW5zaS5ibHVlPVwjNTU1NWZmZmZeYW5zaS5ibHVlCmFuc2kuY3lhbj1cIzAwYmJiYmZmXmFuc2kuY3lhbgphbnNpLmdyZWVuPVwjMDBiYjAwZmZeYW5zaS5ncmVlbgphbnNpLm1hZ2VudGE9XCNiYjAwYmJmZl5hbnNpLm1hZ2VudGEKYW5zaS5yZWQ9XCNiYjAwMDBmZl5hbnNpLnJlZAphbnNpLnllbGxvdz1cI2JiYmIwMGZmXmFuc2kueWVsbG93CmFuc2kuZ3JheT1cIzk5OTk5OWZmXmFuc2kuZ3JheQotLUNvbnNvbGUtLT1eZG9udC5tYXRjaApjb25zb2xlLmVycm9yPVwjY2EwMDAwZmZeY29uc29sZS5lcnJvcgpjb25zb2xlLmlucHV0PVwjMDA1YzAwZmZeY29uc29sZS5pbnB1dApjb25zb2xlLnByb21wdD1cIzAwMDBmZmZmXmNvbnNvbGUucHJvbXB0CmNvbnNvbGUud2FybmluZz1cI2NkNjYwMGZmXmNvbnNvbGUud2FybmluZwpjb25zb2xlLmRlYnVnPVwjNWQ2NjY2ZmZeY29uc29sZS5kZWJ1ZwpoeXBlcmxpbms9XCMwZDExNzFmZl5oeXBlcmxpbmsKLS1NaXNjLi0tPV5kb250Lm1hdGNoClVuc3RhZ2VkXCBmaWxlcz1cI2ZmZmZmZmZmLFwjZmYzZDNkZmZebWFya3VwLmRlbGV0ZWQKU3RhZ2VkXCBmaWxlcz1cIzAwMDAwMGZmLFwjNzNmZjY1ZmZebWFya3VwLmluc2VydGVkCm1hcmt1cC5jaGFuZ2VkPVwjZmZmZmZmZmYsXCNmNWM0MTFmZl5tYXJrdXAuY2hhbmdlZAptYXJrdXAudW5kZXJsaW5lPXVuZGVybGluZV5tYXJrdXAudW5kZXJsaW5lCm1hcmt1cC5ib2xkPWJvbGRebWFya3VwLmJvbGQKbWFya3VwLml0YWxpYz1pdGFsaWNebWFya3VwLml0YWxpYwptZXRhLmRpZmYucmFuZ2U9XCNmZmZmZmZmZixcIzM0NjdkMWZmLGl0YWxpY15tZXRhLmRpZmYucmFuZ2UKbWV0YS5kaWZmLmluZGV4PVwjZmZmZmZmZmYsXCMzNDY3ZDFmZixpdGFsaWNebWV0YS5kaWZmLmluZGV4Cm1ldGEuc2VwYXJhdG9yLmRpZmY9XCNmZmZmZmZmZixcIzM0NjdkMWZmLGl0YWxpY15tZXRhLnNlcGFyYXRvci5kaWZmCm1ldGEuZGlmZi5oZWFkZXI9XCNmZmZmZmZmZixcIzU2ODVlM2ZmXm1ldGEuZGlmZi5oZWFkZXIKbWV0YS5zZXBhcmF0b3I9XCNmZmZmZmZmZixcIzM0NjdkMWZmXm1ldGEuc2VwYXJhdG9yCnByb3BlcnR5PVwjOTM0YjNjZmZecHJvcGVydHkKLVRoZW1lXCBTcGVjaWZpYy09XmRvbnQubWF0Y2gKLUNTUy09XmRvbnQubWF0Y2gKc3RyaW5nLnF1b3RlZC5zaW5nbGUuY3NzPVwjMDAwMGZmZmYsaXRhbGljXnN0cmluZy5xdW90ZWQuc2luZ2xlLmNzcwppbnZhbGlkLmRlcHJlY2F0ZWQuY29sb3IudzNjLW5vbi1zdGFuZGFyZC1jb2xvci1uYW1lLmNzcz1cI2RlMDAwMGZmXmludmFsaWQuZGVwcmVjYXRlZC5jb2xvci53M2Mtbm9uLXN0YW5kYXJkLWNvbG9yLW5hbWUuY3NzCmVudGl0eT1cI2EzMTUxNWZmXmVudGl0eQpzdXBwb3J0LnR5cGUucHJvcGVydHktbmFtZS5jc3M9XCNhMzE1MTVmZl5zdXBwb3J0LnR5cGUucHJvcGVydHktbmFtZS5jc3MKc3VwcG9ydC5jb25zdGFudC5wcm9wZXJ0eS12YWx1ZS5jc3M9XCNhMzE1MTVmZl5zdXBwb3J0LmNvbnN0YW50LnByb3BlcnR5LXZhbHVlLmNzcwpwdW5jdHVhdGlvbj1cIzAwMDAwMGZmLGJvbGRecHVuY3R1YXRpb24Kc3VwcG9ydC5mdW5jdGlvbi5taXNjLmNzcz1cIzAwMDBmZmZmXnN1cHBvcnQuZnVuY3Rpb24ubWlzYy5jc3MKc3VwcG9ydC5jb25zdGFudD1cIzAwMDBmZmZmXnN1cHBvcnQuY29uc3RhbnQKcHVuY3R1YXRpb24uc2VjdGlvbi5mdW5jdGlvbi5jc3M9XCMwMDAwZmZmZl5wdW5jdHVhdGlvbi5zZWN0aW9uLmZ1bmN0aW9uLmNzcwprZXl3b3JkPVwjMDAwMGZmZmZea2V5d29yZApjb25zdGFudC5vdGhlci5jb2xvci5yZ2ItdmFsdWUuY3NzPVwjMDAwMGZmZmZeY29uc3RhbnQub3RoZXIuY29sb3IucmdiLXZhbHVlLmNzcwplbnRpdHkub3RoZXIuYXR0cmlidXRlLW5hbWUuaWQuY3NzPVwjMDAwMGZmZmZeZW50aXR5Lm90aGVyLmF0dHJpYnV0ZS1uYW1lLmlkLmNzcwplbnRpdHkub3RoZXIuYXR0cmlidXRlLW5hbWUuY2xhc3MuY3NzPVwjMDAwMGZmZmZeZW50aXR5Lm90aGVyLmF0dHJpYnV0ZS1uYW1lLmNsYXNzLmNzcwpjb25zdGFudC5udW1lcmljLmNzcz1cIzAwMDBmZmZmXmNvbnN0YW50Lm51bWVyaWMuY3NzCi1KYXZhc2NyaXB0LT1eZG9udC5tYXRjaAprZXl3b3JkLmNvbnRyb2wuanM9XCMwMDAwYzBmZixib2xkXmtleXdvcmQuY29udHJvbC5qcwprZXl3b3JkLm90aGVyLmpzPVwjMDAwMGMwZmYsYm9sZF5rZXl3b3JkLm90aGVyLmpzCmNvbnN0YW50Lm51bWVyaWMuanM9XCMwMDQwODBmZl5jb25zdGFudC5udW1lcmljLmpzCnB1bmN0dWF0aW9uLnRlcm1pbmF0b3Iuc3RhdGVtZW50LmpzPVwjNWM1YzVjZmZecHVuY3R1YXRpb24udGVybWluYXRvci5zdGF0ZW1lbnQuanMKa2V5d29yZC5vcGVyYXRvci5qcz1cIzVjNWM1Y2ZmXmtleXdvcmQub3BlcmF0b3IuanMKc3RyaW5nLnF1b3RlZC5zaW5nbGUuanM9XCMwMDVjMDBmZl5zdHJpbmcucXVvdGVkLnNpbmdsZS5qcwpzdHJpbmcucXVvdGVkLmRvdWJsZS5qcz1cIzAwNWMwMGZmXnN0cmluZy5xdW90ZWQuZG91YmxlLmpzCnN0cmluZy5yZWdleHAuanM9XCM4MDAwNDBmZl5zdHJpbmcucmVnZXhwLmpzCmNvbnN0YW50Lmxhbmd1YWdlPVwjODAwMDQwZmZeY29uc3RhbnQubGFuZ3VhZ2UKaW52YWxpZD1cI2ZmMDAwMGZmXmludmFsaWQKY29tbWVudC5ibG9jay5kb2N1bWVudGF0aW9uLmpzPVwjM2Y1ZmJmZmZeY29tbWVudC5ibG9jay5kb2N1bWVudGF0aW9uLmpzCnN0b3JhZ2UudHlwZT1cIzAwMDBjMGZmLGJvbGRec3RvcmFnZS50eXBlCm1ldGEuZG9jdW1lbnRhdGlvbi50YWcuanM9XCM3MjcyYzJmZixib2xkXm1ldGEuZG9jdW1lbnRhdGlvbi50YWcuanMKLUhUTUwtPV5kb250Lm1hdGNoCmNvbW1lbnQ9XCMwMDgwMDBmZl5jb21tZW50CmludmFsaWQuaWxsZWdhbC5iYWQtYW1wZXJzYW5kLmh0bWw9XCNmZjgwODBmZl5pbnZhbGlkLmlsbGVnYWwuYmFkLWFtcGVyc2FuZC5odG1sCmNvbnN0YW50LmNoYXJhY3Rlci5lbnRpdHkuaHRtbD1cI2ZmMDAwMGZmXmNvbnN0YW50LmNoYXJhY3Rlci5lbnRpdHkuaHRtbAp0ZXh0PVwjMDAwMDAwZmZedGV4dApwdW5jdHVhdGlvbi5kZWZpbml0aW9uLnRhZz1cIzAwMDBmZmZmXnB1bmN0dWF0aW9uLmRlZmluaXRpb24udGFnCnN0cmluZz1cIzAwMDBmZmZmXnN0cmluZwplbnRpdHkub3RoZXIuYXR0cmlidXRlLW5hbWU9XCNmZjAwMDBmZl5lbnRpdHkub3RoZXIuYXR0cmlidXRlLW5hbWUKbWV0YS50YWcuc2dtbC5kb2N0eXBlPVwjMDAwMGZmZmZebWV0YS50YWcuc2dtbC5kb2N0eXBlCi1SdWJ5LT1eZG9udC5tYXRjaApHbG9iYWxcIFZhcmlhYmxlPVwjZmYwMDAwZmZedmFyaWFibGUub3RoZXIucmVhZHdyaXRlLmdsb2JhbC5ydWJ5ClN5bWJvbD1cI2ZmMDAwMGZmLGJvbGReY29uc3RhbnQub3RoZXIuc3ltYm9sLnJ1YnkKRml4bnVtPVwjMDA4MGZmZmYsYm9sZF5jb25zdGFudC5udW1lcmljLnJ1YnkKQ2xhc3NcIGFuZFwgSW5zdGFuY2VcIFZhcmlhYmxlcz1cIzAwNDA4MGZmLGJvbGRedmFyaWFibGUub3RoZXIucmVhZHdyaXRlLmNsYXNzLnJ1YnksIHZhcmlhYmxlLm90aGVyLnJlYWR3cml0ZS5pbnN0YW5jZS5ydWJ5CktleXdvcmRzPVwjYTQzNTdhZmYsYm9sZF52YXJpYWJsZS5sYW5ndWFnZS5ydWJ5LCBzb3VyY2UucnVieSBrZXl3b3JkClRhc2tcIFRhZ3M9XCM3ZjlmYmZmZixib2xkXmNvbW1lbnQubGluZS5udW1iZXItc2lnbi5ydWJ5IGtleXdvcmQub3RoZXIuZG9jdW1lbnRhdGlvbi50YXNrClJlZ2V4cD1cIzVhMWVhMGZmXnNvdXJjZS5ydWJ5IHN0cmluZy5yZWdleHAKQ29tbWFuZHM9XCMwMDgwODBmZl5zdHJpbmcuaW50ZXJwb2xhdGVkLnJ1YnkKT3BlcmF0b3JzPVwjMDAwMDAwZmZec291cmNlLnJ1Ynkga2V5d29yZC5vcGVyYXRvcgpUeXBlXCBhbmRcIE1ldGhvZFwgTmFtZXM9XCMwMDAwMDBmZl5zb3VyY2UucnVieSBlbnRpdHkubmFtZQpDb21tZW50cz1cIzNmN2Y1ZmZmXmNvbW1lbnQubGluZS5udW1iZXItc2lnbi5ydWJ5LCBjb21tZW50LmJsb2NrLmRvY3VtZW50YXRpb24ucnVieQpBbm5vdGF0aW9uXCBPdmVycmlkZVwgLVwgc2VhcmNoUmVzdWx0SW5kaWNhdGlvbj1eb3ZlcnJpZGUuc2VhcmNoUmVzdWx0SW5kaWNhdGlvbgpBbm5vdGF0aW9uXCBPdmVycmlkZVwgLVwgeG1sVGFnUGFpck9jY3VycmVuY2VJbmRpY2F0aW9uPV5vdmVycmlkZS54bWxUYWdQYWlyT2NjdXJyZW5jZUluZGljYXRpb24KQW5ub3RhdGlvblwgT3ZlcnJpZGVcIC1cIGh0bWxUYWdQYWlyT2NjdXJyZW5jZUluZGljYXRpb249Xm92ZXJyaWRlLmh0bWxUYWdQYWlyT2NjdXJyZW5jZUluZGljYXRpb24KQW5ub3RhdGlvblwgT3ZlcnJpZGVcIC1cIHJ1YnlCbG9ja1BhaXJPY2N1cnJlbmNlSW5kaWNhdGlvbj1eb3ZlcnJpZGUucnVieUJsb2NrUGFpck9jY3VycmVuY2VJbmRpY2F0aW9uCkFubm90YXRpb25cIE92ZXJyaWRlXCAtXCBweWRldk9jY3VycmVuY2VJbmRpY2F0aW9uPV5vdmVycmlkZS5weWRldk9jY3VycmVuY2VJbmRpY2F0aW9uCg\=\=
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.ui.prefs
new file mode 100644
index 0000000..2851ec6
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.aptana.ui.prefs
@@ -0,0 +1,3 @@
+IDEHasLaunchedBefore=true
+PerspectiveVersion=104
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..a97b8a7
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding=UTF-8
+refresh.enabled=true
+version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
new file mode 100644
index 0000000..f9109c4
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.debug.ui.PREF_CHANGED_VALUE_BACKGROUND=245,196,17
+org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=\n\n
+org.eclipse.debug.ui.consoleBackground=255,255,255
+org.eclipse.debug.ui.errorColor=202,0,0
+org.eclipse.debug.ui.inColor=0,92,0
+org.eclipse.debug.ui.outColor=0,0,0
+preferredTargets=default\:default|
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
new file mode 100644
index 0000000..e3043a3
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.search.potentialMatch.fgColor=153,181,217
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
new file mode 100644
index 0000000..1743fe9
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
@@ -0,0 +1,30 @@
+AbstractTextEditor.Color.Background.SystemDefault=true
+AbstractTextEditor.Color.Foreground.SystemDefault=true
+AbstractTextEditor.Color.SelectionBackground.SystemDefault=true
+AbstractTextEditor.Color.SelectionForeground.SystemDefault=true
+CONFLICTING_COLOR=255,61,61
+OccurrenceIndicationColor=153,181,217
+RESOLVED_COLOR=115,255,101
+additionIndicationColor=115,255,101
+changeIndicationColor=115,255,101
+deletionIndicationColor=255,61,61
+eclipse.preferences.version=1
+htmlTagPairOccurrenceIndication=true
+htmlTagPairOccurrenceIndicationColor=127,127,127
+htmlTagPairOccurrenceIndicationHighlighting=false
+htmlTagPairOccurrenceIndicationTextStyle=BOX
+lineNumberRuler=true
+overviewRuler_migration=migrated_3.1
+pydevOccurrenceHighlighting=false
+pydevOccurrenceIndication=true
+pydevOccurrenceIndicationColor=127,127,127
+pydevOccurrenceIndicationTextStyle=BOX
+rubyBlockPairOccurrenceIndication=true
+rubyBlockPairOccurrenceIndicationColor=127,127,127
+rubyBlockPairOccurrenceIndicationHighlighting=false
+rubyBlockPairOccurrenceIndicationTextStyle=BOX
+searchResultIndicationColor=153,181,217
+xmlTagPairOccurrenceIndication=true
+xmlTagPairOccurrenceIndicationColor=127,127,127
+xmlTagPairOccurrenceIndicationHighlighting=false
+xmlTagPairOccurrenceIndicationTextStyle=BOX
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
new file mode 100644
index 0000000..c38320a
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
@@ -0,0 +1,5 @@
+PROBLEMS_FILTERS_MIGRATE=true
+eclipse.preferences.version=1
+platformState=1453259958872
+quickStart=false
+tipsAndTricks=true
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.texteditor.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.texteditor.prefs
new file mode 100644
index 0000000..5c20d81
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.texteditor.prefs
@@ -0,0 +1,4 @@
+AbstractTextEditor.Color.Background.SystemDefault=true
+AbstractTextEditor.Color.Foreground.SystemDefault=true
+AbstractTextEditor.Color.SelectionForeground.SystemDefault=true
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
new file mode 100644
index 0000000..5f0ed23
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
@@ -0,0 +1,21 @@
+ACTIVE_HYPERLINK_COLOR=13,17,113
+HYPERLINK_COLOR=13,17,113
+com.vectrace.mercurialeclipse.ui.colorsandfonts.IgnoredBackgroundColor=255,255,255
+com.vectrace.mercurialeclipse.ui.colorsandfonts.IgnoredForegroundColor=0,0,0
+com.vectrace.mercurialeclipse.ui.colorsandfonts.addedBackgroundColor=115,255,101
+com.vectrace.mercurialeclipse.ui.colorsandfonts.addedForegroundColor=0,0,0
+com.vectrace.mercurialeclipse.ui.colorsandfonts.changedBackgroundColor=245,196,17
+com.vectrace.mercurialeclipse.ui.colorsandfonts.changedForegroundColor=255,255,255
+com.vectrace.mercurialeclipse.ui.colorsandfonts.conflictBackgroundColor=255,255,255
+com.vectrace.mercurialeclipse.ui.colorsandfonts.conflictForegroundColor=255,0,0
+com.vectrace.mercurialeclipse.ui.colorsandfonts.deletedBackgroundColor=255,61,61
+com.vectrace.mercurialeclipse.ui.colorsandfonts.deletedForegroundColor=255,255,255
+com.vectrace.mercurialeclipse.ui.colorsandfonts.removedBackgroundColor=255,61,61
+com.vectrace.mercurialeclipse.ui.colorsandfonts.removedForegroundColor=255,255,255
+com.vectrace.mercurialeclipse.ui.colorsandfonts.unknownBackgroundColor=255,255,255
+com.vectrace.mercurialeclipse.ui.colorsandfonts.unknownForegroundColor=0,0,0
+eclipse.preferences.version=1
+hyperlinkColor=13,17,113
+hyperlinkColor.SystemDefault=false
+org.eclipse.egit.ui.UncommittedChangeBackgroundColor=115,255,101
+org.eclipse.egit.ui.UncommittedChangeForegroundColor=0,0,0
diff --git a/.metadata/.plugins/org.eclipse.debug.core/.launches/Firefox - Internal Server.launch b/.metadata/.plugins/org.eclipse.debug.core/.launches/Firefox - Internal Server.launch
new file mode 100644
index 0000000..f15cac7
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.debug.core/.launches/Firefox - Internal Server.launch
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
new file mode 100644
index 0000000..a591526
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
new file mode 100644
index 0000000..289140c
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
@@ -0,0 +1,1859 @@
+
+
+
+ activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration
+ ModelMigrationProcessor.001
+
+
+
+
+
+ topLevel
+
+
+
+
+ persp.actionSet:com.aptana.browser.actionSet
+ persp.actionSet:com.aptana.ruby.debug.ui.RubyDebugActionSet
+ persp.actionSet:org.eclipse.ui.cheatsheets.actionSet
+ persp.actionSet:org.eclipse.search.searchActionSet
+ persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo
+ persp.actionSet:org.eclipse.ui.actionSet.keyBindings
+ persp.actionSet:org.eclipse.ui.actionSet.openFiles
+ persp.viewSC:com.aptana.browser.views.webbrowser
+ persp.actionSet:com.aptana.editor.common.presentation
+ persp.newWizSC:com.aptana.editor.php.NewPHPProjectWizard
+ persp.newWizSC:com.aptana.ui.wizards.NewWebProject
+ persp.actionSet:org.eclipse.debug.ui.launchActionSet
+ persp.actionSet:org.eclipse.debug.ui.breakpointActionSet
+ persp.actionSet:com.aptana.js.debug.ui.actionSet
+ persp.perspSC:org.eclipse.debug.ui.DebugPerspective
+ persp.newWizSC:com.aptana.ruby.core.ui.rubyProjectWizard
+ persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer
+ persp.viewSC:com.aptana.ui.io.remoteview
+ persp.viewSC:org.eclipse.ui.views.ContentOutline
+ persp.viewSC:com.aptana.samples.ui.SamplesView
+ persp.viewSC:com.aptana.snippets.ui.views.SnippetsView
+ persp.viewSC:com.aptana.terminal.views.terminal
+ persp.viewSC:org.eclipse.ui.console.ConsoleView
+ persp.viewSC:org.eclipse.pde.runtime.LogView
+ persp.viewSC:org.eclipse.ui.views.ProblemView
+ persp.viewSC:org.eclipse.ui.views.TaskList
+ persp.newWizSC:com.aptana.ui.wizards.new.file
+ persp.newWizSC:org.eclipse.ui.wizards.new.folder
+ persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard
+ persp.actionSet:org.eclipse.ui.NavigateActionSet
+ persp.actionSet:org.eclipse.ui.edit.text.actionSet.presentation
+ persp.actionSet:com.aptana.ui.globalActionSet
+ persp.actionSet:com.aptana.terminal.actionSet
+ persp.showIn:org.eclipse.ui.navigator.ProjectExplorer
+ persp.viewSC:com.aptana.webserver.ui.view
+ persp.viewSC:com.aptana.explorer.view
+ persp.newWizSC:org.radrails.rails.ui.projectWizard
+
+
+
+ newtablook
+
+
+
+
+
+
+
+ newtablook
+
+
+
+
+
+
+
+
+ newtablook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ View
+ categoryTag:Help
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:Help
+
+
+
+ newtablook
+ org.eclipse.e4.primaryDataStack
+ EditorStack
+ active
+
+
+ Editor
+ com.aptana.editor.js
+ removeOnHide
+ active
+
+ menuContribution:popup
+ popup:com.aptana.editor.js
+ popup:com.aptana.editor.js.EditorContext
+ popup:#AbstractTextEditorContext
+
+
+ menuContribution:popup
+ popup:#RulerContext
+ popup:com.aptana.editor.js.RulerContext
+ popup:#AbstractTextEditorRulerContext
+
+
+ menuContribution:popup
+ popup:#OverviewRulerContext
+
+
+
+
+ Editor
+ com.aptana.editor.js
+ removeOnHide
+
+ menuContribution:popup
+ popup:com.aptana.editor.js
+ popup:com.aptana.editor.js.EditorContext
+ popup:#AbstractTextEditorContext
+
+
+ menuContribution:popup
+ popup:#RulerContext
+ popup:com.aptana.editor.js.RulerContext
+ popup:#AbstractTextEditorRulerContext
+
+
+ menuContribution:popup
+ popup:#OverviewRulerContext
+
+
+
+
+
+
+ View
+ categoryTag:General
+
+ ViewMenu
+ menuContribution:menu
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu
+
+
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+
+ View
+ categoryTag:General
+
+ ViewMenu
+ menuContribution:menu
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.MessageConsole.#ContextMenu
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.MessageConsole.#ContextMenu
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.MessageConsole.#ContextMenu
+
+
+
+
+ View
+ categoryTag:Studio
+
+
+
+ View
+ categoryTag:General
+
+ ViewMenu
+ menuContribution:menu
+
+
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+
+ View
+ categoryTag:General
+
+ ViewMenu
+ menuContribution:menu
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.views.ProblemView
+ popup:org.eclipse.ui.ide.MarkersView
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.views.ProblemView
+ popup:org.eclipse.ui.ide.MarkersView
+
+
+ menuContribution:popup
+ popup:org.eclipse.ui.views.ProblemView
+ popup:org.eclipse.ui.ide.MarkersView
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+
+
+ Draggable
+
+
+
+
+
+
+
+ Draggable
+
+
+
+
+
+
+
+ Draggable
+
+
+
+
+
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+
+
+
+
+
+
+ Draggable
+
+
+ toolbarSeparator
+
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+
+
+ stretch
+
+
+ glue
+
+
+
+ glue
+
+
+ Draggable
+
+
+
+
+ stretch
+
+
+
+ Draggable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Editor
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:Studio
+
+
+ View
+ categoryTag:PyDev
+
+
+ View
+ categoryTag:PyDev
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Debug
+
+
+ View
+ categoryTag:Help
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:Team
+
+
+ View
+ categoryTag:Team
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:Help
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:General
+
+
+ View
+ categoryTag:PyDev
+
+
+ View
+ categoryTag:PyDev
+
+
+ View
+ categoryTag:PyDev
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
new file mode 100644
index 0000000..20ccf0c
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
new file mode 100644
index 0000000..9c2e316
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
@@ -0,0 +1,15 @@
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
new file mode 100644
index 0000000..6177f81
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.metadata/version.ini b/.metadata/version.ini
new file mode 100644
index 0000000..c51ff74
--- /dev/null
+++ b/.metadata/version.ini
@@ -0,0 +1 @@
+org.eclipse.core.runtime=1
\ No newline at end of file
diff --git a/main/assets/js/main.js b/main/assets/js/main.js
index 1ab0fe5..fbf32a5 100644
--- a/main/assets/js/main.js
+++ b/main/assets/js/main.js
@@ -1,6 +1,5 @@
///this is Wooden Ships Main Javascript File
//All functions are here
-
var attrArray = ["countries_1715", "countries_1783", "countries_1815"];
var expressed = attrArray[0]
@@ -97,7 +96,8 @@ function setMap(){
console.log(globals.land)
changeProjection("VDG");
-
+ console.log(globals.data)
+
}; //end of callback
};//end of set map
@@ -227,7 +227,7 @@ function changeProjection(projection, scale, center){
function getShipData(callback){
d3.csv("assets/data/british_points.csv", function(data){
- console.log(data)
+ //console.log(data)
_.each(data, function(d){
d.airTemp = +d.airTemp;
d.pressure = +d.pressure
@@ -237,12 +237,39 @@ function getShipData(callback){
d.latitude = +d.latitude;
d.longitude = +d.longitude;
d.date = new Date(d.date)
+ d.year = d.date.getFullYear()
+ d.month = d.date.getMonth()
+ d.day = d.date.getDay()
+ d.windDir = binWindDirection(d.winddirection)
})
+ //windSpeed(3, 10, d.windSpeed)
+ //globals.data.winddirection = d.winddirection
globals.data.ships = data //so we can revert later
+ //console.log(globals.data.ships)
globals.data.filteredShips = data //keep track of the most recent filtered data
if (callback){
callback(data)
}
+
+ filterByFog(globals.data.filteredShips);
+ filterByGusts(globals.data.filteredShips);
+ filterByHail(globals.data.filteredShips);
+ filterByRain(globals.data.filteredShips);
+ filterBySeaIce(globals.data.filteredShips);
+ filterBySnow(globals.data.filteredShips);
+ filterByThunder(globals.data.filteredShips);
+ filterWindSpeed(24,26,globals.data.filteredShips);
+ filterYear(1801, 1805, globals.data.filteredShips);
+ filterMonth(11, 12, globals.data.filteredShips);
+ filterSST(globals.data.filteredShips);
+ filterAirTemp(globals.data.filteredShips);
+ filterByAirTemp(22, 28, globals.data.filteredShips);
+ filterPressure(globals.data.filteredShips);
+ filterByPressure(700,750,globals.data.filteredShips)
+
+
+
+
})
}
@@ -327,8 +354,135 @@ $( "#hexSlider" ).slider({
globals.map.hexRadius = newRadius;
changeHexSize(newRadius)
}
+
+
+
+
});
+
+function filterByFog(data){
+ f = _.where(data, {fog : "True"});
+ return f;
+}
+
+function filterByGusts(data){
+ f = _.where(data, {gusts : "True"});
+ return f;
+}
+
+function filterByHail(data){
+ f = _.where(data, {hail : "True"});
+ return f;
+}
+
+function filterByRain(data){
+ f = _.where(data, {rain : "True"});
+ return f;
+}
+
+function filterBySeaIce(data){
+ f = _.where(data, {seaIce : "True"});
+ return f;
+}
+
+function filterBySnow(data){
+ f = _.where(data, {snow : "True"});
+ return f;
+}
+
+function filterByThunder(data){
+ f = _.where(data, {thunder : "True"});
+ return f;
+}
+
+
+function binWindDirection(num){
+ if (num >= 337.5 || num < 22.5) {
+ windDir = "N"
+ } else if (num >= 22.5 && num < 67.5) {
+ windDir = "NE"
+ } else if (num >= 67.5 && num < 112.5){
+ windDir = "E"
+ } else if (num >= 112.5 && num < 157.5){
+ windDir = "SE"
+ } else if (num >= 157.5 && num < 202.5){
+ windDir = "S"
+ } else if (num >= 202.5 && num < 247.5) {
+ windDir = "SW"
+ } else if (num >= 247.5 && num < 292.5) {
+ windDir = "W"
+ } else if (num >= 292.5 && num < 337.5) {
+ windDir = "NW"
+ }
+ return windDir
+}
//control hex bin size
+function filterWindSpeed(minSpeed, maxSpeed, data) {
+ f = _.filter(data, function(element){
+ if (element.windSpeed >= minSpeed && element.windSpeed <= maxSpeed)
+ return true;
+})
+ return f;
+}
+
+function filterYear(minYear, maxYear, data) {
+ f = _.filter(data, function(element){
+ if (element.year >= minYear && element.year <= maxYear)
+ return true;
+})
+ return f;
+}
+
+function filterMonth(minMonth, maxMonth, data) {
+ f = _.filter(data, function(element){
+ if (element.month >= minMonth && element.month <= maxMonth)
+ return true;
+})
+ return f;
+}
+
+function filterSST(data) {
+ f = _.filter(data, function(element){
+ if (element.sst > -1)
+ return true;
+})
+ return f;
+}
+
+//this function just returns whether AirTemp recorded
+function filterAirTemp(data) {
+ f = _.filter(data, function(element){
+ if (element.airTemp > -1)
+ return true;
+})
+ return f;
+}
+//this function takes AirTemp min and max
+function filterByAirTemp(minTemp, maxTemp, data) {
+ f = _.filter(data, function(element){
+ if (element.airTemp >= minTemp && element.airTemp <= maxTemp)
+ return true;
+})
+ return f;
+}
+//this function just returns whether Pressure recorded
+function filterPressure(data) {
+ f = _.filter(data, function(element){
+ if (element.pressure > -1)
+ return true;
+})
+ return f;
+}
+
+//this function takes Pressure min and max
+function filterByPressure(minPressure, maxPressure, data) {
+ f = _.filter(data, function(element){
+ if (element.pressure >= minPressure && element.pressure <= maxPressure)
+ return true;
+})
+ console.log(f)
+ return f;
+}
diff --git a/main/css/style.css b/main/css/style.css
new file mode 100644
index 0000000..15c8cb9
--- /dev/null
+++ b/main/css/style.css
@@ -0,0 +1,55 @@
+.land {
+ fill: none;
+ stroke: #a5967e;
+ stroke-width: 1px;
+}
+
+.countries_1715{
+ fill: #d7c7ad;
+ stroke: #766951;
+ stroke-width: .5px;
+}
+
+.countries_1783{
+ fill: gray;
+ stroke: black;
+ stroke-width: .5px;
+}
+
+.countries_1815{
+ fill: gray;
+ stroke: black;
+ stroke-width: .5px;
+}
+
+.mapContainer{
+ fill: #a4bac7;
+
+}
+
+.dropdown {
+ position: absolute;
+ top: 40px;
+ left: 425px;
+ z-index: 10;
+ font-family: baskerville;
+ font-size: 1em;
+ font-weight: bold;
+ padding: 2px;
+ border: 1px solid #999;
+ box-shadow: 2px 2px 4px #999;
+}
+
+
+.projDropdown {
+ position: absolute;
+ top: 100px;
+ left: 425px;
+ z-index: 10;
+ font-family: baskerville;
+ font-size: 1em;
+ font-weight: bold;
+ padding: 2px;
+ border: 1px solid #999;
+ box-shadow: 2px 2px 4px #999;
+}
\ No newline at end of file
diff --git a/main/js/main.js b/main/js/main.js
new file mode 100644
index 0000000..7f923f2
--- /dev/null
+++ b/main/js/main.js
@@ -0,0 +1,270 @@
+var attrArray = ["countries_1715", "countries_1783", "countries_1815"];
+var expressed = attrArray[0]
+
+
+var projArray = ["vanDerGrinten4", "equirectangular"];
+var expressedProj = projArray[0]
+console.log(expressedProj)
+
+console.log(expressed)
+//load map
+
+window.onload = setMap();
+
+//set up map and call data
+function setMap(){
+
+
+
+ //map frame dimensions
+ var width = window.innerWidth * 1,
+ height = 550;
+
+ //create new svg container for the map
+ var mapContainer = d3.select("body")
+ .append("svg")
+ .attr("class", "mapContainer")
+ .attr("width", width)
+ .attr("height", height);
+//
+ var vanDerGrinten4 = d3.geo.vanDerGrinten4()
+ .scale(125)
+ .translate([width / 2, height / 2])
+ .precision(.1);
+
+
+
+ var equirectangular = d3.geo.equirectangular()
+ .scale(153)
+ .translate([width / 2, height / 2])
+ .precision(.1);
+
+ var path = d3.geo.path()
+ .projection(equirectangular);
+
+
+
+ var path = d3.geo.path()
+ .projection(vanDerGrinten4);
+
+ //use queue.js to parallelize asynchronous data loading
+ d3_queue.queue()
+ .defer(d3.json, "data/land.topojson") //load base map data
+ .defer(d3.json, "data/cntry1715.topojson") //load overlay spatial data of countries
+ .defer(d3.json, "data/cntry1783.topojson") //load overlay spatial data of countries
+ .defer(d3.json, "data/cntry1815.topojson") //load overlay spatial data of countries
+ .await(callback);
+
+ function callback(error, base, overlay1, overlay2, overlay3){
+ console.log(error);
+ console.log(base);
+
+ //translate europe TopoJSON
+ var landBase = topojson.feature(base, base.objects.ne_110m_land),
+ countriesOverlay1 = topojson.feature(overlay1, overlay1.objects.cntry1715).features;
+ countriesOverlay2 = topojson.feature(overlay2, overlay2.objects.cntry1783).features;
+ countriesOverlay3 = topojson.feature(overlay3, overlay3.objects.cntry1815).features;
+
+ //examine the results
+ console.log(landBase);
+ //examine the results
+
+ //add France regions to map
+ var countries_1715 = mapContainer.selectAll(".countries_1715")
+ .data(countriesOverlay1)
+ .enter()
+ .append("path")
+ .attr("class", function(d){
+ return "countries_1715 " + d.properties.name;
+ })
+ .attr("d", path);
+
+ createProjDropdown(projArray)
+
+ //add France regions to map
+ // var countries_1783 = mapContainer.selectAll(".countries_1783")
+// .data(countriesOverlay2)
+// .enter()
+// .append("path")
+// .attr("class", function(d){
+// return "countries_1783 " + d.properties.name;
+// })
+// .attr("d", path);
+
+ //add France regions to map
+// var countries_1815 = mapContainer.selectAll(".countries_1815")
+// .data(countriesOverlay3)
+// .enter()
+// .append("path")
+// .attr("class", function(d){
+// return "countries_1815 " + d.properties.name;
+// })
+// .attr("d", path);
+
+ //add Europe countries to map
+ var land = mapContainer.append("path")
+ .datum(landBase)
+ .attr("class", "land")
+ .attr("d", path);
+
+ //dropdown change listener handler
+function changeAttribute(attribute){
+ //change the expressed attribute
+ expressed = attribute;
+ console.log(expressed);
+ if (expressed == attrArray[0]) {
+ console.log("hi")
+ //add France regions to map
+ var expressed = mapContainer.selectAll("." + expressed)
+ .data(countriesOverlay1)
+ .enter()
+ .append("path")
+ .attr("class", function(d){
+ return "countries_1715 " + d.properties.name;
+ })
+ .attr("d", path);
+ }
+ else if (expressed == attrArray[1]) {
+ console.log("hi")
+ //add France regions to map
+ var expressed = mapContainer.selectAll("." + expressed)
+ .data(countriesOverlay2)
+ .enter()
+ .append("path")
+ .attr("class", function(d){
+ return "countries_1783 " + d.properties.name;
+ })
+ .attr("d", path);
+ }
+ else {
+ console.log("hi")
+ var expressed = mapContainer.selectAll("." + expressed)
+ .data(countriesOverlay3)
+ .enter()
+ .append("path")
+ .attr("class", function(d){
+ return "countries_1815 " + d.properties.name;
+ })
+ .attr("d", path);
+
+ }
+
+
+};
+
+
+//function to create a dropdown menu for attribute selection
+function createDropdown(attrArray){
+ //add select element
+ var dropdown = d3.select("body")
+ .append("select")
+ .attr("class", "dropdown")
+ .on("change", function(){
+ changeAttribute(this.value)
+ });
+
+ //add initial option
+ var titleOption = dropdown.append("option")
+ .attr("class", "titleOption")
+ .attr("disabled", "true")
+ .text("Select Year");
+
+ //add attribute name options
+ var attrOptions = dropdown.selectAll("attrOptions")
+ .data(attrArray)
+ .enter()
+ .append("option")
+ .attr("value", function(d){ return d })
+ .text(function(d){ return d });
+};
+
+ createDropdown(attrArray);
+
+function createProjDropdown(projArray){
+ //add select element
+ var projDropdown = d3.select("body")
+ .append("select")
+ .attr("class", "projDropdown")
+ .on("change", function(){
+ changeProjAttribute(this.value, projArray)
+ });
+
+ //add initial option
+ var titleOption = projDropdown.append("option")
+ .attr("class", "titleOption")
+ .attr("disabled", "true")
+ .text("Select Projection");
+
+ //add attribute name options
+ var attrOptions = projDropdown.selectAll("attrOptions")
+ .data(projArray)
+ .enter()
+ .append("option")
+ .attr("value", function(d){ return d })
+ .text(function(d){ return d });
+};
+
+//dropdown change listener handler
+function changeProjAttribute(projAttribute, projArray){
+ //change the expressed attribute
+ expressedProj = projAttribute;
+ console.log(expressedProj)
+
+ if (expressedProj = "equirectangular") {
+ console.log("changed")
+ var equirectangular = d3.geo.equirectangular()
+ .scale(153)
+ .translate([width / 2, height / 2])
+ .precision(.1);
+
+ var path = d3.geo.path()
+ .projection(equirectangular);
+ }
+};
+
+
+ };
+};
+
+
+
+
+
+
+// set_projection(new Option("Mercator", "mercator", false, false));
+//
+// function set_projection(option) {
+// proj = option.value
+//
+// projection = eval("d3.geo."+proj+"();");
+//
+// path = d3.geo.path()
+// .projection(projection);
+//
+// svg.countries_1715.selectAll("path").transition()
+// .duration(1000)
+// .attr("d", path);
+// }
+//
+// function projection_selected(e){
+// set_projection(e.target[e.target.selectedIndex])
+// }
+//
+// var newSelect = document.createElement("select");
+// newSelect.id = "selectlistid"; // add some attributes
+// newSelect.onchange = projection_selected; // call the somethingChanged function when a change is made
+// newSelect[newSelect.length] = new Option("Aitoff","aitoff",false, false)
+// newSelect[newSelect.length] = new Option("Albers equal-area conic","albers",false, false);
+// newSelect[newSelect.length] = new Option("Armadillo","armadillo",false, false);
+// newSelect[newSelect.length] = new Option("August conformal","august",false, false);
+// newSelect[newSelect.length] = new Option("Lambert azimuthal equal-area","azimuthalEqualArea",false, false);
+// newSelect[newSelect.length] = new Option("azimuthal equidistant","azimuthalEquidistant",false, false);
+// newSelect[newSelect.length] = new Option("Baker Dinomic","baker",false, false);
+// newSelect[newSelect.length] = new Option("Berghaus Star","berghaus",false, false);
+// newSelect[newSelect.length] = new Option("Boggs eumorphic","boggs",false, false);
+// newSelect[newSelect.length] = new Option("Bonne","bonne",false, false);
+//
+// newSelect[newSelect.length] = new Option("Mercator","mercator",false, true);
+//
+// //document.getElementById('myDiv').appendChild(newSelect); // myDiv is the container to hold the select list
+//
diff --git a/main/prepros.cfg b/main/prepros.cfg
index 4a5f709..ec07579 100644
--- a/main/prepros.cfg
+++ b/main/prepros.cfg
@@ -211,6 +211,38 @@
"imported": false,
"parents": [],
"type": "javascript"
+ },
+ "50ef0fa9": {
+ "id": "50ef0fa9",
+ "path": "js/main.js",
+ "output": "js/main-dist.js",
+ "name": "main.js",
+ "category": "JS",
+ "autoCompile": false,
+ "uglify": true,
+ "mangle": true,
+ "babel": false,
+ "sourceMaps": false,
+ "customOutput": false,
+ "imported": false,
+ "parents": [],
+ "type": "javascript"
+ },
+ "0c7b55b5": {
+ "id": "0c7b55b5",
+ "path": "css/style.css",
+ "output": "css/style-dist.css",
+ "name": "style.css",
+ "category": "CSS",
+ "autoCompile": false,
+ "sourceMaps": false,
+ "compress": true,
+ "cssnext": false,
+ "autoprefixer": false,
+ "customOutput": false,
+ "imported": false,
+ "parents": [],
+ "type": "css"
}
},
"deploymentHistory": {},