trusty-cms 3.0.6 → 3.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +23 -14
  3. data/README.md +7 -8
  4. data/app/assets/images/rad_social/ajax-loader-small.gif +0 -0
  5. data/app/assets/images/rad_social/ajax-loader.gif +0 -0
  6. data/app/assets/images/rad_social/bg_primary-btn.png +0 -0
  7. data/app/assets/images/rad_social/email.png +0 -0
  8. data/app/assets/images/rad_social/facebook.png +0 -0
  9. data/app/assets/images/rad_social/flickr.png +0 -0
  10. data/app/assets/images/rad_social/foursquare.png +0 -0
  11. data/app/assets/images/rad_social/googleplus.png +0 -0
  12. data/app/assets/images/rad_social/twitter.png +0 -0
  13. data/app/assets/javascripts/rad_social/captcha.js +42 -0
  14. data/app/assets/javascripts/rad_social/jquery.validate.min.js +4 -0
  15. data/app/assets/javascripts/rad_social/rad_ajax_form.js +82 -0
  16. data/app/assets/javascripts/rad_social/rad_email.js +6 -0
  17. data/app/assets/javascripts/rad_social/rad_email_form.js +85 -0
  18. data/app/assets/javascripts/rad_social/rad_email_validator.js +47 -0
  19. data/app/assets/javascripts/rad_social/rad_widget.js +20 -0
  20. data/app/assets/stylesheets/rad_social/rad_screen.scss +148 -0
  21. data/app/controllers/social_mailer_controller.rb +34 -0
  22. data/app/helpers/rad_social_helper.rb +23 -0
  23. data/app/models/rad_social_mailer.rb +24 -0
  24. data/app/models/standard_tags.rb +17 -0
  25. data/app/views/rad_social_mailer/social_mail.html.haml +5 -0
  26. data/app/views/rad_social_mailer/social_mail_form.html.haml +42 -0
  27. data/app/views/widget/_email_form.html.haml +25 -0
  28. data/app/views/widget/_horizontal_widget.html.haml +18 -0
  29. data/config/routes.rb +3 -0
  30. data/coverage/index.html +267 -267
  31. data/lib/trusty_cms/engine.rb +13 -1
  32. data/lib/trusty_cms.rb +1 -1
  33. data/spec/dummy/log/test.log +4515 -0
  34. data/spec/dummy/tmp/cache/747/A70/TrustyCms%3A%3AConfig +0 -0
  35. data/spec/dummy/tmp/cache/85C/FA0/TrustyCms.cache_mtime +0 -0
  36. data/trusty_cms.gemspec +1 -0
  37. metadata +40 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f20f67036374cef3064eb22bacb17d08739cf2a7
4
- data.tar.gz: d4658bcafeb27b4068d654c90de3ef57afb84816
3
+ metadata.gz: 1089cf91a5d41f02d4a61d2b2b1223aa0eaaccc6
4
+ data.tar.gz: db7fda3f9d50a978d7a1a69bd92f8d5202a0ef10
5
5
  SHA512:
6
- metadata.gz: 6e169ac5cd20306ecf77b3d7164fec690a7706c4367765035abf458f0734bc600e7eed09155041a5219e251a55752a66300f15937b6356db51506495a5c4cd1f
7
- data.tar.gz: 8cc42d0af8bdd0c120e117cb55df2fdc7095758e51f8724795d2da6562c739ca955018ed2f7cd7a939e84f7782434c484685594d1394cd86e6a78a8b81e33976
6
+ metadata.gz: c979253e71d3bb17ac8addb5f74ca8d0ee1b2071c80366858ef043b2535931cc91eb9939bb6085045b51880530d8765862345e9deeb162ebbdce7f4f608d164a
7
+ data.tar.gz: 49cabbee0f1e608fdc4c11794439a7eda3ce3802da6ba07a2daefb335c87303dd7642aa2b71696f6f54a599006cf16965e4e7a9b46f1160ab27f24a6db055e08
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  GIT
2
2
  remote: https://github.com/rails/rails-observers
3
- revision: 206cb17bc14f4f5ac6f83da4204013a69549b9dc
3
+ revision: c569dc1525259f5ab82cddf90958777473499997
4
4
  specs:
5
- rails-observers (0.1.4)
6
- activemodel (>= 4.0)
5
+ rails-observers (0.2.0)
6
+ activemodel (>= 4.2)
7
7
 
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- trusty-cms (3.0.6)
11
+ trusty-cms (3.0.7)
12
12
  RedCloth (~> 4.3.2)
