whowish_word 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. data/.gitignore +6 -0
  2. data/.loadpath +5 -0
  3. data/.project +17 -0
  4. data/Gemfile +3 -0
  5. data/HOW_TO_BUILD_WHOWISH_HOOK.md +10 -0
  6. data/ISSUE.md +93 -0
  7. data/README.md +72 -0
  8. data/config.ru +4 -0
  9. data/lib/legacy/whowish_word/config.rb +1 -0
  10. data/lib/legacy/whowish_word/init.rb +4 -0
  11. data/lib/legacy/whowish_word/lib/app/controllers/whowish_word_controller.rb +115 -0
  12. data/lib/legacy/whowish_word/lib/app/controllers/whowish_word_email_controller.rb +66 -0
  13. data/lib/legacy/whowish_word/lib/app/controllers/whowish_word_facebook_controller.rb +62 -0
  14. data/lib/legacy/whowish_word/lib/app/models/mongodb/whowish_word.rb +12 -0
  15. data/lib/legacy/whowish_word/lib/app/models/mongodb/whowish_word_email.rb +10 -0
  16. data/lib/legacy/whowish_word/lib/app/models/mongodb/whowish_word_facebook.rb +28 -0
  17. data/lib/legacy/whowish_word/lib/app/models/mysql/whowish_word.rb +5 -0
  18. data/lib/legacy/whowish_word/lib/app/models/mysql/whowish_word_email.rb +5 -0
  19. data/lib/legacy/whowish_word/lib/app/models/mysql/whowish_word_facebook.rb +18 -0
  20. data/lib/legacy/whowish_word/lib/app/views/layouts/whowish_word_blank.html.erb +94 -0
  21. data/lib/legacy/whowish_word/lib/app/views/whowish_word/_javascript.html.erb +82 -0
  22. data/lib/legacy/whowish_word/lib/app/views/whowish_word/_row.html.erb +50 -0
  23. data/lib/legacy/whowish_word/lib/app/views/whowish_word/index.html.erb +219 -0
  24. data/lib/legacy/whowish_word/lib/app/views/whowish_word/login.html.erb +5 -0
  25. data/lib/legacy/whowish_word/lib/app/views/whowish_word_email/_row.html.erb +42 -0
  26. data/lib/legacy/whowish_word/lib/app/views/whowish_word_email/index.html.erb +99 -0
  27. data/lib/legacy/whowish_word/lib/app/views/whowish_word_facebook/_row.html.erb +48 -0
  28. data/lib/legacy/whowish_word/lib/app/views/whowish_word_facebook/index.html.erb +100 -0
  29. data/lib/legacy/whowish_word/lib/db_migration.rb +2 -0
  30. data/lib/legacy/whowish_word/lib/db_migration/mongodb.rb +0 -0
  31. data/lib/legacy/whowish_word/lib/db_migration/mysql.rb +60 -0
  32. data/lib/legacy/whowish_word/lib/hook.rb +186 -0
  33. data/lib/whowish_word.rb +1 -0
  34. data/lib/whowish_word/action_controller/base.rb +35 -0
  35. data/lib/whowish_word/action_mailer/base.rb +12 -0
  36. data/lib/whowish_word/action_view/base.rb +65 -0
  37. data/lib/whowish_word/action_view/template.rb +22 -0
  38. data/lib/whowish_word/authentication.rb +14 -0
  39. data/lib/whowish_word/constant.rb +9 -0
  40. data/lib/whowish_word/db_migration/active_record/whowish_word_html.rb +15 -0
  41. data/lib/whowish_word/initializer.rb +55 -0
  42. data/lib/whowish_word/rails/app/controllers/whowish_word_controller.rb +71 -0
  43. data/lib/whowish_word/rails/app/models/active_record/whowish_word_html.rb +4 -0
  44. data/lib/whowish_word/rails/app/models/mongoid/whowish_word_html.rb +10 -0
  45. data/lib/whowish_word/rails/public/javascripts/0_class.js +64 -0
  46. data/lib/whowish_word/rails/public/javascripts/0_jquery-1.6.4-whowish_word.js +9046 -0
  47. data/lib/whowish_word/rails/public/javascripts/1_csrf_and_authenticity_token_hook.js +9 -0
  48. data/lib/whowish_word/rails/public/javascripts/1_jquery.escape.js +23 -0
  49. data/lib/whowish_word/rails/public/javascripts/1_jquery.loading_button.js +66 -0
  50. data/lib/whowish_word/rails/public/javascripts/1_jquery.sizes.min.js +8 -0
  51. data/lib/whowish_word/rails/public/javascripts/2_whowish_word_variables.js +64 -0
  52. data/lib/whowish_word/rails/public/javascripts/3_whowish_word_dialog.js +136 -0
  53. data/lib/whowish_word/rails/public/javascripts/3_whowish_word_helper.js +94 -0
  54. data/lib/whowish_word/rails/public/javascripts/4_whowish_word.js +43 -0
  55. data/lib/whowish_word/rails/public/javascripts/4_whowish_word_content_handler.js +15 -0
  56. data/lib/whowish_word/rails/public/javascripts/4_whowish_word_creator.js +62 -0
  57. data/lib/whowish_word/rails/public/javascripts/5_whowish_word_common_creator.js +49 -0
  58. data/lib/whowish_word/rails/public/javascripts/6_whowish_word_element_creator.js +72 -0
  59. data/lib/whowish_word/rails/public/javascripts/6_whowish_word_html_creator.js +19 -0
  60. data/lib/whowish_word/rails/public/javascripts/6_whowish_word_select_creator.js +11 -0
  61. data/lib/whowish_word/rails/public/javascripts/6_whowish_word_text_creator.js +20 -0
  62. data/lib/whowish_word/rails/public/javascripts/6_whowish_word_value_creator.js +20 -0
  63. data/lib/whowish_word/rails/public/javascripts/7_whowish_word_attribute_handler.js +17 -0
  64. data/lib/whowish_word/rails/public/javascripts/7_whowish_word_html_handler.js +15 -0
  65. data/lib/whowish_word/rails/public/javascripts/7_whowish_word_text_handler.js +15 -0
  66. data/lib/whowish_word/rails/public/javascripts/7_whowish_word_value_handler.js +19 -0
  67. data/lib/whowish_word/rails/public/stylesheets/whowish_word.css +197 -0
  68. data/lib/whowish_word/whowish_word.rb +39 -0
  69. data/lib/whowish_word/word_for.rb +97 -0
  70. data/rails/Gemfile +18 -0
  71. data/rails/Gemfile.lock +130 -0
  72. data/rails/Rakefile +7 -0
  73. data/rails/app/assets/javascripts/integration.js +2 -0
  74. data/rails/app/assets/javascripts/test_javascript.js +2 -0
  75. data/rails/app/assets/javascripts/test_word_for.js +2 -0
  76. data/rails/app/assets/stylesheets/integration.css +4 -0
  77. data/rails/app/assets/stylesheets/test_javascript.css +4 -0
  78. data/rails/app/assets/stylesheets/test_word_for.css +4 -0
  79. data/rails/app/controllers/application_controller.rb +14 -0
  80. data/rails/app/controllers/home_controller.rb +9 -0
  81. data/rails/app/controllers/integration_controller.rb +5 -0
  82. data/rails/app/controllers/test_javascript_controller.rb +11 -0
  83. data/rails/app/controllers/test_word_for_controller.rb +5 -0
  84. data/rails/app/helpers/integration_helper.rb +2 -0
  85. data/rails/app/helpers/test_javascript_helper.rb +2 -0
  86. data/rails/app/helpers/test_word_for_helper.rb +2 -0
  87. data/rails/app/views/home/index.html.erb +95 -0
  88. data/rails/app/views/home/static_edit.html.erb +50 -0
  89. data/rails/app/views/home/static_edit_select.html.erb +9 -0
  90. data/rails/app/views/integration/attr.html.erb +1 -0
  91. data/rails/app/views/integration/index.html.erb +1 -0
  92. data/rails/app/views/integration/select.html.erb +3 -0
  93. data/rails/app/views/integration/value.html.erb +1 -0
  94. data/rails/app/views/layouts/integration.html.erb +14 -0
  95. data/rails/app/views/layouts/main.html.erb +14 -0
  96. data/rails/app/views/layouts/nested_test_word_for.html.erb +14 -0
  97. data/rails/app/views/layouts/test_javascript.html.erb +13 -0
  98. data/rails/app/views/layouts/test_word_for.html.erb +22 -0
  99. data/rails/app/views/test_javascript/change_value.html.erb +32 -0
  100. data/rails/app/views/test_javascript/index.html.erb +78 -0
  101. data/rails/app/views/test_word_for/_partial.html.erb +5 -0
  102. data/rails/app/views/test_word_for/index.html.erb +7 -0
  103. data/rails/config.ru +4 -0
  104. data/rails/config/application.rb +30 -0
  105. data/rails/config/boot.rb +9 -0
  106. data/rails/config/database.yml +25 -0
  107. data/rails/config/environment.rb +16 -0
  108. data/rails/config/initializers/whowish_word.rb +5 -0
  109. data/rails/config/mongoid.rb +6 -0
  110. data/rails/config/mongoid.yml +14 -0
  111. data/rails/config/routes.rb +7 -0
  112. data/rails/log/.gitignore +2 -0
  113. data/rails/mongo.bat +5 -0
  114. data/rails/public/jasmine/MIT.LICENSE +20 -0
  115. data/rails/public/jasmine/jasmine-html.js +190 -0
  116. data/rails/public/jasmine/jasmine.css +166 -0
  117. data/rails/public/jasmine/jasmine.js +2476 -0
  118. data/rails/public/jasmine/jasmine_favicon.png +0 -0
  119. data/rails/public/javascripts/jquery-1.6.4.js +9046 -0
  120. data/rails/public/sinonjs/sinonjs.js +2821 -0
  121. data/rails/public/stylesheets/main.css +22 -0
  122. data/rails/public/test/jquery_version.html +26 -0
  123. data/rails/script/rails +6 -0
  124. data/rails/spec/controllers/whowish_word_controller_spec.rb +56 -0
  125. data/rails/spec/integration/whowish_word_generator_spec.rb +116 -0
  126. data/rails/spec/integration/whowish_word_spec.rb +110 -0
  127. data/rails/spec/spec_helper.rb +44 -0
  128. data/rails/spec/support/browser.rb +194 -0
  129. data/rails/spec/support/json_rspec_helper.rb +9 -0
  130. data/rails/spec/support/mongoid_helper.rb +10 -0
  131. data/spec/spec_helper.rb +19 -0
  132. data/spec/unit/word_for_attr_in_edit_mode_spec.rb +44 -0
  133. data/spec/unit/word_for_attr_spec.rb +44 -0
  134. data/spec/unit/word_for_in_edit_mode_spec.rb +44 -0
  135. data/spec/unit/word_for_spec.rb +44 -0
  136. data/whowish_word.gemspec +21 -0
  137. metadata +181 -0
