compass_formalize 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +5 -4
  4. data/README.md +31 -0
  5. data/compass_formalize.gemspec +2 -2
  6. data/stylesheets/_formalize.sass +226 -170
  7. data/templates/{dojo → common}/button.png +0 -0
  8. data/templates/{dojo → common}/select_arrow.gif +0 -0
  9. data/templates/dojo/dojo.formalize.js +46 -19
  10. data/templates/dojo/dojo.formalize.min.js +1 -1
  11. data/templates/dojo/manifest.rb +5 -0
  12. data/templates/extjs/extjs.formalize.js +48 -25
  13. data/templates/extjs/extjs.formalize.min.js +1 -1
  14. data/templates/jquery-legacy/jquery.formalize.legacy.js +187 -0
  15. data/templates/jquery-legacy/jquery.formalize.legacy.min.js +1 -0
  16. data/templates/jquery-legacy/manifest.rb +42 -0
  17. data/templates/jquery/jquery.formalize.js +42 -20
  18. data/templates/jquery/jquery.formalize.min.js +1 -1
  19. data/templates/jquery/manifest.rb +6 -1
  20. data/templates/mootools/manifest.rb +5 -0
  21. data/templates/mootools/mootools.formalize.js +49 -20
  22. data/templates/mootools/mootools.formalize.min.js +1 -1
  23. data/templates/prototype/manifest.rb +5 -0
  24. data/templates/prototype/prototype.formalize.js +43 -23
  25. data/templates/prototype/prototype.formalize.min.js +1 -1
  26. data/templates/yui/manifest.rb +5 -0
  27. data/templates/yui/yui.formalize.js +57 -43
  28. data/templates/yui/yui.formalize.min.js +1 -1
  29. metadata +11 -40
  30. data/templates/extjs/button.png +0 -0
  31. data/templates/extjs/select_arrow.gif +0 -0
  32. data/templates/jquery/button.png +0 -0
  33. data/templates/jquery/select_arrow.gif +0 -0
  34. data/templates/mootools/button.png +0 -0
  35. data/templates/mootools/select_arrow.gif +0 -0
  36. data/templates/prototype/button.png +0 -0
  37. data/templates/prototype/select_arrow.gif +0 -0
  38. data/templates/yui/button.png +0 -0
  39. data/templates/yui/select_arrow.gif +0 -0
File without changes
@@ -1,36 +1,47 @@
1
- //
2
- // Note: This file depends on the Dojo library.
3
- //
1
+ /*
2
+ Formalize - version 1.2
3
+
4
+ Note: This file depends on the Dojo library.
5
+ */
4
6
 
5
7
  // Module pattern:
