Advertisement
AndrewHaxalot

arsenal.js

Jan 18th, 2014
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //DO NOT REMOVE THE COPYRIGHT NOTICE BELOW
  2. //this document copyright 2010 - 2012 James Atherton
  3.  
  4. var lnbreaks=document.all?"\r\n":"\n";
  5.  
  6. function HexFloat() {
  7.     document.hexfloat.hf.value+=document.hexfloat.hex.value + " = " + document.hexfloat.float.value + "\n"
  8. }
  9.  
  10. function HexDec() {
  11.     document.hexdec.hd.value+=document.hexdec.hex.value + " = " + document.hexdec.dec.value + "\n"
  12. }
  13.  
  14. function SaveASCII() {
  15.     document.asciihex.ah.value+=document.asciihex.ascii.value + "\n-----------------\n" + document.asciihex.hex.value + "\n\n"
  16. }
  17.  
  18. function ToASCII() {
  19.     var HexString = document.asciihex.hex.value.replace(/\s|\r/g,"");
  20.     if(document.getElementById("UTF8").checked)
  21.         document.asciihex.ascii.value=hexToUtf8(HexString);
  22.     else {
  23.         document.asciihex.ascii.value="";
  24.         while(HexString!="") {
  25.             document.asciihex.ascii.value+=String.fromCharCode(parseInt(HexString.substr(0,2),16)&255);
  26.             HexString=HexString.substr(2);
  27.         }
  28.     }
  29. }
  30.  
  31. function FromASCII() {
  32.     var ASCIIString = document.asciihex.ascii.value.replace(/\r/g,"");
  33.     if(document.getElementById("UTF8").checked) {
  34.         var input=utf8ToHex(ASCIIString);
  35.         var codeformatted="";
  36.         for(var i=0; i<input.length; i+=2) {
  37.             if(i%8==0&&i>0) i%16==0?codeformatted+=lnbreaks:codeformatted+=" ";
  38.             codeformatted+=input.substr(i,2);
  39.         }
  40.         document.asciihex.hex.value=codeformatted;
  41.     } else {
  42.         document.asciihex.hex.value="";
  43.         for(var x=0; ASCIIString!=""; x++) {
  44.             if(x%4==0&&x>0) x%8==0?document.asciihex.hex.value+=lnbreaks:document.asciihex.hex.value+=" ";
  45.             if(Number(ASCIIString.charCodeAt(0))<16) document.asciihex.hex.value+="0";
  46.             document.asciihex.hex.value+=Number(ASCIIString.charCodeAt(0)).toString(16).toUpperCase();
  47.             ASCIIString=ASCIIString.substr(1);
  48.         }
  49.     }
  50. }
  51.  
  52. function utf8ToHex(input) {
  53.     var str=unescape(encodeURIComponent(input));
  54.     var output="";
  55.     for(var i=0; i<str.length; i++) {
  56.         var hx=str.charCodeAt(i).toString(16);
  57.         while(hx.length<2) hx="0"+hx;
  58.         output+=hx;
  59.     }
  60.     return output.toUpperCase();
  61. }
  62.  
  63. function hexToUtf8(input) {
  64.     var output="";
  65.     for(var i=0; i<input.length; i+=2)
  66.         output+=String.fromCharCode("0x"+input.substr(i,2));
  67.     return decodeURIComponent(escape(output));
  68. }
  69.  
  70. function GetXmlHttpObject()
  71. {
  72.     var objXMLHttp=null
  73.     if(window.XMLHttpRequest)
  74.     {
  75.         objXMLHttp=new XMLHttpRequest()
  76.     }
  77.     else if(window.ActiveXObject)
  78.     {
  79.         objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  80.     }
  81.     return objXMLHttp
  82. }
  83.  
  84. function ToHex()
  85. {
  86.     xmlHttp=GetXmlHttpObject()
  87.     if(xmlHttp==null)
  88.     {
  89.         alert ("Browser does not support HTTP Request")
  90.         return
  91.     }
  92.     var url="arsenal.php"
  93.     url=url+"?tohex="+document.hexfloat.float.value
  94.     //url=url+"&sid="+Math.random()
  95.     xmlHttp.onreadystatechange=hexChange
  96.     xmlHttp.open("GET",url,true)
  97.     xmlHttp.send(null)
  98. }
  99.  
  100. function hexChange()
  101. {
  102.     if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  103.     {
  104.         document.hexfloat.hex.value=xmlHttp.responseText
  105.     }
  106. }
  107.  
  108. function ToFloat()
  109. {
  110.     xmlHttp=GetXmlHttpObject()
  111.     if(xmlHttp==null)
  112.     {
  113.         alert ("Browser does not support HTTP Request")
  114.         return
  115.     }
  116.     var url="arsenal.php"
  117.     url=url+"?tofloat="+document.hexfloat.hex.value
  118.     //url=url+"&sid="+Math.random()
  119.     xmlHttp.onreadystatechange=floatChange
  120.     xmlHttp.open("GET",url,true)
  121.     xmlHttp.send(null)
  122. }
  123.  
  124. function floatChange()
  125. {
  126.     if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  127.     {
  128.         document.hexfloat.float.value=xmlHttp.responseText
  129.     }
  130. }
  131.  
  132.  
  133. function DecimalToHex()
  134. {
  135.     if(Number(document.hexdec.dec.value)<Number(-2147483648))
  136.     {
  137.         document.hexdec.hex.value="Too Small; Signed 32 bit overflow."
  138.     }
  139.     else if(Number(document.hexdec.dec.value)<0)
  140.     {
  141.         document.hexdec.Signed.checked=true;
  142.         document.hexdec.hex.value=(Number(document.hexdec.dec.value)+0xFFFFFFFF+1).toString(16).toUpperCase().substr(0,8);
  143.     }
  144.     else if(Number(document.hexdec.dec.value)>4294967295)
  145.     {
  146.         document.hexdec.hex.value="Too big; Unsigned 32 bit overflow."
  147.     }
  148.     else
  149.     {
  150.         if( Number(document.hexdec.dec.value) > 2147483647 ) {
  151.             document.hexdec.Signed.checked=false;
  152.         }
  153.         document.hexdec.hex.value=Number(document.hexdec.dec.value).toString(16).toUpperCase().substr(0,8);
  154.         while(document.hexdec.hex.value.length<8)document.hexdec.hex.value="0"+document.hexdec.hex.value;
  155.     }
  156. }
  157.  
  158. function HexToDecimal()
  159. {
  160.     if(document.hexdec.Signed.checked && parseInt(document.hexdec.hex.value,16)>2147483647)
  161.         document.hexdec.dec.value=-((~parseInt(document.hexdec.hex.value,16))+1);
  162.     else
  163.         document.hexdec.dec.value=parseInt(document.hexdec.hex.value,16);
  164. }
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182. //Button Conditionals
  183.  
  184. var AddressOkay=true;
  185. var SetButtonsOkay=true;
  186.  
  187. function Buttons(Bob)
  188. {
  189.     if(!AddressOkay)
  190.         return;
  191.     Bob.style.backgroundColor="#"+(Bob.title!="Included - "+Bob.alt?document.stuff.ColorClick.value:document.stuff.ColorNormal.value);
  192.     Bob.title!="Included - "+Bob.alt?Bob.title="Included - "+Bob.alt:Bob.title=Bob.alt;
  193.     Bob.form.OR.value=Number(parseInt(Bob.value,16)^parseInt(Bob.form.OR.value,16)).toString(16).toUpperCase();
  194.     while(Bob.form.OR.value.length<4)Bob.form.OR.value="0"+Bob.form.OR.value;
  195.     Bob.form.NOT.value=Number((~parseInt(Bob.form.OR.value,16))+0xFFFF+1).toString(16).toUpperCase();
  196.     Bob.form.last.value=(Bob.alt+Bob.form.last.value).substr(0,87);
  197.     Bob.blur();
  198.     Update();
  199. }
  200.  
  201. function OverButton(Bob,Enter)
  202. {
  203.     if(document.stuff.CanReset.value.indexOf(Bob.form.name)==-1)
  204.         document.stuff.CanReset.value+=" "+Bob.form.name;
  205.     if(!AddressOkay)
  206.         return;
  207.     if(Bob.title!="Included - "+Bob.alt)
  208.         Bob.style.backgroundColor="#"+(Enter?document.stuff.ColorHover.value:document.stuff.ColorNormal.value);
  209.     if(document.results.Current.value!=Bob.form.name)
  210.     {
  211.         document.results.Current.value=Bob.form.name;
  212.         Bob.form.last.value.length>0?CheckConflict(Bob.form.last):Bob.form.last.value="";
  213.         document.getElementById("targetdisplay").innerHTML="Result ("+Bob.form.name+")";
  214.         Update();
  215.     }
  216. }
  217.  
  218. function Validate()
  219. {
  220.     AddressOkay=(/^[A-Fa-f0-9]{8}$/.test(document.results.Address.value));
  221.     document.results.Address.style.backgroundColor=AddressOkay?"transparent":"#FFCCCC";
  222.     ValidateSetButtons();
  223.     if(!AddressOkay)
  224.         return;
  225.     document.results.Address.value=Number(0xFFFFFFFF+(0xF1FFFFFF & ((parseInt(document.results.Address.value,16)>>>1)<<1))+1).toString(16).toUpperCase();
  226.     Update();
  227. }
  228.  
  229. function Update()
  230. {
  231.     if(!AddressOkay)
  232.         return;
  233.     var ResultString = document.results.Pointer.checked?"3":"2";
  234.     var FullAddress=(((parseInt(document.results.Address.value,16)<<7)>>>8)<<1)+(document.results.Endif.checked?1:0);
  235.     ResultString+=Number((parseInt(document.results.CT.value,16)<<24)+FullAddress).toString(16).toUpperCase()+" ";
  236.     var WhereFrom = document.getElementsByName(document.results.Current.value);
  237.    
  238.     while(WhereFrom[0].NOT.value.length<4)WhereFrom[0].NOT.value="0"+WhereFrom[0].NOT.value;
  239.    
  240.     if(document.results.Inclusive.checked)
  241.         ResultString+=WhereFrom[0].NOT.value;
  242.     else
  243.         ResultString+="0000";
  244.    
  245.     ResultString+=WhereFrom[0].OR.value;
  246.    
  247.     var Bytes=new Array(ResultString.substr(9,2), ResultString.substr(11,2), ResultString.substr(13,2), ResultString.substr(15,2));
  248.    
  249.     if(document.results.Reverse.checked)
  250.         ResultString=ResultString.substr(0,9)+Bytes[1]+Bytes[0]+Bytes[3]+Bytes[2];
  251.     if(WhereFrom[0].ORle)
  252.         WhereFrom[0].ORle.value=Bytes[3]+Bytes[2];
  253.     if(WhereFrom[0].NOTle)
  254.         WhereFrom[0].NOTle.value=WhereFrom[0].NOT.value.substr(2,2)+WhereFrom[0].NOT.value.substr(0,2);
  255.    
  256.     document.results.Output.value=ResultString;
  257. }
  258.  
  259. function CheckConflict(OnThis)
  260. {
  261.     xmlHttp=GetXmlHttpObject()
  262.     if(xmlHttp==null) OnThis.value="";
  263.     else {
  264.         var url="arsenal.php";
  265.         url=url+"?conflict="+OnThis.value;
  266.         //url=url+"&nocache="+Math.random();
  267.         xmlHttp.onreadystatechange=AlertConflict;
  268.         xmlHttp.open("GET",url,true);
  269.         xmlHttp.send(null);
  270.     }
  271. }
  272.  
  273. function AlertConflict()
  274. {
  275.     if((xmlHttp.readyState==4 || xmlHttp.readyState=="complete")&&xmlHttp.responseText!=""){
  276.         document.getElementById("space").innerHTML=xmlHttp.responseText+document.getElementById("space").innerHTML; ResetAll();}
  277. }
  278.  
  279. function ResetData()
  280. {
  281.     var WhereFrom = document.getElementsByName(document.results.Current.value);
  282.     if(WhereFrom.length!=0)
  283.     {
  284.         WhereFrom[0].last.value="";
  285.         WhereFrom[0].OR.value="0000";
  286.         WhereFrom[0].NOT.value="FFFF";
  287.         var FormButton = document.getElementsByName("bttn"+document.results.Current.value);
  288.         for(var x=0; x<FormButton.length; x++)
  289.         {
  290.             if(FormButton[x].form.name==document.results.Current.value)
  291.             {
  292.                 FormButton[x].title=FormButton[x].alt;
  293.                 FormButton[x].style.backgroundColor="#"+document.stuff.ColorNormal.value;
  294.             }
  295.             //document.results.Output.value+=FormButton[x].form.name+" ["+x+"] ";
  296.         }
  297.         Update();
  298.     }
  299. }
  300.  
  301. function ResetAll()
  302. {
  303.     var ResetThese=document.stuff.CanReset.value.split(' ');
  304.     for(var x=ResetThese.length; x>=0; x--)
  305.     {
  306.         document.results.Current.value=ResetThese[x];
  307.         ResetData();
  308.     }
  309.     document.getElementById("targetdisplay").innerHTML="Result (wii)";
  310.     Update();
  311. }
  312.  
  313. function ValidateSetButtons()
  314. {
  315.     SetButtonsOkay=(/^[A-Fa-f0-9]{4}$/.test(document.results.ToButtons.value))&&AddressOkay;
  316.     if(!SetButtonsOkay)
  317.     {
  318.         document.results.ToButtons.style.backgroundColor="#FFCCCC";
  319.         return;
  320.     }
  321.  
  322.     document.results.ToButtons.style.backgroundColor="transparent";
  323.     document.results.ToButtons.value=document.results.ToButtons.value.toUpperCase();
  324. }
  325.  
  326. function SetButtons()
  327. {
  328.     if(!SetButtonsOkay || !AddressOkay)
  329.         return;
  330.    
  331.     var Value=document.results.ToButtons.value;
  332.    
  333.     if(document.results.Reverse.checked)
  334.         Value=Value.substr(2,2)+Value.substr(0,2);
  335.    
  336.     var NewValue=parseInt(Value,16);
  337.    
  338.     var WhereFrom = document.getElementsByName(document.results.Current.value);
  339.     WhereFrom[0].OR.value="0000";
  340.     WhereFrom[0].NOT.value="FFFF";
  341.     var FormButton = document.getElementsByName("bttn"+document.results.Current.value);
  342.     for(var x=0; x<FormButton.length; x++)
  343.     {
  344.         FormButton[x].title=FormButton[x].alt;
  345.         if((parseInt(FormButton[x].value, 16) & NewValue) != 0)
  346.         {
  347.             Buttons(FormButton[x]);
  348.         }
  349.         else
  350.         {
  351.             FormButton[x].style.backgroundColor="#"+document.stuff.ColorNormal.value;
  352.         }
  353.     }
  354.     WhereFrom[0].last.value="";
  355.     Update();
  356. }
  357.  
  358. function DebugDump(ToThisID, StartAt)
  359. {
  360.     /*Function By James Atherton - http://geckocodes.org/?hacker=James0x57 */
  361.     /*You are free to copy and alter however you'd like so long as you leave the credit intact! =)*/
  362.     var TableRow = "\n<tr><td>Form Name</td><td>Input Type</td><td>Input Name</td><td>Input Title</td><td>Input Alt</td><td title='Input Value'>Input Value</td></tr>";
  363.     var AllInputs = document.getElementsByTagName("input");
  364.     var SA=parseInt(StartAt,10);
  365.     var FullTable=document.getElementById(ToThisID).innerHTML;
  366.     var TableSize=20;
  367.     FullTable="<table border=0 width='100%' style='text-align: center'>"+TableRow;
  368.     for(var x=SA; x<AllInputs.length && x<TableSize+SA; x++)
  369.     {
  370.         var AddThis=TableRow;
  371.         AddThis=AddThis.replace("Form Name", AllInputs[x].form.name);
  372.         AddThis=AddThis.replace("Input Type", AllInputs[x].type);
  373.         AddThis=AddThis.replace("Input Name", AllInputs[x].name);
  374.         AddThis=AddThis.replace("Input Title", AllInputs[x].title);
  375.         AddThis=AddThis.replace("Input Alt", AllInputs[x].alt);
  376.         AddThis=AddThis.replace("Input Value", AllInputs[x].value);
  377.         AddThis=AddThis.replace("Input Value", AllInputs[x].value.substr(0,12));
  378.         FullTable+=AddThis;
  379.     }
  380.     FullTable+="</table><br>&nbsp;Debugger - Dump At Page:";
  381.     for(var x=0; x+(TableSize/2)<AllInputs.length; x+=(TableSize/2))
  382.     {
  383.         if(x%12==0)
  384.             FullTable+="<br>";
  385.         FullTable+="&nbsp;&nbsp;<a href='#' style=\"background: #000000; color: #FFFFFF; font-family: monospace;\" onclick=\"DebugDump('"+ToThisID+"', '"+x+"'); return false;\">"+Number((x/20)).toString(10)+"</a>";
  386.     }
  387.    
  388.     document.getElementById(ToThisID).innerHTML=FullTable+"<br><br>";
  389. }
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405. function RandomColor()
  406. {
  407.     var ms= ((new Date()).getMilliseconds())&7;
  408.     var RRGGBB=((ms&1)?"00":"FF")+((ms&2)?"00":"FF");
  409.     RRGGBB+=(RRGGBB=="FFFF"?"00":RRGGBB=="0000"?"FF":(ms&4)?"FF":"00");
  410.     return RRGGBB;
  411. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement