common_interface 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. data/Rakefile +66 -0
  2. data/lib/common_interface.rb +39 -0
  3. data/lib/common_interface/README.md +51 -0
  4. data/lib/common_interface/demo/basic.rb +96 -0
  5. data/lib/common_interface/demo/site.rb +10 -0
  6. data/lib/common_interface/demo/view_helper.rb +17 -0
  7. data/lib/common_interface/public/common_interface/asset_packages.yml +89 -0
  8. data/lib/common_interface/public/common_interface/images/img1.jpg +0 -0
  9. data/lib/common_interface/public/common_interface/images/img1_200.jpg +0 -0
  10. data/lib/common_interface/public/common_interface/images/img1_icon.jpg +0 -0
  11. data/lib/common_interface/public/common_interface/images/img1_thumb.jpg +0 -0
  12. data/lib/common_interface/public/common_interface/images/img2.jpg +0 -0
  13. data/lib/common_interface/public/common_interface/images/img2_200.jpg +0 -0
  14. data/lib/common_interface/public/common_interface/images/img2_icon.jpg +0 -0
  15. data/lib/common_interface/public/common_interface/images/img2_thumb.jpg +0 -0
  16. data/lib/common_interface/public/common_interface/images/img3.jpg +0 -0
  17. data/lib/common_interface/public/common_interface/images/img3_200.jpg +0 -0
  18. data/lib/common_interface/public/common_interface/images/img3_icon.jpg +0 -0
  19. data/lib/common_interface/public/common_interface/images/img3_thumb.jpg +0 -0
  20. data/lib/common_interface/public/common_interface/images/video_icon.png +0 -0
  21. data/lib/common_interface/public/common_interface/js/aspects.js +0 -0
  22. data/lib/common_interface/public/common_interface/js/basic.js +229 -0
  23. data/lib/common_interface/public/common_interface/js/files_upload.js +115 -0
  24. data/lib/common_interface/public/common_interface/js/items.js +118 -0
  25. data/lib/common_interface/public/common_interface/js/style.js +50 -0
  26. data/lib/common_interface/public/common_interface/lib/jquery.elastic.js +117 -0
  27. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/blank.gif +0 -0
  28. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_close.png +0 -0
  29. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_loading.png +0 -0
  30. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_nav_left.png +0 -0
  31. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_nav_right.png +0 -0
  32. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_e.png +0 -0
  33. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_n.png +0 -0
  34. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_ne.png +0 -0
  35. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_nw.png +0 -0
  36. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_s.png +0 -0
  37. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_se.png +0 -0
  38. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_sw.png +0 -0
  39. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_w.png +0 -0
  40. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_left.png +0 -0
  41. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_main.png +0 -0
  42. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_over.png +0 -0
  43. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_right.png +0 -0
  44. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox-x.png +0 -0
  45. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox-y.png +0 -0
  46. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox.png +0 -0
  47. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.easing-1.3.pack.js +72 -0
  48. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox-1.3.1.js +1077 -0
  49. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox.css +363 -0
  50. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox.js +44 -0
  51. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.mousewheel-3.0.2.pack.js +13 -0
  52. data/lib/common_interface/public/common_interface/lib/jquery.form.js +660 -0
  53. data/lib/common_interface/public/common_interface/lib/jquery.hoverIntent.js +111 -0
  54. data/lib/common_interface/public/common_interface/lib/jquery.jgrowl/jquery.jgrowl.css +128 -0
  55. data/lib/common_interface/public/common_interface/lib/jquery.jgrowl/jquery.jgrowl.js +307 -0
  56. data/lib/common_interface/public/common_interface/lib/jquery.js +4376 -0
  57. data/lib/common_interface/public/common_interface/lib/jquery.json.js +178 -0
  58. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/cancel.png +0 -0
  59. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/jquery.swfupload.js +64 -0
  60. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/style.css +8 -0
  61. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.js +980 -0
  62. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.queue.js +98 -0
  63. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.swf +0 -0
  64. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/wdp_buttons_upload_61x22.png +0 -0
  65. data/lib/common_interface/public/common_interface/lib/jquery.template.js +255 -0
  66. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  67. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  68. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  69. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  70. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  71. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  72. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  73. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  74. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  75. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_222222_256x240.png +0 -0
  76. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_228ef1_256x240.png +0 -0
  77. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ef8c08_256x240.png +0 -0
  78. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ffd27a_256x240.png +0 -0
  79. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ffffff_256x240.png +0 -0
  80. data/lib/common_interface/public/common_interface/lib/jquery.ui/jquery.ui.css +406 -0
  81. data/lib/common_interface/public/common_interface/lib/jquery.ui/jquery.ui.js +71 -0
  82. data/lib/common_interface/public/common_interface/themes/default/_aspects.scss +58 -0
  83. data/lib/common_interface/public/common_interface/themes/default/_basic.scss +228 -0
  84. data/lib/common_interface/public/common_interface/themes/default/_components.scss +151 -0
  85. data/lib/common_interface/public/common_interface/themes/default/_custom_reset.scss +12 -0
  86. data/lib/common_interface/public/common_interface/themes/default/_elastic.scss +72 -0
  87. data/lib/common_interface/public/common_interface/themes/default/_items.scss +88 -0
  88. data/lib/common_interface/public/common_interface/themes/default/_mixins.scss +39 -0
  89. data/lib/common_interface/public/common_interface/themes/default/_special.scss +34 -0
  90. data/lib/common_interface/public/common_interface/themes/default/_variables.scss +15 -0
  91. data/lib/common_interface/public/common_interface/themes/default/_yui_reset.scss +127 -0
  92. data/lib/common_interface/public/common_interface/themes/default/elastic.js +307 -0
  93. data/lib/common_interface/public/common_interface/themes/default/elastic.print.css +8 -0
  94. data/lib/common_interface/public/common_interface/themes/default/reset.css +157 -0
  95. data/lib/common_interface/public/common_interface/themes/default/reset.scss +5 -0
  96. data/lib/common_interface/public/common_interface/themes/default/style.css +580 -0
  97. data/lib/common_interface/public/common_interface/themes/default/style.js +84 -0
  98. data/lib/common_interface/public/common_interface/themes/default/style.scss +11 -0
  99. data/lib/common_interface/public/common_interface/themes/simple_organization/_fixes.scss +130 -0
  100. data/lib/common_interface/public/common_interface/themes/simple_organization/_original.scss +852 -0
  101. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-arrow.gif +0 -0
  102. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-gravatar.gif +0 -0
  103. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-reply.gif +0 -0
  104. data/lib/common_interface/public/common_interface/themes/simple_organization/img/logo-small.gif +0 -0
  105. data/lib/common_interface/public/common_interface/themes/simple_organization/img/logo.gif +0 -0
  106. data/lib/common_interface/public/common_interface/themes/simple_organization/img/main-two-columns-left.gif +0 -0
  107. data/lib/common_interface/public/common_interface/themes/simple_organization/img/main-two-columns.gif +0 -0
  108. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-event.jpg +0 -0
  109. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-gravatar.gif +0 -0
  110. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-image.jpg +0 -0
  111. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-thumbnail.jpg +0 -0
  112. data/lib/common_interface/public/common_interface/themes/simple_organization/original/archives.html +389 -0
  113. data/lib/common_interface/public/common_interface/themes/simple_organization/original/comments.html +486 -0
  114. data/lib/common_interface/public/common_interface/themes/simple_organization/original/empty-page.html +107 -0
  115. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-arrow.gif +0 -0
  116. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-gravatar.gif +0 -0
  117. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-reply.gif +0 -0
  118. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/logo-small.gif +0 -0
  119. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/logo.gif +0 -0
  120. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/main-two-columns-left.gif +0 -0
  121. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/main-two-columns.gif +0 -0
  122. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-event.jpg +0 -0
  123. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-gravatar.gif +0 -0
  124. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-image.jpg +0 -0
  125. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-thumbnail.jpg +0 -0
  126. data/lib/common_interface/public/common_interface/themes/simple_organization/original/index.html +307 -0
  127. data/lib/common_interface/public/common_interface/themes/simple_organization/original/left-sidebar.html +307 -0
  128. data/lib/common_interface/public/common_interface/themes/simple_organization/original/no-subnavigation.html +290 -0
  129. data/lib/common_interface/public/common_interface/themes/simple_organization/original/single-column.html +209 -0
  130. data/lib/common_interface/public/common_interface/themes/simple_organization/original/style-demo.html +355 -0
  131. data/lib/common_interface/public/common_interface/themes/simple_organization/original/style.css +658 -0
  132. data/lib/common_interface/public/common_interface/themes/simple_organization/style.css +965 -0
  133. data/lib/common_interface/public/common_interface/themes/simple_organization/style.scss +2 -0
  134. data/lib/common_interface/public/common_interface/themes/simple_organization/tmp/comments.html +486 -0
  135. data/lib/common_interface/public/common_interface/themes/simple_organization/tmp/tmp.html +307 -0
  136. data/lib/common_interface/tmp/html.html +39 -0
  137. data/lib/common_interface/tmp/js.js +78 -0
  138. data/lib/common_interface/view_helper.rb +52 -0
  139. data/readme.md +49 -0
  140. data/spec/basic_spec.rb +63 -0
  141. data/spec/helper.rb +8 -0
  142. data/spec/spec.opts +4 -0
  143. metadata +221 -0