13
13
  acts_as_tree (~> 2.6.1)
14
14
  bundler (~> 1.7)
@@ -27,6 +27,7 @@ PATH
27
27
  rails (~> 5.0.2)
28
28
  rake (< 11.0)
29
29
  rdoc (~> 5.1)
30
+ roadie-rails (~> 1.2.1)
30
31
  sass-rails (~> 5.0.6)
31
32
  stringex (~> 2.7.1)
32
33
  therubyracer (~> 0.12.3)
@@ -90,7 +91,7 @@ GEM
90
91
  rack-test (>= 0.5.4)
91
92
  xpath (~> 2.0)
92
93
  chunky_png (1.3.8)
93
- ckeditor (4.2.3)
94
+ ckeditor (4.2.4)
94
95
  cocaine
95
96
  orm_adapter (~> 0.5.0)
96
97
  climate_control (0.2.0)
@@ -117,6 +118,8 @@ GEM
117
118
  sass-rails (< 5.1)
118
119
  sprockets (< 4.0)
119
120
  concurrent-ruby (1.0.5)
121
+ css_parser (1.5.0)
122
+ addressable
120
123
  database_cleaner (1.5.3)
121
124
  delocalize (0.4.0)
122
125
  rails (>= 3.0)
@@ -147,7 +150,7 @@ GEM
147
150
  haml (>= 4.0, < 6)
148
151
  nokogiri (>= 1.6.0)
149
152
  ruby_parser (~> 3.5)
150
- i18n (0.8.4)
153
+ i18n (0.8.6)
151
154
  jquery-rails (4.3.1)
152
155
  rails-dom-testing (>= 1, < 3)
153
156
  railties (>= 4.2.0)
@@ -155,7 +158,7 @@ GEM
155
158
  json (2.1.0)
156
159
  launchy (2.4.3)
157
160
  addressable (~> 2.3)
158
- libv8 (3.16.14.19-x86_64-darwin-16)
161
+ libv8 (3.16.14.19)
159
162
  loofah (2.0.3)
160
163
  nokogiri (>= 1.5.9)
161
164
  mail (2.6.6)
@@ -167,7 +170,7 @@ GEM
167
170
  mini_portile2 (2.2.0)
168
171
  minitest (5.10.2)
169
172
  multi_json (1.12.1)
170
- mysql2 (0.4.6)
173
+ mysql2 (0.4.8)
171
174
  nio4r (2.1.0)
172
175
  nokogiri (1.8.0)
173
176
  mini_portile2 (~> 2.2.0)
@@ -216,11 +219,17 @@ GEM
216
219
  rake (>= 0.8.7)
217
220
  thor (>= 0.18.1, < 2.0)
218
221
  rake (10.5.0)
219
- rb-fsevent (0.9.8)
222
+ rb-fsevent (0.10.2)
220
223
  rb-inotify (0.9.10)
221
224
  ffi (>= 0.5.0, < 2)
222
225
  rdoc (5.1.0)
223
226
  ref (2.0.0)
227
+ roadie (3.2.2)
228
+ css_parser (~> 1.4)
229
+ nokogiri (~> 1.5)
230
+ roadie-rails (1.2.1)
231
+ railties (>= 3.0, < 5.2)
232
+ roadie (~> 3.1)
224
233
  rspec-core (3.6.0)
225
234
  rspec-support (~> 3.6.0)
226
235
  rspec-expectations (3.6.0)
@@ -238,16 +247,16 @@ GEM
238
247
  rspec-mocks (~> 3.6.0)
239
248
  rspec-support (~> 3.6.0)
240
249
  rspec-support (3.6.0)
241
- ruby_parser (3.9.0)
242
- sexp_processor (~> 4.1)
243
- sass (3.4.24)
250
+ ruby_parser (3.10.1)
251
+ sexp_processor (~> 4.9)
252
+ sass (3.4.25)
244
253
  sass-rails (5.0.6)
245
254
  railties (>= 4.0.0, < 6)
246
255
  sass (~> 3.1)
247
256
  sprockets (>= 2.8, < 4.0)
248
257
  sprockets-rails (>= 2.0, < 4.0)
249
258
  tilt (>= 1.1, < 3)
250
- sexp_processor (4.9.0)
259
+ sexp_processor (4.10.0)
251
260
  simplecov (0.13.0)
252
261
  docile (~> 1.1.0)
253
262
  json (>= 1.8, < 3)
