strformat.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. var touchobj=false;
  2. var strformat = {
  3. sendcodearr:{},
  4. sendcuxo:0,
  5. emotsstr:',[微笑],[撇嘴],[色],[发呆],[得意],[流泪],[害羞],[闭嘴],[睡],[大哭],[尴尬],[发怒],[调皮],[呲牙],[惊讶],[难过],[酷],[冷汗],[抓狂],[吐],[偷笑],[愉快],[白眼],[傲慢],[饥饿],[困],[恐惧],[流汗],[憨笑],[悠闲],[奋斗],[咒骂],[疑问],[嘘],[晕],[疯了],[衰],[骷髅],[敲打],[再见],[擦汗],[抠鼻],[鼓掌],[糗大了],[坏笑],[左哼哼],[右哼哼],[哈欠],[鄙视],[委屈],[快哭了],[阴险],[亲亲],[吓],[可怜],[菜刀],[西瓜],[啤酒],[篮球],[乒乓],[咖啡],[饭],[猪头],[玫瑰],[凋谢],[嘴唇],[爱心],[心碎],[蛋糕],[闪电],[炸弹],[刀],[足球],[瓢虫],[便便],[月亮],[太阳],[礼物],[拥抱],[强],[弱],[握手],[胜利],[抱拳],[勾引],[拳头],[差劲],[爱你],[NO],[OK],[爱情],[飞吻],[跳跳],[发抖],[怄火],[转圈],[磕头],[回头],[跳绳],[投降],[激动],[街舞],[献吻],[左太极],[右太极]',
  6. addcode:function(key, val){
  7. this.sendcuxo++;
  8. key = key+','+this.sendcuxo;
  9. this.sendcodearr[key] = val;
  10. return '[C]'+key+'[/C]'
  11. },
  12. geturl:function(d){
  13. if(!d)d={'url':''};
  14. var url = d.url;
  15. if(!url&&d.table&&d.mid)url='?m=flow&a=view&d=taskrun&table='+d.table+'&mid='+d.mid+'&uid='+adminid+'';
  16. return url;
  17. },
  18. emotspath:'',
  19. openurl:function(dz){
  20. js.location(dz);
  21. },
  22. urlpipei:function(str){
  23. urlpipeiarr = [];
  24. var strv = this.urlpipeiss(str,'http://');
  25. strv = this.urlpipeiss(strv,'https://');
  26. var i,len = urlpipeiarr.length,sv;
  27. if(len>0)for(i=0;i<len;i++){
  28. sv = urlpipeiarr[i];
  29. strv = strv.replace('{URL'+i+'}','<a onclick="return strformat.openurl(\''+sv+'\')" href="javascript:;">'+sv+'</a>');
  30. }
  31. return strv;
  32. },
  33. urlpipeiss:function(str,gz){
  34. var s1 = str.toLowerCase();
  35. var xu = s1.indexOf(gz);
  36. if(xu==-1)return str;
  37. var len = gz.length,zlen = s1.length;
  38. var jg = 0,s2,i,ym,tsx=',./?&=#@*()_-+;!|:%',cd;
  39. for(i=0;i<zlen-len;i++){
  40. s2 = s1.substr(xu+len+i,1);
  41. if(!s2 || (tsx.indexOf(s2)==-1 && !/[a-zA-Z0-9]{1,}/.test(s2)))break;
  42. jg++;
  43. }
  44. ym = str.substr(xu,len+jg);
  45. cd = urlpipeiarr.push(ym);
  46. var strv= str.replace(ym,'{URL'+(cd-1)+'}');
  47. return this.urlpipeiss(strv,gz);
  48. },
  49. strcont:function(nr){
  50. var str = unescape(nr),patt1,emu,i,st1,oi;
  51. if(str.indexOf('<img')==-1)str = this.urlpipei(str);
  52. patt1 = new RegExp("\\[(.*?)\\](.*?)", 'gi');
  53. emu = str.match(patt1);
  54. if(emu!=null){
  55. for(i=0;i<emu.length; i++){
  56. st1=emu[i];
  57. oi=this.emotsarrss[st1];
  58. if(oi)str = str.replace(st1, '<img height="24" width="24" src="'+this.emotspath+'images/im/emots/qq/'+(oi-1)+'.gif">');
  59. }
  60. }
  61. str = str.replace(/\n/gi, '<br>');
  62. return str;
  63. },
  64. downshow:function(sid){
  65. var url = 'mode/upload/uploadshow.php?id='+sid+'';
  66. openurlla(url, 400, 300);
  67. return false;
  68. },
  69. strcontss:function(str,bq,rstr){
  70. var patt1 = new RegExp("\\["+bq+"\\](.*?)\\[\\/"+bq+"\\]", "gi");
  71. var emu = str.match(patt1);
  72. if(emu != null){
  73. bq1 = bq.toLowerCase();
  74. for(var i=0;i<emu.length; i++){
  75. var s0 = emu[i].replace('['+bq+']','').replace('[/'+bq+']','');
  76. s0 = s0.replace('['+bq1+']','').replace('[/'+bq1+']','');
  77. var s1 = s0,s2 = s0,s3='',sa;
  78. if(s0.indexOf('|')>0){
  79. sa = s0.split('|');
  80. s1 = sa[1];
  81. s2 = sa[0];
  82. s3 = sa[2];
  83. }
  84. var s4 = rstr.replace('{s1}',s1).replace('{s2}',s2).replace('{s3}',s3);
  85. str = str.replace(emu[i], s4);
  86. }
  87. }
  88. return str;
  89. },
  90. sendinstr:function(str, tuas){
  91. var bq = 'C';
  92. var patt1 = new RegExp("\\["+bq+"\\](.*?)\\[\\/"+bq+"\\]", "gi");
  93. var emu = str.match(patt1);
  94. if(emu != null){
  95. for(var i=0;i<emu.length; i++){
  96. var s0 = emu[i].replace('['+bq+']','').replace('[/'+bq+']','');
  97. str = str.replace(emu[i], this.sendcodearr[s0]);
  98. }
  99. }
  100. var nowa = js.serverdt('Y-m-d H:i:s 星期W'),
  101. nowas = nowa.split(' ');
  102. var ztstr = [['now',nowa],['date',nowas[0]],['time',nowas[1]],['week',nowas[2]]];
  103. var patt1,a,thnr,ths='';
  104. for(var i=0; i<ztstr.length; i++){
  105. a = ztstr[i];
  106. if(a[2] == 1){
  107. patt1 = new RegExp(""+a[0]+"", "gi");
  108. thnr = '[A]'+a[0]+'|'+a[1]+'[/A]';
  109. }else{
  110. thnr = a[1];
  111. patt1 = new RegExp("\\["+a[0]+"\\]", "gi");
  112. }
  113. str = str.replace(patt1, thnr);
  114. }
  115. return str;
  116. },
  117. picshow:function(str, wj){
  118. var s=str,sa;
  119. if(s.indexOf('[图片.')==0){
  120. s=s.substr(1,s.length-1);
  121. sa=s.split('.');
  122. if(wj)s='<img src="'+apiurl+''+wj+'">';
  123. }
  124. return s;
  125. },
  126. showdt:function(sj){
  127. if(!sj)sj='';
  128. var s='';
  129. sja=sj.split(' ');
  130. if(sj.indexOf(this.dt)==0){
  131. s=sja[1];
  132. }else{
  133. s=sj.substr(5,11);
  134. }
  135. return s;
  136. },
  137. showqp:function(type,name,dt,cont,nuid, fase,rnd,bqname,bqcor){
  138. var str = this.strcont(cont);
  139. if(!rnd)rnd=js.getrand();
  140. var nr = '',bqs='';
  141. if(bqname && bqcor)bqs='<font style="background:'+bqcor+';font-size:10px;margin-right:2px;color:white;padding:1px 2px;border-radius:2px" >'+bqname+'</font>';
  142. this.showqpid = 'ltcont_'+rnd+'';
  143. nr+='<div id="'+this.showqpid+'" class="ltcont">';
  144. nr+=' <div class="qipao" align="'+type+'">';
  145. nr+=' <div class="dt" style="padding-'+type+':65px">'+bqs+'<font id="ltname_'+rnd+'">'+name+'</font>('+this.showdt(dt)+')</div>';
  146. nr+=' <table border="0" cellspacing="0" cellpadding="0">';
  147. nr+=' <tr valign="top">';
  148. if(type == 'left'){
  149. nr+=' <td width="50" align="center"><img src="'+fase+'" onclick="strformat.clickface(\''+rnd+'\',this)" class="qipaoface" width="40" height="40"></td>';
  150. nr+=' <td><div class="qipao'+type+'"></div></td>';
  151. }else{
  152. nr+=' <td width="30" align="right">';
  153. if(nuid)nr+='<img src="images/loadings.gif" title="发送中..." id="'+nuid+'" style="margin-top:5px" align="absmiddle">&nbsp;';
  154. nr+=' </td>';
  155. }
  156. nr+=' <td>';
  157. nr+=' <div ontouchstart="touchobj=this" id="qipaocont_'+rnd+'" rand="'+rnd+'" class="qipaocont qipaocont'+type+'">'+str+'</div>';
  158. nr+=' </td>';
  159. if(type == 'right'){
  160. nr+=' <td><div class="qipao'+type+'"></div></td>';
  161. nr+=' <td width="50" align="center"><img src="'+fase+'" onclick="strformat.clickface(\''+rnd+'\',this)" class="qipaoface" width="40" height="40"></td>';
  162. }else{
  163. nr+=' <td width="30"></td>';
  164. }
  165. nr+=' </tr></table>';
  166. nr+=' </div>';
  167. nr+='</div>';
  168. return nr;
  169. },
  170. clickface:function(){
  171. },
  172. showupfile:function(f, snr){
  173. var nuid= js.now('time'),optdt = js.serverdt(),nr='';
  174. nr = '<div id="showve_'+nuid+'">';
  175. if(f && f.filename){
  176. if(f.isimg){
  177. var src = ''+this.emotspath+'images/noimg.jpg';
  178. if(f.thumbpath)src = ''+apiurl+''+f.thumbpath+'';
  179. if(f.imgviewurl)src = f.imgviewurl;
  180. nr+='<div><img width="150" onclick="strformat.clickimg(this)" id="imgview_'+nuid+'" src="'+src+'"><br>'+f.filesizecn+'</div>';
  181. }else{
  182. nr+= '<div><img src="'+this.emotspath+'images/fileicons/'+js.filelxext(f.fileext)+'.gif" align="absmiddle">&nbsp;'+f.filename+'('+f.filesizecn+')</div>';
  183. }
  184. }
  185. if(snr){
  186. nr+= '<div><img src="'+snr+'" onclick="strformat.clickimg(this)" id="jietuimg_'+nuid+'" width="150"></div>';
  187. nr+= '<div><a onclick="im.upbase64(\''+nuid+'\')" href="javascript:;">[发送截图]</a>';
  188. }
  189. nr+= '<div class="progresscls"><div id="progresscls_'+nuid+'" class="progressclssse"></div><div class="progressclstext" id="progresstext_'+nuid+'">0%</div></div>';
  190. nr+= '<div id="progcanter_'+nuid+'"><a href="javascript:;" onclick="strformat.cancelup(\''+nuid+'\')">取消</a></div>';
  191. nr+= '</div>';
  192. this.nuidup_tep = nuid;
  193. var nas = f.sendname;
  194. if(!nas)nas='我';
  195. var cont= this.showqp('right',nas,optdt, nr, nuid, f.face, nuid,f.bqname,f.bqcolor);
  196. return {'cont':cont,optdt:optdt,nuid:nuid};
  197. },
  198. upprogresss:function(per, nuid){
  199. if(!nuid)nuid=this.nuidup_tep;
  200. $('#progresscls_'+nuid+'').css('width',''+per+'%');
  201. $('#progresstext_'+nuid+'').html(''+per+'%');
  202. if(per==100)$('#progcanter_'+nuid+'').remove();
  203. },
  204. upsuccess:function(f,nuid){
  205. if(!nuid)nuid=this.nuidup_tep;
  206. this.upprogresss(100, nuid);
  207. $('#progresstext_'+nuid+'').html('上传成功');
  208. var contss;
  209. if(js.isimg(f.fileext)){
  210. contss = '[图片 '+f.filesizecn+']';
  211. }else{
  212. contss = '['+f.filename+' '+f.filesizecn+']';
  213. }
  214. var s = this.contshozt(f);
  215. $('#showve_'+nuid+'').html(s);
  216. return contss;
  217. },
  218. uperror:function(nuid){
  219. if(!nuid)nuid=this.nuidup_tep;
  220. $('#progresstext_'+nuid+'').html('<font color=red>上传失败</font>');
  221. $('#progcanter_'+nuid+'').remove();
  222. },
  223. cancelup:function(nuid){
  224. if(!nuid)nuid=this.nuidup_tep;
  225. try{if(this.upobj)this.upobj.abort();}catch(e){}
  226. $('#ltcont_'+nuid+'').remove();
  227. },
  228. openimg:function(src){
  229. var img = src;
  230. if(src.indexOf('thumb')>0){
  231. var ext = src.substr(src.lastIndexOf('.')+1);
  232. img = src.substr(0,src.lastIndexOf('_'))+'.'+ext;
  233. }
  234. js.open(img);
  235. },
  236. emotsarrss:{},
  237. init:function(){
  238. var a = this.emotsstr.split(',');
  239. this.emotsarr=a;
  240. var len = a.length,i;
  241. for(i=1;i<len;i++){
  242. this.emotsarrss[a[i]]=i;
  243. }
  244. this.dt=js.now();
  245. },
  246. contshozt:function(d, lj){
  247. var s='',slx,sttr;
  248. if(!d)return s;
  249. if(!d.fileid)d.fileid=d.id;
  250. if(js.isimg(d.fileext)){
  251. sttr='';
  252. if(d.thumbpath){
  253. s='<img src="'+d.thumbpath+'" style="max-width:250px" onclick="strformat.clickimg(this)" fid="'+d.fileid+'">';
  254. }else{
  255. if(d.width){
  256. if(d.width>150)sttr='width="150"';
  257. }else{
  258. sttr='width="150"';
  259. }
  260. s='<img src="'+d.filepath+'" onclick="strformat.clickimg(this)" '+sttr+' fid="'+d.fileid+'">';
  261. }
  262. }else if(d.fileext=='amr'){
  263. s+='<i class="icon-volume-up"></i> '+(parseInt(d.filesize/1000))+'"';
  264. s+='&nbsp;<a href="javascript:;" style="font-size:12px" onclick="js.fileopt('+d.fileid+',1)">下载</a>';
  265. }else{
  266. slx = d.fileext;if(!lj)lj='';
  267. if(js.fileall.indexOf(','+slx+',')<0)slx='wz';
  268. //s=''+d.filename+'<br><a href="javascript:;" onclick="js.fileopt('+d.fileid+',1)">下载</a>&nbsp;&nbsp;<a href="javascript:;" onclick="js.fileopt('+d.fileid+',0)">预览</a>&nbsp;'+d.filesizecn+'';
  269. s='<table><tr><td><div class="qipaofile">'+d.fileext.toUpperCase()+'</div></td><td>'+d.filename+'<br><span style="font-size:12px;color:#888888">('+d.filesizecn+')&nbsp;&nbsp;<a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',1)">下载</a>&nbsp;&nbsp;<a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',0)">预览</a></span></td></tr></table>';
  270. }
  271. return s;
  272. },
  273. clickfile:function(fid){
  274. js.msg('msg','没有开发打开');
  275. },
  276. clickimg:function(){
  277. }
  278. }
  279. strformat.init();