Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » Ru-Board Helper. Игнор-лист и другие полезные фичи

Модерирует : batva, DimoN

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Ke



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
// ==UserScript==
// @name          Ru-Board Helper
// @version       2.4 (31Jan10 14:49:56)
// @include       http://forum.ru-board.com/*
// ==/UserScript==
 
(function() {
  var IgnName   = 'Ignore';
  var FrndsName = 'Friends';
  var StatName  = 'Nick-';
  var NickSrchName = 'NickSearch';
  var TextSrchName = 'TextSearch';
  var Delim1    = ',';
  var IgnCnt    = -1;
  var SrchInPth = 'topic.cgi';
  var SrchForum = 'forum.cgi';
  var FrmsName  = 'Forums';
  var IgnM      = new Array();
  var UseNickSearch = true; // false;
  var UseTextSearch = true; // false;
  var LastNickFind  = '';
  var UseFriends    = true; // false;
  var FriendsColor  = '#cfffcf';
  var TblText1s = '<table align="center" bgcolor="#999999" border="0" cellpadding="3" cellspacing="1" width="95%">';
  var TblText1e = '</table>';
  var AddForumS = 'AddForum';
  var IsAddForums = true; // false;
  var UseHideLink = true;
  var UseIgnore   = true;
  var isUseAddPages = true; // false
  var isUseStatus   = true; // false
  var FrmLoadListS  = '';
  var FrmLoaded     = '';
  var CookDate1     = new Date("1 May 2100 11:00");
 
  function HideText(NickName, TrTag) {
    DivTag = TrTag.getElementsByTagName('div');
    if (!((DivTag.length > 0) && (DivTag[0].id.indexOf('Ignor') == 0))) {
      Find1 = false;
      for (var i = 0; i < IgnM.length ; i++) {  
        if (IgnM[i] == TrTag.innerHTML) {
          Find1 = true;
          break;
        }
      }
      if (Find1) {
        Ind1 = i;
      } else {
        IgnCnt       = IgnCnt +1;
        IgnM[IgnCnt] = TrTag.innerHTML;
        Ind1 = IgnCnt;
      }
      TrTag.innerHTML = ''
       +'<td>'
       +'<div ID=Ignor' +Ind1  
       +' Align=left><font class=tit>&nbsp;User <b>' +NickName +'</b>'
        +'<font style="FONT-SIZE:10pt;COLOR:#333333;" class="StatusBlock2" '  
        +'title="' +NickName +'" ' +'></font>'        
       +' ignored. '
       +'<a Name=' +Ind1 +' ID=AIgnor' +Ind1  
       +' href=javascript:UnIgn("Ignor' +Ind1  
       +'")><u>Show message</u></a></font>'
       +'</div>'
       +'</td>'
       ;
      document.getElementById('AIgnor' +Ind1).addEventListener("click",  
        function() {UnIgn(this.name)}, false);
      var TbTag1 = TrTag.parentNode.parentNode;
      if (TbTag1 != null) {TbTag1.cellPadding = "0"}
    }
  }
 
  function main(IgnS, isAddLinks, Reverse, FriendsList, SearchText
  ) {
    var isSearchText = ((SearchText != undefined) && (SearchText != ''));
    if (isSearchText) {Wrlds1 = splitSrch(SearchText);}
    if (IgnS == undefined) {IgnS = ''}
    var Ign    = IgnS.split(Delim1);
    var TrT    = document.getElementsByTagName('tr');
    for (var i = 0; i < TrT.length ; i++) {  
      var Btag = TrT[i].getElementsByTagName('b');
      if (Btag.length == 0) continue;
      if (isAddLinks) {
        var TdTag    = TrT[i].getElementsByTagName('td');
        if (TdTag.length >= 3) {
          if (TdTag[2].className=="tpc") {
            var s2 = '';
            if (UseHideLink) {
              s2 = s2  
               +'<a class="tpc" title="Hide this block' +'"'
               +' name="' +Btag[0].innerHTML +'"'
               +' ID=AHideLink' +i
               +' href=javascript:HidePost1("' +Btag[0].innerHTML +'")'
               +'>[-]</a> '
             ;
            }
            if (UseIgnore) {
              s2 = s2
               +'<a class="tpc" title="Add or remove ' +"'" +Btag[0].innerHTML
               +"'" +' from Ignore List" name="' +Btag[0].innerHTML +'"'
               +' ID=IgnorLink' +i
               +' href=javascript:AddDelIgn("IgnorLink' +i +'")>Ignore'
               +'</a> | ';
            }
            if (UseFriends) {
              s2 = s2  
               +'<a class="tpc" title="Add or remove ' +"'" +Btag[0].innerHTML
               +"'" +' in Friends List" name="' +Btag[0].innerHTML +'"'
               +' ID=FriendsLink' +i
               +' href=javascript:AddDelFrnd("FriendsLink' +i +'")>Friend'
               +'</a> | ';
            }
            if (UseNickSearch) {
              s2 = s2  
               +'<a class="tpc" title="Show or hide all messages from '  
               +"'" +Btag[0].innerHTML
               +"'" +'" name="' +Btag[0].innerHTML +'"'
               +' ID=ANickSrch' +i
               +' href=javascript:NickSrch("' +Btag[0].innerHTML +'")'
               +'>Find</a>'  
               +' | ';
            }
            if (isUseStatus) {
              s2 = s2  
               +'<a class="tpc" title="Add custom status for '  
               +"'" +Btag[0].innerHTML
               +"'" +'" name="' +Btag[0].innerHTML +'"'
               +' ID=ACustStat' +i
               +' href=javascript:EditCustStat("' +Btag[0].innerHTML +'")'
               +'>Status</a>'  
               +' | ';
            }
            TdTag[2].innerHTML = ''
             +s2
             +TdTag[2].innerHTML;
            if (UseIgnore) {
              document.getElementById('IgnorLink' +i).addEventListener("click",  
               function() {AddDelIgn(this.id)}, false)}
            if (UseFriends) {
              document.getElementById('FriendsLink' +i).addEventListener("click",  
               function() {AddDelFrnd(this.id)}, false)}
            if (UseNickSearch) {
              document.getElementById('ANickSrch' +i).addEventListener("click",  
               function() {NickSrch(this.name)}, false)}
            if (UseHideLink) {
              document.getElementById('AHideLink' +i).addEventListener("click",  
                function() {HidePost1(this.id)}, false)}
            if (isUseStatus) {
              document.getElementById('ACustStat' +i).addEventListener("click",  
                function() {EditCustStat(this.name)}, false)}
            if (isUseStatus) {
              FntTgs1 = TdTag[1].getElementsByTagName('font');
              if (FntTgs1.length==0) {
                FTg1 = document.createElement('font');
                FTg1.className = 'StatusBlock';  
                FTg1.title     = Btag[0].innerHTML  
                FTg1.innerHTML = '';
                TdTag[1].appendChild(FTg1);
              }
            }
          }
        }
      }
      if (isSearchText) {
        var HrT = TrT[i].getElementsByTagName('hr');
        if (HrT.length > 1) {
          var Find1 = false;
          var k1    = 0;
          var SpnT = TrT[i].getElementsByTagName('span');
          if (SpnT.length > 0) {
            var s     = SpnT[0].textContent;
            for (var j = Wrlds1.length -1; j >= 0; j--) {
              if (s.toLowerCase().indexOf(Wrlds1[j].toLowerCase()) > 0) {
                Find1 = true;
                break;
              }
            }
            if (!Find1)  
            {                                                
              HideText(Btag[0].innerHTML, TrT[i])
            }  
          }  
        }
      } else  
      {
        if (Reverse) {
          var HrT = TrT[i].getElementsByTagName('hr');
          if (HrT.length <= 1) continue;  
          var Find1 = false;
          var k1    = 0;
          for (var j = Ign.length -1; j >= 0; j--) {
            if (Btag[0].innerHTML != Ign[j]) {
              Find1 = true;
              break;
            }
          }
          if (Find1) {HideText(Btag[0].innerHTML, TrT[i])}  
        } else {
          for (var j = Ign.length -1; j >= 0; j--) {
            if (Btag[0].innerHTML == Ign[j]) {
              HideText(Ign[j], TrT[i]);  
            break;
            }
          }
        }
      }
    }
 
    if (isSearchText) {
      for (var i = IgnCnt; i >= 0; i--){
        var DivTag1 = document.getElementById('Ignor' +i);
        if (DivTag1 == null) continue;
        var BTag2 = DivTag1.getElementsByTagName('b');
        if (BTag2.length <= 0) continue;
        var DTag2    = document.createElement("div");
        DTag2.innerHTML = IgnM[i];
        var SpnT2 = DTag2.getElementsByTagName('span');
        if (SpnT2.length > 0) {
          var s = SpnT2[0].textContent;    
          for (var j = Wrlds1.length -1; j >= 0; j--) {
            if (s.toLowerCase().indexOf(Wrlds1[j].toLowerCase()) >= 0) {
              UnIgn(i);
              break;
            }
          }  
        }
      }
    } else {
      if (Reverse) {
        for (var i = IgnCnt; i >= 0; i--){
          var DivTag1 = document.getElementById('Ignor' +i);
          if (DivTag1 == null) continue;
          var BTag2 = DivTag1.getElementsByTagName('b');
          if (BTag2.length <= 0) continue;
          for (var j = 0; j < Ign.length; j++) {  
            if (BTag2[0].innerHTML == Ign[j]) {
              UnIgn(i);
              break;
            }
          }
        }
      } else {
        for (var i = IgnCnt; i >= 0; i--){
          var DivTag1 = document.getElementById('Ignor' +i);
          if (DivTag1 == null) continue;
          var BTag2 = DivTag1.getElementsByTagName('b');
          if (BTag2.length <= 0) continue;
          var Find1 = 0;
          for (var j = 0; j < Ign.length; j++) {  
            if (BTag2[0].innerHTML == Ign[j]) {
              Find1 = 1;
              break;
            }
          }
          if (Find1==0) {UnIgn(i)}
        }
      }
    }
    IgnLinkColor();
    if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
    SetStauses();
  }
 
  if (document.location.pathname.indexOf(SrchInPth) > -1) {
    main(getCookie(IgnName), true, false);}
 
  function SetStauses() {
    var FntTg1    = document.getElementsByTagName('font');
    for (var i = 0; i < FntTg1.length ; i++) {  
      if (FntTg1[i].className.indexOf('StatusBlock')!=0) continue;
      var sCook1 = getCookie(StatName +FntTg1[i].title);
      if (sCook1 == undefined) {sCook1=''} else {
        if (sCook1=='') {
          deleteCookie(StatName +FntTg1[i].title);
          sCook1='';
        } else {
          if (FntTg1[i].className.indexOf('StatusBlock2')==0) {
            sCook1 = ' ( ' +sCook1 + ' ) '
          } else {
            sCook1='<br>'+sCook1
          }
        }
      }
      FntTg1[i].innerHTML = sCook1;
    }
  }
 
  function SetFriendsColor(FriendsList) {
    if ((FriendsList != undefined) && (UseFriends)) {
      var TrT  = document.getElementsByTagName('tr');
      var Frnd = FriendsList.split(Delim1);
      for (var i = 0; i < TrT.length ; i++) {  
        var Btag = TrT[i].getElementsByTagName('b');
        if (Btag.length == 0) continue;
        var TdTag    = TrT[i].getElementsByTagName('td');
        if (TdTag.length >= 3) {
          if (TdTag[2].className=="tpc") {
            if ((FriendsList != undefined) && (UseFriends)) {
               var Find2 = false;
               for (var j = 0; j < Frnd.length ; j++) {  
                 if (Btag[0].innerHTML == Frnd[j]) {
                   Find2 = true;
                   break;
                 }
               }
               if (Find2) {
                 TdTag[1].bgColor = FriendsColor;
               } else {
                 TdTag[1].bgColor = TdTag[2].bgColor;
               }
            }
          }
        }
      }
    }
  }
 
  function IgnLinkColor(){
    var TrT  = document.getElementsByTagName('tr');
    var Ign2 = getCookie(IgnName);
    if (Ign2 == undefined) {Ign2 = ''}
    for (var i = 0; i < TrT.length ; i++) {  
      var ATag = document.getElementById('IgnorLink' +i);
      if (ATag==null) continue;
      if (IsTextInStr(ATag.name, Ign2, Delim1)) {
        ATag.innerHTML = '<font Color=#FF0000>Ignore</font>'
      } else {
        ATag.innerHTML = 'Ignore'
      }
    }
  }
 
  function UnIgn(IgnCnt){
    var PrTag1 = document.getElementById('Ignor' +IgnCnt).parentNode.parentNode;
    PrTag1.innerHTML = IgnM[IgnCnt];
    IgnLinkColor();
    if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
    var Tgs1 = PrTag1.getElementsByTagName('a');
    if (UseIgnore) {
      for (var i = 0; i < Tgs1.length ; i++) {  
        if (Tgs1[i].id.indexOf('IgnorLink') == 0) {
          Tgs1[i].addEventListener("click", function() {AddDelIgn(this.id)}, false);
          break;
        }
      }
    }
    if (UseFriends) {  
      for (var i = 0; i < Tgs1.length ; i++) {  
        if (Tgs1[i].id.indexOf('FriendsLink') == 0) {
          Tgs1[i].addEventListener("click", function() {AddDelFrnd(this.id)}, false);
          break;
        }
      }
    }
    if (UseNickSearch) {
      for (var i = 0; i < Tgs1.length ; i++) {  
        if (Tgs1[i].id.indexOf('ANickSrch') == 0) {
          Tgs1[i].addEventListener("click", function() {NickSrch(this.name)}, false);
          break;
        }
      }
    }
    if (UseHideLink) {
      for (var i = 0; i < Tgs1.length ; i++) {  
        if (Tgs1[i].id.indexOf('AHideLink') == 0) {
          Tgs1[i].addEventListener("click", function() {HidePost1(this.id)}, false);
          break;
        }
      }
    }
    if (isUseStatus) {
      for (var i = 0; i < Tgs1.length ; i++) {  
        if (Tgs1[i].id.indexOf('ACustStat') == 0) {
          Tgs1[i].addEventListener("click", function() {EditCustStat(this.name)}, false);
          break;
        }
      }
    }
    var TbTag1 = PrTag1.parentNode.parentNode;
    if (TbTag1 != null) {TbTag1.cellPadding = "5"}
    SetStauses();
  }
 
  function EditIgn() {
    var s = getCookie(IgnName);
    if (s == undefined) {s = ''}
    if (s==null) {s='';}
    s = prompt('Ignore editor. Put enimies here. Example: Freak, Troll', s.replace(/^,/g,""));
    if(s!=null){
      setCookie(IgnName,PrsUsersList(s),{expires:CookDate1});
      main(getCookie(IgnName), false);
    }
  };
 
  function EditFrnds() {
    var s = getCookie(FrndsName);
    if (s == undefined) {s = ''}
    if (s==null) {s='';}
    s = prompt('Ignore editor. Put friends here. Example: Me, Mine, Myself', s.replace(/^,/g,""));
    if(s!=null){
      setCookie(FrndsName,PrsUsersList(s),{expires:CookDate1});
      SetFriendsColor(getCookie(FrndsName));
    }
  };
 
  function EditCustStat(aName) {
    var s = getCookie(StatName +aName);
    if (s == undefined) {s = ''}
    if (s==null) {s='';}
    s = prompt('Status editor. Write your opinion about '  
     +"'"  +aName +"'" +' here.', s);
    if(s!=null){
      setCookie(StatName +aName,s,{expires:CookDate1});
      SetStauses();
    }
  };
 
  if (document.location.pathname.indexOf(SrchInPth) > -1) {
    var Td2T    = document.getElementsByTagName('td');
    for (var i = 0; i < Td2T.length ; i++) {  
      if ((Td2T[i].className=="dats") && (Td2T[i].align=="right")){  
        var s1 = '';
        if (UseTextSearch) {
          var s2 = getCookie(TextSrchName);
          if (s2==undefined) {s2=''} else {s2 = s2.replace(/'/g,'')}
          s1 = s1 +''
           +'<div Title="Example: ' +"'" +'Metallica, &quot;Iron Maiden&quot;'  
           +"'" +'. Empty line - reset">Text search '
           +'<input Type=text ID=TextSrEdit'
           +" value='" +s2 +"'"
           +' onkeydown="javascript:if(event.keyCode==13)'
           +'document.getElementById('  +"'TextSrBtn'" +').click();"'
           +'>'
           +'<button Type=button Name=TextSrBtn ID=TextSrBtn OnClick=javascript:TextSrch()>&gt;</button></div>'
           ;
        }
        if (UseNickSearch) {
          var s2 = getCookie(NickSrchName);
          if (s2==undefined) {s2=''} else {s2 = s2.replace(/"/g,'')}
          s1 = s1 +''
           +'<div Title="Example: ' +"'" +'MyNick, Friend, Etc'  
           +"'" +'. Empty line - reset">Nick search '
           +'<input Type=text ID=NickEdit '
           +' value="' +s2 +'"'
           +' onkeydown="javascript:if(event.keyCode==13)'
           +'document.getElementById('  +"'NickBtn'" +').click();"'
           +'>'
           +'<button Type=button Name=NickBtn ID=NickBtn OnClick=javascript:NickSrch()>&gt;</button></div>'
           ;
        }
        if (UseIgnore) {
          s1 = s1 +''
           +'&nbsp;<a ID=IgnEditor title="Ignore List editor" '
           +'href=javascript:EditIgn()>Ignore Editor</a> &#149; '
        }
        if (UseFriends) {
          s1 = s1 +''
           +'<a ID=IgnFriends title="Friends List editor" '
           +'href=javascript:EditFrnds()>Friends Editor</a> &#149; '
        }
        Td2T[i].innerHTML = s1 +Td2T[i].innerHTML;
        if (UseIgnore) {
          document.getElementById('IgnEditor').addEventListener("click",  
            function() {EditIgn()}, false);
        }
        if (UseNickSearch) {
          document.getElementById('NickBtn').addEventListener("click",  
            function() {NickSrch()}, false);
        }
        if (UseTextSearch) {
          document.getElementById('TextSrBtn').addEventListener("click",  
            function() {TextSrch()}, false);
        }
        if (UseFriends) {
          document.getElementById('IgnFriends').addEventListener("click",  
            function() {EditFrnds()}, false);
        }
        break;
      }
    }
  }
 
  function HidePost1(anID) {
    var aHideLink = document.getElementById(anID);
    if (aHideLink != null) {
      var aTr = aHideLink.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
      if (aTr != null) {HideText(aHideLink.name, aTr)}
    }
   SetStauses();
  }
 
  function NickSrch(aName) {
    if (aName == undefined) {
      var s = PrsUsersList(document.getElementById('NickEdit').value);
      setCookie(NickSrchName,s,{expires:CookDate1});      
    } else {
      if (IsTextInStr(aName, LastNickFind, Delim1)) {
        var s = RemoveTextFromStr(aName, LastNickFind, Delim1);
      } else {
        var s = PrsUsersList(LastNickFind +Delim1 +aName);
      }
    }
    LastNickFind = s;
    if (s==null) {
      main(getCookie(IgnName), false)
    } else {
      if (s=='') {  
        main(getCookie(IgnName), false);
      } else {
        main(s, false, true);
      }
    }
  };
 
  function TextSrch() {
    var s = document.getElementById('TextSrEdit').value;
    setCookie(TextSrchName,s,{expires:CookDate1});
    if ((s==null) || (s=='')) {
      main(getCookie(IgnName), false)
    } else {
      main('', false, false, '', s);
    }
  };
 
  function IsTextInStr(Name, List, Delimetr) {
    if (List==undefined) {return false} else {
      var s = List.split(Delimetr);
      var Find1 = false;
      for (var j = s.length -1; j >= 0; j--) {
        if (s[j] == Name) {
          Find1 = true;
          s.splice(j, 1);
          break;
        }
      }
      return Find1;
    }
  }
 
  function RemoveTextFromStr(Name, List, Delimetr)
  {
    var sl1 = List.split(Delimetr);
    var Find1 = false;
    for (var j = sl1.length -1; j >= 0; j--) {
      if (sl1[j] == Name) {
        sl1.splice(j, 1);
        Find1 = true;
      }
    }
    return Find1 ? sl1.join(Delimetr) : List;
  }
 
  function AddDelIgn(IgnTagName){
    var aTag   = document.getElementById(IgnTagName);
    var sName1 = aTag.name;
    var s1 = getCookie(IgnName);
    if (s1 == undefined) {s1 = ''}
    if (IsTextInStr(sName1, s1, Delim1)) {
      if (confirm('(-) Remove "' +sName1 + '" from Ignore?')) {
        var s2 = RemoveTextFromStr(sName1, s1, Delim1);
        if (s2 != s1) {
          setCookie(IgnName, s2,{expires:CookDate1});
          main(s2, false);
        }
      }
    } else {
      if (confirm('(+) Add "' +sName1 + '" to Ignore?')) {
        s1 = s1 +Delim1 +sName1;
        setCookie(IgnName, s1,{expires:CookDate1});
        main(s1, false);
      }
    }
  }
 
  function AddDelFrnd(FrndTagName){
    var aTag   = document.getElementById(FrndTagName);
    var sName1 = aTag.name;
    var s1     = getCookie(FrndsName);
    if (s1 == undefined) {s1 = ''}
    if (IsTextInStr(sName1, s1, Delim1)) {
      if (confirm('(-) Remove "' +sName1 + '" from Friends?')) {
        var s2 = RemoveTextFromStr(sName1, s1, Delim1);
        if (s2 != s1) {
          setCookie(FrndsName, s2,{expires:CookDate1});
          if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
        }
      }
    } else {
      if (confirm('(+) Add "' +sName1 + '" to Friends?')) {
        s1 = s1 +Delim1 +sName1;
        setCookie(FrndsName, s1,{expires:CookDate1});
        if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
      }
    }
  }
 
  if ((isUseAddPages) && (document.location.pathname.indexOf(SrchInPth) > -1)) {
    function AddPageLinks1(aTag) {
      if ((aTag.className = 'small')  
         && (aTag.colSpan == 2)
         && (aTag.align == 'left')
        ) {
        if (aTag.getElementsByTagName('div').length >0) return false;
        if (aTag.getElementsByTagName('table').length >0) return false;
        if (aTag.getElementsByTagName('form').length >0) return false;
        if (aTag.getElementsByTagName('input').length >0) return false;
        var s1 = document.location.href;
        s = ''
         +' <a title="Show all pages" href='  
         +SetUrlTxt(s1, 'all').replace(/glp&/, '') +'>All</a> '  
         +' <a title="Show all pages from current to final" href='  
         +SetUrlTxt(s1, 'limit=1000').replace(/all&/,'').replace(/glp&/,'')  
         +'>Nexts</a> '
         +' <a title="Link to last page ALWAYS. Use it for bookmark" href='  
         +SetUrlTxt(s1, 'glp').replace(/all&/,'') +'>Last</a> '
        ;
        aTag.innerHTML = aTag.innerHTML +s;
        return true;
      } else {return false}
    }
 
    var TdTg1 = document.getElementsByTagName('td');
    for (var i = 0; i<TdTg1.length; i++) {
      if (AddPageLinks1(TdTg1[i])) break}
    for (var i = TdTg1.length -1; i>=0; i--) {
      if (AddPageLinks1(TdTg1[i])) break}
  }
 
  function getCookie(name) {
    var matches = document.cookie.match(new RegExp(
      "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
    ))
    return matches ? decodeURIComponent(matches[1]) : undefined  
  }
  function setCookie(name, value, props) {
    props = props || {}
    var exp = props.expires
    if (typeof exp == "number" && exp) {
        var d = new Date()
        d.setTime(d.getTime() + exp*1000)
        exp = props.expires = d
    }
    if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }
 
    value = encodeURIComponent(value)
    var updatedCookie = name + "=" + value
    for(var propName in props){
        updatedCookie += "; " + propName
        var propValue = props[propName]
        if(propValue !== true){ updatedCookie += "=" + propValue }
    }
    document.cookie = updatedCookie
  }
  function deleteCookie(name) {setCookie(name, null, { expires: -1 })}
 
  String.prototype.get = function(p){
    return (match = this.match(new RegExp("[?|&]?" + p + "=([^&]*)"))) ? match[1] : false;}
 
  function insertAfter(parent, node, referenceNode) {
    parent.insertBefore(node, referenceNode.nextSibling); }
 
  function splitSrch(s){
    a = [];
    s.replace(/"([^"]*)"|[\S]+/g, function(w, p) {a.push(p||w)});
    return a;
  }
 
  function PrsUsersList(aUserNicks) {
    var s = aUserNicks.replace(/,+/g,",");
    s = s.replace(/\s+/g," ");
    s = s.replace(/[, ]$/g,"").replace(/^,/g,"");
    s = s.replace(/,\s/g,",");
    return s;
  }
 
  function SetUrlTxt(u, s) {
    return ((u.indexOf('&' +s) < 0) && (u.indexOf('?' +s) < 0)) ?
      u.replace(/[?](.*)/g, function(a, b) {return '?' +s +'&'+b}) : u;}
 
  var isPAdding = false;  
  var CurFLoad = -1;
 
  var CurForumNbm = window.location.search.get('forum');
 
  if (IsAddForums) {
    if ( (document.location.pathname.indexOf(SrchForum) > -1)  
    ) {
      var TrTag3 = document.getElementsByClassName('tit')
      DTag1    = document.createElement("div");
      DTag1.id = 'Div100';
      var LoadList2 = getCookie(FrmsName +CurForumNbm);
      if (LoadList2 == undefined) {LoadList2 = ''}
      var FrmLoadList  = PrsUsersList(LoadList2).split(Delim1);
      DTag1.innerHTML = ''
        +'<center>'
        +'<div id="vote_status1"><br></div>'
        +'Additional forums: <font id=FForums>' +LoadList2 +'</font>'
        +' &nbsp; <input id=btnv1 value="Edit"'
        +' onclick="EdFrmsLst()" type="button" />'
        +'&nbsp; <font id="vote_status2">Place for server' +"'" +'s answer</font>'
        +'</center>';
      insertAfter(TrTag3[TrTag3.length -1].parentNode.parentNode.parentNode.parentNode, DTag1, TrTag3[TrTag3.length -1].parentNode.parentNode.parentNode);
      document.getElementById('btnv1').addEventListener("click",  
       function() {EdFrmsLst()}, false);
    }
  }
 
  function EdFrmsLst() {
    var s = getCookie(FrmsName +CurForumNbm);
    if (s == undefined) {s = ''}
    if (s==null) {s='';}
    s = prompt('Additional loader editor. Put forum number' +"-" +'s here Example: 13, 72, 75', s.replace(/^,/g,""));
    if(s!=null){
      FrmLoadListS = PrsUsersList(s);
      setCookie(FrmsName +CurForumNbm, FrmLoadListS,{expires:CookDate1});
      var FrmLoadList  = PrsUsersList(FrmLoadListS).split(Delim1);
      document.getElementById('FForums').innerHTML = s;
      var FrmLoadedList = PrsUsersList(FrmLoaded).split(Delim1);
      for (var j = 0; j < FrmLoadedList.length; j++) {
        if (FrmLoadedList[j] == '') continue;
        var Find1 = false;
        for (var i = 0; i < FrmLoadList.length; i++) {
          if (FrmLoadedList[j] == FrmLoadList[i]) {
            Find1 = true;
            break;
          }
        }
        var FrTag1 = document.getElementById(AddForumS +FrmLoadedList[j]);
        if (FrTag1 == null) continue;
        if (Find1) {
          FrTag1.style.display = "inline";
        } else {
          FrTag1.style.display = "none";
        }
      }
      AddPage1();
    }
  };
 
  function AddPage1() {
    if (CurFLoad != -1) {return false}
    var statusElem1 = document.getElementById('vote_status1')  
    var statusElem2 = document.getElementById('vote_status2')  
    Find1 = 0;
    s = getCookie(FrmsName +CurForumNbm);
    if (s == undefined) {s = ''}
    var FrmLoadList  = PrsUsersList(s).split(Delim1);
    for (var j = 0; j < FrmLoadList.length; j++) {
      if (FrmLoadList[j] == '') continue;
      var tmp3 = document.getElementById(AddForumS +FrmLoadList[j]);
      if (tmp3 == null) {
        CurFLoad = FrmLoadList[j];
        Find1 = 1;
        break;
      }      
    }
    if (Find1 == 1) {
      var req = getXmlHttp()  
      req.onreadystatechange = function() {  
        if (req.readyState == 4) {  
          statusElem2.innerHTML = req.statusText
            +' Forum:' +CurFLoad;
          if(req.status == 200) {  
            if (document.getElementById(AddForumS +CurFLoad) != null) {
              CurFLoad = -1;
              return false;
            }
            var temp = document.createElement('div');
            temp.innerHTML = req.responseText;
            var TdTags1 = temp.getElementsByClassName("tit");
            var NodeNew1 = document.createElement('div');
            NodeNew1.id = AddForumS +CurFLoad;
            FrmLoaded = FrmLoaded +',' +CurFLoad;
            if (TdTags1.length >= 2) {
              var TblTag1 = TdTags1[0].parentNode.parentNode.parentNode;
              var TblTag2 = TdTags1[1].parentNode.parentNode.parentNode;
              var TblTag3 = TdTags1[TdTags1.length-1].parentNode.parentNode.parentNode;
              s1 = '' +'<br>'
               +TblText1s +TblTag1.innerHTML +TblText1e
               +TblText1s +TblTag2.innerHTML +TblText1e
               +TblText1s +TblTag3.innerHTML +TblText1e ;
              NodeNew1.innerHTML = s1;
            } else {
              NodeNew1.innerHTML = '' +'<br>' +
                'Error! Forum ' +CurFLoad +' is empty';
            }
            statusElem1.parentNode.insertBefore(NodeNew1, statusElem1);
            var tmp3 = document.getElementById(AddForumS +CurFLoad);
            CurFLoad = -1;
            AddPage1();
          } else {
            var NodeNew1 = document.createElement('div');
            NodeNew1.id  = AddForumS +CurFLoad;
 
            NodeNew1.innerHTML = '' +'<br>' +
              'Error! No response from Forum ' +CurFLoad +'.';
            statusElem1.parentNode.insertBefore(NodeNew1, statusElem1);
            var tmp3 = document.getElementById(AddForumS +CurFLoad);
            CurFLoad = -1;
            AddPage1();
          }
        }
      }      
      req.open('GET', '/forum.cgi?forum=' +CurFLoad, true);
      req.send(null);
      statusElem2.innerHTML = 'Loading'  
       +' forum:' +CurFLoad;
    } else {
      statusElem2.innerHTML = 'All pages loaded.';
    }
  }
 
  function getXmlHttp(){
    var xmlhttp;
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
      xmlhttp = new XMLHttpRequest();
      xmlhttp.overrideMimeType('text/html');
    }
    return xmlhttp;
  }
 
  if (IsAddForums) {AddPage1()};
})();
 

Всего записей: 970 | Зарегистр. 29-11-2004 | Отправлено: 15:09 31-01-2010 | Исправлено: Ke, 01:44 03-02-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » Ru-Board Helper. Игнор-лист и другие полезные фичи


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru