1(function($) { 2 var commentFormMagicMethods = { 3 init: function() { 4 return this.each(function() { 5 var $this = $(this), 6 data = $this.data('commentFormMagic'); 7 8 if (!data) { 9 $(this).data('commentFormMagic', { 10 na : false, 11 oldContent : false, 12 content : false, 13 youtubeMovies : false, 14 dailymotionMovies : false, 15 externalPage : false, 16 movieId : false, 17 title : false, 18 description : false, 19 img : false, 20 imgCurrentPos : 0, 21 imgMaxPos : 0, 22 tmp : "", 23 loadedPics : 0, 24 prompt: $this.find(".commentFormUrl") 25 }); 26 $this.find(".PublishItemType").click(function() { 27 $(".PublishItemType.current").removeClass("current"); 28 $(this).addClass("current"); 29 }); 30 31 if (typeof $.elastic != 'undefined') 32 $this.find('.commentFormTxt').elastic(); 33 $this.find('.commentFormUrl').keyup(function(e) { 34 if (e.keyCode == 13) 35 { 36 e.preventDefault(); 37 $this.commentFormMagic("parseIt", { replace : false, loader: true }); 38 return false; 39 } 40 }); 41 42 $this.find(".commentFormUrl,.commentFormTxt").focus(function() { 43 $(this).closest(".commentArea").find(".commentButton").slideDown(); 44 }); 45 $this.find(".invitePublish").click(function() { 46 $(this).hide(); 47 if ($(this).closest(".commentArea").find(".commentFormTxt").length) { 48 $(this).closest(".commentArea").find(".commentFormTxt").show().css('height', '100').focus(); 49 $(this).closest(".commentArea").find(".commentFormTxt").show().focus().val(); 50 } 51 if ($(this).closest(".commentArea").find(".commentFormUrl").length) { 52 $(this).closest(".commentArea").find(".commentFormUrl").show().focus().val(); 53 } 54 }); 55 } 56 }); 57 }, 58 59 debug: function() { 60 return $(this).data('commentFormMagic'); 61 }, 62 63 showPublish: function(options) { 64 return this.each(function() { 65 var $this = $(this), 66 params = $this.data('commentFormMagic'); 67 68 // on supprime les erreurs liées aux insultes 69 $this.parent('div').parent('div').find('.error_insulte').remove(); 70 71 /* On masque le preview et on le vide */ 72 $this.find(".preview").hide().empty(); 73 /**/ 74 $this.find(".shareLink").show(); 75 /* On désactive les zones de saisies */ 76 $this.find(".commentArea:visible").find(".commentFormTxt, .commentFormUrl").attr("disabled", "disabled"); 77 /* On masque la zone de publication active */ 78 $this.find(".commentArea:visible").hide(); 79 /* On réactive */ 80 $this.find(".comment" + options.part).css("display", "block").find("input,textarea").removeAttr("disabled"); 81 $this.find(".commentArea:visible").find('.commentFormTxt, .commentFormUrl').val($this.find(".commentArea:visible").find('.commentFormTxt, .commentFormUrl').attr("default")); 82 83 $this.find(".commentArea:visible").find('.commentFormTxt, .commentFormUrl').hide(); 84 $this.find(".commentArea:visible").find('.invitePublish').show(); 85 $this.find(".commentButton").hide(); 86 87 $this.find("td.PublishItemType.current").removeClass("current"); 88 $this.find("td.showArea" + options.part).addClass("current"); 89 90 }); 91 }, 92 93 parseIt: function(options) { 94 return this.each(function() { 95 var $this = $(this), 96 params = $this.data('commentFormMagic'); 97 params.content = params.prompt.val(); 98 if (!options || !options.replace) 99 options.replace = false; 100 else 101 { 102 params.oldContent = ""; 103 $this.commentFormMagic('updateTmp'); 104 params.prompt.val(params.tmp); 105 return false; 106 } 107 if (params.content == "" || params.content == params.oldContent) 108 return true; 109 params.youtubeMovies = false; 110 params.dailymotionMovies = false; 111 params.externalPage = false; 112 params.movieId = false; 113 params.title = false; 114 params.description = false; 115 params.oldContent = params.content; 116 params.img = false; 117 params.imgCurrentPos = 0; 118 $this.find(".preview").hide().empty(); 119 var expr = /http:\/\/www\.youtube\.com\/watch\?v=(.{11})&?.*/ig; 120 if (expr.test(params.content)) { 121 params.movieId = RegExp.$1; 122 params.youtubeMovies = true; 123 } else { 124 var expr = /http:\/\/youtu\.be\/(.{11})&?.*/ig; 125 if (expr.test(params.content)) { 126 params.movieId = RegExp.$1; 127 params.youtubeMovies = true; 128 } 129 } 130 var expr = /http:\/\/www\.dailymotion\.com\/video\/(.{6})_.*/; 131 if (!params.youtubeMovies && expr.test(params.content)) { 132 expr.exec(params.content); 133 params.movieId = RegExp.$1; 134 params.dailymotionMovies = true; 135 } 136 137 if (params.dailymotionMovies || params.youtubeMovies) { 138 $this.commentFormMagic("updateTmp"); 139 $this.commentFormMagic("fillPreview", { loader: false, replace: false }); 140 } else { 141 $.get("/global/module/comment/ressources/ajax/isUrl.php", { url : params.content }, function(data) { 142 if (data !== "1") { 143 alert(params.content + " n'est pas une url valide!"); 144 return; 145 } 146 params.loadedPics = 0; 147 $this.commentFormMagic("updateTmp"); 148 params.externalPage = true; 149 $this.commentFormMagic("fillPreview", { loader : true, replace: false }); 150 151 $.get("/global/module/comment/ressources/ajax/naUrlWrapper.php", { url : params.content, wall: params.wall }, function(data) { 152 $this.commentFormMagic("fillPreview", { loader: false, htmlcode: data }); 153 $this.commentFormMagic("updateTmp"); 154 }, "html"); 155 }); 156 } 157 }); 158 }, 159 160 getAjaxLoaderHTML: function (options) { 161 if (!options || !options.hide) options.hide = false; 162 ret = "<div style='" + (options.hide ? "display : none;" : "") + "padding-right : 20px; text-align : right; width : 95%' class='previewLoader'><img src='/global/images/ajax-loader.gif' border='0' /></div><br />"; 163 return ret; 164 }, 165 166 fillPreview: function (options) { 167 return this.each(function() { 168 169 var $this = $(this), 170 params = $this.data('commentFormMagic'); 171 172 if (!options.loader) 173 options.loader = false; 174 175 $this.find(".shareLink").hide(); 176 if (options.loader) { 177 $this.find('.preview').html($this.commentFormMagic("getAjaxLoaderHTML", { hide : false })).show(); 178 return true; 179 } 180 if (params.youtubeMovies) { 181 $this.find(".preview").html('<center><iframe title="YouTube video player" width="350" height="295" src="http://www.youtube.com/embed/' + params.movieId + '" frameborder="0" allowfullscreen></iframe></center>'); 182 }
183 else if (params.dailymotionMovies) { 184 $this.find(".preview").html('<center><iframe frameborder="0" width="350" height="300" src="http://www.dailymotion.com/embed/video/' + params.movieId + '?theme=none"></iframe></center>'); 185 } 186 else if (params.externalPage) { 187 $this.find(".preview").empty().html( options.htmlcode ); 188 } 189 button = $('<a>').html('Publier').button({ icons : { primary : 'ui-icon-check' } }).css('float', 'right'); 190 button 191 .click(function() { 192 var contenutComment = UTF8.encode(params.content); 193 $this.commentFormMagic("parseIt", { replace: true }); 194 $this.commentForm("postComment"); 195 $this.commentFormMagic("showPublish", { part: "Simple" }); 196 return false; 197 }); 198 199 $this.find(".preview").append(button).show(); 200 201 params.prompt.removeAttr("readonly"); 202 }); 203 }, 204 disablePrompt: function() { 205 return this.each(function() { 206 var $this = $(this), 207 params = $this.data('commentFormMagic'); 208 209 $this.find("input:visible, textarea:visible").attr("readonly", "readonly").attr("disabled", "disabled"); 210 }); 211 }, 212 213 enablePrompt: function() { 214 return this.each(function() { 215 var $this = $(this), 216 params = $this.data('commentFormMagic'); 217 218 $this.find("input:visible, textarea:visible").removeAttr("readonly").removeAttr("disabled"); 219 }); 220 }, 221 222 updateTmp: function() { 223 224 return this.each(function() { 225 var $this = $(this), 226 params = $this.data('commentFormMagic'); 227 228 if (params.youtubeMovies) 229 { 230 params.tmp = "[YoutubeMovies:" + params.movieId + "]"; 231 } 232 else if (params.dailymotionMovies) 233 { 234 params.tmp = "[dailymotionMovies:" + params.movieId + "]"; 235 } 236 else if (params.externalPage) 237 { 238 params.tmp = "[Page:" + params.content + 239 (params.title ? "#title=" + params.title : "") + 240 (params.description ? "#description=" + params.description : "") + 241 (params.img ? "#image=" + params.img : "") + "]"; 242 } 243 else 244 { 245 params.tmp = params.content; 246 } 247 }); 248 }, 249 250 selectPrevPics: function () { 251 return this.each(function() { 252 var $this = $(this), 253 params = $this.data('commentFormMagic'); 254 255 if (!params.externalPage) return false; 256 257 if (params.imgCurrentPos != 0) 258 { 259 params.imgCurrentPos--; 260 $this.find(".previewLinkImg:visible").hide(); 261 $this.find(".previewLinkImg").eq(params.imgCurrentPos).show(); 262 } 263 264 params.img = $this.find(".previewLinkImg:visible").attr("src"); 265 266 $this.commentFormMagic("updateTmp"); 267 }); 268 }, 269 270 selectNextPics: function(item) { 271 return this.each(function() { 272 var $this = $(this), 273 params = $this.data('commentFormMagic'); 274 275 if (!params.externalPage || params.imgCurrentPos == params.imgMaxPos) 276 { 277 return false; 278 } 279 280 if (params.imgMaxPos && params.loadedPics <= params.imgMaxPos) 281 { 282 $.get("/global/module/comment/ressources/ajax/loadImage.php", { load : params.loadedPics + 1, url : params.content }, function(data) 283 { 284 $this.find(".imgPreviewContainer").append(data); 285 params.loadedPics++; 286 }); 287 } 288 if (params.imgCurrentPos <= params.imgMaxPos) 289 { 290 params.imgCurrentPos++; 291 $this.find(".previewLinkImg:visible").hide(); 292 $this.find(".previewLinkImg").eq(params.imgCurrentPos).show(); 293 } 294 295 params.img = $this.find(".previewLinkImg:visible").attr("src"); 296 $this.commentFormMagic("updateTmp"); 297 }); 298 } 299 }; 300 $.fn.commentFormMagic = function(method) { 301 if ( commentFormMagicMethods[method] ) 302 { 303 return commentFormMagicMethods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); 304 } 305 else if ( typeof method === 'object' || ! method ) 306 { 307 return commentFormMagicMethods.init.apply( this, arguments ); 308 } 309 else 310 { 311 $.error( 'Method ' + method + ' does not exist on jQuery.commentFormMagic' ); 312 } 313 }; 314})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.