template_forumindexquickpost.js
上传用户:wenllgg125
上传日期:2020-04-09
资源大小:7277k
文件大小:10k
源码类别:

SCSI/ASPI

开发平台:

Others

  1. //-------------------------首页快速发帖功能------------------------//
  2.  
  3. Array.prototype.remove=function(dx)
  4. {
  5.     if(isNaN(dx)||dx>this.length){return false;}
  6.     for(var i=0,n=0;i<this.length;i++)
  7.     {
  8.         if(this[i]!=this[dx])
  9.         {
  10.             this[n++]=this[i]
  11.         }
  12.     }
  13.     this.length-=1
  14. }
  15. function resetroot()
  16. {
  17. $('pathlist').innerHTML='<a href="javascript:void(0)" onclick="getajaxforums(0);">首页</a>';
  18. }
  19. function getajaxforums(fid,forumname,otype,parentid,applytopictype,topictypeselectoptions,topictypesidlist,postbytopictype)
  20. {
  21. _sendRequest('tools/ajax.aspx?t=getajaxforums&fid='+fid, getajaxforums_callback, false);
  22. if(parentid!=0 && parentid!=undefined)
  23. {
  24. if(applytopictype==1 && topictypeselectoptions!='')
  25. {  
  26.   var str='';
  27.    var arr=topictypeselectoptions.split('|');
  28.    var arrid=topictypesidlist.split('|');
  29.    str+="<ul>";
  30.    for(var i=0;i<arr.length;i++)
  31.    {
  32.      if(parseInt(arrid[i])!=0)
  33.  {
  34. str+='<li>';
  35. str+='<a href="javascript:void(0)" onClick="choosetopictypes(''+arr[i]+'','+arrid[i]+')">'+arr[i]+'</a>';
  36. str+='</li>';
  37.  }
  38.    }
  39.    str+="</ul>";
  40. if(postbytopictype==1 && $('topicstypes').innerHTML.indexOf('必选')==-1)
  41. $('topicstypes').innerHTML+='(必选)';
  42.  
  43. var Hiddentypeid=document.createElement("INPUT");
  44. Hiddentypeid.id='typeid';
  45. Hiddentypeid.name='typeid';
  46. Hiddentypeid.type='hidden';
  47. $('postform').appendChild(Hiddentypeid);
  48. $('topicstypes_menu').innerHTML=str;
  49. $('topicstypescontainer').style.display='';
  50. }
  51.   $('postsubmit').removeAttribute("disabled");
  52. }
  53. else
  54. {
  55. $('postsubmit').setAttribute("disabled","disabled");
  56. }
  57. //if(forumname!=undefined)
  58. if(fid==0 && otype==undefined)
  59. {
  60.    resetroot();
  61.   // for(var i=0;i<pathlist.length;i++)
  62.    //{
  63. //pathlist.remove(i);
  64.    //}
  65.    pathlist=new Array();
  66. }
  67. if(parseInt(fid)!=0 && otype=="add")
  68. {
  69. pathlist["push"]({'forumname':'<a href="javascript:void(0)" onclick="getajaxforums('+fid+',''+forumname+'','remove','+parentid+');chooseforums(''+forumname+'','+fid+')">'+forumname+'</a>','fid':fid});
  70. resetroot();
  71. for(var i=0;i<pathlist.length;i++)
  72. {
  73. $('pathlist').innerHTML +='&raquo;' + pathlist[i].forumname;
  74. }
  75. }
  76. else
  77. {
  78.   if(otype=="remove")
  79.   {
  80.  for(var i=0;i<pathlist.length;i++)
  81.   {
  82.  if(pathlist[i].fid==fid)
  83.  {
  84.    for(j=(i+1);j<=pathlist.length-1;j++)
  85.    {
  86. pathlist.remove(j);
  87.    }
  88.    break;
  89.  }
  90.   }
  91. resetroot();
  92.   for(var i=0;i<pathlist.length;i++)
  93.   {
  94. $('pathlist').innerHTML +='&raquo;' + pathlist[i].forumname;
  95.   }
  96. }
  97. }
  98. }
  99. function getajaxforums_callback(doc)
  100. {
  101.   var htmlstr='';
  102.   var data=eval(doc)
  103.   for (var ix=0; ix<data.length;ix++)
  104.   { 
  105.   var topictypeslist='';
  106.   var topictypesidlist='';
  107.     var re = /<option value="(d+)">([^<>]+?)</option>/ig;
  108.     var str=data[ix].topictypeselectoptions;
  109. while(matches = re.exec(str))
  110. {
  111.  topictypesidlist+=matches[1]+'|';
  112.  topictypeslist+=matches[2]+'|';
  113. }
  114.   
  115.   htmlstr+='<a href="javascript:void(0)" onclick="getajaxforums('+data[ix].fid+',''+data[ix].forumname+'','add','+data[ix].parentid+','+data[ix].applytopictype+',''+topictypeslist+'',''+topictypesidlist+'','+data[ix].postbytopictype+');chooseforums(''+data[ix].forumname+'','+data[ix].fid+')">'+data[ix].forumname+'</a>';
  116.   }
  117.  $("forumtreelist").innerHTML=htmlstr;
  118. }
  119. function chooseforums(forumname,fid,bytopictype,topictype)
  120. {
  121. $('loginorreg').innerHTML=lastpostforumhtml;
  122. $('userselectforum').innerHTML = forumname;
  123. $('forumname').value=forumname;
  124. $('forumid').value=fid;
  125. postbytopictype=bytopictype;
  126. topictypes=topictype;
  127. }
  128. function choosetopictypes(typename,typeid)
  129. {
  130. $('topicstypes').innerHTML=typename;
  131. $('typeid').value=typeid;
  132. }
  133. function divtotextarea(type)
  134. {
  135. if(type==1)
  136. {
  137.   addqicktitleattribute('remove');
  138. $('quicktitletext').innerHTML ='<input type="text" maxlength="60" value="'+$('quicktitletext').innerHTML+'" size="120" id="titlehidden" name="titlehidden" tabindex="1" onblur="divtotextarea(0)" class="txt"/>';
  139. }
  140. else
  141. {
  142.     allowedittitle=false;
  143.    addqicktitleattribute('add');
  144. if($('titlehidden'))
  145. {
  146. $('title').value=$('titlehidden').value;
  147. $('quicktitletext').innerHTML=$('titlehidden').value;
  148. }
  149. }
  150. }
  151. function changequicktitletext(t)
  152. {
  153. if(allowedittitle)
  154. {
  155. $('quicktitletext').innerHTML=t.value.substring(0,60);
  156. $('title').value=t.value;
  157. }
  158. }
  159. function checkquicmessage(event)
  160. {
  161. //|| $('quicktitletext').innerHTML.length>20
  162. if(in_array(event.keyCode,[32,188,190,229]))
  163. {
  164. if($('quicktitletext').innerHTML!='' &&  $('quicktitletext').innerHTML!=null)
  165. allowedittitle=false;
  166. }
  167. }
  168. //document.onclick=function()
  169. //{
  170. //if(ismeesageopen)
  171. //{
  172. //testareafocus($('message'));
  173. //}
  174. //}
  175. //}
  176. function addqicktitleattribute(reoradd)
  177. {
  178. if(reoradd=='add')
  179. {
  180. if(is_ie)
  181. {
  182.    $('quicktitletext').setAttribute("onclick",function(){divtotextarea(1)});
  183. }
  184. else
  185. {
  186.   $('quicktitletext').setAttribute("onclick","divtotextarea(1)");
  187. }
  188. }
  189. else
  190. {
  191.  if(is_ie)
  192.  {
  193. $('quicktitletext').setAttribute("onclick",function(){});
  194.  }
  195.  else
  196.  {
  197. $('quicktitletext').removeAttribute("onclick");
  198.  }
  199. }
  200. }
  201. function textareafocus(t,type)
  202. {
  203. if(type==1)
  204. {;
  205.     $('vcodediv').style.display='';
  206.   t.style.height=60+'px';
  207. }
  208. else
  209. {
  210.   t.style.height=20+'px';
  211. }
  212. }
  213. function validateforumid(forum)
  214. {
  215. if(forum.forumid.value=='')
  216. {
  217. alert("请选择板块");
  218. try{$("postsubmit").disabled = false;}catch(e){}
  219. return false;
  220. }
  221. }
  222. function inittopictype()
  223. {
  224. $('topicstypes').innerHTML='请选择主题分类';
  225. $('topicstypes_menu').innerHTML='';
  226. $('topicstypescontainer').style.display='none';
  227. if($('typeid'))
  228. {
  229. $('postform').removeChild($('typeid'));
  230. }
  231. }
  232. function getSingleNodeValue(doc, tagname){
  233. try{
  234. var oNodes = doc.getElementsByTagName(tagname);
  235. if (oNodes[0] != null && oNodes[0] != undefined){
  236. if (oNodes[0].childNodes.length > 1) {
  237. return oNodes[0].childNodes[1].nodeValue;
  238. } else {
  239. return oNodes[0].firstChild.nodeValue;    
  240. }
  241. }
  242. }
  243. catch(e){}
  244. return '';
  245. }
  246. function ajaxposttopic(postbytopictype,topictypes)
  247. {
  248.     if($('title'))
  249. {
  250. $('title').value=$('message').value!=''?$('message').value.substr(0,20):'';
  251. }
  252. else
  253. {
  254. var Hiddentitle=document.createElement("INPUT");
  255. Hiddentitle.id='title';
  256. Hiddentitle.name='title';
  257. Hiddentitle.type='hidden';
  258. Hiddentitle.value=$('message').value!=''?$('message').value.substr(0,20):'';
  259. $('postform').appendChild(Hiddentitle);
  260. }
  261.     if(postbytopictype==1 && topictypes!='')
  262. {
  263.     if($('typeid'))
  264. {
  265.     $('typeid').value=topictypes.split(',')[0];
  266. }
  267. else
  268. {
  269. var Hiddentypeid=document.createElement("INPUT");
  270. Hiddentypeid.id='typeid';
  271. Hiddentypeid.name='typeid';
  272. Hiddentypeid.type='hidden';
  273. Hiddentypeid.value=topictypes.split(',')[0];
  274. $('postform').appendChild(Hiddentypeid);
  275. }
  276. }
  277. //sendRequest_commentdebates('tools/ajax.aspx?tid=' + tid + '&t=addcommentdebates',messageid);
  278. _sendRequest('posttopic.aspx?infloat=1&fromindex=1', ajaxpostttopic_callback, true, getRequestBody($('postform')));
  279. }
  280. function ajaxpostttopic_callback(doc)
  281. {    
  282.      var t=getSingleNodeValue(doc,'root').toString().replace(/<br />/g," ");
  283.  if (!disablepostctrl && ((postminchars != 0 && mb_strlen($('message').value) < postminchars) || (postmaxchars != 0 && mb_strlen($('message').value) > postmaxchars))) 
  284. {
  285.         ajaxinnerhtml($('loginorreg'),"<img src="templates/"+templatepath+"/images/check_error.gif"/>您的帖子长度不符合要求。nn当前长度: " + mb_strlen($('message').value) + " 字节n系统限制: " + postminchars + " 到 " + postmaxchars + " 字节");
  286.         setTimeout("$('loginorreg').innerHTML=lastpostforumhtml;",3000);       
  287.     return;
  288.     }
  289.  
  290.  if(t.indexOf('<p')!=-1)
  291.  {
  292.  
  293.   ajaxinnerhtml($('loginorreg'),t.replace("<p>","<p><img src="templates/"+templatepath+"/images/check_error.gif"/>"));
  294.   setTimeout("$('loginorreg').innerHTML=lastpostforumhtml;",3000);
  295.  }
  296.  else
  297.  {
  298.  if($('vcodetext'))
  299.  {
  300.   $('vcodetext').value='';
  301.  }
  302.      $('message').value='';
  303.  
  304.   var currenturl=aspxrewrite==1?'showforum-'+$('forumid').value+'.aspx':'showforum.aspx?forumid='+$('forumid').value;
  305.   ajaxinnerhtml($('loginorreg'),'<img src='templates/'+templatepath+'/images/data_valid.gif'/>发表主题成功');
  306.   lastpostforumhtml='您将要在<a id="userselectforum" href="javascript:void(0)" onmouseover="showMenu(this.id)" class="drop">'+$('forumname').value+'</a>发帖'
  307.   var lastpostforumhtmlnew =lastpostforumhtml+'          <a href=''+currenturl+''>进入此板块</a>'
  308.  //setTimeout("$('loginorreg').innerHTML=lastpostforumhtml;",1000);
  309.  $('message').style.height=20+'px';
  310.  setTimeout(function(){$('loginorreg').innerHTML=lastpostforumhtmlnew;},1000)
  311.  }
  312.  $('title').parentNode.removeChild($('title'));
  313.  if($('typeid'))
  314.  {
  315.  $('typeid').parentNode.removeChild($('typeid'));
  316.  }
  317.  return;
  318. }
  319. document.onclick = function(e)
  320. {
  321.    if($('fastpost'))
  322.    {
  323. var event = window.event || e;
  324. //var ele=event.scrElement || event.target;
  325. var ele=event.srcElement ? event.srcElement : event.target
  326. var arr=new Array();
  327. var allelements=$('fastpost').getElementsByTagName('*');
  328. var d=new Date();
  329. for(var i=0;i<allelements.length;i++)
  330. {
  331.   if(allelements[i].id=='')
  332. allelements[i].id=d.getUTCHours().toString()+d.getUTCMinutes().toString()+d.getUTCSeconds().toString()+d.getUTCMilliseconds().toString()+i.toString();
  333.   arr.push(allelements[i].id);
  334. }
  335.  
  336. if(!in_array(ele.id,arr))  
  337. {  
  338. $('message').style.height=20+'px';
  339. }  
  340. }
  341. }