This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

sk hunter

By: a guest on Jan 14th, 2013  |  syntax: JavaScript  |  size: 19.46 KB  |  views: 24  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. //Hunter v. 1.4
  2. _skhunterVersion=14;
  3.  
  4. var xmlhttp;
  5. var targetDoc;
  6. var UI;
  7. var data;
  8.  
  9.  
  10. //there is no tbody ?? rightnow
  11. function getSectorTable(documentBody,trIndex,tdIndex,TextFlagRegex){
  12.         var tables=documentBody.getElementsByTagName("table");
  13.         var tryTable = null;
  14.         var sectorTableNotFound = true;
  15.         var j = 0;
  16.         while(j<tables.length && sectorTableNotFound) {
  17.            if(tables[j].getElementsByTagName("tbody")[0]){
  18.              tryTable = tables[j].getElementsByTagName("tbody")[0];
  19.            } else {
  20.              tryTable = tables[j];
  21.            }
  22.            var tryRow = tryTable.getElementsByTagName("tr")[trIndex];
  23.            if(tryRow){
  24.              var tryTD = tryRow.getElementsByTagName("td")[tdIndex];
  25.              if(tryTD && tryTD.innerHTML.match(TextFlagRegex)){
  26.               sectorTableNotFound = false;
  27.              }
  28.            }
  29.            j++;
  30.         }
  31.         return tryTable;
  32. }
  33.  
  34. function getSectorTable_(documentBody,trIndex,tdIndex,TextFlagRegex){
  35.         var tables=documentBody.getElementsByTagName("table");
  36.  
  37.         var tryTable = null;
  38.         var sectorTableNotFound = true;
  39.         var j = 0;
  40.         while(j<tables.length && sectorTableNotFound) {
  41.                         if(tables[j].getElementsByTagName("tbody")[0]){
  42.                                 tryTable = tables[j].getElementsByTagName("tbody")[0];
  43.                         } else {
  44.                                 tryTable = tables[j];
  45.                         }
  46.                         var tryRow = tryTable.getElementsByTagName("tr")[trIndex];
  47.                         if(tryRow){
  48.                                 var tryTD = tryRow.getElementsByTagName("td")[tdIndex];
  49.                                 if(tryTD && tryTD.innerHTML.match(TextFlagRegex)){
  50.                                         sectorTableNotFound = false;
  51.                                 }
  52.                         }
  53.                         j++;
  54.         }
  55.                 if (sectorTableNotFound == true) return null;
  56.         return tryTable;
  57. }
  58.  
  59.  
  60.  function makeReport(event){
  61.        
  62.         //var data = self.data;
  63.         var timeIndex = UI.value;
  64.        
  65.         eval(data);
  66.         var ITarget = event.originalTarget.parentNode.parentNode.parentNode.parentNode;
  67.  
  68.         //documentB=event.originalTarget.getElementsByTagName("body")[0];
  69.        
  70.       //var ITarget = getSectorTable_(documentB,1,0,/^Kingdom Name/);
  71.          
  72.         var slotsTarget=ITarget.getElementsByTagName("tr");    
  73.         //alert(slotsTarget[3].innerHTML);
  74.         for(i=0;i<slotsNR;i++){
  75.                 var tds=slotsTarget[i+2].getElementsByTagName("td");
  76.         if ((0 <= timeIndex) && (timeIndex < times.length)){
  77.  
  78.                 Land = ""
  79.                 if (landchange[timeIndex][i] != 0){
  80.                         if ( landchange[timeIndex][i] > 0) {
  81.                                 Land += " +"+landchange[timeIndex][i];
  82.                                 tds[3].style.color="#22FF22";
  83.                         } else {
  84.                                 Land += landchange[timeIndex][i];
  85.                                 tds[3].style.color="#FF2222";
  86.                         }
  87.                         tds[3].lastChild.nodeValue = Land;
  88.                 } else {
  89.                         tds[3].lastChild.nodeValue = "";
  90.                 }
  91.                 NW = ""
  92.                 if (nwchange[timeIndex][i] != 0){
  93.                         if ( nwchange[timeIndex][i] > 0) {
  94.                                 NW += " +"+nwchange[timeIndex][i];
  95.                                 tds[5].style.color="#22FF22";
  96.                         } else {
  97.                                 NW += nwchange[timeIndex][i];
  98.                                 tds[5].style.color="#FF2222";
  99.                         }
  100.                         tds[5].lastChild.nodeValue = NW;
  101.                 } else {
  102.                         tds[5].lastChild.nodeValue = "";
  103.                 }
  104.  
  105.                 Honour = ""
  106.                 if (hchange[timeIndex][i] != 0){
  107.                         if ( hchange[timeIndex][i] > 0) {
  108.                                 Honour += " +"+hchange[timeIndex][i];
  109.                                 tds[7].style.color="#22FF22";
  110.                         } else {
  111.                                 Honour += hchange[timeIndex][i];
  112.                                 tds[7].style.color="#FF2222";
  113.                         }
  114.                         tds[7].lastChild.nodeValue = Honour;
  115.                 } else {
  116.                         tds[7].lastChild.nodeValue = "";
  117.                 }
  118.  
  119.         } else {
  120.                 tds[3].lastChild.nodeValue = "";
  121.                 tds[5].lastChild.nodeValue = "";
  122.                 tds[7].lastChild.nodeValue = "";
  123.         }
  124.         }
  125. //alert(data);
  126.  
  127. }
  128.  
  129. function evalData(event) {
  130.  
  131. if(xmlhttp.readyState==4) {
  132.  
  133.  
  134.         if(xmlhttp.getResponseHeader("Content-Type") != "text/plain") {
  135.                 targetDoc.getElementById("serverMessageTD").lastChild.nodeValue="SK Hunter: No response from server.";
  136.                 times=null;
  137.                 //alert(xmlhttp.responseText);
  138.                 return;
  139.         }
  140.        
  141.         if(xmlhttp.responseText.match(/\/\*MAINT\*\//)) {
  142.                 targetDoc.getElementById("serverMessageTD").lastChild.nodeValue="SK Hunter Server Response: server is in maintainance.";
  143.                 times=null;
  144.                 return;
  145.         }      
  146.  
  147.         if(xmlhttp.responseText.match(/\/\*VERSION\*\//)) {
  148.                 targetDoc.getElementById("serverMessageTD").lastChild.nodeValue="SK Hunter Server Response: Please upgrade your Hunter extension.";
  149.                 times=null;
  150.                 return;
  151.         }
  152.  
  153.         if(xmlhttp.responseText.match(/\/\*ERROR\*\//)) {
  154.                 targetDoc.getElementById("serverMessageTD").lastChild.nodeValue="SK Hunter Server Response:" + xmlhttp.responseText;
  155.                 throw "SK HUNTER server response:"+xmlhttp.responseText;
  156.                 times=null;
  157.                 return;
  158.         }
  159.  
  160.         if(xmlhttp.responseText.match(/\/\*DROP\*\//)) {
  161.                 targetDoc.getElementById("serverMessageTD").lastChild.nodeValue="SK Hunter Server Response: No data for this sector.";
  162.                 times=null;
  163.                 return;
  164.         }
  165.  
  166.         if(!xmlhttp.responseText.match(/\/\*OK\*\//)) {
  167.                 targetDoc.getElementById("serverMessageTD").lastChild.nodeValue="SK Hunter Server Response: Your request failed.";
  168.                 times=null;
  169.                 return;
  170.         }
  171.         var firstChar = xmlhttp.responseText.indexOf("/*OK*/") + 6;
  172.         var lastChar = xmlhttp.responseText.indexOf("/*EOT*/");
  173.         var msgEv = xmlhttp.responseText.substring(firstChar, lastChar);
  174.         //alert(msgEv);
  175.        
  176.         try {
  177.           eval(msgEv);
  178.         } catch(x) {
  179.           targetDoc.getElementById("serverMessageTD").lastChild.nodeValue="SK HUNTER server response does not make sense. See Javascript Error Console.";
  180.           throw "SK HUNTER server response is jibberish. Forced ads might have been injected or your PHP script gets filtered by host.";
  181.                  
  182.           return;
  183.         }
  184. //alert(landchange[1][1]);
  185.         //display server message
  186.         if(srvmsg){
  187.                 var tdM = targetDoc.getElementById("serverMessageTD");
  188.                 if(srvmsg_link){
  189.                    var Aelem = targetDoc.createElement("a");
  190.                    Aelem.setAttribute("href",srvmsg_link);
  191.                    if(srvmsg_color)Aelem.style.color=srvmsg_color;
  192.                    var AelemT = targetDoc.createTextNode(srvmsg);
  193.  
  194.                    Aelem.appendChild(AelemT);
  195.                    tdM.replaceChild(Aelem,tdM.lastChild);
  196.                    
  197.                 } else {
  198.                   if(srvmsg_color)tdM.style.color=srvmsg_color;
  199.                   tdM.lastChild.nodeValue=srvmsg;
  200.                 }
  201.         }
  202.  
  203.  
  204.         //add times to selection element
  205.         //UI=targetDoc.getElementById("timeline");
  206.         order=Components.classes["@mozilla.org/preferences-service;1"].
  207.                 getService(Components.interfaces.nsIPrefService).
  208.                 getBranch("extensions.skhunter.").getBoolPref('order');
  209.         if(order){
  210.         //ascending
  211.         for (i=times.length-1;i>=0;i--){
  212.                 s = targetDoc.createElement("option");
  213.                 s.setAttribute("value",i);
  214.                
  215.                 t = targetDoc.createTextNode(times[i]);
  216.                 s.appendChild(t);
  217.                 UI.appendChild(s);
  218.         }
  219.         } else {
  220.         //descending
  221.         for (i=0;i<times.length;i++){
  222.                 s = targetDoc.createElement("option");
  223.                 s.setAttribute("value",i);
  224.                 t = targetDoc.createTextNode(times[i]);
  225.                 s.appendChild(t);
  226.                 UI.appendChild(s);
  227.         }
  228.         }
  229.  
  230.         var s = targetDoc.createElement("option");
  231.         s.setAttribute("value",times.length);
  232.         var t = targetDoc.createTextNode("none");
  233.        
  234.         s.appendChild(t);
  235.         UI.appendChild(s);
  236.        
  237.         //add a reference to the target documet to use by the event handler
  238.  
  239.         //add a reference to the recieved data to use by the event handler
  240.         //UI.data = xmlhttp.responseText
  241.        
  242.        
  243.         //display data; pass the object itself for reference;
  244.         //UI.onchange(UI);
  245.         data = msgEv;
  246.         //UI.addEventListener("change", makeReport, false);
  247.         // works!! document.addEventListener("change", function(e) { makeReport(e);}, true);
  248.         UI.addEventListener("change", function(e) { makeReport(e);}, true);
  249.         //window.addEventListener("change", function(e) { makeReport(e);}, false);
  250.         //UI.addEventListener("change", function(e) { makeReport(e);}, false);
  251.         //makeReport(event);
  252.        
  253.         // does still work !! alert(targetDoc.getElementsByTagName("body")[0].innerHTML);
  254.         var event = document.createEvent("HTMLEvents");
  255.         event.initEvent("change", true, false);
  256.         UI.dispatchEvent(event);
  257.        
  258.  
  259.        
  260.         //
  261. }      
  262. }
  263.  
  264.  
  265. function buildPostData(server){
  266. try{
  267.  
  268.         var documentB=targetDoc.getElementsByTagName("body")[0];
  269.        
  270.  
  271.         var postData = "";
  272.         var ITarget = null;
  273.        
  274.         var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.");
  275.        
  276.         var aPWD;// = encodeURIComponent(prefs.getCharPref('aPWD'));
  277.         var kdnm;// = encodeURIComponent(prefs.getCharPref('kdnm'));
  278.         var email;// = encodeURIComponent(prefs.getCharPref('email'));
  279.         var kdx;// = encodeURIComponent(prefs.getIntPref('kdx'));
  280.         var kdy;// = encodeURIComponent(prefs.getIntPref('kdy'));
  281.         //
  282.         if (server == 1){
  283.                 aPWD = encodeURIComponent(prefs.getCharPref('aPWD'));
  284.                 kdnm = encodeURIComponent(prefs.getCharPref('kdnm'));
  285.                 email = encodeURIComponent(prefs.getCharPref('email'));
  286.                 kdx = encodeURIComponent(prefs.getIntPref('kdx'));
  287.                 kdy = encodeURIComponent(prefs.getIntPref('kdy'));
  288.         } else {
  289.                 aPWD = encodeURIComponent(prefs.getCharPref('aPWD2'));
  290.                 kdnm = encodeURIComponent(prefs.getCharPref('kdnm2'));
  291.                 email = encodeURIComponent(prefs.getCharPref('email2'));
  292.                 kdx = encodeURIComponent(prefs.getIntPref('kdx2'));
  293.                 kdy = encodeURIComponent(prefs.getIntPref('kdy2'));    
  294.         }
  295.         //
  296.         var tcap = encodeURIComponent(prefs.getIntPref('tcap'));
  297.        
  298.        
  299.         postData = "l="+encodeURIComponent(targetDoc.location.href);
  300.         postData += "&aPWD=" + aPWD;
  301.         postData += "&hver=" + _skhunterVersion;
  302.         postData += "&kdnm=" + kdnm;
  303.         postData += "&email=" + email;
  304.         postData += "&kdx=" + kdx;
  305.         postData += "&kdy=" + kdy;
  306.         postData += "&tcap=" + tcap;
  307.        
  308. }
  309. catch(err)
  310. {
  311.   txt = "SK HUNTER::buildPostData() failed: " + err.description;
  312.   throw txt;
  313. }      
  314.  
  315.  
  316.  
  317.         SKTime = function(HTMLObj){
  318.                 try{
  319.                         var DateString = HTMLObj.getElementsByTagName("tr")[0].getElementsByTagName("td")[2].innerHTML
  320.                         DateString=DateString.replace(/,/g, "");
  321.                         var Date=DateString.split(" ");
  322.                         this.month=encodeURIComponent(Date[0]);
  323.                         this.day= new Number(Date[1]);
  324.                         var Temp2=Date[2].split(":");
  325.                         this.hour=new Number(Temp2[0]);
  326.                         this.minute=new Number(Temp2[1]);
  327.                         this.sufix=encodeURIComponent(Date[3]);
  328.                 }
  329.                 catch(err)
  330.                 {
  331.                         txt = "SK HUNTER::buildPostData::SKTime() failed: " + err.description;
  332.                         throw txt;
  333.                 }
  334.        
  335.         }
  336.        
  337.         SKTime_ = function(HTMLObj){
  338.                 var DateString = HTMLObj.innerHTML;
  339.                 DateString = DateString.replace(/,/g, "");
  340.                 var start = DateString.indexOf("(");
  341.                 var end = DateString.indexOf(")");
  342.                 DateString = DateString.slice(start+1,end);
  343.                 var Date=DateString.split(" ");
  344.                 this.month=encodeURIComponent(Date[0]);
  345.                 this.day= new Number(Date[1]);
  346.                 var Temp2=Date[2].split(":");
  347.                 this.hour=new Number(Temp2[0]);
  348.                 this.minute=new Number(Temp2[1]);
  349.                 this.sufix="";
  350.         }
  351.        
  352.         var date;
  353.        
  354.         var ITarget = targetDoc.getElementById("time");
  355.         // alert(ITarget.innerHTML);
  356.         if(ITarget){
  357.                         date = new SKTime_(ITarget);
  358.         } else {
  359.                 ITarget = getSectorTable(documentB,1,0,/^Money:/);     
  360.                 date = new SKTime(ITarget);
  361.         }
  362.                
  363.         postData += "&m="+date.month+"&d="+date.day+"&hour="+date.hour+"&min="+date.minute+"&s="+date.sufix;
  364.  
  365.         SKgalaxy = function(HTMLObj){
  366.                 try{   
  367.                         var Coords=HTMLObj.getElementsByTagName("tr")[0].getElementsByTagName("td")[1].getElementsByTagName("input");
  368.                         this.X=encodeURIComponent(Coords[0].getAttribute("value"));
  369.                         this.Y=encodeURIComponent(Coords[1].getAttribute("value"));
  370.                 }
  371.                 catch(err)
  372.                 {
  373.                         txt = "SK HUNTER::buildPostData::SKgalaxy() failed: " + err.description;
  374.                         throw txt;
  375.                 }              
  376.         }
  377.        
  378.         ITarget = getSectorTable(documentB,0,1,/Galaxy:/);
  379.         var galaxy = new SKgalaxy(ITarget);
  380.         postData += "&x=" + galaxy.X + "&y="+ galaxy.Y;
  381.  
  382.         getAlliance = function(HTMLObj){
  383.                 try{
  384.                         var temp = HTMLObj.getElementsByTagName("tr")[0].getElementsByTagName("td")[2].getElementsByTagName("a");
  385.                         if(temp[0]) {
  386.                                 return encodeURIComponent(temp[0].innerHTML);
  387.                         } else {
  388.                                 return "none";
  389.                         }
  390.                 }
  391.                 catch(err)
  392.                 {
  393.                         txt = "SK HUNTER::buildPostData::getAlliance() failed: " + err.description;
  394.                         throw txt;
  395.                 }              
  396.                
  397.         }
  398.  
  399. try{   
  400.    // ITarget = getSectorTable(documentB,0,0,/^The Sector Of:/);
  401.         // var alliance = getAlliance(ITarget);
  402.         // postData += "&ali=" + alliance;
  403.                 postData += "&ali=" + "no";
  404.  
  405.         ITarget = getSectorTable(documentB,0,0,/^Kingdom Name/);
  406.         var slots=ITarget.getElementsByTagName("tr");  
  407.         for (i=1;i<slots.length;i++){
  408.                 var status= slots[i].getAttribute("class");
  409.                 var tds=slots[i].getElementsByTagName("td");
  410.                 var a=tds[0].getElementsByTagName("a")[0];
  411.                 if(a) {
  412.                         var name=a.innerHTML;
  413.                         name=name.slice(0,name.indexOf("(")-1);
  414.                 } else {
  415.                         name="";
  416.                 }
  417.  
  418.                 //var type=tds[1].innerHTML;
  419.                 type="";
  420.  
  421.                 a=tds[2].getElementsByTagName("a")[0];
  422.                 if(a) {
  423.                         var land=a.innerHTML.replace(/,/g, "");
  424.                 } else {
  425.                         land=tds[2].innerHTML.replace(/,/g, "");
  426.                 }
  427.                
  428.                 a=tds[3].getElementsByTagName("a")[0];
  429.                 if(a) {
  430.                         var nw=a.innerHTML.replace(/,/g, "");
  431.                 } else {
  432.                         nw=tds[3].innerHTML.replace(/,/g, "");
  433.                 }
  434.  
  435.                 a=tds[4].getElementsByTagName("a")[0];
  436.                 if(a) {
  437.                         var h=a.innerHTML.replace(/,/g, "");
  438.                 } else {
  439.                         h=tds[4].innerHTML.replace(/,/g, "");
  440.                 }
  441.                 postData+="&name["+i+"]="+name;
  442.                 postData+="&sts["+i+"]="+status;
  443.                 postData+="&type["+i+"]="+type;
  444.                 postData+="&land["+i+"]="+land;
  445.                 postData+="&nw["+i+"]="+nw;
  446.                 postData+="&h["+i+"]="+h;
  447.         }
  448. }
  449. catch(err)
  450. {
  451.   txt = "Error description: " + err.description + "\n";
  452.   throw txt;
  453. }
  454.         //alert(postData);
  455.         return postData;
  456. }
  457.  
  458.  
  459.  
  460. var skhunter = {
  461.   onLoad: function() {
  462.     // initialization code
  463.     this.initialized = true;
  464.     this.strings = document.getElementById("skhunter-strings");
  465.     document.getElementById("contentAreaContextMenu")
  466.             .addEventListener("popupshowing", function(e) { this.showContextMenu(e); }, false);
  467.  
  468.         var appcontent = document.getElementById("appcontent");  
  469.     if(appcontent && !appcontent.hasHunter) {
  470.       appcontent.addEventListener("DOMContentLoaded", this.onPageLoad, true);
  471.       appcontent.hasHunter = true;
  472.     }                  
  473.   },
  474.  
  475.  
  476. //
  477.  
  478.        
  479.  
  480.   onPageLoad: function(aEvent) {
  481.     targetDoc = aEvent.originalTarget;
  482.     if(targetDoc.location.href.match(/game.php?page=viewsector/) == null) return;
  483.         if(targetDoc.location.href.match(/game.php?page=viewsector&scroll=yoursector/)) return;
  484.        
  485.         var sk1 = 0;
  486.  
  487.        
  488.         var sss = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.").getCharPref('sSHORT');   
  489.         var sss2 = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.").getCharPref('sSHORT2'); 
  490.        
  491.  
  492.         var smatch_ = new RegExp (sss+"\gearsofconquest\.com\u1");     
  493. //      var smatch2 = new RegExp (sss2+"\.starkingdoms\.com");         
  494.        
  495.     if(targetDoc.location.href.match(smatch_) != null) {
  496.                 sk1 = 1;
  497.         } else {
  498.                 if(targetDoc.location.href.match(smatch2) != null){
  499.                         sk1 = 2;
  500.                 } else {
  501.                         return;
  502.                 }
  503.         }
  504.        
  505.  
  506.        
  507.         var HunterEnabled = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.").getBoolPref('on');
  508.         var HunterEnabled2 = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.").getBoolPref('on2');
  509.  
  510.         if(sk1 == 1)
  511.         {
  512.                 if(!HunterEnabled) return;
  513.         }
  514.         if(sk1 == 2)
  515.         {
  516.                 if(!HunterEnabled2) return;
  517.         }
  518.  
  519.  
  520.         xmlhttp = new XMLHttpRequest();
  521.                 //-->? xmlhttp.targetDoc = targetDoc;
  522.     xmlhttp.onreadystatechange=evalData;
  523.        
  524.         var sURL;
  525.  
  526.         if (sk1 == 1){
  527.         sURL = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.").getCharPref('sURL');
  528.         } else {
  529.         sURL = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.").getCharPref('sURL2');
  530.         }
  531.        
  532.         //if(!targetDoc.location.href.match(/s1/)) return;
  533.     xmlhttp.open("POST",sURL,true);
  534.     xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
  535.         var postData = buildPostData(sk1);
  536.     xmlhttp.send(postData);
  537.    
  538.  
  539.         // make User Interface
  540.         documentBody=targetDoc.getElementsByTagName("body")[0];
  541.         //var ITarget=documentBody.getElementsByTagName("table")[6].getElementsByTagName("tbody")[0];
  542.         var ITarget = getSectorTable(documentBody,0,0,/^Kingdom Name/);
  543.         //create selection element
  544.         UI=targetDoc.createElement("select");
  545.         UI.setAttribute("id","timeline");
  546.        
  547.         //create first option element
  548.         //s = targetDoc.createElement("option");
  549.         //s.setAttribute("value",0);
  550.         //t = targetDoc.createTextNode(" ");
  551.         //s.appendChild(t);
  552.         //UI.appendChild(s);
  553.  
  554.         //text surrounding selection tag
  555.         var t = targetDoc.createTextNode("View ");
  556.         var t2 = targetDoc.createTextNode(" ago");
  557.  
  558.         //create selection <td>
  559.         var td=targetDoc.createElement("td");
  560.         td.appendChild(t);
  561.         td.appendChild(UI);
  562.         td.appendChild(t2);
  563.  
  564.         //create hunter table row
  565.         tr=targetDoc.createElement("tr");
  566.         tr.appendChild(td);
  567.  
  568.         //tds for server message
  569.         var tM = targetDoc.createTextNode("loading data, please wait...");
  570.         var tdM=targetDoc.createElement("td");
  571.         //set server message id for later reference
  572.         tdM.setAttribute("id","serverMessageTD");
  573.         tdM.setAttribute("colspan","8");
  574.         tdM.appendChild(tM);
  575.         tr.appendChild(tdM);
  576.  
  577.         //ITarget is the the table body, it's chiles are the table rows displaying kindom lines
  578.         var ref=ITarget.getElementsByTagName("tr");
  579.         ITarget.insertBefore(tr,ref.item(0));
  580.  
  581.         ref=ITarget.getElementsByTagName("tr");
  582.         var tdref=ref[1].getElementsByTagName("td");   
  583.         //add tds "change"
  584.         td=targetDoc.createElement("td");
  585.         t = targetDoc.createTextNode("change");
  586.         td.appendChild(t);
  587.         ref[1].insertBefore(td,tdref.item(3));
  588.         td2=td.cloneNode(true);
  589.         ref[1].insertBefore(td2,tdref.item(5));
  590.         td3=td.cloneNode(true);
  591.         ref[1].insertBefore(td3,tdref.item(7));
  592.  
  593.         //create tds for change values;
  594.         for(i=1;i<21;i++){
  595.                 tdref=ref[i+1].getElementsByTagName("td");
  596.                 td=targetDoc.createElement("td");
  597.                 t = targetDoc.createTextNode("--");
  598.                 td.appendChild(t);
  599.                 ref[i+1].insertBefore(td,tdref.item(3));
  600.                 td2=td.cloneNode(true);
  601.                 ref[i+1].insertBefore(td2,tdref.item(5));
  602.                 td3=td.cloneNode(true);
  603.                 ref[i+1].insertBefore(td3,tdref.item(7));
  604.         }
  605.        
  606.        
  607. //
  608. //
  609.    
  610.   },  
  611.  
  612.   showContextMenu: function(event) {
  613.     // show or hide the menuitem based on what the context menu is on
  614.     // see http://kb.mozillazine.org/Adding_items_to_menus
  615.     document.getElementById("context-skhunter").hidden = gContextMenu.onImage;
  616.   },
  617.  
  618.   onMenuItemCommand: function(e) {
  619.     var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
  620.                                   .getService(Components.interfaces.nsIPromptService);
  621.         var HunterEnabled = Components.classes["@mozilla.org/preferences-service;1"].
  622.                                                                         getService(Components.interfaces.nsIPrefService).
  623.                                                                         getBranch("extensions.skhunter.").getBoolPref('on');   
  624.         var seURL = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.skhunter.").getCharPref('sURL');                                                                   
  625.         var strH = this.strings.getString("helloMessage");
  626.         if(HunterEnabled){
  627.                 promptService.alert(window, this.strings.getString("helloMessageTitle"),
  628.                                 strH + " " + seURL );
  629.         } else {
  630.                 promptService.alert(window, this.strings.getString("helloMessageTitle"),
  631.                                 this.strings.getString("sorryMessage"));       
  632.         }
  633.   },
  634.  
  635. };
  636. window.addEventListener("load", function(e) { skhunter.onLoad(e); }, false);
  637.  
  638. //window.addEventListener("onchange", function(e) { skhunter.makeReport(e);}, false);
  639. // works!! window.addEventListener("change", function(e) { alert('fuck you'); }, false);
clone this paste RAW Paste Data