@@ -0,0 +1,115 @@
1
+ // Files Upload
2
+ (function($){
3
+ FilesUpload = function(params, opt){
4
+ this.params = params;
5
+ this.opt = opt;
6
+
7
+ var _this = this;
8
+ $.callOnceAfterUpdate('file_upload', function(){_this.initialize()});
9
+ };
10
+ var _this = FilesUpload;
11
+
12
+ _this.prototype = {
13
+ initialize: function(){
14
+ var _this = this;
15
+
16
+ // Escape params
17
+ var params = $.extend({format: 'js', authenticity_token: $.authenticity_token}, this.params)
18
+
19
+ // Initialize flash
20
+ var content = $('._upload_dialog');
21
+ var flashHolder = content.find('._flash_holder');
22
+
23
+ var upload_url = decode_uri(this.opt.upload_url);
24
+ upload_url = (upload_url.indexOf('?') >= 0) ? (upload_url + '&'+$.param(params)) : (upload_url + '?'+$.param(params));
25
+
26
+ var flash_params = {
27
+ upload_url: upload_url,
28
+ file_post_name: 'file[file]',
29
+ // file_size_limit : "1024",
30
+ // file_types : "*.jpg;*.png;*.gif",
31
+ // file_types_description : "Image files",
32
+ file_upload_limit : 20,
33
+ flash_url : '/common_interface/lib/jquery.swfupload/swfupload/swfupload.swf',
34
+
35
+ button_text : this.opt.select_files,
36
+ // button_image_url : sm.serviceUrl('/plugins/jquery.swfupload/swfupload/wdp_buttons_upload_61x22.png'),
37
+
38
+ // button_text : '<span class="btnText">Select Files...</span>',
39
+ // button_text_style : ".btnText { font-size: 10; font-weight: bold; font-family: MS Shell Dlg; }",
40
+ // button_text_top_padding : 3,
41
+ // button_text_left_padding : 100,
42
+
43
+ button_width : 61,
44
+ button_height : 22,
45
+ button_placeholder : content.find('._flash_holder')[0],
46
+ prevent_swf_caching: false,
47
+ debug: false
48
+ };
49
+
50
+ var flash_wrapper = flashHolder.swfupload(flash_params);
51
+
52
+ flash_wrapper
53
+ .bind('fileQueued', function(event, file){
54
+ var params = $.extend({}, file, {
55
+ size_in_kb: Math.round(file.size/1024)
56
+ })
57
+
58
+ var t = $.template(content.find('._file_progress_template').val())
59
+ content.find('._queue').append(t, params);
60
+ var fileItem = content.find('._file_'+file.id)
61
+ fileItem.find('._cancel').bind('click', function(){
62
+ // var swfu = $.swfupload.getInstance(vp.wiget + ' ._flash_holder');
63
+ flashHolder.swfupload('cancelUpload', file.id);
64
+ fileItem.slideUp('fast');
65
+ });
66
+ // start the upload since it's queued
67
+ // $(this).swfupload('startUpload');
68
+ })
69
+ .bind('fileQueueError', function(event, file, errorCode, message){
70
+ alert('Size of the file '+file.name+' is greater than limit');
71
+ })
72
+ // .bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
73
+ // $('#queuestatus').text('Files Selected: '+numFilesSelected+' / Queued Files: '+numFilesQueued);
74
+ // })
75
+ .bind('uploadStart', function(event, file){
76
+ var fileItem = content.find('._queue ._file_' + file.id)
77
+ fileItem.find('._progressvalue').text('0%');
78
+ fileItem.find('._cancel').hide();
79
+ })
80
+ .bind('uploadProgress', function(event, file, bytesLoaded){
81
+ var percentage=Math.round((bytesLoaded/file.size)*100);
82
+ var fileItem = content.find('._queue ._file_' + file.id)
83
+ fileItem.find('._progress').css('width', percentage+'%');
84
+ fileItem.find('._progressvalue').text(percentage+'%');
85
+ })
86
+ .bind('uploadSuccess', function(event, file, data){
87
+ var fileItem = content.find('._queue ._file_' + file.id);
88
+ fileItem.find('._progress').css('width', '100%');
89
+ fileItem.find('._progressvalue').text('100%');
90
+ fileItem.slideUp('fast');
91
+
92
+ data = data.replace('<textarea>', '').replace('</textarea>', '');
93
+ eval(data.toString());
94
+ $.refresh_js_css();
95
+ })
96
+ // .bind('uploadComplete', function(event, file){
97
+ // })
98
+ .bind('queueComplete', function(){
99
+ // $.ajax({
100
+ // data: $.param({format: 'js'}),
101
+ // dataType: 'script',
102
+ // type: 'get',
103
+ // url: _this.opt.refresh_url
104
+ // });
105
+ $('._dialog').remove();
106
+ });
107
+
108
+ // 'Upload' button
109
+ content.find('._upload').click(function(){
110
+ flashHolder.swfupload('startUpload');
111
+ return false;
112
+ });
113
+ }
114
+ }
115
+ })(jQuery);
@@ -0,0 +1,118 @@
1
+ //
2
+ // List
3
+ //
4
+ $.callOnceForEvery('list', '._list', function(){
5
+ var maxFinishedTasks = 3;
6
+
7
+ var list = $(this);
8
+ var container = list.find('._container:first');
9
+ var show_more = list.find('._show_more');
10
+ var show_less = list.find('._show_less');
11
+ var hidden_tasks = list.find('._hidden_tasks');
12
+
13
+ // Hide Finished Tasks if ther's more than 3
14
+ var hide_tasks = function(){
15
+ var lastNotFinishedTask = container.find('> ._item:not(._finished):last');
16
+ if(!lastNotFinishedTask.blank()){
17
+ var tasks = container.find('> ._item');
18
+ var lastNotFinishedTaskIndex = tasks.index(lastNotFinishedTask);
19
+ var finishedTasks = tasks.slice(lastNotFinishedTaskIndex, -1);
20
+
21
+ if(finishedTasks.size() > maxFinishedTasks){
22
+ show_more.show();
23
+ var tasksToHide = tasks.slice(lastNotFinishedTaskIndex + maxFinishedTasks, -1);
24
+ tasksToHide.remove().appendTo(hidden_tasks);
25
+ }
26
+ }
27
+ };
28
+ hide_tasks();
29
+
30
+
31
+ // Initialize more/less buttons
32
+ show_more.click(function(){
33
+ hidden_tasks.find('._item').appendTo(list.find('._container'));
34
+ show_more.hide();
35
+ show_less.show();
36
+ return false;
37
+ });
38
+
39
+ show_less.click(function(){
40
+ hide_tasks();
41
+ show_less.hide();
42
+ return false;
43
+ });
44
+ });
45
+
46
+
47
+ //
48
+ // Sortable
49
+ //
50
+ $.callAfterUpdate('sortable', function(){
51
+ $('._sortable_container').each(function(){
52
+ var container = $(this);
53
+ var opt = {
54
+ item_class: container.dataAttr('item_class'),
55
+ update_order_url: container.dataAttr('update_order_url')
56
+ };
57
+
58
+ container = container.find('._container').not(container.find('._container ._container'));
59
+
60
+ container.sortable({
61
+ handle: '._handle',
62
+ items: '> .' + opt.item_class,
63
+ update: function(event, ui) {
64
+ var item = $(ui.item);
65
+ var index = container.find('.' + opt.item_class).index(item);
66
+ // var url = page.dataAttr('container_order_url')
67
+ if(opt.update_order_url){
68
+ $.post(opt.update_order_url, {index: index, item_id: item.attr('id')})
69
+ }else{
70
+ log("Item '" + item.identify() + "' moved to position '" + index + "'.")
71
+ };
72
+ }
73
+ });
74
+ });
75
+ });
76
+
77
+
78
+ //
79
+ // Folder
80
+ //
81
+ // Image View Box
82
+ $.callOnceForEvery('folder_image_box', '._folder', function(){
83
+ var folder = $(this);
84
+ var links = folder.find('a._image_box');
85
+ links.attr('rel', 'images');
86
+ links.fancybox();
87
+ });
88
+
89
+ //
90
+ // Page
91
+ //
92
+ // Toolbars
93
+ $.callAfterUpdate('page_toolbar', function(){
94
+ $('._page').each(function(){
95
+ var page = $(this);
96
+ var container = page.find('._container').first();
97
+
98
+ container.find('._toolbar').remove();
99
+
100
+ var toolbar_html = page.find('._toolbar_template').val();
101
+ container.find('> ._item:visible, > ._inplace').each(function(){
102
+ $(this).after(toolbar_html);
103
+ });
104
+ container.prepend(toolbar_html);
105
+ });
106
+ }, 1);
107
+
108
+
109
+ //
110
+ // Checkbox
111
+ //
112
+ // Onclick
113
+ $.callOnceForEvery('onclick_for_checkbox', '._onclick_checkbox', function(){
114
+ var checkbox = $(this);
115
+ checkbox.click(function(){
116
+ $.ajax({data: $.param({target: checkbox.identify()}), type: 'post', url: checkbox.dataAttr('url')});
117
+ });
118
+ });
@@ -0,0 +1,50 @@
1
+ //
2
+ // Images by default should be alligned to the left (wrapped inside .left div)
3
+ //
4
+ $.callOnceForEvery('left_img_allign', '._markup', function(){
5
+ var markup = $(this);
6
+ var imagesWithoutDiv = markup.find('img').not(markup.find('div img'));
7
+ imagesWithoutDiv.each(function(){
8
+ var e = $(this);
9
+ // image can be wrapped inside link
10
+ while(true){
11
+ var parent = e.parent();
12
+ if(parent.hasClass('_markup') || !(parent.is('a') || parent.is('div') || parent.is('span'))) break;
13
+ e = parent;
14
+ }
15
+ e.wrap($("<div class='left'></div>"));
16
+ });
17
+ });
18
+
19
+
20
+ //
21
+ // Image Box inside Markup
22
+ //
23
+ $.callOnceForEvery('markup_image_box', '._markup', function(){
24
+ var markup = $(this);
25
+
26
+ // Images
27
+ markup.find('a:has(img)').not('._video').not('._nobox').attr('rel', 'images').fancybox();
28
+
29
+ // Videos
30
+ markup.find('a._video').click(function() {
31
+ $.fancybox({
32
+ 'padding' : 0,
33
+ // 'autoScale' : false,
34
+ 'transitionIn': 'none',
35
+ 'transitionOut': 'none',
36
+ 'title': this.title,
37
+ // 'width' : 680,
38
+ // 'height' : 495,
39
+ 'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
40
+ // 'href' : "http://www.youtube.com/watch?v=M-cIjPOJdFM&amp;fs=1".replace(new RegExp("watch\\?v=", "i"), 'v/'),
41
+ 'type': 'swf',
42
+ 'swf': {
43
+ 'wmode': 'transparent',
44
+ 'allowfullscreen' : 'true'
45
+ }
46
+ });
47
+
48
+ return false;
49
+ });
50
+ });
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @name Elastic
3
+ * @descripton Elastic is Jquery plugin that grow and shrink your textareas automaticliy
4
+ * @version 1.6.4
5
+ * @requires Jquery 1.2.6+
6
+ *
7
+ * @author Jan Jarfalk
8
+ * @author-email jan.jarfalk@unwrongest.com
9
+ * @author-website http://www.unwrongest.com
10
+ *
11
+ * @licens MIT License - http://www.opensource.org/licenses/mit-license.php
12
+ */
13
+
14
+ (function(jQuery){
15
+ jQuery.fn.extend({
16
+ elastic: function() {
17
+
18
+ // We will create a div clone of the textarea
19
+ // by copying these attributes from the textarea to the div.
20
+ var mimics = [
21
+ 'paddingTop',
22
+ 'paddingRight',
23
+ 'paddingBottom',
24
+ 'paddingLeft',
25
+ 'fontSize',
26
+ 'lineHeight',
27
+ 'fontFamily',
28
+ 'width',
29
+ 'fontWeight'];
30
+
31
+ return this.each( function() {
32
+
33
+ // Elastic only works on textareas
34
+ if ( this.type != 'textarea' ) {
35
+ return false;
36
+ }
37
+
38
+ var $textarea = jQuery(this),
39
+ $twin = jQuery('<div />').css({'position': 'absolute','display':'none','word-wrap':'break-word'}),
40
+ lineHeight = parseInt($textarea.css('line-height'),10) || parseInt($textarea.css('font-size'),'10'),
41
+ minheight = parseInt($textarea.css('height'),10) || lineHeight*3,
42
+ maxheight = parseInt($textarea.css('max-height'),10) || Number.MAX_VALUE,
43
+ goalheight = 0,
44
+ i = 0;
45
+
46
+ // Opera returns max-height of -1 if not set
47
+ if (maxheight < 0) { maxheight = Number.MAX_VALUE; }
48
+
49
+ // Append the twin to the DOM
50
+ // We are going to meassure the height of this, not the textarea.
51
+ $twin.appendTo($textarea.parent());
52
+
53
+ // Copy the essential styles (mimics) from the textarea to the twin
54
+ var i = mimics.length;
55
+ while(i--){
56
+ $twin.css(mimics[i].toString(),$textarea.css(mimics[i].toString()));
57
+ }
58
+
59
+
60
+ // Sets a given height and overflow state on the textarea
61
+ function setHeightAndOverflow(height, overflow){
62
+ curratedHeight = Math.floor(parseInt(height,10));
63
+ if($textarea.height() != curratedHeight){
64
+ $textarea.css({'height': curratedHeight + 'px','overflow':overflow});
65
+
66
+ }
67
+ }
68
+
69
+
70
+ // This function will update the height of the textarea if necessary
71
+ function update() {
72
+
73
+ // Get curated content from the textarea.
74
+ var textareaContent = $textarea.val().replace(/&/g,'&amp;').replace(/ /g, '&nbsp;').replace(/<|>/g, '&gt;').replace(/\n/g, '<br />');
75
+
76
+ var twinContent = $twin.html();
77
+
78
+ if(textareaContent+'&nbsp;' != twinContent){
79
+
80
+ // Add an extra white space so new rows are added when you are at the end of a row.
81
+ $twin.html(textareaContent+'&nbsp;');
82
+
83
+ // Change textarea height if twin plus the height of one line differs more than 3 pixel from textarea height
84
+ if(Math.abs($twin.height()+lineHeight - $textarea.height()) > 3){
85
+
86
+ var goalheight = $twin.height()+lineHeight;
87
+ if(goalheight >= maxheight) {
88
+ setHeightAndOverflow(maxheight,'auto');
89
+ } else if(goalheight <= minheight) {
90
+ setHeightAndOverflow(minheight,'hidden');
91
+ } else {
92
+ setHeightAndOverflow(goalheight,'hidden');
93
+ }
94
+
95
+ }
96
+
97
+ }
98
+
99
+ }
100
+
101
+ // Hide scrollbars
102
+ $textarea.css({'overflow':'hidden'});
103
+
104
+ // Update textarea size on keyup
105
+ $textarea.keyup(function(){ update(); });
106
+
107
+ // And this line is to catch the browser paste event
108
+ $textarea.live('input paste',function(e){ setTimeout( update, 250); });
109
+
110
+ // Run update once when elastic is initialized
111
+ update();
112
+
113
+ });
114
+
115
+ }
116
+ });
117
+ })(jQuery);