Permalink
Browse files

landing

  • Loading branch information...
vesparny committed Feb 18, 2014
1 parent 0252bb9 commit 00c41bece288d1a11a412778471253c6d492c74f
View

Large diffs are not rendered by default.

Oops, something went wrong.
View

Large diffs are not rendered by default.

Oops, something went wrong.
View

Large diffs are not rendered by default.

Oops, something went wrong.
View
@@ -0,0 +1,32 @@
+body {
+ font-family:"Open Sans", sans;
+}
+h1, h2, h3, h4, h5, h6 {
+ font-family:"Josefin Sans", sans;
+ color: #1e1766;
+ font-weight:bold;
+}
+.err {
+ color:#FF4136;
+ font-weight: bold;
+}
+.succ {
+ color:#2ECC40;
+ font-weight: bold;
+}
+html, body {
+ height: 100%;
+}
+body {
+ font-weight: 300;
+}
+header, p {
+ padding: 20px 0;
+}
+footer {
+ padding: 20px 0;
+ border-top: 1px solid #3fa9f5;
+}
+i {
+ font-size:30px;
+}
View
Binary file not shown.
View
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
+<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
+<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
+<!--[if gt IE 8]><!-->
+<html class="no-js">
+<!--<![endif]-->
+
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <title>Poseidon: Web publishing for all of us.</title>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <meta name="description" content="Poseidon is the next generation publishing platform for everyone. Simple, clean, powerful, and modern." />
+ <meta name="keywords" content="publishing, open source, web publishing, content management, content management system, cms, weblog, blog" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
+ <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700,600,300,800' rel='stylesheet' type='text/css'>
+ <link href='http://fonts.googleapis.com/css?family=Josefin+Sans' rel='stylesheet' type='text/css'>
+ <link href='http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.css' rel='stylesheet' type='text/css'>
+
+
+ <link rel="stylesheet" href="css/normalize.css">
+ <link rel="stylesheet" href="css/foundation.min.css">
+
+ <link rel="stylesheet" href="css/style.css">
+ <script src="js/vendor/custom.modernizr.js"></script>
+</head>
+
+<body>
+ <!--[if lt IE 7]>
+ <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
+ <![endif]-->
+ <header>
+ <div class="row">
+ <div class="large-6 medium-6 columns large-centered">
+ <a href="http://getposeidon.org">
+ <img src="img/logo.png" class="logo" alt="Poseidon logo" />
+ </a>
+ </div>
+ </div>
+ </header>
+ <div class="row">
+ <div class="large-6 columns large-centered text-center">
+ <h2>web publishing for all of us</h2>
+ <p>
+ Poseidon is a free publishing platform that will leverage modern technologies and best practices to provide a powerful, flexible and simple foundation for any website: corporate websites, blogs, community sites, artist profiles, sports clubs, and many more. You can read more on our <a href="http://blog.getposeidon.org">blog</a>.
+ </p>
+ </div>
+
+ </div>
+
+ <div class="row">
+ <div class="large-6 columns large-centered text-center">
+ <h2>get notified</h2>
+ <p>
+ Let us know if you would like to know when we start making builds of Poseidon available.
+ </p>
+
+ <div id="sub">
+ <form id="subscribe" novalidate>
+
+ <input type="email" id="email" required name="email" placeholder="Email" />
+ <button type="submit" id="subscribeBtn" class="btn expand">Subscribe</button>
+ </form>
+ </div>
+ </div>
+
+ </div>
+
+ <footer class="text-center">
+ <div class="row">
+ <div class="large-12">
+ <a href="http://www.twitter.com/getposeidon" title="follow us on twitter"><i class="fa fa-twitter"></i></a>
+ </div>
+ </div>
+ </footer>
+ <script src="js/vendor/jquery.js"></script>
+ <script src="js/vendor/fastclick.js"></script>
+ <script src="js/app.js"></script>
+</body>
+
+</html>
View
@@ -0,0 +1,28 @@
+(function($) {
+ function submit(e) {
+ e.preventDefault();
+ var email = $("#email").val();
+ var re = /^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/
+
+ if (re.test(email)) {
+ $.ajax({
+ type: "POST",
+ url: "/subscribe.php",
+ data: $("#subscribe").serializeArray(),
+ success: function(data) {
+ $("#sub").html(data).addClass("succ");
+ },
+ error: function(data) {
+ $("#sub").html(data).addClass("err");
+ }
+ })
+ } else {
+ $("#sub .mess").remove();
+ $("#sub").append("<div class='mess err'>Insert a valid email address.</div>");
+ }
+
+
+ }
+
+ $("#subscribe").submit(submit);
+})(jQuery);
@@ -0,0 +1,201 @@
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.abide = {
+ name : 'abide',
+
+ version : '5.0.0',
+
+ settings : {
+ focus_on_invalid : true,
+ timeout : 1000,
+ patterns : {
+ alpha: /[a-zA-Z]+/,
+ alpha_numeric : /[a-zA-Z0-9]+/,
+ integer: /-?\d+/,
+ number: /-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?/,
+
+ // generic password: upper-case, lower-case, number/special character, and min 8 characters
+ password : /(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/,
+
+ // amex, visa, diners
+ card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
+ cvv : /^([0-9]){3,4}$/,
+
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+ email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
+
+ url: /(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?/,
+ // abc.de
+ domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/,
+
+ datetime: /([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))/,
+ // YYYY-MM-DD
+ date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))/,
+ // HH:MM:SS
+ time : /(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}/,
+ dateISO: /\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/,
+ // MM/DD/YYYY
+ month_day_year : /(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d/,
+
+ // #FFF or #FFFFFF
+ color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
+ }
+ },
+
+ timer : null,
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ form = $(scope).attr('novalidate', 'novalidate'),
+ settings = form.data('abide-init');
+
+ form
+ .off('.abide')
+ .on('submit.fndtn.abide validate.fndtn.abide', function (e) {
+ var is_ajax = /ajax/i.test($(this).attr('data-abide'));
+ return self.validate($(this).find('input, textarea, select').get(), e, is_ajax);
+ })
+ .find('input, textarea, select')
+ .off('.abide')
+ .on('blur.fndtn.abide change.fndtn.abide', function (e) {
+ self.validate([this], e);
+ })
+ .on('keydown.fndtn.abide', function (e) {
+ var settings = $(this).closest('form').data('abide-init');
+ clearTimeout(self.timer);
+ self.timer = setTimeout(function () {
+ self.validate([this], e);
+ }.bind(this), settings.timeout);
+ });
+ },
+
+ validate : function (els, e, is_ajax) {
+ var validations = this.parse_patterns(els),
+ validation_count = validations.length,
+ form = $(els[0]).closest('form'),
+ submit_event = /submit/.test(e.type);
+
+ for (var i=0; i < validation_count; i++) {
+ if (!validations[i] && (submit_event || is_ajax)) {
+ if (this.settings.focus_on_invalid) els[i].focus();
+ form.trigger('invalid');
+ $(els[i]).closest('form').attr('data-invalid', '');
+ return false;
+ }
+ }
+
+ if (submit_event || is_ajax) {
+ form.trigger('valid');
+ }
+
+ form.removeAttr('data-invalid');
+
+ if (is_ajax) return false;
+
+ return true;
+ },
+
+ parse_patterns : function (els) {
+ var count = els.length,
+ el_patterns = [];
+
+ for (var i = count - 1; i >= 0; i--) {
+ el_patterns.push(this.pattern(els[i]));
+ }
+
+ return this.check_validation_and_apply_styles(el_patterns);
+ },
+
+ pattern : function (el) {
+ var type = el.getAttribute('type'),
+ required = typeof el.getAttribute('required') === 'string';
+
+ if (this.settings.patterns.hasOwnProperty(type)) {
+ return [el, this.settings.patterns[type], required];
+ }
+
+ var pattern = el.getAttribute('pattern') || '';
+
+ if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
+ return [el, this.settings.patterns[pattern], required];
+ } else if (pattern.length > 0) {
+ return [el, new RegExp(pattern), required];
+ }
+
+ pattern = /.*/;
+
+ return [el, pattern, required];
+ },
+
+ check_validation_and_apply_styles : function (el_patterns) {
+ var count = el_patterns.length,
+ validations = [];
+
+ for (var i = count - 1; i >= 0; i--) {
+ var el = el_patterns[i][0],
+ required = el_patterns[i][2],
+ value = el.value,
+ is_equal = el.getAttribute('data-equalto'),
+ is_radio = el.type === "radio",
+ valid_length = (required) ? (el.value.length > 0) : true;
+
+ if (is_radio && required) {
+ validations.push(this.valid_radio(el, required));
+ } else if (is_equal && required) {
+ validations.push(this.valid_equal(el, required));
+ } else {
+ if (el_patterns[i][1].test(value) && valid_length ||
+ !required && el.value.length < 1) {
+ $(el).removeAttr('data-invalid').parent().removeClass('error');
+ validations.push(true);
+ } else {
+ $(el).attr('data-invalid', '').parent().addClass('error');
+ validations.push(false);
+ }
+ }
+ }
+
+ return validations;
+ },
+
+ valid_radio : function (el, required) {
+ var name = el.getAttribute('name'),
+ group = document.getElementsByName(name),
+ count = group.length,
+ valid = false;
+
+ for (var i=0; i < count; i++) {
+ if (group[i].checked) valid = true;
+ }
+
+ for (var i=0; i < count; i++) {
+ if (valid) {
+ $(group[i]).removeAttr('data-invalid').parent().removeClass('error');
+ } else {
+ $(group[i]).attr('data-invalid', '').parent().addClass('error');
+ }
+ }
+
+ return valid;
+ },
+
+ valid_equal: function(el, required) {
+ var from = document.getElementById(el.getAttribute('data-equalto')).value,
+ to = el.value,
+ valid = (from === to);
+
+ if (valid) {
+ $(el).removeAttr('data-invalid').parent().removeClass('error');
+ } else {
+ $(el).attr('data-invalid', '').parent().addClass('error');
+ }
+
+ return valid;
+ }
+ };
+}(jQuery, this, this.document));
@@ -0,0 +1,41 @@
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.accordion = {
+ name : 'accordion',
+
+ version : '5.0.1',
+
+ settings : {
+ active_class: 'active',
+ toggleable: true
+ },
+
+ init : function (scope, method, options) {
+ this.bindings(method, options);
+ },
+
+ events : function () {
+ $(this.scope).off('.accordion').on('click.fndtn.accordion', '[data-accordion] > dd > a', function (e) {
+ var accordion = $(this).parent(),
+ target = $('#' + this.href.split('#')[1]),
+ siblings = $('> dd > .content', target.closest('[data-accordion]')),
+ settings = accordion.parent().data('accordion-init'),
+ active = $('> dd > .content.' + settings.active_class, accordion.parent());
+
+ e.preventDefault();
+
+ if (active[0] == target[0] && settings.toggleable) {
+ return target.toggleClass(settings.active_class);
+ }
+
+ siblings.removeClass(settings.active_class);
+ target.addClass(settings.active_class);
+ });
+ },
+
+ off : function () {},
+
+ reflow : function () {}
+ };
+}(jQuery, this, this.document));
Oops, something went wrong.

0 comments on commit 00c41be

Please sign in to comment.