﻿/*!
 * twitter-text-js 1.4.2
 *
 * Copyright 2010 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 *
 * url: https://github.com/twitter/twitter-text-js/raw/master/pkg/twitter-text-1.4.2.js
 *
 */
if(!window.twttr){window.twttr={}}(function(){twttr.txt={};twttr.txt.regexen={};var b={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#32;"};twttr.txt.htmlEscape=function(i){return i&&i.replace(/[&"'><]/g,function(r){return b[r]})};function c(r,i){i=i||"";if(typeof r!=="string"){if(r.global&&i.indexOf("g")<0){i+="g"}if(r.ignoreCase&&i.indexOf("i")<0){i+="i"}if(r.multiline&&i.indexOf("m")<0){i+="m"}r=r.source}return new RegExp(r.replace(/#\{(\w+)\}/g,function(t,s){var u=twttr.txt.regexen[s]||"";if(typeof u!=="string"){u=u.source}return u}),i)}function d(r,i){return r.replace(/#\{(\w+)\}/g,function(t,s){return i[s]||""})}var k=String.fromCharCode;var f=[k(32),k(133),k(160),k(5760),k(6158),k(8232),k(8233),k(8239),k(8287),k(12288)];for(var h=9;h<=13;h++){f.push(String.fromCharCode(h))}for(var h=8192;h<=8202;h++){f.push(String.fromCharCode(h))}twttr.txt.regexen.spaces=c("["+f.join("")+"]");twttr.txt.regexen.punct=/\!'#%&'\(\)*\+,\\\-\.\/:;<=>\?@\[\]\^_{|}~/;twttr.txt.regexen.atSigns=/[@＠]/;twttr.txt.regexen.extractMentions=c(/(^|[^a-zA-Z0-9_])(#{atSigns})([a-zA-Z0-9_]{1,20})(?=(.|$))/g);twttr.txt.regexen.extractReply=c(/^(?:#{spaces})*#{atSigns}([a-zA-Z0-9_]{1,20})/);twttr.txt.regexen.listName=/[a-zA-Z][a-zA-Z0-9_\-\u0080-\u00ff]{0,24}/;twttr.txt.regexen.latinAccentChars=c("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ\\303\\277");twttr.txt.regexen.latenAccents=c(/[#{latinAccentChars}]+/);twttr.txt.regexen.endScreenNameMatch=c(/^(?:#{atSigns}|[#{latinAccentChars}]|:\/\/)/);twttr.txt.regexen.hashtagAlpha=c(/[a-z_#{latinAccentChars}]/i);twttr.txt.regexen.hashtagAlphaNumeric=c(/[a-z0-9_#{latinAccentChars}]/i);twttr.txt.regexen.autoLinkHashtags=c(/(^|[^0-9A-Z&\/\?]+)(#|＃)(#{hashtagAlphaNumeric}*#{hashtagAlpha}#{hashtagAlphaNumeric}*)/gi);twttr.txt.regexen.autoLinkUsernamesOrLists=/(^|[^a-zA-Z0-9_]|RT:?)([@＠]+)([a-zA-Z0-9_]{1,20})(\/[a-zA-Z][a-zA-Z0-9_\-]{0,24})?/g;twttr.txt.regexen.autoLinkEmoticon=/(8\-\#|8\-E|\+\-\(|\`\@|\`O|\&lt;\|:~\(|\}:o\{|:\-\[|\&gt;o\&lt;|X\-\/|\[:-\]\-I\-|\/\/\/\/Ö\\\\\\\\|\(\|:\|\/\)|∑:\*\)|\( \| \))/g;twttr.txt.regexen.validPrecedingChars=c(/(?:[^-\/"':!=A-Za-z0-9_@＠]|^|\:)/);twttr.txt.regexen.validSubdomain=c(/([^#{punct}\s]([_-]|[^#{punct}\s])*)?[^#{punct}\s]\./);twttr.txt.regexen.validDomainName=c(/([^#{punct}\s]([-]|[^#{punct}\s])*)?[^#{punct}\s]/);twttr.txt.regexen.validDomain=c(/(#{validSubdomain})*#{validDomainName}\.[a-z]{2,}(?::[0-9]+)?/i);twttr.txt.regexen.validGeneralUrlPathChars=/[a-z0-9!\*';:=\+\$\/%#\[\]\-_,~|]/i;twttr.txt.regexen.wikipediaDisambiguation=c(/(?:\(#{validGeneralUrlPathChars}+\))/i);twttr.txt.regexen.validUrlPathChars=c(/(?:#{wikipediaDisambiguation}|@#{validGeneralUrlPathChars}+\/|[\.,]?#{validGeneralUrlPathChars})/i);twttr.txt.regexen.validUrlPathEndingChars=c(/(?:[\+\-a-z0-9=_#\/]|#{wikipediaDisambiguation})/i);twttr.txt.regexen.validUrlQueryChars=/[a-z0-9!\*'\(\);:&=\+\$\/%#\[\]\-_\.,~|]/i;twttr.txt.regexen.validUrlQueryEndingChars=/[a-z0-9_&=#\/]/i;twttr.txt.regexen.extractUrl=c("((#{validPrecedingChars})((https?:\\/\\/)(#{validDomain})(\\/(?:#{validUrlPathChars}+#{validUrlPathEndingChars}|#{validUrlPathChars}+#{validUrlPathEndingChars}?|#{validUrlPathEndingChars})?)?(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?))","gi");twttr.txt.regexen.validateUrlUnreserved=/[a-z0-9\-._~]/i;twttr.txt.regexen.validateUrlPctEncoded=/(?:%[0-9a-f]{2})/i;twttr.txt.regexen.validateUrlSubDelims=/[!$&'()*+,;=]/i;twttr.txt.regexen.validateUrlPchar=c("(?:#{validateUrlUnreserved}|#{validateUrlPctEncoded}|#{validateUrlSubDelims}|:|@)","i");twttr.txt.regexen.validateUrlScheme=/(?:[a-z][a-z0-9+\-.]*)/i;twttr.txt.regexen.validateUrlUserinfo=c("(?:#{validateUrlUnreserved}|#{validateUrlPctEncoded}|#{validateUrlSubDelims}|:)*","i");twttr.txt.regexen.validateUrlDecOctet=/(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9]{2})|(?:2[0-4][0-9])|(?:25[0-5]))/i;twttr.txt.regexen.validateUrlIpv4=c(/(?:#{validateUrlDecOctet}(?:\.#{validateUrlDecOctet}){3})/i);twttr.txt.regexen.validateUrlIpv6=/(?:\[[a-f0-9:\.]+\])/i;twttr.txt.regexen.validateUrlIp=c("(?:#{validateUrlIpv4}|#{validateUrlIpv6})","i");twttr.txt.regexen.validateUrlSubDomainSegment=/(?:[a-z0-9](?:[a-z0-9_\-]*[a-z0-9])?)/i;twttr.txt.regexen.validateUrlDomainSegment=/(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?)/i;twttr.txt.regexen.validateUrlDomainTld=/(?:[a-z](?:[a-z0-9\-]*[a-z0-9])?)/i;twttr.txt.regexen.validateUrlDomain=c(/(?:(?:#{validateUrlSubDomainSegment]}\.)*(?:#{validateUrlDomainSegment]}\.)#{validateUrlDomainTld})/i);twttr.txt.regexen.validateUrlHost=c("(?:#{validateUrlIp}|#{validateUrlDomain})","i");twttr.txt.regexen.validateUrlUnicodeSubDomainSegment=/(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9_\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i;twttr.txt.regexen.validateUrlUnicodeDomainSegment=/(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i;twttr.txt.regexen.validateUrlUnicodeDomainTld=/(?:(?:[a-z]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i;twttr.txt.regexen.validateUrlUnicodeDomain=c(/(?:(?:#{validateUrlUnicodeSubDomainSegment}\.)*(?:#{validateUrlUnicodeDomainSegment}\.)#{validateUrlUnicodeDomainTld})/i);twttr.txt.regexen.validateUrlUnicodeHost=c("(?:#{validateUrlIp}|#{validateUrlUnicodeDomain})","i");twttr.txt.regexen.validateUrlPort=/[0-9]{1,5}/;twttr.txt.regexen.validateUrlUnicodeAuthority=c("(?:(#{validateUrlUserinfo})@)?(#{validateUrlUnicodeHost})(?::(#{validateUrlPort}))?","i");twttr.txt.regexen.validateUrlAuthority=c("(?:(#{validateUrlUserinfo})@)?(#{validateUrlHost})(?::(#{validateUrlPort}))?","i");twttr.txt.regexen.validateUrlPath=c(/(\/#{validateUrlPchar}*)*/i);twttr.txt.regexen.validateUrlQuery=c(/(#{validateUrlPchar}|\/|\?)*/i);twttr.txt.regexen.validateUrlFragment=c(/(#{validateUrlPchar}|\/|\?)*/i);twttr.txt.regexen.validateUrlUnencoded=c("^(?:([^:/?#]+):)(?://([^/?#]*))([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$","i");var a="tweet-url";var g="list-slug";var q="username";var n="hashtag";var o=' rel="nofollow"';function l(t){var s={};for(var i in t){if(t.hasOwnProperty(i)){s[i]=t[i]}}return s}twttr.txt.autoLink=function(r,i){i=l(i||{});return twttr.txt.autoLinkUsernamesOrLists(twttr.txt.autoLinkUrlsCustom(twttr.txt.autoLinkHashtags(r,i),i),i)};twttr.txt.autoLinkUsernamesOrLists=function(w,u){u=l(u||{});u.urlClass=u.urlClass||a;u.listClass=u.listClass||g;u.usernameClass=u.usernameClass||q;u.usernameUrlBase=u.usernameUrlBase||"http://twitter.com/";u.listUrlBase=u.listUrlBase||"http://twitter.com/";if(!u.suppressNoFollow){var i=o}var v="",t=twttr.txt.splitTags(w);for(var s=0;s<t.length;s++){var r=t[s];if(s!==0){v+=((s%2===0)?">":"<")}if(s%4!==0){v+=r}else{v+=r.replace(twttr.txt.regexen.autoLinkUsernamesOrLists,function(D,G,z,C,x,B,H){var y=H.slice(B+D.length);var F={before:G,at:z,user:twttr.txt.htmlEscape(C),slashListname:twttr.txt.htmlEscape(x),extraHtml:i,preChunk:"",chunk:twttr.txt.htmlEscape(H),postChunk:""};for(var A in u){if(u.hasOwnProperty(A)){F[A]=u[A]}}if(x&&!u.suppressLists){var E=F.chunk=d("#{user}#{slashListname}",F);F.list=twttr.txt.htmlEscape(E.toLowerCase());return d('#{before}#{at}<a class="#{urlClass} #{listClass}" href="#{listUrlBase}#{list}"#{extraHtml}>#{chunk}</a>',F)}else{if(y&&y.match(twttr.txt.regexen.endScreenNameMatch)){return D}else{F.chunk=twttr.txt.htmlEscape(C);F.dataScreenName=!u.suppressDataScreenName?d('data-screen-name="#{chunk}" ',F):"";return d('#{before}#{at}<a class="#{urlClass} #{usernameClass}" #{dataScreenName}href="#{usernameUrlBase}#{chunk}"#{extraHtml}>#{preChunk}#{chunk}#{postChunk}</a>',F)}}})}}return v};twttr.txt.autoLinkHashtags=function(s,r){r=l(r||{});r.urlClass=r.urlClass||a;r.hashtagClass=r.hashtagClass||n;r.hashtagUrlBase=r.hashtagUrlBase||"http://twitter.com/search?q=%23";if(!r.suppressNoFollow){var i=o}return s.replace(twttr.txt.regexen.autoLinkHashtags,function(u,v,w,y){var x={before:v,hash:twttr.txt.htmlEscape(w),preText:"",text:twttr.txt.htmlEscape(y),postText:"",extraHtml:i};for(var t in r){if(r.hasOwnProperty(t)){x[t]=r[t]}}return d('#{before}<a href="#{hashtagUrlBase}#{text}" title="##{text}" class="#{urlClass} #{hashtagClass}"#{extraHtml}>#{hash}#{preText}#{text}#{postText}</a>',x)})};twttr.txt.autoLinkUrlsCustom=function(r,i){i=l(i||{});if(!i.suppressNoFollow){i.rel="nofollow"}if(i.urlClass){i["class"]=i.urlClass;delete i.urlClass}delete i.suppressNoFollow;delete i.suppressDataScreenName;return r.replace(twttr.txt.regexen.extractUrl,function(y,B,A,t,C,x,D,s){var v;if(C){var u="";for(var w in i){u+=d(' #{k}="#{v}" ',{k:w,v:i[w].toString().replace(/"/,"&quot;").replace(/</,"&lt;").replace(/>/,"&gt;")})}i.htmlAttrs||"";var z={before:A,htmlAttrs:u,url:twttr.txt.htmlEscape(t)};return d('#{before}<a href="#{url}"#{htmlAttrs}>#{url}</a>',z)}else{return B}})};twttr.txt.extractMentions=function(u){var v=[],r=twttr.txt.extractMentionsWithIndices(u);for(var t=0;t<r.length;t++){var s=r[t].screenName;v.push(s)}return v};twttr.txt.extractMentionsWithIndices=function(s){if(!s){return[]}var r=[],i=0;s.replace(twttr.txt.regexen.extractMentions,function(t,x,w,u,y){if(!y.match(twttr.txt.regexen.endScreenNameMatch)){var v=s.indexOf(w+u,i);i=v+u.length+1;r.push({screenName:u,indices:[v,i]})}});return r};twttr.txt.extractReplies=function(r){if(!r){return null}var i=r.match(twttr.txt.regexen.extractReply);if(!i){return null}return i[1]};twttr.txt.extractUrls=function(u){var t=[],r=twttr.txt.extractUrlsWithIndices(u);for(var s=0;s<r.length;s++){t.push(r[s].url)}return t};twttr.txt.extractUrlsWithIndices=function(s){if(!s){return[]}var r=[],i=0;s.replace(twttr.txt.regexen.extractUrl,function(y,B,A,t,C,v,D,z){var u;if(C){var w=s.indexOf(t,x),x=w+t.length;r.push({url:t,indices:[w,x]})}});return r};twttr.txt.extractHashtags=function(u){var t=[],s=twttr.txt.extractHashtagsWithIndices(u);for(var r=0;r<s.length;r++){t.push(s[r].hashtag)}return t};twttr.txt.extractHashtagsWithIndices=function(s){if(!s){return[]}var r=[],i=0;s.replace(twttr.txt.regexen.autoLinkHashtags,function(t,w,x,v){var u=s.indexOf(x+v,i);i=u+v.length+1;r.push({hashtag:v,indices:[u,i]})});return r};twttr.txt.splitTags=function(x){var r=x.split("<"),w,v=[],u;for(var t=0;t<r.length;t+=1){u=r[t];if(!u){v.push("")}else{w=u.split(">");for(var s=0;s<w.length;s+=1){v.push(w[s])}}}return v};twttr.txt.hitHighlight=function(C,E,u){var A="em";E=E||[];u=u||{};if(E.length===0){return C}var t=u.tag||A,D=["<"+t+">","</"+t+">"],B=twttr.txt.splitTags(C),F,I,H,x="",r=0,y=B[0],z=0,s=0,M=false,v=y,G=[],w,J,N,L,K;for(I=0;I<E.length;I+=1){for(H=0;H<E[I].length;H+=1){G.push(E[I][H])}}for(w=0;w<G.length;w+=1){J=G[w];N=D[w%2];L=false;while(y!=null&&J>=z+y.length){x+=v.slice(s);if(M&&J===z+v.length){x+=N;L=true}if(B[r+1]){x+="<"+B[r+1]+">"}z+=v.length;s=0;r+=2;y=B[r];v=y;M=false}if(!L&&y!=null){K=J-z;x+=v.slice(s,K)+N;s=K;if(w%2===0){M=true}else{M=false}}else{if(!L){L=true;x+=N}}}if(y!=null){if(s<v.length){x+=v.slice(s)}for(w=r+1;w<B.length;w+=1){x+=(w%2===0?B[w]:"<"+B[w]+">")}}return x};var e=140;var p=[k(65534),k(65279),k(65535),k(8234),k(8235),k(8236),k(8237),k(8238)];twttr.txt.isInvalidTweet=function(s){if(!s){return"empty"}if(s.length>e){return"too_long"}for(var r=0;r<p.length;r++){if(s.indexOf(p[r])>=0){return"invalid_characters"}}return false};twttr.txt.isValidTweetText=function(i){return !twttr.txt.isInvalidTweet(i)};twttr.txt.isValidUsername=function(r){if(!r){return false}var i=twttr.txt.extractMentions(r);return i.length===1&&i[0]===r.slice(1)};var m=c(/^#{autoLinkUsernamesOrLists}$/);twttr.txt.isValidList=function(r){var i=r.match(m);return !!(i&&i[1]==""&&i[4])};twttr.txt.isValidHashtag=function(r){if(!r){return false}var i=twttr.txt.extractHashtags(r);return i.length===1&&i[0]===r.slice(1)};twttr.txt.isValidUrl=function(t,i){if(i==null){i=true}if(!t){return false}var x=t.match(twttr.txt.regexen.validateUrlUnencoded);if(!x||x[0]!==t){return false}var r=x[1],w=x[2],v=x[3],u=x[4],s=x[5];if(!(j(r,twttr.txt.regexen.validateUrlScheme)&&r.match(/^https?$/i)&&j(v,twttr.txt.regexen.validateUrlPath)&&j(u,twttr.txt.regexen.validateUrlQuery,true)&&j(s,twttr.txt.regexen.validateUrlFragment,true))){return false}return(i&&j(w,twttr.txt.regexen.validateUrlUnicodeAuthority))||(!i&&j(w,twttr.txt.regexen.validateUrlAuthority))};function j(r,s,i){if(!i){return((typeof r==="string")&&r.match(s)&&RegExp["$&"]===r)}return(!r||(r.match(s)&&RegExp["$&"]===r))}}());

/* dans hack */
$(function(){
	$('#tweets .tweet-content').each(function(){
		var el = $(this),
			content = el.text(),
			formatted = twttr.txt.autoLink(content);
			
		el.html(formatted);
	});
});