@@ -304,4 +313,4 @@ DEPENDENCIES
304
313
  trustygems (~> 0.2.0)
305
314
 
306
315
  BUNDLED WITH
307
- 1.15.1
316
+ 1.15.2
data/README.md CHANGED
@@ -48,7 +48,7 @@ See the INSTALL file for more details.
48
48
 
49
49
  Prerequisites:
50
50
 
51
- * A github account and Git ([Github has some really good instructons](https://help.github.com/articles/set-up-git))
51
+ * A Github account and Git ([Github has some really good instructons](https://help.github.com/articles/set-up-git))
52
52
 
53
53
  Steps:
54
54
 
@@ -79,7 +79,7 @@ just start from the `vagrant up` step again!
79
79
 
80
80
  Prerequisites:
81
81
 
82
- * Ruby 1.9.3
82
+ * Ruby 2.2.0
83
83
  * The bundler gem
84
84
  * Mysql
85
85
  * [PhantomJS >= 1.8.1](https://github.com/teampoltergeist/poltergeist/tree/v1.5.0#installing-phantomjs)
@@ -116,17 +116,16 @@ When you're ready to make a change:
116
116
 
117
117
  ## Support
118
118
 
119
- The best place to get support is on the Pittsburgh Ruby mailing list:
120
-
121
- https://groups.google.com/forum/#!forum/rubypgh
122
-
123
119
  Most of the development for TrustyCms happens on Github:
124
120
 
125
121
  https://github.com/pgharts/trusty-cms
126
122
 
127
- TrustyCMS is supported in part by https://www.browserstack.com/
123
+ TrustyCMS is supported in part by:
124
+
125
+ * [The Allegheny Regional Asset District (RAD)](https://www.radworkshere.org/)
126
+ * [Browserstack](https://www.browserstack.com/)
128
127
 
129
128
  Enjoy!
130
129
 
131
130
  --
132
- The TrustyCms Dev Team
131
+ The TrustyCMS Dev Team
@@ -0,0 +1,42 @@
1
+ function Captcha(element) {
2
+ var self = this;
3
+ var challengeFieldSelector = "#recaptcha_challenge_field";
4
+ var responseFieldSelector = "#recaptcha_response_field";
5
+
6
+ self.challengeValue = function() {
7
+ return $(element).find(challengeFieldSelector).val();
8
+ };
9
+
10
+ self.responseValue = function() {
11
+ return $(element).find(responseFieldSelector).val();
12
+ };
13
+
14
+ self.visible = function() {
15
+ return ($(element).find("#recaptcha_area").length > 0);
16
+ };
17
+
18
+ self.requestData = function() {
19
+ requestHash = {};
20
+ if(this.visible()) {
21
+ $.extend(requestHash, {
22
+ 'recaptcha_challenge_field': this.challengeValue(),
23
+ 'recaptcha_response_field': this.responseValue()
24
+ });
25
+ }
26
+ return requestHash;
27
+ };
28
+
29
+ self.isValid = function() {
30
+ if(this.visible()) {
31
+ return this.responseValue().length > 0;
32
+ }
33
+ return true;
34
+ };
35
+
36
+ self.reload = function() {
37
+ if(Recaptcha) {
38
+ Recaptcha.reload();
39
+ }
40
+ };
41
+
42
+ }
@@ -0,0 +1,4 @@
1
+ /*! jQuery Validation Plugin - v1.13.0 - 7/1/2014
2
+ * http://jqueryvalidation.org/
3
+ * Copyright (c) 2014 Jörn Zaefferer; Licensed MIT */
4
+ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.validateDelegate(":submit","click",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(b.target).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(b.target).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.submit(function(b){function d(){var d;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c;return a(this[0]).is("form")?b=this.validate().form():(b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b})),b},removeAttrs:function(b){var c={},d=this;return a.each(b.split(/\s/),function(a,b){c[b]=d.attr(b),d.removeAttr(b)}),c},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(a,b){(9!==b.which||""!==this.elementValue(a))&&(a.name in this.submitted||a===this.lastElement)&&this.element(a)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this[0].form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!this.is(e.ignore)&&e[d].call(c,this[0],b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']","focusin focusout keyup",b).validateDelegate("select, option, [type='radio'], [type='checkbox']","click",b),this.settings.invalidHandler&&a(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData("previousValue").removeAttr("aria-invalid")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?a("input[name='"+b.name+"']:checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a];return void 0},defaultMessage:function(b,c){return this.findDefined(this.customMessage(b.name,c),this.customDataMessage(b,c),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c],"<strong>Warning: No message defined for "+b.name+"</strong>")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id"),i?i.match(new RegExp("\b"+f+"\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(a){return this.checkable(a)&&(a=this.findByName(a.name).not(this.settings.ignore)[0]),a},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),/min|max/.test(c)&&(null===g||/number|range|text/.test(g))&&(d=Number(d)),d||0===d?e[c]=d:g===c&&"range"!==g&&(e[c]=!0);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b);for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),void 0!==d&&(e[c]=d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(b.min&&b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),b.minlength&&b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:a.trim(b).length>0},email:function(a,b){return this.optional(b)||/^[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])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(https?|s?ftp):\/\/(((([a-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-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{url:d,mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}}),a.format=function(){throw"$.format has been deprecated. Please use $.validator.format instead."};var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a.extend(a.fn,{validateDelegate:function(b,c,d){return this.bind(c,function(c){var e=a(c.target);return e.is(b)?d.apply(e,arguments):void 0})}})});
@@ -0,0 +1,82 @@
1
+ function RadAjaxForm(form) {
2
+ var self = this;
3
+ this.submitWithoutValidation = function(onSuccess, onError, onComplete) {
4
+ if (onError === undefined) {
5
+ onError = function() {
6
+ };
7
+ }
8
+ if (onComplete === undefined) {
9
+ onComplete = function() {
10
+ };
11
+ }
12
+
13
+ form.find(".loader").addClass('ajax-loader');
14
+ form.find(".loader-small").addClass('ajax-loader-small');
15
+ $.ajax({
16
+ type: "POST",
17
+ url: form.find('input[name=submit_url]').attr('value'),
18
+ data: form.serialize(),
19
+ beforeSend: function ( xhr ) {
20
+ xhr.setRequestHeader("X-CSRF-Token", $("#auth_token").attr('value'));
21
+ },
22
+ success: function(data, status, xhr) {
23
+ form.find(".loader").removeClass('ajax-loader');
24
+ form.find(".loader-small").removeClass('ajax-loader-small');
25
+ onSuccess(data, status, xhr);
26
+ },
27
+ error: function(data) {
28
+ form.find(".loader").removeClass('ajax-loader');
29
+ form.find(".loader-small").removeClass('ajax-loader-small');
30
+ form.find('.continue').attr('disabled', false);
31
+ onError(data);
32
+ },
33
+ complete: onComplete
34
+ });
35
+ form.find('.continue').attr('disabled', 'disabled');
36
+ return true;
37
+ };
38
+
39
+ this.defaultSubmitWithoutValidation = function() {
40
+ this.submitWithoutValidation(handleSuccess, handleFailure);
41
+ };
42
+
43
+ this.submit = function(onSuccess, onError, onComplete) {
44
+ if (onComplete === undefined) {
45
+ onComplete = function() {
46
+ };
47
+ }
48
+
49
+ if (onError === undefined) {
50
+ onError = handleFailure;
51
+ }
52
+
53
+ if (!form.valid()) {
54
+ onComplete();
55
+ return true;
56
+ }
57
+ return self.submitWithoutValidation(onSuccess, onError, onComplete);
58
+ };
59
+
60
+
61
+ function handleSuccess(data, status, xhr)
62
+ {
63
+ var url = xhr.getResponseHeader("BrowserRedirectTo");
64
+ if (!!url) {
65
+ location.href = url
66
+ }
67
+ }
68
+
69
+ function handleFailure(xhr) {
70
+ var errorMessage = xhr.getResponseHeader("ErrorMsg");
71
+ var errorMessageDialog = new ModalDialog('', function(element) {
72
+ return {
73
+ autoOpen: false,
74
+ minHeight: 20,
75
+ title: "We're Sorry!",
76
+ dialogClass: 'seat-error-dialog'
77
+ };
78
+ });
79
+ errorMessageDialog.show(errorMessage);
80
+ }
81
+
82
+ }
@@ -0,0 +1,6 @@
1
+ //= require jquery
2
+ //= require 'rad_social/jquery.validate.min'
3
+ //= require 'rad_social/rad_ajax_form'
4
+ //= require 'rad_social/captcha'
5
+ //= require 'rad_social/rad_email_validator'
6
+ //= require 'rad_social/rad_email_form'
@@ -0,0 +1,85 @@
1
+ $(document).ready(function() {
2
+
3
+ var radModal;
4
+
5
+ function centeredPopup(url,w,h){
6
+ var popupWindow = null;
7
+ LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
8
+ TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
9
+ settings =
10
+ 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition;
11
+ popupWindow = window.open(url,"Share",settings);
12
+ }
13
+
14
+ $(".rad-window-close").click(function(event) {
15
+ event.preventDefault();
16
+ $("#rad-social-email-form").fadeToggle('slow');
17
+ });
18
+
19
+ $(".rad-popup-window").click(function(event){
20
+ event.preventDefault();
21
+ var url = $(this).attr("href");
22
+ centeredPopup(url, 625, 430)
23
+
24
+ });
25
+
26
+ var form = $("#rad-social-email-form");
27
+
28
+ validator = form.validate({
29
+ submitHandler: function(form) {
30
+ var button = $('#rad_email_submit');
31
+ button.attr('disabled', true);
32
+ button.removeClass('primary-button').addClass('disabled-button');
33
+ form.submit();
34
+ clear_form();
35
+ }
36
+ });
37
+
38
+
39
+ var radEmailValidator = new RadEmailValidator(form);
40
+ radEmailValidator.addRules();
41
+
42
+ form.find('#rad_email_submit').click(function(e) {
43
+ return new RadAjaxForm(form).submit(OnSuccess, OnError, OnComplete);
44
+ });
45
+
46
+ function OnSuccess(data) {
47
+ $("#rad-social-email-form").addClass('hidden');
48
+ $("#rad-confirmation").removeClass('hidden');
49
+
50
+ }
51
+
52
+ function OnError(xhr) {
53
+ processFailure(xhr);
54
+ }
55
+
56
+ function OnComplete() {
57
+ //$('#express_contact_form').find('.continue').attr('disabled', false);
58
+ //$('#express_contact_form').find(".loader").removeClass('ajax-loader');
59
+ }
60
+
61
+ function clear_form(){
62
+ $('#rs-from').val('');
63
+ $('#rs-from_name').val('');
64
+ $('#rs-to').val('');
65
+ $('#rs-message').val($('#rs-base-message').val());
66
+ var captcha = new Captcha("#recaptcha-container");
67
+ captcha.reload();
68
+ }
69
+
70
+ function processFailure(xhr)
71
+ {
72
+ var captcha = new Captcha("#recaptcha-container");
73
+ var error_msg = xhr.getResponseHeader("ErrorMsg");
74
+ displayErrorMessage(error_msg);
75
+ captcha.reload();
76
+ }
77
+
78
+ function displayErrorMessage(msg) {
79
+ var error_msg_div = $('.rad-email-error');
80
+ error_msg_div.text(msg);
81
+ error_msg_div.show();
82
+ }
83
+
84
+
85
+ });
@@ -0,0 +1,47 @@
1
+ function RadEmailValidator(parentElement) {
2
+ var rules = {
3
+ "rs-from": {
4
+ required: true,
5
+ email: true,
6
+ messages: {
7
+ required: "From email is required."
8
+ }
9
+ },
10
+ "rs-from_name": {
11
+ required: true,
12
+ messages: {
13
+ required: "From name is required."
14
+ }
15
+ },
16
+ "rs-to": {
17
+ required: true,
18
+ email: true,
19
+ messages: {
20
+ required: "To email is required"
21
+ }
22
+ },
23
+ "rs-message": {
24
+ required: true,
25
+ messages: {
26
+ required: "Email message is required."
27
+ }
28
+ }
29
+ };
30
+
31
+ this.addRules = function() {
32
+ for (var key in rules) {
33
+ $(parentElement).find("[id$=" + key + "]").rules("add", rules[key]);
34
+ }
35
+ };
36
+
37
+ this.removeRules = function() {
38
+ for (var key in rules) {
39
+ $(parentElement).find("[id$=" + key + "]").rules("remove");
40
+ }
41
+ };
42
+
43
+ function elementKeyFor(key) {
44
+ return "[id$=" + parentElement.attr('id') + '_' + key + ']';
45
+ }
46
+
47
+ }
@@ -0,0 +1,20 @@
1
+ $(document).ready(function() {
2
+
3
+ function centeredPopup(url,w,h){
4
+ var popupWindow = null;
5
+ LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
6
+ TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
7
+ settings =
8
+ 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition;
9
+ popupWindow = window.open(url,"Share",settings);
10
+ }
11
+
12
+ $(".rad-popup-window").click(function(event){
13
+ event.preventDefault();
14
+ var url = $(this).attr("href");
15
+ centeredPopup(url, 625, 430)
16
+
17
+ });
18
+
19
+
20
+ });
@@ -0,0 +1,148 @@
1
+ .rad-icon {
2
+ float: left;
3
+ padding-right: 3px;
4
+ .rad-facebook {
5
+ background-image: url('rad_social/facebook.png');
6
+ }
7
+ .rad-twitter {
8
+ background-image: url('rad_social/twitter.png');
9
+ }
10
+ .rad-email {
11
+ background-image: url('rad_social/email.png');
12
+ }
13
+ .rad-gplus {
14
+ background-image: url('rad_social/gplus.png');
15
+ }
16
+ }
17
+ .rad-email-form {
18
+ position: relative;
19
+ padding: 15px;
20
+ }
21
+
22
+ .hidden {
23
+ display: none;
24
+ }
25
+
26
+ .rad-dialog-titlebar {
27
+ background: #EDEDED;
28
+ padding: .5em .3em .3em 1em;
29
+ height: 2em;
30
+ }
31
+
32
+ .rad-dialog-title {
33
+ float: left;
34
+ font-weight: bold;
35
+ margin: .3em 0 .2em;
36
+ }
37
+
38
+ #rad-social-email-form .form-row .form-fields {
39
+ width: 60%;
40
+ float: left;
41
+ }
42
+
43
+ #rad-social-email-form .form-row .input-textbox {
44
+ display: block;
45
+ font-size: 12px;
46
+ }
47
+
48
+
49
+ .rad-email-form #rad_email_submit {
50
+ float: right;
51
+ }
52
+
53
+ .rad-email-form .captcha-container {
54
+ padding: 10px 0px;
55
+ }
56
+
57
+ .rad-email-form input.std_input {
58
+ margin-bottom: 10px;
59
+ }
60
+
61
+ .rad-email-form select {
62
+ margin-bottom: 10px;
63
+ background-color: #fff;
64
+ border: 1px solid #ccc;
65
+ font: 14px "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
66
+ color: #6e6e6e;
67
+ }
68
+
69
+ #rad-social-email-form .form-label {
70
+ width: 15%;
71
+ float: left;
72
+ display: block;
73
+ text-align: left;
74
+ padding: 5px 10px 0 0;
75
+ }
76
+
77
+ #rad-social-email-form .form-row {
78
+ padding: 5px;
79
+ clear: both;
80
+ overflow: auto;
81
+ }
82
+
83
+
84
+ .rad-email-form input.std_input,
85
+ .rad-email-form textarea {
86
+ border: 1px solid #ccc;
87
+ width: 97%;
88
+ font: 15px "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
89
+ padding: 5px;
90
+ color: #6e6e6e;
91
+ }
92
+
93
+ .rad-email-form table {
94
+ width: 100%;
95
+ }
96
+
97
+ .rad-email-form table input.std_input {
98
+ width: 93%;
99
+ }
100
+
101
+ .rad-email-form table.three-col input.std_input {
102
+ width: 90%;
103
+ }
104
+
105
+ .rad-email-form input.form_but {
106
+ margin-top: 10px;
107
+ background-color: #93ba31;
108
+ border: 3px solid #afdd39;
109
+ color: #fff;
110
+ font: bold 15px "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
111
+ -webkit-border-radius: 5px;
112
+ -moz-border-radius: 5px;
113
+ padding: 5px 10px;
114
+ }
115
+
116
+ input.error {
117
+ border: 1px solid #CD0A0A !important;
118
+ color: #CD0A0A !important;
119
+ font-family: Arial, Helvetica, sans-serif !important;
120
+ }
121
+
122
+ .rad-email-error, label.error{
123
+ padding: 5px 0px !important;
124
+ color: #CD0A0A !important;
125
+ font-family: Arial, Helvetica, sans-serif !important;
126
+ display: block;
127
+ }
128
+
129
+ #rad-confirmation {
130
+ font-weight: bold;
131
+ text-align: center;
132
+ padding-top: 25px;
133
+ }
134
+
135
+ body .ajax-loader {
136
+ background: transparent none no-repeat 50% 50%;
137
+ background-image: url('ajax-loader.gif');
138
+ height: 35px;
139
+ }
140
+
141
+ body #rad-social-email-form .primary-button {
142
+ background: transparent none repeat-x scroll 0 0;
143
+ background-image: url('bg_primary-btn.png'); /* sprite-ref: cd-backgrounds-sprite; sprite-alignment: repeat; */;
144
+ color: white !important;
145
+ border: 1px solid #924900;
146
+ }
147
+
148
+ /* @end */