6
- // http://yuiblog.com/blog/2007/06/12/module-pattern/
8
+ // http://yuiblog.com/blog/2007/06/12/module-pattern
7
9
  var FORMALIZE = (function(window, document, undefined) {
10
+ // Internet Explorer detection.
11
+ function IE(version) {
12
+ var b = document.createElement('b');
13
+ b.innerHTML = '<!--[if IE ' + version + ']><br><![endif]-->';
14
+ return !!b.getElementsByTagName('br').length;
15
+ }
16
+
8
17
  // Private constants.
9
18
  var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
10
19
  var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
11
- var WEBKIT = 'webkitAppearance' in document.createElement('select').style;
12
- var IE6 = parseInt(dojo.isIE, 10) === 6;
13
- var IE7 = parseInt(dojo.isIE, 10) === 7;
20
+ var IE6 = IE(6);
21
+ var IE7 = IE(7);
14
22
 
15
23
  // Expose innards of FORMALIZE.
16
24
  return {
17
25
  // FORMALIZE.go
18
26
  go: function() {
19
- for (var i in FORMALIZE.init) {
20
- FORMALIZE.init[i]();
27
+ var i, j = this.init;
28
+
29
+ for (i in j) {
30
+ j.hasOwnProperty(i) && j[i]();
21
31
  }
22
32
  },
23
33
  // FORMALIZE.init
24
34
  init: {
25
- // FORMALIZE.init.detect_webkit
26
- detect_webkit: function() {
27
- if (!WEBKIT) {
28
- return;
29
- }
30
-
31
- // Tweaks for Safari + Chrome.
32
- // <html class="is_webkit">
33
- dojo.addClass(document.documentElement, 'is_webkit');
35
+ // FORMALIZE.init.disable_link_button
36
+ disable_link_button: function() {
37
+ dojo.connect(document.documentElement, 'click', function(ev) {
38
+ var el = ev.target;
39
+ var is_disabled = el.tagName.toLowerCase() === 'a' && el.className.match('button_disabled');
40
+
41
+ if (is_disabled) {
42
+ ev.preventDefault();
43
+ }
44
+ });
34
45
  },
35
46
  // FORMALIZE.init.full_input_size
36
47
  full_input_size: function() {
@@ -98,7 +109,11 @@ var FORMALIZE = (function(window, document, undefined) {
98
109
  return;
99
110
  }
100
111
 
101
- dojo.query('[autofocus]')[0].focus();
112
+ var el = dojo.query('[autofocus]')[0];
113
+
114
+ if (!el.disabled) {
115
+ el.focus();
116
+ }
102
117
  },
103
118
  // FORMALIZE.init.placeholder
104
119
  placeholder: function() {
@@ -111,6 +126,12 @@ var FORMALIZE = (function(window, document, undefined) {
111
126
  FORMALIZE.misc.add_placeholder();
112
127
 
113
128
  dojo.query('[placeholder]').forEach(function(el) {
129
+ // Placeholder obscured in older browsers,
130
+ // so there's no point adding to password.
131
+ if (el.type === 'password') {
132
+ return;
133
+ }
134
+
114
135
  dojo.connect(el, 'onfocus', function() {
115
136
  var text = el.getAttribute('placeholder');
116
137
 
@@ -156,6 +177,12 @@ var FORMALIZE = (function(window, document, undefined) {
156
177
  }
157
178
 
158
179
  dojo.query('[placeholder]').forEach(function(el) {
180
+ // Placeholder obscured in older browsers,
181
+ // so there's no point adding to password.
182
+ if (el.type === 'password') {
183
+ return;
184
+ }
185
+
159
186
  var text = el.getAttribute('placeholder');
160
187
 
161
188
  if (!el.value || el.value === text) {
@@ -1 +1 @@
1
- var FORMALIZE=function(a,b,c){var d="placeholder"in b.createElement("input"),e="autofocus"in b.createElement("input"),f="webkitAppearance"in b.createElement("select").style,g=parseInt(dojo.isIE,10)===6,h=parseInt(dojo.isIE,10)===7;return{go:function(){for(var a in FORMALIZE.init)FORMALIZE.init[a]()},init:{detect_webkit:function(){!f||dojo.addClass(b.documentElement,"is_webkit")},full_input_size:function(){!!h&&!!dojo.query("textarea, input.input_full").length&&dojo.query("textarea, input.input_full").forEach(function(a){var c=a.cloneNode(!1),d=b.createElement("span");d.className="input_full_wrap",d.appendChild(c),a.parentNode.replaceChild(d,a)})},ie6_skin_inputs:function(){if(!!g&&!!dojo.query("input, select, textarea").length){var a=/button|submit|reset/,b=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;dojo.query("input").forEach(function(c){c.getAttribute("type").match(a)?(dojo.addClass(c,"ie6_button"),c.disabled&&dojo.addClass(c,"ie6_button_disabled")):c.getAttribute("type").match(b)&&(dojo.addClass(c,"ie6_input"),c.disabled&&dojo.addClass(c,"ie6_input_disabled"))}),dojo.query("textarea, select").forEach(function(a){a.disabled&&dojo.addClass(a,"ie6_input_disabled")})}},autofocus:function(){!e&&!!dojo.query("[autofocus]").length&&dojo.query("[autofocus]")[0].focus()},placeholder:function(){!d&&!!dojo.query("[placeholder]").length&&(FORMALIZE.misc.add_placeholder(),dojo.query("[placeholder]").forEach(function(a){dojo.connect(a,"onfocus",function(){var b=a.getAttribute("placeholder");a.value===b&&(a.value="",dojo.removeClass(a,"placeholder_text"))}),dojo.connect(a,"onblur",function(){FORMALIZE.misc.add_placeholder()})}),dojo.query("form").forEach(function(a){dojo.connect(a,"onsubmit",function(){dojo.query("[placeholder]",a).forEach(function(a){var b=a.getAttribute("placeholder");a.value===b&&(a.value="",dojo.removeClass(a,"placeholder_text"))})}),dojo.connect(a,"onreset",function(){setTimeout(FORMALIZE.misc.add_placeholder,50)})}))}},misc:{add_placeholder:function(){!d&&!!dojo.query("[placeholder]").length&&dojo.query("[placeholder]").forEach(function(a){var b=a.getAttribute("placeholder");if(!a.value||a.value===b)a.value=b,dojo.addClass(a,"placeholder_text")})}}}}(this,this.document);dojo.addOnLoad(function(){FORMALIZE.go()})
1
+ var FORMALIZE=function(e,t,n){function r(e){var n=t.createElement("b");return n.innerHTML="<!--[if IE "+e+"]><br><![endif]-->",!!n.getElementsByTagName("br").length}var i="placeholder"in t.createElement("input"),s="autofocus"in t.createElement("input"),o=r(6),u=r(7);return{go:function(){var e,t=this.init;for(e in t)t.hasOwnProperty(e)&&t[e]()},init:{disable_link_button:function(){dojo.connect(t.documentElement,"click",function(e){var t=e.target,n=t.tagName.toLowerCase()==="a"&&t.className.match("button_disabled");n&&e.preventDefault()})},full_input_size:function(){if(!u||!dojo.query("textarea, input.input_full").length)return;dojo.query("textarea, input.input_full").forEach(function(e){var n=e.cloneNode(!1),r=t.createElement("span");r.className="input_full_wrap",r.appendChild(n),e.parentNode.replaceChild(r,e)})},ie6_skin_inputs:function(){if(!o||!dojo.query("input, select, textarea").length)return;var e=/button|submit|reset/,t=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;dojo.query("input").forEach(function(n){n.getAttribute("type").match(e)?(dojo.addClass(n,"ie6_button"),n.disabled&&dojo.addClass(n,"ie6_button_disabled")):n.getAttribute("type").match(t)&&(dojo.addClass(n,"ie6_input"),n.disabled&&dojo.addClass(n,"ie6_input_disabled"))}),dojo.query("textarea, select").forEach(function(e){e.disabled&&dojo.addClass(e,"ie6_input_disabled")})},autofocus:function(){if(s||!dojo.query("[autofocus]").length)return;var e=dojo.query("[autofocus]")[0];e.disabled||e.focus()},placeholder:function(){if(i||!dojo.query("[placeholder]").length)return;FORMALIZE.misc.add_placeholder(),dojo.query("[placeholder]").forEach(function(e){if(e.type==="password")return;dojo.connect(e,"onfocus",function(){var t=e.getAttribute("placeholder");e.value===t&&(e.value="",dojo.removeClass(e,"placeholder_text"))}),dojo.connect(e,"onblur",function(){FORMALIZE.misc.add_placeholder()})}),dojo.query("form").forEach(function(e){dojo.connect(e,"onsubmit",function(){dojo.query("[placeholder]",e).forEach(function(e){var t=e.getAttribute("placeholder");e.value===t&&(e.value="",dojo.removeClass(e,"placeholder_text"))})}),dojo.connect(e,"onreset",function(){setTimeout(FORMALIZE.misc.add_placeholder,50)})})}},misc:{add_placeholder:function(){if(i||!dojo.query("[placeholder]").length)return;dojo.query("[placeholder]").forEach(function(e){if(e.type==="password")return;var t=e.getAttribute("placeholder");if(!e.value||e.value===t)e.value=t,dojo.addClass(e,"placeholder_text")})}}}}(this,this.document);dojo.addOnLoad(function(){FORMALIZE.go()})
@@ -1,4 +1,9 @@
1
1
  # Make sure you list all the project template files here in the manifest.
2
+
3
+ # Image Import
4
+ file '../common/button.png', :like => :image, :to => 'button.png'
5
+ file '../common/select_arrow.gif', :like => :image, :to => 'select_arrow.gif'
6
+
2
7
  discover :all
3
8
 
4
9
  description "Teach your forms some manners."
@@ -1,33 +1,47 @@
1
- //
2
- // Note: This file depends on the ExtJS 3.x library.
3
- //
1
+ /*
2
+ Formalize - version 1.2
3
+
4
+ Note: This file depends on the ExtJS 3.x library.
5
+ */
6
+
7
+ // Module pattern:
8
+ // http://yuiblog.com/blog/2007/06/12/module-pattern
4
9
  var FORMALIZE = (function(window, document, undefined) {
10
+ // Internet Explorer detection.
11
+ function IE(version) {
12
+ var b = document.createElement('b');
13
+ b.innerHTML = '<!--[if IE ' + version + ']><br><![endif]-->';
14
+ return !!b.getElementsByTagName('br').length;
15
+ }
16
+
5
17
  // Private constants.
6
18
  var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
7
19
  var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
8
- var WEBKIT = 'webkitAppearance' in document.createElement('select').style;
9
- var IE6 = Ext.isIE6;
10
- var IE7 = Ext.isIE7;
20
+ var IE6 = IE(6);
21
+ var IE7 = IE(7);
11
22
 
12
23
  // Expose innards of FORMALIZE.
13
24
  return {
14
25
  // FORMALIZE.go
15
26
  go: function() {
16
- for (var i in FORMALIZE.init) {
17
- FORMALIZE.init[i]();
27
+ var i, j = this.init;
28
+
29
+ for (i in j) {
30
+ j.hasOwnProperty(i) && j[i]();
18
31
  }
19
32
  },
20
33
  // FORMALIZE.init
21
34
  init: {
22
- // FORMALIZE.init.detect_webkit
23
- detect_webkit: function() {
24
- if (!WEBKIT) {
25
- return;
26
- }
27
-
28
- // Tweaks for Safari + Chrome.
29
- // <html class="is_webkit">
30
- Ext.get(document.documentElement).addClass('is_webkit');
35
+ // FORMALIZE.init.disable_link_button
36
+ disable_link_button: function() {
37
+ Ext.getBody().on('click', function(ev) {
38
+ var el = ev.target;
39
+ var is_disabled = el.tagName.toLowerCase() === 'a' && el.className.match('button_disabled');
40
+
41
+ if (is_disabled) {
42
+ ev.preventDefault();
43
+ }
44
+ });
31
45
  },
32
46
  // FORMALIZE.init.full_input_size
33
47
  full_input_size: function() {
@@ -90,7 +104,11 @@ var FORMALIZE = (function(window, document, undefined) {
90
104
  return;
91
105
  }
92
106
 
93
- Ext.query('[autofocus]')[0].focus();
107
+ var el = Ext.query('[autofocus]')[0];
108
+
109
+ if (!el.disabled) {
110
+ el.focus();
111
+ }
94
112
  },
95
113
  // FORMALIZE.init.placeholder
96
114
  placeholder: function() {
@@ -103,16 +121,15 @@ var FORMALIZE = (function(window, document, undefined) {
103
121
  FORMALIZE.misc.add_placeholder();
104
122
 
105
123
  Ext.each(Ext.query('[placeholder]'), function(el) {
124
+ // Placeholder obscured in older browsers,
125
+ // so there's no point adding to password.
126
+ if (el.type === 'password') {
127
+ return;
128
+ }
129
+
106
130
  var text = el.getAttribute('placeholder');
107
131
  var form = Ext.get(el).parent('form');
108
132
 
109
- function add_placeholder() {
110
- if (!el.value || el.value === text) {
111
- el.value = text;
112
- Ext.get(el).addClass('placeholder_text');
113
- }
114
- }
115
-
116
133
  Ext.get(el).on('focus', function() {
117
134
  if (el.value === text) {
118
135
  el.value = '';
@@ -150,6 +167,12 @@ var FORMALIZE = (function(window, document, undefined) {
150
167
  }
151
168
 
152
169
  Ext.each(Ext.query('[placeholder]'), function(el) {
170
+ // Placeholder obscured in older browsers,
171
+ // so there's no point adding to password.
172
+ if (el.type === 'password') {
173
+ return;
174
+ }
175
+
153
176
  var text = el.getAttribute('placeholder');
154
177
 
155
178
  if (!el.value || el.value === text) {
@@ -1 +1 @@
1
- var FORMALIZE=function(a,b,c){var d="placeholder"in b.createElement("input"),e="autofocus"in b.createElement("input"),f="webkitAppearance"in b.createElement("select").style,g=Ext.isIE6,h=Ext.isIE7;return{go:function(){for(var a in FORMALIZE.init)FORMALIZE.init[a]()},init:{detect_webkit:function(){!f||Ext.get(b.documentElement).addClass("is_webkit")},full_input_size:function(){!!h&&!!Ext.query("textarea, input.input_full")&&Ext.each(Ext.query("textarea, input.input_full"),function(a){Ext.get(a).wrap('<span class="input_full_wrap"></span>')})},ie6_skin_inputs:function(){if(!!g&&!!Ext.query("input, select, textarea")){var a=/button|submit|reset/,b=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;Ext.each(Ext.query("input"),function(c){c.getAttribute("type").match(a)?(Ext.get(c).addClass("ie6_button"),c.disabled&&Ext.get(c).addClass("ie6_button_disabled")):c.getAttribute("type").match(b)&&(Ext.get(c).addClass("ie6_input"),c.disabled&&Ext.get(c).addClass("ie6_input_disabled"))}),Ext.each(Ext.query("textarea, select"),function(a){a.disabled&&Ext.get(a).addClass("ie6_input_disabled")})}},autofocus:function(){!e&&!!Ext.query("[autofocus]")&&Ext.query("[autofocus]")[0].focus()},placeholder:function(){!d&&!!Ext.query("[placeholder]")&&(FORMALIZE.misc.add_placeholder(),Ext.each(Ext.query("[placeholder]"),function(a){function d(){if(!a.value||a.value===b)a.value=b,Ext.get(a).addClass("placeholder_text")}var b=a.getAttribute("placeholder"),c=Ext.get(a).parent("form");Ext.get(a).on("focus",function(){a.value===b&&(a.value="",Ext.get(a).removeClass("placeholder_text"))}),Ext.get(a).on("blur",function(){FORMALIZE.misc.add_placeholder()}),c.on("submit",function(){a.value===b&&(a.value="",Ext.get(a).removeClass("placeholder_text"))}),c.on("reset",function(){setTimeout(FORMALIZE.misc.add_placeholder,50)})}))}},misc:{add_placeholder:function(){!d&&!!Ext.query("[placeholder]")&&Ext.each(Ext.query("[placeholder]"),function(a){var b=a.getAttribute("placeholder");if(!a.value||a.value===b)a.value=b,Ext.get(a).addClass("placeholder_text")})}}}}(this,this.document);Ext.onReady(function(){FORMALIZE.go()})
1
+ var FORMALIZE=function(e,t,n){function r(e){var n=t.createElement("b");return n.innerHTML="<!--[if IE "+e+"]><br><![endif]-->",!!n.getElementsByTagName("br").length}var i="placeholder"in t.createElement("input"),s="autofocus"in t.createElement("input"),o=r(6),u=r(7);return{go:function(){var e,t=this.init;for(e in t)t.hasOwnProperty(e)&&t[e]()},init:{disable_link_button:function(){Ext.getBody().on("click",function(e){var t=e.target,n=t.tagName.toLowerCase()==="a"&&t.className.match("button_disabled");n&&e.preventDefault()})},full_input_size:function(){if(!u||!Ext.query("textarea, input.input_full"))return;Ext.each(Ext.query("textarea, input.input_full"),function(e){Ext.get(e).wrap('<span class="input_full_wrap"></span>')})},ie6_skin_inputs:function(){if(!o||!Ext.query("input, select, textarea"))return;var e=/button|submit|reset/,t=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;Ext.each(Ext.query("input"),function(n){n.getAttribute("type").match(e)?(Ext.get(n).addClass("ie6_button"),n.disabled&&Ext.get(n).addClass("ie6_button_disabled")):n.getAttribute("type").match(t)&&(Ext.get(n).addClass("ie6_input"),n.disabled&&Ext.get(n).addClass("ie6_input_disabled"))}),Ext.each(Ext.query("textarea, select"),function(e){e.disabled&&Ext.get(e).addClass("ie6_input_disabled")})},autofocus:function(){if(s||!Ext.query("[autofocus]"))return;var e=Ext.query("[autofocus]")[0];e.disabled||e.focus()},placeholder:function(){if(i||!Ext.query("[placeholder]"))return;FORMALIZE.misc.add_placeholder(),Ext.each(Ext.query("[placeholder]"),function(e){if(e.type==="password")return;var t=e.getAttribute("placeholder"),n=Ext.get(e).parent("form");Ext.get(e).on("focus",function(){e.value===t&&(e.value="",Ext.get(e).removeClass("placeholder_text"))}),Ext.get(e).on("blur",function(){FORMALIZE.misc.add_placeholder()}),n.on("submit",function(){e.value===t&&(e.value="",Ext.get(e).removeClass("placeholder_text"))}),n.on("reset",function(){setTimeout(FORMALIZE.misc.add_placeholder,50)})})}},misc:{add_placeholder:function(){if(i||!Ext.query("[placeholder]"))return;Ext.each(Ext.query("[placeholder]"),function(e){if(e.type==="password")return;var t=e.getAttribute("placeholder");if(!e.value||e.value===t)e.value=t,Ext.get(e).addClass("placeholder_text")})}}}}(this,this.document);Ext.onReady(function(){FORMALIZE.go()})
@@ -0,0 +1,187 @@
1
+ /*
2
+ Formalize - version 1.2
3
+
4
+ Note: This file depends on the jQuery library.
5
+
6
+ This version of Formalize, "jquery.formalize.legacy.js"
7
+ is intended for use with jQuery version 1.4, and exists
8
+ because Drupal 7 ships with jQuery 1.4.4. When you are
9
+ starting a new project with a current version of jQuery,
10
+ you should simply use the "jquery.formalize.js" instead.
11
+ */
12
+
13
+ // Module pattern:
14
+ // http://yuiblog.com/blog/2007/06/12/module-pattern
15
+ var FORMALIZE = (function($, window, document, undefined) {
16
+ // Internet Explorer detection.
17
+ function IE(version) {
18
+ var b = document.createElement('b');
19
+ b.innerHTML = '<!--[if IE ' + version + ']><br><![endif]-->';
20
+ return !!b.getElementsByTagName('br').length;
21
+ }
22
+
23
+ // Private constants.
24
+ var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
25
+ var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
26
+ var IE6 = IE(6);
27
+ var IE7 = IE(7);
28
+
29
+ // Expose innards of FORMALIZE.
30
+ return {
31
+ // FORMALIZE.go
32
+ go: function() {
33
+ var i, j = this.init;
34
+
35
+ for (i in j) {
36
+ j.hasOwnProperty(i) && j[i]();
37
+ }
38
+ },
39
+ // FORMALIZE.init
40
+ init: {
41
+ // FORMALIZE.init.disable_link_button
42
+ disable_link_button: function() {
43
+ $(document.documentElement).delegate('a.button_disabled', 'click', function() {
44
+ return false;
45
+ });
46
+ },
47
+ // FORMALIZE.init.full_input_size
48
+ full_input_size: function() {
49
+ if (!IE7 || !$('textarea, input.input_full').length) {
50
+ return;
51
+ }
52
+
53
+ // This fixes width: 100% on <textarea> and class="input_full".
54
+ // It ensures that form elements don't go wider than container.
55
+ $('textarea, input.input_full').wrap('<span class="input_full_wrap"></span>');
56
+ },
57
+ // FORMALIZE.init.ie6_skin_inputs
58
+ ie6_skin_inputs: function() {
59
+ // Test for Internet Explorer 6.
60
+ if (!IE6 || !$('input, select, textarea').length) {
61
+ // Exit if the browser is not IE6,
62
+ // or if no form elements exist.
63
+ return;
64
+ }
65
+
66
+ // For <input type="submit" />, etc.
67
+ var button_regex = /button|submit|reset/;
68
+
69
+ // For <input type="text" />, etc.
70
+ var type_regex = /date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;
71
+
72
+ $('input').each(function() {
73
+ var el = $(this);
74
+
75
+ // Is it a button?
76
+ if (this.getAttribute('type').match(button_regex)) {
77
+ el.addClass('ie6_button');
78
+
79
+ /* Is it disabled? */
80
+ if (this.disabled) {
81
+ el.addClass('ie6_button_disabled');
82
+ }
83
+ }
84
+ // Or is it a textual input?
85
+ else if (this.getAttribute('type').match(type_regex)) {
86
+ el.addClass('ie6_input');
87
+
88
+ /* Is it disabled? */
89
+ if (this.disabled) {
90
+ el.addClass('ie6_input_disabled');
91
+ }
92
+ }
93
+ });
94
+
95
+ $('textarea, select').each(function() {
96
+ /* Is it disabled? */
97
+ if (this.disabled) {
98
+ $(this).addClass('ie6_input_disabled');
99
+ }
100
+ });
101
+ },
102
+ // FORMALIZE.init.autofocus
103
+ autofocus: function() {
104
+ if (AUTOFOCUS_SUPPORTED || !$(':input[autofocus]').length) {
105
+ return;
106
+ }
107
+
108
+ var el = $('[autofocus]')[0];
109
+
110
+ if (!el.disabled) {
111
+ el.focus();
112
+ }
113
+ },
114
+ // FORMALIZE.init.placeholder
115
+ placeholder: function() {
116
+ if (PLACEHOLDER_SUPPORTED || !$(':input[placeholder]').length) {
117
+ // Exit if placeholder is supported natively,
118
+ // or if page does not have any placeholder.
119
+ return;
120
+ }
121
+
122
+ FORMALIZE.misc.add_placeholder();
123
+
124
+ $(':input[placeholder]').each(function() {
125
+ // Placeholder obscured in older browsers,
126
+ // so there's no point adding to password.
127
+ if (this.type === 'password') {
128
+ return;
129
+ }
130
+
131
+ var el = $(this);
132
+ var text = el.attr('placeholder');
133
+
134
+ el.focus(function() {
135
+ if (el.val() === text) {
136
+ el.val('').removeClass('placeholder_text');
137
+ }
138
+ }).blur(function() {
139
+ FORMALIZE.misc.add_placeholder();
140
+ });
141
+
142
+ // Prevent <form> from accidentally
143
+ // submitting the placeholder text.
144
+ el.closest('form').submit(function() {
145
+ if (el.val() === text) {
146
+ el.val('').removeClass('placeholder_text');
147
+ }
148
+ }).bind('reset', function() {
149
+ setTimeout(FORMALIZE.misc.add_placeholder, 50);
150
+ });
151
+ });
152
+ }
153
+ },
154
+ // FORMALIZE.misc
155
+ misc: {
156
+ // FORMALIZE.misc.add_placeholder
157
+ add_placeholder: function() {
158
+ if (PLACEHOLDER_SUPPORTED || !$(':input[placeholder]').length) {
159
+ // Exit if placeholder is supported natively,
160
+ // or if page does not have any placeholder.
161
+ return;
162
+ }
163
+
164
+ $(':input[placeholder]').each(function() {
165
+ // Placeholder obscured in older browsers,
166
+ // so there's no point adding to password.
167
+ if (this.type === 'password') {
168
+ return;
169
+ }
170
+
171
+ var el = $(this);
172
+ var text = el.attr('placeholder');
173
+
174
+ if (!el.val() || el.val() === text) {
175
+ el.val(text).addClass('placeholder_text');
176
+ }
177
+ });
178
+ }
179
+ }
180
+ };
181
+ // Alias jQuery, window, document.
182
+ })(jQuery, this, this.document);
183
+
184
+ // Automatically calls all functions in FORMALIZE.init
185
+ jQuery(document).ready(function() {
186
+ FORMALIZE.go();
187
+ });
@@ -0,0 +1 @@
1
+ var FORMALIZE=function(a,b,c){function e(a){var b=c.createElement("b");return b.innerHTML="<!--[if IE "+a+"]><br><![endif]-->",!!b.getElementsByTagName("br").length}var f="placeholder"in c.createElement("input"),g="autofocus"in c.createElement("input"),h=e(6),i=e(7);return{go:function(){var a,b=this.init;for(a in b)b.hasOwnProperty(a)&&b[a]()},init:{disable_link_button:function(){a(c.documentElement).delegate("a.button_disabled","click",function(){return!1})},full_input_size:function(){i&&a("textarea, input.input_full").length&&a("textarea, input.input_full").wrap('<span class="input_full_wrap"></span>')},ie6_skin_inputs:function(){if(h&&a("input, select, textarea").length){var b=/button|submit|reset/,c=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;a("input").each(function(){var d=a(this);this.getAttribute("type").match(b)?(d.addClass("ie6_button"),this.disabled&&d.addClass("ie6_button_disabled")):this.getAttribute("type").match(c)&&(d.addClass("ie6_input"),this.disabled&&d.addClass("ie6_input_disabled"))}),a("textarea, select").each(function(){this.disabled&&a(this).addClass("ie6_input_disabled")})}},autofocus:function(){if(!g&&a(":input[autofocus]").length){var b=a("[autofocus]")[0];b.disabled||b.focus()}},placeholder:function(){!f&&a(":input[placeholder]").length&&(FORMALIZE.misc.add_placeholder(),a(":input[placeholder]").each(function(){if("password"!==this.type){var b=a(this),c=b.attr("placeholder");b.focus(function(){b.val()===c&&b.val("").removeClass("placeholder_text")}).blur(function(){FORMALIZE.misc.add_placeholder()}),b.closest("form").submit(function(){b.val()===c&&b.val("").removeClass("placeholder_text")}).bind("reset",function(){setTimeout(FORMALIZE.misc.add_placeholder,50)})}}))}},misc:{add_placeholder:function(){!f&&a(":input[placeholder]").length&&a(":input[placeholder]").each(function(){if("password"!==this.type){var b=a(this),c=b.attr("placeholder");b.val()&&b.val()!==c||b.val(c).addClass("placeholder_text")}})}}}}(jQuery,this,this.document);jQuery(document).ready(function(){FORMALIZE.go()});
@@ -0,0 +1,42 @@
1
+ # Make sure you list all the project template files here in the manifest.
2
+
3
+ # Image Import
4
+ file '../common/button.png', :like => :image, :to => 'button.png'
5
+ file '../common/select_arrow.gif', :like => :image, :to => 'select_arrow.gif'
6
+
7
+ discover :all
8
+
9
+ description "Teach your forms some manners."
10
+
11
+ help %Q{
12
+ Please see the Formalize website for documentation:
13
+
14
+ http://formalize.me/
15
+ }
16
+
17
+ welcome_message %Q{
18
+
19
+ Formalize assets have been copied to the proper asset folders
20
+ based on your Compass configuration.
21
+
22
+ Usage:
23
+
24
+ If you're using SCSS syntax, in your stylesheet:
25
+
26
+ @import "formalize";
27
+
28
+ or if you're using indented syntax
29
+
30
+ @import "formalize"
31
+
32
+ In your HTML markup, include the JavaScript implementation of
33
+ your choice:
34
+
35
+ // a jQuery example
36
+ <script src="/javascripts/jquery.formalize.legacy.js"></script>
37
+
38
+ Please see the Formalize website for documentation:
39
+
40
+ http://formalize.me/
41
+ }
42
+