function binToInt(t){for(var e=0,r=parseInt(t.length)-1,s=0;s<t.length;s++)“1”==t.charAt(s)&&(e+=Math.pow(2,r)),r–;return e}function intToBin(t,e){for(var r=2,s=parseInt(t),n=s.toString®,a=n.length;e>a;a++)n=“0”+n;return n}function HexToNum(t){var e=MakeNum(t.substring(0,1)),r=0;return t.length>1&&(r=MakeNum(t.substring(1,2))),“X”==r?“00”:16*e+1*r}function MakeNum(t){if(t>=“0”&&“9”>=t)return t;switch(t.toUpperCase()){case“A”:return 10;case“B”:return 11;case“C”:return 12;case“D”:return 13;case“E”:return 14;case“F”:return 15;default:return 16}return 16}function intToHex(t){var e=“0123456789ABCDEF”;for(h=“”,t=parseInt(t),j=0;j<=3;j++)h+=e.charAt(t>>8*j+4&15)+e.charAt(t>>8*j&15);return h.substring(0,2)}function ToHex(t){var e=“0123456789ABCDEF”,r=“”;return r=e.charAt(15&t),t>>=4,r=e.charAt(15&t)+r}function getSevenBit(t){for(var e=0;e==t)return e;return 0}function getEightBit(t){return t}function get16Bit(t){return t}function phoneNumberMap(t){if(t>=“0”&&“9”>=t)return t;switch(t.toUpperCase()){case“*”:return“A”;case“#”:return“B”;case“A”:return“C”;case“B”:return“D”;case“C”:return“E”;default:return“F”}return“F”}function phoneNumberUnMap(t){if(t>=“0”&&“9”>=t)return t;switch(t){case 10:return“*”;case 11:return“#”;case 12:return“A”;case 13:return“B”;case 14:return“C”;default:return“F”}return“F”}function semiOctetToString(t){for(var e=“”,r=0;r<t.length;r+=2){var s=t.substring(r,r+2);e=e+phoneNumberMap(s.charAt(1))+phoneNumberMap(s.charAt(0))}return e}function getUserMessage(t,e){var r=“”;octetArray=new Array,restArray=new Array,septetsArray=new Array;var s=1,n=0,a=0,i=“”,u=“<table border=1 ><tr><td align=center width=75>Hex</td>”,b=“<tr><td align=center width=75> &nbsp;&nbsp;&nbsp;Octets&nbsp;&nbsp;&nbsp;</td>”,g=“<table border=1 ><tr><td align=center width=75>septets</td>”,c=“<tr><td align=center width=75>Character</td>”;calculation=“”;for(var o=0;o<t.length;o+=2){var l=t.substring(o,o+2);r+=intToBin(HexToNum(l),8),o%14==0&&0!=o&&(u+=“<td align=center width=75>+++++++</td>”),u=u+“<td align=center width=75>”l“</td>”}u+=“<td align=center width=75>+++++++</td>”;for(var o=0;o=r.substring(o,o+8),restArray=octetArray.substring(0,s%8),septetsArray=octetArray.substring(s%8,8),o%56==0&&0!=o&&(b+=“<td align=center width=75>&nbsp;</td>”),b=b+“<td align=center width=75><span style='background-color: #FFFF00’>”restArray[n]“</span>”septetsArray[n]“</td>”,s++,n++,8==s&&(s=1);b+=“<td align=center width=75>&nbsp;</td>”;for(var o=0;o)],g=g+“<td align=center width=75><span style='background-color: #FFFF00’> ”restArray[o-1]“</span>&nbsp;</td>”,c=c+“<td align=center width=75> ”+sevenbitdefault[binToInt(restArray)]+“&nbsp;”,a++),i+=sevenbitdefault[binToInt(septetsArray)],g=g+“<td align=center width=75> ”septetsArray[o]“&nbsp;</td>”,c=c+“<td align=center width=75> ”+sevenbitdefault[binToInt(septetsArray)]+“&nbsp;”,a++):(i+=sevenbitdefault[binToInt(septetsArray+restArray)],g=g+“<td align=center width=75> ”septetsArray[o]“<span style='background-color: #FFFF00’>”restArray[o-1]“&nbsp;</span></td>”,c=c+“<td align=center width=75> ”+sevenbitdefault[binToInt(septetsArray+restArray)]+“&nbsp;</td>”,a++);return a!=e?(i+=sevenbitdefault[binToInt(restArray)],g=g+“<td align=center width=75><span style='background-color: #FFFF00’> ”restArray[o-1]“</span>&nbsp;</td>”,c=c+“<td align=center width=75> ”+sevenbitdefault[binToInt(restArray)]+“&nbsp;</td>”):(g+=“<td align=center width=75>+++++++</td>”,c+=“<td align=center width=75>&nbsp;</td>”),calculation=“Conversion of 8-bit octets to 7-bit default alphabet
u“</tr>”b“</tr></table>”g“</tr>”c“</tr></table>”,i}function getUserMessage16(t,e){var r=“”;calculation=“Not implemented”;for(var s=0;s<t.length;s+=4){var n=t.substring(s,s+2),a=t.substring(s+2,s+4);r+=“”+String.fromCharCode(256*HexToNum(n)+HexToNum(a))}return r}function getUserMessage8(t,e){var r=“”;calculation=“Not implemented”;for(var s=0;s<t.length;s+=2){var n=t.substring(s,s+2);r+=“”+String.fromCharCode(HexToNum(n))}return r}function getPDUMetaInfo(t){var e=t,r=0,s=“”;if(“AT”==e.substr(0,2))for(var n=0;n<e.length;n++)if(10==e.charCodeAt(n)){e=e.substr(n+1);break}for(var a=“”,n=0;n<e.length;n++)16!=MakeNum(e.substr(n,1))&&(a+=e.substr(n,1));e=a;var i=HexToNum(e.substring(0,2)),u=e.substring(2,2+2*i),b=u.substring(0,2),g=u.substring(2,2+2*i);0!=i&&(g=semiOctetToString(g),(“F”==g.substr(g.length-1,1)||“f”==g.substr(g.length-1,1))&&(g=g.substring(0,g.length-1)),91==b&&(g=“+”+g));var c=2*i+2;r=c;var o=e.substr(r,2);r+=2,32==(32&HexToNum(o))&&(s+=“Receipt requested”);var l=0;if(64==(64&HexToNum(o))&&(l=1,s+=“Data Header”),1==(3&HexToNum(o))||3==(3&HexToNum(o))){3==(3&HexToNum(o))&&(s=“Unknown Message”);var d=HexToNum(e.substr(r,2));r+=2;var p=HexToNum(e.substr(r,2));p%2!=0&&(p+=1),r+=2;var h=e.substr(r,2);r+=2;var v=semiOctetToString(e.substring(r,r+p));(“F”==v.substr(v.length-1,1)||“f”==v.substr(v.length-1,1))&&(v=v.substring(0,v.length-1)),91==h&&(v=“+”+v),r+=p;var f=e.substr(r,2);r+=2;var m=e.substr(r,2),T=tpDCSMeaning(m);r+=2;var A;switch(24&HexToNum(o)){case 0:A=“Not Present”;break;case 16:A=“Rel ”+cValid(HexToNum(e.substr(r,2))),r+=2;break;case 8:A=“Enhanced - Not Decoded”,r+=14;break;case 24:A=“Absolute - Not Decoded”,r+=14}var y=HexToNum(e.substr(r,2));r+=2;var N=DCS_Bits(m),w=“Undefined format”;7==N?w=getUserMessage(e.substr(r,e.length-r),y):8==N?w=getUserMessage8(e.substr(r,e.length-r),y):16==N&&(w=getUserMessage16(e.substr(r,e.length-r),y)),w=w.substr(0,y),16==N&&(y/=2),s=JSON.stringify({mtype:s,smsc:g,number:v,validity:A,tp_pid:f,tp_dcs:m,tp_dcs_popis:T,message:w,mlength:y})}else if(0==(3&HexToNum(o))){var p=HexToNum(e.substr(r,2));r+=2;var h=e.substr(r,2);r+=2;var v;“D0”==h?(_sl=p,p%2!=0&&(p+=1),v=getUserMessage(e.substring(r,r+p),parseInt(_sl/2*8/7))):(p%2!=0&&(p+=1),v=semiOctetToString(e.substring(r,r+p)),(“F”==v.substr(v.length-1,1)||“f”==v.substr(v.length-1,1))&&(v=v.substring(0,v.length-1)),91==h&&(v=“+”+v)),r+=p;var f=e.substr(r,2);r+=2;var m=e.substr(r,2),T=tpDCSMeaning(m);r+=2;var x=semiOctetToString(e.substr(r,14)),H=x.substring(0,2),M=x.substring(2,4),k=x.substring(4,6),S=x.substring(6,8),F=x.substring(8,10),C=x.substring(10,12);x=k+“/”M“/”H“ ”S“:”F“:”C“ GMT ?”,r+=14;var y=HexToNum(e.substr(r,2));r+=2;var N=DCS_Bits(m),w=“Undefined format”;7==N?w=getUserMessage(e.substr(r,e.length-r),y):8==N?w=getUserMessage8(e.substr(r,e.length-r),y):16==N&&(w=getUserMessage16(e.substr(r,e.length-r),y)),w=w.substr(0,y),16==N&&(y/=2),s=JSON.stringify({mtype:s||“Receive message”,smsc:g,number:v,validity:A,tp_pid:f,tp_dcs:m,tp_dcs_popis:T,message:w,mlength:y,receipt_at:x})}else{s=“Status Report”;var d=HexToNum(e.substr(r,2));r+=2;var p=HexToNum(e.substr(r,2));p%2!=0&&(p+=1),r+=2;var h=e.substr(r,2);r+=2;var v=semiOctetToString(e.substring(r,r+p));(“F”==v.substr(v.length-1,1)||“f”==v.substr(v.length-1,1))&&(v=v.substring(0,v.length-1)),91==h&&(v=“+”+v),r+=p;var x=semiOctetToString(e.substr(r,14)),H=x.substring(0,2),M=x.substring(2,4),k=x.substring(4,6),S=x.substring(6,8),F=x.substring(8,10),C=x.substring(10,12),I=x.substring(12,14);x=k+“/”M“/”H“ ”S“:”F“:”C“ GMT +”+I/4,r+=14;var D=semiOctetToString(e.substr(r,14)),U=D.substring(0,2),_=D.substring(2,4),B=D.substring(4,6),O=D.substring(6,8),E=D.substring(8,10),R=D.substring(10,12),j=x.substring(12,14);D=B+“/”_“/”U“ ”O“:”E“:”R“ GMT +”+j/4,r+=14;var J=e.substr(r,2);s=JSON.stringify({mtype:s,smsc:g,number:v,sms_id:d,validity:A,tp_pid:f,tp_dcs:m,tp_dcs_popis:T,message:w,mlength:y,sent_at:x,receipt_at:D,status:J})}return s}function stringToPDU(t,e,r,s,n,a,i,u){var b=s,g=“”,c=“”,o=“”,l=0,d=0,p=“”,h=“”;0!=r&&(p=“81”,“+”==r.substr(0,1)?(p=“91”,r=r.substr(1)):“0”!=r.substr(0,1)&&(p=“91”),r.length%2!=0&&(r+=“F”),h=semiOctetToString®,l=(p+“”+h).length/2,d=l),10>l&&(l=“0”+l);var v;v=i?u?“3100”:“2100”:u?“1100”:“0100”;var f=“81”;“+”==e.substr(0,1)?(f=“91”,e=e.substr(1)):“0”!=e.substr(0,1)&&(f=“91”);var m=intToHex(e.length);e.length%2!=0&&(e+=“F”);var T=semiOctetToString(e),A=“00”,y=0;switch(-1!=n&&(y=16|n),b){case 7:break;case 8:y=4|y;break;case 16:y=8|y}var N=intToHex(y),w=“”;u&&(w=intToHex(a));var x;if(7==b){x=intToHex(t.length);for(var H=0;H<=t.length;H++){if(H==t.length){“”!=c&&(o=o+“”+intToHex(binToInt©));break}var M,k=intToBin(getSevenBit(t.charAt(H)),7);0!=H&&H%8!=0?(g=k.substring(7-H%8),M=g+c,o=o+“”+intToHex(binToInt(M)),c=k.substring(0,7-H%8)):c=k.substring(0,7-H%8)}}else if(8==b){x=intToHex(t.length);for(var S=0,H=0;H<t.length;H++)S=getEightBit(t.charCodeAt(H)),o=o+“”+ToHex(S)}else if(16==b){x=intToHex(2*t.length);for(var F=0,H=0;H<t.length;H++)F=get16Bit(t.charCodeAt(H)),o=o+“”+ToHex((65280&F)>>8)+ToHex(255&F)}var C=l+p+h+v+m+f+T+A+N+w+x,I=C+o,D=I.length/2-d-1;return JSON.stringify({size:D,pdu:I})}function DCS_Bits(t){var e=7,r=HexToNum(t);switch(192&r){case 0:switch(12&r){case 4:e=8;break;case 8:e=16}break;case 192:switch(48&r){case 32:e=16;break;case 48:4&r||(e=8)}}return e}function tpDCSMeaning(t){var e=t,r=HexToNum(t);switch(192&r){case 0:if(e=32&r?“Compressed Textn”:“Uncompressed Textn”,16&r)switch(e+=“class:”,3&r){case 0:e+=“0n”;break;case 1:e+=“1n”;break;case 2:e+=“2n”;break;case 3:e+=“3n”}else e+=“class: No classn”;switch(e+=“Alphabet:”,12&r){case 0:e+=“Defaultn”;break;case 4:e+=“8bitn”;break;case 8:e+=“UCS2(16)bitn”;break;case 12:e+=“Reservedn”}break;case 64:case 128:e=“Reserved coding groupn”;break;case 192:switch(48&r){case 0:e=“Message waiting groupn”,e+=“Discardn”;break;case 16:e=“Message waiting groupn”,e+=“Store Message. Default Alphabetn”;break;case 32:e=“Message waiting groupn”,e+=“Store Message. UCS2 Alphabetn”;break;case 48:e=“Data coding message classn”,e+=4&r?“Default Alphabetn”:“8 bit Alphabetn”}}return e}function Validity(t){return isNaN(parseInt(t))?t=0:(t=parseInt(t),0>t&&(t=0),t>255&&(t=255)),cValid(t)}function cValid(t){var e,r=“”;t=parseInt(t),143>=t?e=5*(t+1):167>=t?(e=(t-143)/2+12,e*=60):196>=t?(e=t-166,e*=1440):(e=t-192,e*=10080);var s,n,a,i;return s=e%60,n=e/60,a=n/24,i=a/7,n%=24,a%=7,0!=parseInt(i)&&(r+=parseInt(i)+“w ”),0!=parseInt(a)&&(r+=parseInt(a)+“d ”),0!=parseInt(n)&&(r+=parseInt(n)+“h ”),0!=s&&(r+=s+“m ”),r}sevenbitdefault=new Array(“@”,“£”,“$”,“¥”,“è”,“é”,“ù”,“ì”,“ò”,“Ç”,“n”,“Ø”,“ø”,“r”,“Å”,“å”,“Δ”,“_”,“Φ”,“Γ”,“Λ”,“Ω”,“Π”,“Ψ”,“Σ”,“Θ”,“Ξ”,“€”,“Æ”,“æ”,“ß”,“É”,“ ”,“!”,'“',”#“,”¤“,”%“,”&“,”'“,”(“,”)“,”*“,”+“,”,“,”-“,”.“,”/“,”0“,”1“,”2“,”3“,”4“,”5“,”6“,”7“,”8“,”9“,”:“,”;“,”<“,”=“,”>“,”?“,”¡“,”A“,”B“,”C“,”D“,”E“,”F“,”G“,”H“,”I“,”J“,”K“,”L“,”M“,”N“,”O“,”P“,”Q“,”R“,”S“,”T“,”U“,”V“,”W“,”X“,”Y“,”Z“,”Ä“,”Ö“,”Ñ“,”Ü“,”§“,”¿“,”a“,”b“,”c“,”d“,”e“,”f“,”g“,”h“,”i“,”j“,”k“,”l“,”m“,”n“,”o“,”p“,”q“,”r“,”s“,”t“,”u“,”v“,”w“,”x“,”y“,”z“,”ä“,”ö“,”ñ“,”ü“,”à“);var calculation=”“,maxkeys=160,alerted=!1;