@@ -0,0 +1,15 @@
1
+ var WhowishWordContentHandler = Class.extend({
2
+
3
+ init: function(elem){
4
+ this.element = elem;
5
+ },
6
+
7
+ setContent: function(){
8
+ throw 'Not implemented';
9
+ },
10
+
11
+ getContent: function(){
12
+ throw 'Not implemented';
13
+ }
14
+
15
+ });
@@ -0,0 +1,62 @@
1
+
2
+ var WhowishWordCreator = Class.extend({
3
+
4
+ init: function(elem){
5
+
6
+ this.element = elem;
7
+
8
+ if (this.element.tagName.toLowerCase() == "option") {
9
+ this.editIconPanel = (new WhowishWordSelectCreator($w(this.element).parent()[0])).editIconPanel;
10
+ } else {
11
+ this.editIconPanel = this.createAndGetEditIconPanel();
12
+ }
13
+
14
+ this.element.editIconPanel = this.editIconPanel;
15
+
16
+ this.makeEditIcon();
17
+ this.sanitize();
18
+
19
+ },
20
+
21
+ makeEditIcon: function() {
22
+ throw 'makeEditIcon() is not implemented'
23
+ },
24
+
25
+ sanitize: function() {
26
+ throw 'sanitize() is not implemented'
27
+ },
28
+
29
+ addEditIcon: function(editIcon){
30
+ this.editIconPanel.appendChild(editIcon);
31
+ },
32
+
33
+ createAndGetEditIconPanel: function() {
34
+
35
+ if (this.element.editIconPanel != undefined)
36
+ return this.element.editIconPanel;
37
+
38
+ var editIconPanel = document.createElement('span');
39
+
40
+ editIconPanel.whowishWord = {};
41
+ editIconPanel.whowishWord.editIconPanel = editIconPanel;
42
+ editIconPanel.whowishWord.element = this.element;
43
+ editIconPanel.whowishWord.reposition = whowishWordHelper.editIconPanelRepositioning;
44
+
45
+ $w(editIconPanel).attr('id', this.generateEditIconPanelId())
46
+ .addClass('whowishWordEditIconPanel');
47
+
48
+ editIconPanel.whowishWord.reposition();
49
+
50
+
51
+ $w(this.element).after(editIconPanel);
52
+
53
+ return editIconPanel;
54
+ },
55
+
56
+
57
+ generateEditIconPanelId: function() {
58
+ return this.element.id + "EditPanel" + (whowishWordVariables.idRunner++);
59
+ }
60
+
61
+
62
+ });
@@ -0,0 +1,49 @@
1
+ var WhowishWordCommonCreator = WhowishWordCreator.extend({
2
+
3
+ identity: function() {
4
+ throw 'identity() is not implemented'
5
+ },
6
+
7
+ getContent: function() {
8
+ throw 'getContent() is not implemented'
9
+ },
10
+
11
+ setContent: function() {
12
+ throw 'setContent() is not implemented'
13
+ },
14
+
15
+ instantiateAndGetContentHandler: function() {
16
+ throw 'instantiateAndGetContentHandler() is not implemented'
17
+ },
18
+
19
+ makeEditIcon: function(){
20
+
21
+ var editIcon = document.createElement('span');
22
+ $w(editIcon).addClass('whowishWordEditIcon');
23
+ $w(editIcon).attr('id', this.element.id +
24
+ whowishWordVariables.separator +
25
+ this.identity());
26
+ $w(editIcon).attr('title', this.identity());
27
+
28
+ var whowishWordIdPackage = whowishWordHelper.extractWhowishWordIdFromText(this.getContent());
29
+ var idPackage = whowishWordHelper.parseWhowishWordIdPackage(whowishWordIdPackage);
30
+
31
+ editIcon.whowishWord = {};
32
+ editIcon.whowishWord.contentHandler = this.instantiateAndGetContentHandler();
33
+
34
+ editIcon.whowishWord.id = idPackage.id;
35
+ editIcon.whowishWord.variables = idPackage.variables;
36
+
37
+ this.addEditIcon(editIcon);
38
+
39
+ },
40
+
41
+
42
+ sanitize: function(){
43
+
44
+ this.setContent(this.getContent().replace(whowishWordVariables.attributeValuePattern,"$2"));
45
+
46
+ },
47
+
48
+
49
+ });
@@ -0,0 +1,72 @@
1
+ var WhowishWordElementCreator = WhowishWordCreator.extend({
2
+
3
+ makeEditIcon: function(){
4
+
5
+ var attrs = this.getRelevantAttributes();
6
+
7
+ for (var i=0;i<attrs.length;i++) {
8
+
9
+ var editIcon = document.createElement('span');
10
+ $w(editIcon).addClass('whowishWordEditIcon');
11
+ $w(editIcon).attr('id', this.getEditIconId(attrs[i]));
12
+ $w(editIcon).attr('title', attrs[i]);
13
+
14
+ var whowishWordIdPackage = whowishWordHelper.extractWhowishWordIdFromText(this.element[attrs[i]]);
15
+ var idPackage = whowishWordHelper.parseWhowishWordIdPackage(whowishWordIdPackage);
16
+
17
+ editIcon.whowishWord = {};
18
+ editIcon.whowishWord.contentHandler = new WhowishWordAttributeHandler(this.element, attrs[i]);
19
+
20
+ editIcon.whowishWord.id = idPackage.id;
21
+ editIcon.whowishWord.variables = idPackage.variables;
22
+ editIcon.whowishWord.attributeName = attrs[i];
23
+
24
+ this.addEditIcon(editIcon);
25
+ }
26
+
27
+ },
28
+
29
+
30
+ sanitize: function(){
31
+
32
+ var attrs = this.getRelevantAttributes();
33
+
34
+ for (var i=0;i<attrs.length;i++) {
35
+ var newValue = this.element[attrs[i]].replace(whowishWordVariables.attributeValuePattern,"$2");
36
+ this.element.attributes[attrs[i]].value = newValue;
37
+ this.element[attrs[i]] = newValue;
38
+ }
39
+
40
+ },
41
+
42
+ getEditIconId: function(attributeName) {
43
+
44
+ return this.element.id +
45
+ whowishWordVariables.separator +
46
+ attributeName;
47
+ },
48
+
49
+
50
+
51
+ getRelevantAttributes: function() {
52
+
53
+ var attrs = [];
54
+
55
+ for (var i = 0; i < this.element.attributes.length; i++) {
56
+
57
+ if (this.element.attributes[i].name.toLowerCase() == "id") continue;
58
+ if (this.element.attributes[i].name.toLowerCase() == "value") continue;
59
+
60
+ if (this.element.attributes[i].value.match(whowishWordVariables.attributeValuePattern) != null) {
61
+ attrs.push(this.element.attributes[i].name);
62
+ }
63
+
64
+ }
65
+
66
+ return attrs;
67
+
68
+ }
69
+
70
+
71
+
72
+ });
@@ -0,0 +1,19 @@
1
+ var WhowishWordHtmlCreator = WhowishWordCommonCreator.extend({
2
+
3
+ identity: function() {
4
+ return 'html';
5
+ },
6
+
7
+ getContent: function() {
8
+ return $w(this.element).html();
9
+ },
10
+
11
+ setContent: function(content) {
12
+ $w(this.element).html(content);
13
+ },
14
+
15
+ instantiateAndGetContentHandler: function() {
16
+ return new WhowishWordHtmlHandler(this.element);
17
+ }
18
+
19
+ });
@@ -0,0 +1,11 @@
1
+ var WhowishWordSelectCreator = WhowishWordCreator.extend({
2
+
3
+ makeEditIcon: function() {
4
+
5
+ },
6
+
7
+ sanitize: function() {
8
+
9
+ }
10
+
11
+ });
@@ -0,0 +1,20 @@
1
+ var WhowishWordTextCreator = WhowishWordCommonCreator.extend({
2
+
3
+ identity: function() {
4
+ return 'text';
5
+ },
6
+
7
+ getContent: function() {
8
+ return $w(this.element).text();
9
+ },
10
+
11
+ setContent: function(content) {
12
+ $w(this.element).text(content);
13
+ },
14
+
15
+ instantiateAndGetContentHandler: function() {
16
+ return new WhowishWordTextHandler(this.element);
17
+ }
18
+
19
+
20
+ });
@@ -0,0 +1,20 @@
1
+ var WhowishWordValueCreator = WhowishWordCommonCreator.extend({
2
+
3
+ identity: function() {
4
+ return 'value';
5
+ },
6
+
7
+ getContent: function() {
8
+ return $w(this.element).val();
9
+ },
10
+
11
+ setContent: function(content) {
12
+ $w(this.element).val(content);
13
+ },
14
+
15
+ instantiateAndGetContentHandler: function() {
16
+ return new WhowishWordValueHandler(this.element);
17
+ }
18
+
19
+
20
+ });
@@ -0,0 +1,17 @@
1
+ var WhowishWordAttributeHandler = WhowishWordContentHandler.extend({
2
+
3
+ init: function(elem,attributeName){
4
+ this.element = elem;
5
+ this.attributeName = attributeName;
6
+ },
7
+
8
+ setContent: function(content){
9
+ this.element[this.attributeName] = content;
10
+ this.element.attributes[this.attributeName].value = content;
11
+ },
12
+
13
+ getContent: function(){
14
+ return this.element[this.attributeName];
15
+ }
16
+
17
+ });
@@ -0,0 +1,15 @@
1
+ var WhowishWordHtmlHandler = WhowishWordContentHandler.extend({
2
+
3
+ init: function(elem){
4
+ this.element = elem;
5
+ },
6
+
7
+ setContent: function(content){
8
+ $w(this.element).html(content);
9
+ },
10
+
11
+ getContent: function(){
12
+ return $w(this.element).html();
13
+ }
14
+
15
+ });
@@ -0,0 +1,15 @@
1
+ var WhowishWordTextHandler = WhowishWordContentHandler.extend({
2
+
3
+ init: function(elem){
4
+ this.element = elem;
5
+ },
6
+
7
+ setContent: function(content){
8
+ $w(this.element).text(content);
9
+ },
10
+
11
+ getContent: function() {
12
+ return $w(this.element).text();
13
+ }
14
+
15
+ });
@@ -0,0 +1,19 @@
1
+ var WhowishWordValueHandler = WhowishWordContentHandler.extend({
2
+
3
+ init: function(elem){
4
+ this.element = elem;
5
+ },
6
+
7
+ setContent: function(content){
8
+ $w(this.element).val(content);
9
+
10
+ if (this.element.attributes['value'] != undefined) {
11
+ this.element.attributes['value'].value = content;
12
+ }
13
+ },
14
+
15
+ getContent: function(){
16
+ return $w(this.element).val();
17
+ }
18
+
19
+ });
@@ -0,0 +1,197 @@
1
+ .whowishWordLoadingIcon {
2
+ background: url("data:image/gif;base64,R0lGODlhEAALAPQAAP///0tMSuTk5N3d3e/v709QTktMSmtsaqanpo6Pjs7OzWJjYn9/fqysq5GSkNDR0GVmZE1OTIGCge3t7OPj4/b29nJzcebm5fX19cvLyru8u9nZ2fLy8gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA") no-repeat scroll right center transparent;
3
+ padding-right: 20px;
4
+ display:inline-block;
5
+ }
6
+
7
+ .whowishWordEditIconPanel {
8
+ position:absolute;
9
+ height:1px;
10
+ width:1px;
11
+ overflow:visible;
12
+ display:block;
13
+ white-space:nowrap;
14
+ }
15
+
16
+ .whowishWordEditIcon {
17
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEpUlEQVR42rVVbUikVRS+986M48w0H866hc6YqyUr60eB/YhsVUiXCjMK61ewUBGhP0IJTFgIf6z2Q6UVNEyXsK1fpv4IXRFTRxFFDTUFc13MTxRW12+dz3t7zjDC4qa7EnvhcN+5733Pc85znnOGs2e8+Hk/6OjoiDo8PIzPz88fxB5tMBgk53z9fwEopV7G9trKysqXPp8v0263B6xWK51r4Pw27POnAniw8TAi8kLEe3i8AkuBJfsD8kWucFE8iqdYyLhOp5sFQOJTAfT392fEvXTZZTQYmNEYzqSEEybpktSH6YTEElh0l57hWMAYstKBKv+ZAG63+5XZ2dmvHQ7nJz6/lPpwvQjX65lEpH6fT5pNBhEIAWBjcIxXSsA5gjFm4nf/mQAzMzOKdnAro6Ki+PbOntIDwB8IMJ1Ww7UaoUL3FSVBCXg8HkVZAOAG9ptnAjQ2NlZlZ2cXB+AwLi5O+v1+RKyQfgA0MQkAEabTSK1WK1DsYCBwLLa3t1lnZ+fizs5ORWFhYf2pAIggbnl5eZ4+SEpKCgJ4vH4WUMGySvgXJqNednd3i4WFhWAZzGazWF9fZ0dHRwz3GcBjSktLV04C6GB2mCgvL7+dm5v7TnJSinJ73QrUA1hAXQ+4+TmTuhhp5w0NDQqOggo6ONhXW1vb5JgTCMyD7CoBJltaWr49BiBVxMLMNpstYXp6+jfGtdJiswmFYno9HhZhs8h792YFMpSwYJHb2trkxMRfQRVFRkbK5OQrAjVhXq+XEc240wDqvjimyAR7lQB/rK+vy772dsrF519gMiCZXq9j/8zflwMDA0EBaTQacefOL8zlGpBXr74hYmNj2dTUlNzc3BRpaWkM3S0BQLX5Y3R0NPvRPognkJiYmOSe3r4yk9mKwmoY9M/aWpu51+ujBuP4UFVWVrJbt77nGRmZimQKh7y5uVm2t7drwILa39/nyOBT9NVP/EQ93oI5a2trbxYUFERvbD5kVouZjYyMyLq6OpGeni5XV1fF2toaQy0kohXU0XCmwL/Ky8tbRUZOvOfIduXg4ODayVlkgX3sdDrfXF5auu72eKiZSGH87t1OhTpwFFANDg6y1tZWjsiDGVBmkCyrrq729/X1aSFZOhe46/qvYUdz5aPJyclvEhMTjeRgfHxcDg0NCUQZlO/8/DwzmUyyqKhIxMfHM1Aie3p6BCTMwLsk4VAzgs6606bpuxUVFdUlJSWXd3d32djYmOzq6hI0mhcXF8XGxgZFLcPDw4XFYiFvElEHgak/CAB39vf29j44DcCUlZX1a29v7/vgmaGZZFlZmYCEJXgVCQkJDJKURAPJknRPyiH5kkQB9gMCKXhsmp5YnyHKRjgMDs6trS01NzfH8TGvqqpSiJ4cE9f8eHyDKkVACKpmaWnpqycBRE1MTNxPTU01kiOoh7tcLtnU1DQDlTggBBtlR3ShNnugSRMdHW0MTdrrw8PDPz8JgBUXF7c7HI7XoRB7TU1NJyZuJY7/Ri1qcnJyPkSUDFmVIsvvcH4BPXQDGf0OSnseG3anrDCYFdFdQmR/hgqoCc2uSziniF1nOTj3n/551zMH+Bfaysi1r322EQAAAABJRU5ErkJggg%3D%3D") no-repeat scroll right center transparent;
18
+ cursor: pointer;
19
+ width:20px;
20
+ height:20px;
21
+ display:inline-block;
22
+ }
23
+
24
+ .whowishWordDialogOverlay {
25
+
26
+ position: fixed !important;
27
+ top: 0pt !important;
28
+ z-index: 1000000 !important;
29
+ height: 100% !important;
30
+ left: 0pt !important;
31
+ width: 100% !important;
32
+ display:none;
33
+ margin: 0px 0px 0px 0px !important;
34
+ padding: 0px 0px 0px 0px !important;
35
+
36
+ background-color:#000000;
37
+
38
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
39
+ filter: alpha(opacity=50);
40
+ -moz-opacity:0.5;
41
+ opacity: 0.5;
42
+ }
43
+
44
+ .whowishWordDialog > h1 {
45
+ font-size: 20px;
46
+ display: block;
47
+ border-bottom: 1px solid #CCCCCC;
48
+ padding-bottom:4px;
49
+ margin-top:5px;
50
+ margin-bottom:5px;
51
+ }
52
+
53
+ .whowishWordDialog > span {
54
+ display: block;
55
+ }
56
+
57
+ .whowishWordDialog > .buttonPanel {
58
+ margin-top:8px;
59
+ margin-left:5px;
60
+ }
61
+
62
+ .whowishWordDialog > .contentPanel > .content {
63
+ display: block;
64
+ width:590px;
65
+ height:170px;
66
+ }
67
+
68
+ .whowishWordDialog {
69
+
70
+ position:absolute;
71
+ left:100px;
72
+ top:100px;
73
+
74
+ display:none;
75
+ z-index:1000001;
76
+
77
+
78
+
79
+ font-family: 'Bitstream Vera Sans Mono','Courier',monospace;
80
+ background-color:#DDDDDD;
81
+ color: #333;
82
+ font-size: 14px;
83
+ line-height: 1.5em;
84
+ text-decoration: none;
85
+
86
+ -moz-box-shadow:0 0px 8px rgba(0, 0, 0, .8);
87
+ -webkit-box-shadow:0 0px 8px rgba(0, 0, 0, .8);
88
+ box-shadow:0 0px 8px rgba(0, 0, 0, .8);
89
+ /* For IE 8 */
90
+ -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=8, Direction=90, Color='#000000')";
91
+ /* For IE 5.5 - 7 */
92
+ filter: progid:DXImageTransform.Microsoft.Shadow(Strength=8, Direction=90, Color='#000000');
93
+
94
+ background: #DDD;
95
+ background: -webkit-gradient(linear, left top, left bottom, from(#f4f4f4), to(#dedede));
96
+ background: -moz-linear-gradient(top, #f4f4f4, #dedede);
97
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f4f4', endColorstr='#dedede');
98
+
99
+ -webkit-border-radius: 10px;
100
+ -moz-border-radius: 10px;
101
+ border-radius: 10px;
102
+
103
+ border-top-width: 1px;
104
+ border-right-width: 1px;
105
+ border-bottom-width: 1px;
106
+ border-left-width: 1px;
107
+ border-top-style: solid;
108
+ border-right-style: solid;
109
+ border-bottom-style: solid;
110
+ border-left-style: solid;
111
+ border-top-color: #FFFFFF;
112
+ border-right-color: #666;
113
+ border-bottom-color: #666;
114
+ border-left-color: #FFFFFF;
115
+ padding: 10px;
116
+
117
+ }
118
+
119
+
120
+ .whowishWordDialog > .buttonPanel > .saveButton,
121
+ .whowishWordDialog > .buttonPanel > .closeButton {
122
+
123
+ content:"&nbsp;"
124
+ margin-left: 10px;
125
+ margin-right:10px;
126
+ display: inline-block;
127
+ cursor: pointer;
128
+ font-size:18px;
129
+ text-align: center;
130
+ text-decoration: none;
131
+ text-shadow: 0 1px 1px rgba(0,0,0,.6);
132
+ -webkit-border-radius: 6px;
133
+ -moz-border-radius: 6px;
134
+ border-radius: 6px;
135
+ -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
136
+ -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
137
+ box-shadow: 0 1px 2px rgba(0,0,0,.2);
138
+ color: #FFF;
139
+ border: solid 1px;
140
+ padding-top: 2px;
141
+ padding-right: 10px;
142
+ padding-bottom: 2px;
143
+ padding-left: 10px;
144
+ font-weight: 400;
145
+
146
+ -moz-box-shadow:0 1px 2px rgba(0, 0, 0, .8);
147
+ -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, .8);
148
+ box-shadow:0 1px 2px rgba(0, 0, 0, .8);
149
+ /* For IE 8 */
150
+ -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=2, Direction=90, Color='#000000')";
151
+ /* For IE 5.5 - 7 */
152
+ filter: progid:DXImageTransform.Microsoft.Shadow(Strength=2, Direction=90, Color='#000000');
153
+ }
154
+
155
+ .whowishWordDialog > .buttonPanel > .saveButton {
156
+ border-color: #68a337;
157
+ background: #78bd40;
158
+ background: -webkit-gradient(linear, left top, left bottom, from(#78bd40), to(#4f7d2b));
159
+ background: -moz-linear-gradient(top, #78bd40, #4f7d2b);
160
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#78bd40', endColorstr='#4f7d2b');
161
+ }
162
+ .whowishWordDialog > .buttonPanel > .saveButton:hover {
163
+ background: #4f7d2b;
164
+ background: -webkit-gradient(linear, left top, left bottom, from(#68a337), to(#4f7d2b));
165
+ background: -moz-linear-gradient(top, #68a337, #4f7d2b);
166
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#68a337', endColorstr='#4f7d2b');
167
+ }
168
+ .whowishWordDialog > .buttonPanel > .saveButton:active {
169
+ color: #dde9d5;
170
+ background: -webkit-gradient(linear, left top, left bottom, from(#4f7d2b), to(#78bd40));
171
+ background: -moz-linear-gradient(top, #4f7d2b, #78bd40);
172
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f7d2b', endColorstr='#78bd40');
173
+ }
174
+
175
+ .whowishWordDialog > .buttonPanel > .closeButton {
176
+ border-color: #da7c0c;
177
+ background: #f78d1d;
178
+ background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20));
179
+ background: -moz-linear-gradient(top, #faa51a, #f47a20);
180
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20');
181
+ }
182
+ .whowishWordDialog > .buttonPanel > .closeButton:hover {
183
+ background: #f47c20;
184
+ background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015));
185
+ background: -moz-linear-gradient(top, #f88e11, #f06015);
186
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015');
187
+ }
188
+ .whowishWordDialog > .buttonPanel > .closeButton:active {
189
+ color: #FCDEB5;
190
+ background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a));
191
+ background: -moz-linear-gradient(top, #f47a20, #faa51a);
192
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a');
193
+ }
194
+
195
+ dfn {
196
+ font-style:normal;
197
+ }