| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  | //wrap everything in a self-executing anonymous function to avoid conflicts
 | 
					
						
							|  |  |  | (function(){ | 
					
						
							| 
									
										
										
										
											2010-04-21 17:14:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |     // smart(x) from Paul Irish
 | 
					
						
							|  |  |  |     // http://paulirish.com/2009/throttled-smartresize-jquery-event-handler/
 | 
					
						
							| 
									
										
										
										
											2010-04-21 17:14:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |     (function($,sr){ | 
					
						
							| 
									
										
										
										
											2010-04-21 17:14:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |         // debouncing function from John Hann
 | 
					
						
							|  |  |  |         // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
 | 
					
						
							|  |  |  |         var debounce = function (func, threshold, execAsap) { | 
					
						
							|  |  |  |             var timeout; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             return function debounced () { | 
					
						
							|  |  |  |                 var obj = this, args = arguments; | 
					
						
							|  |  |  |                 function delayed () { | 
					
						
							|  |  |  |                     if (!execAsap) | 
					
						
							|  |  |  |                         func.apply(obj, args); | 
					
						
							| 
									
										
										
										
											2011-04-06 18:46:55 +02:00
										 |  |  |                         timeout = null; | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |                 }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if (timeout) | 
					
						
							|  |  |  |                     clearTimeout(timeout); | 
					
						
							|  |  |  |                 else if (execAsap) | 
					
						
							| 
									
										
										
										
											2010-04-21 17:14:54 -04:00
										 |  |  |                     func.apply(obj, args); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-06 18:46:55 +02:00
										 |  |  |                 timeout = setTimeout(delayed, threshold || 100); | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |             }; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         jQuery.fn[sr] = function(fn){  return fn ? this.bind('keypress', debounce(fn, 1000)) : this.trigger(sr); }; | 
					
						
							| 
									
										
										
										
											2010-04-21 17:14:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |     })(jQuery,'smartkeypress'); | 
					
						
							| 
									
										
										
										
											2010-04-21 17:14:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-03 21:25:10 -04:00
										 |  |  |     function longestWordInString(string) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         var words = string.split(/\s/); | 
					
						
							|  |  |  |         var longestWord = 0; | 
					
						
							|  |  |  |         for(var i=0;i<words.length;i++) | 
					
						
							|  |  |  |             if(words[i].length > longestWord) longestWord = words[i].length; | 
					
						
							|  |  |  |         return longestWord; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |     function shorten() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-05-03 21:25:10 -04:00
										 |  |  |         var $noticeDataText = $('#'+SN.C.S.NoticeDataText); | 
					
						
							|  |  |  |         var noticeText = $noticeDataText.val(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if(noticeText.length > maxNoticeLength || longestWordInString(noticeText) > maxUrlLength) { | 
					
						
							| 
									
										
										
										
											2010-04-26 15:58:35 -04:00
										 |  |  |             var original = $noticeDataText.val(); | 
					
						
							|  |  |  |             shortenAjax = $.ajax({ | 
					
						
							|  |  |  |                 url: $('address .url')[0].href+'/plugins/ClientSideShorten/shorten', | 
					
						
							|  |  |  |                 data: { text: $noticeDataText.val() }, | 
					
						
							|  |  |  |                 dataType: 'text', | 
					
						
							|  |  |  |                 success: function(data) { | 
					
						
							|  |  |  |                     if(original == $noticeDataText.val()) { | 
					
						
							|  |  |  |                         $noticeDataText.val(data).keyup(); | 
					
						
							|  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2010-04-21 17:14:54 -04:00
										 |  |  |                 } | 
					
						
							| 
									
										
										
										
											2010-04-26 15:58:35 -04:00
										 |  |  |             }); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-04-23 12:13:46 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $(document).ready(function(){ | 
					
						
							|  |  |  |         $noticeDataText = $('#'+SN.C.S.NoticeDataText); | 
					
						
							|  |  |  |         $noticeDataText.smartkeypress(function(e){ | 
					
						
							| 
									
										
										
										
											2010-04-26 15:58:35 -04:00
										 |  |  |             //if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort();
 | 
					
						
							| 
									
										
										
										
											2010-04-23 12:13:46 -04:00
										 |  |  |             if(e.charCode == '32') { | 
					
						
							|  |  |  |                 shorten(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |         $noticeDataText.bind('paste', function() { | 
					
						
							| 
									
										
										
										
											2010-04-26 15:58:35 -04:00
										 |  |  |             //if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort();
 | 
					
						
							| 
									
										
										
										
											2010-04-23 12:13:46 -04:00
										 |  |  |             setTimeout(shorten,1); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-22 17:57:57 -04:00
										 |  |  | })(); |