1let propPlotsDataID="",vswrPlotDataID="",aRadPatternColors="#1f77b4 #ff7f0e #2ca02c #b43435 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf".split(" "),vswrChImgData=null,vswrWHRatio=.7,aVSWRData=[],aVSWRBandWidthPts=[],aImpedData=[],plotlySmithChartLoaded=!1,azElChartDivMouseDownHandler=null,azElChartDivMouseMoveHandler=null,azElDOCMouseMoveHandler=null,azElDOCMouseUpHandler=null,polarMouseEventHandlers={},azElPrevAzimuthAngle=-99,azElPrevElevationAngle=-99,a3DPatternData=[],threeDPlotLoaded=!1; 2function plotPolarRadiationPattern_Plotly(a,b,c){function e(l){var y=document.body;if(l.target.classList.contains("maindrag")){if(y.classList.contains("pointcur")||y.classList.add("pointcur"),!(ca<0||Q<0)&&(y=l.target.getAttribute("transform").match(/translate\(([-\d.]+),([-\d.]+)\)/))){g=parseFloat(y[1]);x=parseFloat(y[2]);N=l.target.getBBox().width/2;var E=R.getBoundingClientRect();y=l.clientX-E.left-g;var T=x-(l.clientY-E.top);l=radiansToDegrees(Math.atan2(T,y));l<0&&(l+=360);l=Math.round(l/3)* 33;a=="azimuth"?l>=360&&(l=0):(l>=270&&l<=360&&(l=3),l<3?l=3:l>90&&(l+=3));E=Math.round(l/3);a=="elevation"&&(E=E>60?60:E);if(!(Math.sqrt(y*y+T*T)>N)){T=v[E][1][0];y=v[E][0];y!==U&&updateHoverLineAndPoint(f,ca,Q,E,y,T);E=F[E];m[L].name.substring(2);if(a=="azimuth"||a=="elevation"&&l<180)f=="divAzimPlotIFrame"?($("#spanAzimPlotAnnotsGain").html(E),$("#spanAzimPlotAnnotsAzim").html(y+"°")):($("#spanElevPlotAnnotsGain").html(E),$("#spanElevPlotAnnotsElev").html(y+"°"));U=y}}}else y.classList.remove("pointcur")} 4function d(l){if(l.target.classList.contains("maindrag")){var y=document.body;y.classList.contains("pointcur")&&y.classList.remove("pointcur");y.classList.contains("movecur")||y.classList.add("movecur");V=!0;l.target.ownerSVGElement.getBoundingClientRect();if(y=l.target.getAttribute("transform").match(/translate\(([-\d.]+),([-\d.]+)\)/))g=parseFloat(y[1]),x=parseFloat(y[2]);l=radiansToDegrees(Math.atan2(x-l.offsetY,l.offsetX-g));l<0&&(l+=360);l=Math.round(l/3)*3;a=="azimuth"?l>=360&&(l=0):(l>=270&& 5l<=360&&(l=3),l<3?l=3:l>90&&(l=90));W=l;(a=="azimuth"||a=="elevation"&&l>=3&&l<=90)&&Plotly.relayout(R,{"polar.radialaxis.angle":l})}else V=!1}function n(l){if(V){var y=document.getElementById(f).getBoundingClientRect(),E=Math.round(y.left),T=Math.round(y.top),ja=y.width;y=y.height;var fa=l.clientX;l=l.clientY;!(fa<E||fa>E+ja||l<T||l>T+y)&&(E=radiansToDegrees(Math.atan2(x-(l-T),fa-E-g)),E<0&&(E+=360),E=Math.round(E/3)*3,a=="azimuth"?E>=360&&(E=0):(E>=270&&E<=360&&(E=3),E<3?E=3:E>90&&(E=90)),W=E,a== 6"azimuth"||a=="elevation"&&E>=3&&E<=90)&&(T=document.getElementById(f),Plotly.relayout(T,{"polar.radialaxis.angle":E}))}}function w(l){V&&(l=document.body,l.classList.remove("movecur"),l.classList.contains("pointcur")&&l.classList.remove("pointcur"),V=!1,a=="azimuth"?azElPrevAzimuthAngle=W:azElPrevElevationAngle=W,displayRadiationPatterns(a,W),threeDPlotLoaded&&plot3DRadiationPattern_Plotly3D(c))}let f=a=="azimuth"?"divAzimPlotIFrame":"divElevPlotIFrame";var h=document.getElementById(f);h&&Plotly.purge(h); 7var p=polarMouseEventHandlers[f];p&&(h.removeEventListener("mousemove",p.mousemove,!0),h.removeEventListener("mousedown",p.mousedown,!0),document.removeEventListener("mouseup",p.mouseup,!0),document.removeEventListener("mousemove",p.drag,!0));let m=[];p=a=="azimuth"?azElPrevAzimuthAngle:azElPrevElevationAngle;var C=b.outerRing;let v;var z=[];var q=[];let F=[];q=b.data[0];h=q.frequency;v=a=="azimuth"?q.azimPData:q.elevPData;z=[];q=[];F=[];var G=.5;let D="Bim";for(let l=0;l<v.length;l++){var t=v[l][0]; 8var B=v[l][1][0];var H=v[l][1][1];z.push(t);q.push(B);F.push(H);t==p&&(G=B,D=H)}t=[];for(B=0;B<z.length;B++)t.push(roundNum(z[B],2));z=[];for(H=0;H<q.length;H++)B=q[H],B<1E-6?z.push(1E-6):z.push(roundNum(q[H],6));q={hoverinfo:"none",mode:"lines",name:"f="+h.toFixed(3)+" MHz",r:z,text:F,theta:t,visible:!0,showlegend:!1,line:{width:1.2,color:aRadPatternColors[0]},type:"scatterpolar"};m.push(q);z=!1;t=0;if(b.data.length==1){q=b.data[0];var A=a=="azimuth"?q.aAzim3DBAngs:q.aElev3DBAngs;A[0]>0&&A[1]>0&& 9(z=!0,t=A[1]-A[0],b=ARRLScale(-3),q={hoverinfo:"none",mode:"lines",name:"xx3DBline1",r:[0,b],theta:[A[0],A[0]],visible:!0,showlegend:!1,line:{color:"#d00",width:1},type:"scatterpolar"},m.push(q),q={hovertemplate:"Beamwidth "+t.toFixed(1)+"° at -3dB<extra></extra>",mode:"markers",name:"xx3DBpoint1",r:[b],theta:[A[0]],visible:!0,showlegend:!1,marker:{color:"transparent",size:6,line:{color:"#f00",width:1}},type:"scatterpolar"},m.push(q),q={hoverinfo:"none",mode:"lines",name:"xx3DBline2",r:[0,b], 10theta:[A[1],A[1]],visible:!0,showlegend:!1,line:{color:"#f00",width:1},type:"scatterpolar"},m.push(q),q={hovertemplate:"Beamwidth "+t.toFixed(1)+"° at -3dB<extra></extra>",mode:"markers",name:"xx3DBpoint2",r:[b],theta:[A[1]],visible:!0,showlegend:!1,marker:{color:"transparent",size:6,line:{color:"#f00",width:1}},type:"scatterpolar"},m.push(q))}q={hoverinfo:"none",mode:"lines",name:"MouseHoverLine",r:[0,G],theta:[p,p],visible:!0,showlegend:!1,line:{color:"#080",width:1},type:"scatterpolar"};m.push(q); 11q={hoverinfo:"none",mode:"markers",name:"MouseHoverPoint",r:[G],theta:[p],visible:!0,showlegend:!1,marker:{color:"#080",size:4,line:{color:"#080",width:1}},type:"scatterpolar"};m.push(q);a=="azimuth"?($("#spanAzimPlotAnnotsAzim").html(p+"°"),$("#spanAzimPlotAnnotsGain").html(D)):($("#spanElevPlotAnnotsElev").html(p+"°"),$("#spanElevPlotAnnotsGain").html(D));$("#radPattsAnnotsOuterRing").html(C+" dBi");z?(t*=t>0?1:-1,b=(t<180?t:360-t).toFixed(1)+"°",b+=" (at "+A[0].toFixed(1)+"°, "+ 12A[1].toFixed(1)+"°)"):b="N/A";a=="azimuth"?$("#spanAzimPlotAnnotsBeamW").html(b):$("#spanElevPlotAnnotsBeamW").html(b);C=parseInt(h*1E3);for(G=0;G<aBandPlansFreqs.length;G++)if(A=aBandPlansFreqs[G][1][0],b=aBandPlansFreqs[G][1][1],C>=A&&C<=b){band=parseInt(aBandPlansFreqs[G][0]);break}$("#radPattsAnnotsVSWRFreq").html(h.toFixed(3)+" MHz");Plotly.newPlot(f,m,{colorway:"#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf".split(" "),polar:{angularaxis:{direction:"counterclockwise", 13dtick:15,gridcolor:"#bbb",linecolor:"#ccc",griddash:"dot",rotation:0,tickfont:{color:"#000",family:"'Open Sans', 'Lucida Sans Typewriter', 'Nimbus Mono L', monospace",size:10}},bgcolor:"fff",radialaxis:{gridcolor:"#aaa",linecolor:"#000",griddash:"dot",tickmode:"array",ticktext:" 0  -3  -6  -10  -20  -30".split(" "),tickvals:[1,.839624,.704969,.558406,.311817,.174121],tickangle:90,ticklen:4,tickcolor:"#000",tickfont:{color:"#000",family:"'Open Sans', 'Lucida Sans Typewriter', 'Nimbus Mono L', monospace", 14size:10},angle:p,range:[0,1.06]}},showlegend:!0,legend:{font:{color:"#010101",family:"Verdana, 'PT Sans', 'Source Sans Pro', Arial, sans-serif",size:10}},title:{font:{color:"#010101",family:"'PT Sans', 'Source Sans Pro', Arial, sans-serif",size:13},xref:"container",x:.02,xanchor:"left",yref:"container",y:.94,yanchor:"bottom",text:""},dragmode:!1,width:460,height:460,margin:{autoexpand:!1,l:a=="azimuth"?55:60,r:a=="azimuth"?45:40,b:70,t:30},annotations:[]},{displaylogo:!1,showTips:!1,responsive:!0, 15modeBarButtonsToRemove:"zoom2d pan2d select2d lasso2d zoomIn2d toImage".split(" ")}).then(function(){});let g=0,x=0,N=0,R=document.getElementById(f);h=R.data;let L=-99,ca=-99,Q=-99;
15for(p=0;p<h.length;p++)q=h[p],q.name.substring(0,2)=="f="&&(L=p),q.name=="MouseHoverLine"&&(ca=p),q.name=="MouseHoverPoint"&&(Q=p);polarMouseEventHandlers[f]={mousemove:null,mousedown:null,drag:null,mouseup:null};let U=-99;document.getElementById(f).addEventListener("mousemove",e,!0);polarMouseEventHandlers[f].mousemove= 16e;let V=!1,W=-99;document.getElementById(f).addEventListener("mousedown",d,!0);polarMouseEventHandlers[f].mousedown=d;document.addEventListener("mousemove",n,!0);polarMouseEventHandlers[f].drag=n;document.addEventListener("mouseup",w,!0);polarMouseEventHandlers[f].mouseup=w}function hideHoverLineAndPoint(a,b,c){let e;e={r:[[0,0]],theta:[[0,0]],visible:!1};updatePolarPattern(a,e,b);e={r:[[0]],theta:[[0]],visible:!1};updatePolarPattern(a,e,c)} 17function updateHoverLineAndPoint(a,b,c,e,d,n){updatePolarPattern(a,{r:[[0,n]],theta:[[d,d]],visible:!0},b);updatePolarPattern(a,{r:[[n]],theta:[[d]],visible:!0},c)} 18function initPolarPatternsTexts(a,b,c,e){freqsStr=parseFloat(a.gainsData.freq).toFixed(3)+" MHz";$("#radPattsTitleAntType").html(c);$("#radPattsTitleAntConfig").html(e);$("#radPattsTitleFrequency").html(freqsStr);$("#radPattsTitlePlotID").html(b);b=parseInt(a.gainsData.max[1]);e=parseInt(a.gainsData.max[2]);$("#spanAzimPlotAnnotsRefElev").html(b+"°");$("#spanElevPlotAnnotsRefAzim").html(e+"°");e=1;$("#selUnunRatio").length>0&&(e=parseFloat($("#selUnunRatio").val()));aImpedData=a.gainsData.impdata; 19b=(new Complex(aImpedData[0][1],aImpedData[0][2])).div(e);let d=calcVSWR(b,50);$("#radPattsAnnotsOuterRing").html(a.outerRingDb);$("#radPattsAnnotsVSWR").html(d.toFixed(2)+" : 1");$("#radPattsAnnotsUnunRatio").html(e+" : 1");a=Math.sign(parseFloat(aImpedData[0][2]))==1?'<span style="font-size:1.1em;">+</span>':"−";e=aImpedData[0][1].toFixed(1)+"Ω  ";e+=a+"  j"+Math.abs(parseFloat(aImpedData[0][2])).toFixed(1)+"Ω";$("#radPattsAnnotsImped").html(e); 20$("#radPattsAnnotsImpedFreq").html(freqsStr);c.toUpperCase().includes("DOUBLET")?(a=Math.sign(parseFloat(aImpedData[1][2]))==1?'<span style="font-size:1.1em;">+</span>':"−",e=aImpedData[1][1].toFixed(1)+"Ω  ",e+=a+"  j"+Math.abs(parseFloat(aImpedData[1][2])).toFixed(1)+"Ω",$("#radPattsAnnotsImpedTransformed").html(e)):(c=b.re.toFixed(1)+"Ω  ",c+=a+"  j"+Math.abs(b.im).toFixed(1)+"Ω",$("#radPattsAnnotsImpedTransformed").html(c))} 21function calcVSWR(a,b){b=new Complex(b,0);a=a.sub(b).div(a.add(b));a=Math.sqrt(a.re*a.re+a.im*a.im);a>=1&&(a=.999999);return(1+a)/(1-a)} 22function initPolarPatternsPlotAnnotations(){$("#divAzimPlotAnnotations").css("display","block");$("#divElevPlotAnnotations").css("display","block");$("#spanAzimPlotAnnotsFreq").html("");$("#spanAzimPlotAnnotsGain").html("");$("#spanAzimPlotAnnotsAzim").html("");$("#spanElevPlotAnnotsFreq").html("");$("#spanElevPlotAnnotsGain").html("");$("#spanElevPlotAnnotsElev").html("")}function updatePolarPattern(a,b,c){Plotly.restyle(a,b,[c]);return 0} 23function showAzElPattsNewHelpDlg(a,b){let c=$("#divPopupAzElNewTips"),e;b&&(e=$("#"+b).offset().left+350,b=$("#"+b).offset().top-100,c.css("left",e+"px"),c.css("top",b+"px"));a?c.is(":hidden")&&c.slideDown(300):c.slideUp(300)} 24function plotPolarizationPatterns_Plotly(a,b){let c=[],e=[];let d,n;var w=a.frequency;d=w.toFixed(3);n=a.elevAngle;var f=[];var h=[];var p=[];for(var m=0;m<a.vertical.length;m++){var C=a.vertical[m];f.push(C[0]);h.push(C[1]);p.push(C[2])}C=[];for(m=0;m<f.length;m++)C.push(roundNum(f[m],2));f=[];for(var v=0;v<h.length;v++)m=h[v],m<1E-6?f.push(1E-6):f.push(roundNum(h[v],6));hovTemp="";hovInfo="none";h={hovertemplate:hovTemp,hoverinfo:hovInfo,mode:"lines",name:"Vert. polarization",r:f,text:p,theta:C, 25visible:!0,showlegend:!0,line:{color:"#00a",width:1.2},type:"scatterpolar"};c.push(h);f=[];h=[];p=[];for(m=0;m<a.horizontal.length;m++)C=a.horizontal[m],f.push(C[0]),h.push(C[1]),p.push(C[2]);C=[];for(m=0;m<f.length;m++)C.push(roundNum(f[m],2));f=[];for(v=0;v<h.length;v++)m=h[v],m<1E-6?f.push(1E-6):f.push(roundNum(h[v],6));hovTemp="";hovInfo="none";h={hovertemplate:hovTemp,hoverinfo:hovInfo,mode:"lines",name:"Horiz. polarization",r:f,text:p,theta:C,visible:!0,showlegend:!0,line:{color:"#800",width:1.2}, 26type:"scatterpolar"};c.push(h);f=[];h=[];p=[];for(m=0;m<a.combined.length;m++)C=a.combined[m],f.push(C[0]),h.push(C[1]),p.push(C[2]);C=[];for(m=0;m<f.length;m++)C.push(roundNum(f[m],2));f=[];for(v=0;v<h.length;v++)m=h[v],m<1E-6?f.push(1E-6):f.push(roundNum(h[v],6));hovTemp="";hovInfo="none";h={hovertemplate:hovTemp,hoverinfo:hovInfo,mode:"lines",name:"Summed vert+horiz",r:f,text:p,theta:C,visible:!0,showlegend:!0,line:{color:"#444",width:1.2,dash:"dot"},type:"scatterpolar"};c.push(h);e.push({text:'<span style="color:#444; font-size:0.95em; font-weight:bold; text-decoration:underline;">Frequency: '+ 27d+" MHz</span>",xref:"paper",x:1.05,xanchor:"left",yref:"paper",y:1.01,yanchor:"bottom",showarrow:!1});e.push({text:'<span style="font-size:1em;">
27Antenna<br />plane,<br />0\u00b0 - 180\u00b0</span>',align:"left",font:{size:11,color:"#000"},xref:"container",x:-.39,xanchor:"left",yref:"container",y:.5,yanchor:"middle",showarrow:!1,visible:!0});e.push({text:'<span style="font-size:1em; font-style:italic;">portable-antennas.com</span>',font:{size:11},xref:"container",x:1.12,xanchor:"left",yref:"container", 28y:-.13,yanchor:"bottom",showarrow:!1});initPolarizationPatternPlotAnnotations(!1);h={hoverinfo:"none",mode:"lines",name:"MouseHoverLine",r:[0,.8],theta:[20,20],visible:!1,showlegend:!1,line:{color:"#080",width:1},type:"scatterpolar"};c.push(h);h={hoverinfo:"none",mode:"markers",name:"MouseHoverPoint",r:[.8],theta:[20],visible:!1,showlegend:!1,marker:{color:"#080",size:4,line:{color:"#080",width:1}},type:"scatterpolar"};c.push(h);p=parseInt(w*1E3);for(C=0;C<aBandPlansFreqs.length;C++)if(w=aBandPlansFreqs[C][1][0], 29h=aBandPlansFreqs[C][1][1],p>=w&&p<=h){band=parseInt(aBandPlansFreqs[C][0]);break}b='<span style="color:#00a; font-weight:bold;">'+band+"-meter "+b+" antenna</span>";b=b+'<br /><span style="text-decoration:underline;">Polarization patterns</span><br />Outer ring: '+(a.outerRingDb+" dBi");b=b+"<br />Scaling: ARRL<br />Elevation: "+(n.toFixed(2)+"°");Plotly.newPlot("divPolarizationPlotIFrame",c,{colorway:aRadPatternColors,polar:{angularaxis:{direction:"counterclockwise",dtick:15,gridcolor:"#bbb", 30linecolor:"#ccc",griddash:"dot",rotation:0,tickfont:{color:"#000",family:"'Open Sans', 'Lucida Sans Typewriter', 'Nimbus Mono L', monospace",size:10}},bgcolor:"fff",radialaxis:{gridcolor:"#aaa",linecolor:"#000",griddash:"dot",tickmode:"array",ticktext:" 0  -3  -6  -10  -20  -30".split(" "),tickvals:[1,.839624,.704969,.558406,.311817,.174121],tickangle:90,ticklen:4,tickcolor:"#000",tickfont:{color:"#000",family:"'Open Sans', 'Lucida Sans Typewriter', 'Nimbus Mono L', monospace", 31size:10},angle:0,range:[0,1.06]}},showlegend:!0,legend:{font:{color:"#010101",family:"Verdana, 'PT Sans', 'Source Sans Pro', Arial, sans-serif",size:10}},title:{font:{color:"#010101",family:"'PT Sans', 'Source Sans Pro', Arial, sans-serif",size:13},xref:"container",x:.02,xanchor:"left",yref:"container",y:.94,yanchor:"bottom",text:b},dragmode:!1,width:700,height:440,margin:{l:150,r:190,t:30,b:50},annotations:e},{displaylogo:!1,showTips:!1,responsive:!0,modeBarButtonsToRemove:"zoom2d pan2d select2d lasso2d zoomIn2d toImage".split(" ")}).then(function(){if($("input[name = 'rbGrpPatternsHoverInfo']:checked").val()!= 32"tooltip"){let z=document.getElementById("divPolarizationPlotIFrame"),q=z.data,F,G,D;for(let t=0;t<q.length;t++)F=q[t],F.name=="MouseHoverLine"&&(G=t),F.name=="MouseHoverPoint"&&(D=t);z.on("plotly_hover",function(t){var B=parseFloat(t.points[0].r);let H=parseFloat(t.points[0].theta);H=H==360?0:H;let A;A={r:[[0,B]],theta:[[H,H]],visible:!0};updatePolarPattern("divPolarizationPlotIFrame",A,G);A={r:[[B]],theta:[[H]],visible:!0};updatePolarPattern("divPolarizationPlotIFrame",A,D);B=t.points[0].data.name; 33B.substring(0,5)!=="Mouse"&&(t=t.points[0].text,$("#spanPlrzPlotAnnotsType").html(B),$("#spanPlrzPlotAnnotsFreq").html(d+" MHz"),$("#spanPlrzPlotAnnotsGain").html(t),$("#spanPlrzPlotAnnotsAzim").html(H+"°"))})}})}function initPolarizationPatternPlotAnnotations(){$("#divPlrzPlotAnnotations").css("display","block");$("#spanPlrzPlotAnnotsFreq").html("");$("#spanPlrzPlotAnnotsGain").html("");$("#spanPlrzPlotAnnotsAzim").html("")} 34function plot3DRadiationPattern_Plotly3D(a){let b=[],c,e,d,n,w,f,h,p,m,C,v,z,q,F,G,D,t,B,H,A;obj3DPlotData=a3DPatternData[0];m=obj3DPlotData.freq;C=m.toFixed(3);v=parseFloat(obj3DPlotData.maxGain);let g=[0,3,6,10,20,30],x=[],N,R;for(let k=0;k<6;k++)R=g[k],N=(v-R).toFixed(2)+" dBi (-"+R.toFixed(2)+" dB) ",x.push(N);c=[];for(let k=0;k<obj3DPlotData.xVals.length;k++)z=obj3DPlotData.xVals[k],z.length>0&&c.push(z);e=[];for(let k=0;k<obj3DPlotData.yVals.length;k++)z=obj3DPlotData.yVals[k],z.length>0&& 35e.push(z);d=[];for(let k=0;k<obj3DPlotData.zVals.length;k++)z=obj3DPlotData.zVals[k],z.length>0&&d.push(z);n=obj3DPlotData.colors;w=obj3DPlotData.cust;q=999;F=-999;for(let k=0;k<c.length;k++){z=c[k];for(let u=0;u<z.length;u++)q=Math.min(q,z[u]),F=Math.max(F,z[u])}G=999;D=-999;for(let k=0;k<e.length;k++){z=e[k];for(let u=0;u<z.length;u++)G=Math.min(G,z[u]),D=Math.max(D,z[u])}let L=Math.max(F,D);t=999;B=-999;for(let k=0;k<d.length;k++){z=d[k];for(let u=0;u<z.length;u++)t=Math.min(t,z[u]),B=Math.max(F, 36z[u])}H=Math.max(F-q,D-G,B-t)/2;A=(B+t)/2;f=[-L-.2,L+.2];h=[-L-.2,L+.2];p=[A-H-.2,A+H+.2];init3DPatternPlotAnnotations(!1);let ca=$("input[name = 'rbGrp3DPlotType']:checked").val();b.push({hovertemplate:"",hoverlabel:{bgcolor:"#444",color:"#f00",font:{size:10}}
36,hoverinfo:"none",legendgroup:10,name:"f="+C+" MHz",x:c,y:e,z:d,colorbar:{ticktext:x,tickvals:[1,.839624,.704969,.558406,.311817,.174121],x:1,xpad:12,y:.5,thickness:20,outlinewidth:0,ticks:"",tickfont:{size:10}},colorscale:ca=="classic"?[[0, 37"rgb(150,0,90)"],[.125,"rgb(0,0,200)"],[.25,"rgb(0,100,255)"],[.375,"rgb(0,152,255)"],[.5,"rgb(44,255,150)"],[.625,"rgb(151,255,0)"],[.75,"rgb(255,234,0)"],[.875,"rgb(255,111,0)"],[1,"rgb(255,0,0)"]]:[[0,"rgb(15,15,15)"],[.125,"rgb(28,28,28)"],[.25,"rgb(46,46,46)"],[.375,"rgb(70,70,70)"],[.5,"rgb(100,100,100)"],[.625,"rgb(138,138,138)"],[.75,"rgb(180,180,180)"],[.875,"rgb(220,220,220)"],[1,"rgb(250,250,250)"]],lighting:{ambient:1,diffuse:0,specular:0,roughness:1,fresnel:0},surfacecolor:n,customdata:w, 38showlegend:!1,visible:!0,type:"surface",scene:"scene"});let Q=$("#inpChkLinkSlicesTo3D").is(":checked"),U,V,W,l,y=[];if(ca=="classic"){U=azElPrevElevationAngle;V=degreesToRadians(U);let k=1.05,u=[],I=[],M=[];for(let J=0;J<=50;J++){let Z=2*Math.PI*J/50,ea=k*Math.cos(V),ha=k*Math.sin(V);u.push([0,ea*Math.cos(Z)]);I.push([0,ea*Math.sin(Z)]);M.push([0,ha])}y.push({type:"surface",name:"SliceConeEl",x:u,y:I,z:M,opacity:.6,showscale:!1,hoverinfo:"skip",colorscale:[[0,"rgba(0,120,255,0.35)"],[1,"rgba(0,120,255,0.35)"]], 39visible:Q});W=azElPrevAzimuthAngle;l=degreesToRadians(W);k=.9;let S=k*Math.cos(l),aa=k*Math.sin(l);y.push({type:"surface",name:"SlicePlaneAz",x:[[-S,S],[-S,S]],y:[[-aa,aa],[-aa,aa]],z:[[0,0],[1.1,1.1]],showscale:!1,opacity:.4,colorscale:[[0,"rgba(0,120,255,0.35)"],[1,"rgba(0,120,255,0.35)"]],visible:Q,hoverinfo:"skip"});k=1.2;u=[];I=[];M=[];for(let J=-.25;J<=k;J+=.032)u.push(0,0,null),I.push(0,0,null),M.push(J,J+.016,null);y.push({type:"scatter3d",name:"SliceZAxis",mode:"lines",x:u,y:I,z:M,line:{color:"black", 40width:2},showlegend:!1,visible:Q,hoverinfo:"skip"});u=[];I=[];M=[];let O=Math.floor((90-U)/3),P=-1;for(let J=0;J<=360;J+=3)P++,u.push(a3DPatternData[0].xVals[O][P]*1.002),I.push(a3DPatternData[0].yVals[O][P]*1.002),M.push(a3DPatternData[0].zVals[O][P]*1.002);let X={type:"scatter3d",mode:"lines",name:"SliceConePatternIntersection",x:u,y:I,z:M,line:{color:"#000",width:3},hoverinfo:"skip",visible:Q,showlegend:!1};y.push(X);u=[];I=[];M=[];P=Math.floor(W/3);O=-1;for(let J=0;J<90;J+=3)O++,u.push(a3DPatternData[0].xVals[O][P]* 411.002),I.push(a3DPatternData[0].yVals[O][P]*1.002),M.push(a3DPatternData[0].zVals[O][P]*1.002);X={type:"scatter3d",mode:"lines",name:"SlicePlanePatternIntersection1",x:u,y:I,z:M,line:{color:"#000",width:3},hoverinfo:"skip",visible:Q,showlegend:!1};y.push(X);u=[];I=[];M=[];P=Math.floor((W+180)%360/3);O=-1;for(let J=0;J<90;J+=3)O++,u.push(a3DPatternData[0].xVals[O][P]*1.002),I.push(a3DPatternData[0].yVals[O][P]*1.002),M.push(a3DPatternData[0].zVals[O][P]*1.002);X={type:"scatter3d",mode:"lines",name:"SlicePlanePatternIntersection2", 42x:u,y:I,z:M,line:{color:"#000",width:3},hoverinfo:"skip",visible:Q,showlegend:!1};y.push(X)}else{U=azElPrevElevationAngle;V=degreesToRadians(U);let k=1,u=60,I=1.0025,M,S=[],aa=[],O=[];for(let K=0;K<=u;K++){let ba=2*Math.PI*K/u,Y=k*Math.cos(V),da=k*Math.sin(V);S.push(Y*Math.cos(ba)*I);aa.push(Y*Math.sin(ba)*I);O.push(da*I)}M={type:"scatter3d",mode:"lines",name:"SlicePlantrmEl",x:S,y:aa,z:O,line:{color:"#a00",width:3},hoverinfo:"skip",visible:Q,showlegend:!1};y.push(M);W=azElPrevAzimuthAngle;l=degreesToRadians(W); 43k=1;u=30;I=1.0025;S=[];aa=[];O=[];for(let K=0;K<=u;K++){let ba=Math.PI*K/u,Y=k*Math.cos(ba),da=k*Math.sin(ba);S.push(Y*Math.cos(l)*I);aa.push(Y*Math.sin(l)*I);O.push(da*I)}M={type:"scatter3d",mode:"lines",name:"SlicePlantrmAz",x:S,y:aa,z:O,line:{color:"#a00",width:3},hoverinfo:"skip",visible:Q,showlegend:!1};y.push(M);const P=degreesToRadians(W),X=degreesToRadians(U);var E=Math.cos(X)*Math.cos(P),T=Math.cos(X)*Math.sin(P),ja=Math.sin(X),fa=-Math.sin(P),Ga=Math.cos(P),Ha=-Math.sin(X)*Math.cos(P),Ia= 44-Math.sin(X)*Math.sin(P),Ja=Math.cos(X);const J=degreesToRadians(1);let Z=1.005,ea=[],ha=[],la=[];for(let K=0;K<=32;K++){const ba=2*Math.PI*K/32,Y=Math.cos(ba),da=Math.sin(ba);ea.push(Z*(Math.cos(J)*E+Math.sin(J)*(Y*fa+da*Ha)));ha.push(Z*(Math.cos(J)*T+Math.sin(J)*(Y*Ga+da*Ia)));la.push(Z*(Math.cos(J)*ja+Math.sin(J)*(Y*0+da*Ja)))}const Ka={type:"scatter3d",mode:"lines",name:"SlicePlantrmPointOutline",x:ea,y:ha,z:la,line:{color:"#a00",width:4},hoverinfo:"skip",visible:Q,showlegend:!1};Z-=.002;let pa= 45[Z*E],qa=[Z*T],ra=[Z*ja];for(let K=0;K<32;K++)pa.push(ea[K]),qa.push(ha[K]),ra.push(la[K]);let sa=[],ta=[],ua=[];for(let K=0;K<32;K++){const ba=K+1,Y=(K+1)%32+1;sa.push(0);ta.push(ba);ua.push(Y)}y.push({type:"mesh3d",name:"SlicePlantrmPointFill",x:pa,y:qa,z:ra,i:sa,j:ta,k:ua,color:"#fff",opacity:1,flatshading:!0,lighting:{ambient:1,diffuse:0,specular:0,roughness:1,fresnel:0},hoverinfo:"skip",visible:Q,showlegend:!1});y.push(Ka)}let ia=[],va=[],wa=[],xa=[];r=.8;for(let k=0;k<=360;k+=5){let u=k*Math.PI/ 46180;va.push(r*Math.cos(u));wa.push(r*Math.sin(u));xa.push(0)}ia.push({type:"scatter3d",mode:"lines",x:va,y:wa,z:xa,line:{color:"#ccc",width:4},hoverinfo:"skip"});let ma,na,ya,za,Aa,Ba;for(let k=0;k<360;k+=15){let u=degreesToRadians(k);ma=r*Math.cos(u);na=r*Math.sin(u);ya=k%90==0?4:1;za=k%45==0?k+"\u00b0":"";Aa={type:"scatter3d",mode:"lines",x:[0,ma],y:[0,na],z:[0,0],line:{color:"#ccc",width:ya},hoverinfo:"skip"};ia.push(Aa);Ba={type:"scatter3d",mode:"text",x:[ma*1.05],y:[na*1.05],z:[-.02],text:[za],
47textfont:{size:10,color:"#666",family:"Verdana, Arial, sans-serif"},hoverinfo:"skip"};ia.push(Ba)}let Ca=[];Ca.push({text:'<span style="font-size:1em; font-style:italic;">portable-antennas.com</span>',font:{size:11},xref:"paper",x:1.05,xanchor:"left",yref:"paper",y:-.025,yanchor:"bottom",showarrow:!1});let Da,Ea,Fa=parseInt(m*1E3);for(let k=0;k<aBandPlansFreqs.length;k++)if(Da=aBandPlansFreqs[k][1][0],Ea=aBandPlansFreqs[k][1][1],Fa>=Da&&Fa<=Ea){band=parseInt(aBandPlansFreqs[k][0]);break}let oa;oa= 48'<span style="color:#00a; font-weight:bold;">'+band+"-meter "+a+" antenna";oa+=" ("+C+" MHz, Max gain "+a3DPatternData[0].maxGain+" dBi)</span>";let La={autosize:!1,colorway:"#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf".split(" "),showlegend:!1,legend:{orientation:"v",entrywidth:0,font:{color:"#555",family:"Verdana, 'PT Sans', 'Source Sans Pro', Arial, sans-serif",size:10},title:{font:{color:"#555",family:"Verdana, 'PT Sans', 'Source Sans Pro', Arial, sans-serif", 49size:10},side:"top center",text:"Enable/disable plot"},bgcolor:"#fff",bordercolor:"#ccc",borderwidth:0,itemclick:"toggle",itemdoubleclick:"toggle",xref:"container",x:.8,xanchor:"left",yref:"container",ypad:0,y:.85,yanchor:"top"},title:{font:{size:12},xref:"container",x:.02,xanchor:"left",yref:"container",y:.95,yanchor:"bottom",text:oa},width:700,height:440,margin:{l:10,r:160,b:10,t:30,pad:0},scene:{domain:{x:[0,1],y:[0,1],z:[0,1]},xaxis:{linecolor:"#B0B0B0",gridcolor:"#B0B0B0",showbackground:!1,tickformat:".3f", 50range:[f[0],f[1]],showticklabels:!1},yaxis:{linecolor:"#B0B0B0",gridcolor:"#B0B0B0",showbackground:!1,tickformat:".3f",range:[h[0],h[1]],showticklabels:!1},zaxis:{linecolor:"#B0B0B0",gridcolor:"#B0B0B0",showbackground:!1,tickformat:".3f",range:[p[0],p[1]],showticklabels:!1},aspectratio:{x:1,y:1,z:1},camera:{up:{x:0,y:0,z:1},center:{x:0,y:0,z:.1},eye:{x:.6,y:-.8,z:.6}}},annotations:Ca},ka=[];for(let k=0;k<b.length;k++)ka.push(b[k]);for(let k=0;k<ia.length;k++)ka.push(ia[k]);for(let k=0;k<y.length;k++)ka.push(y[k]); 51Plotly.newPlot("div3DPlotIFrame",ka,La,{displaylogo:!1,responsive:!0,modeBarButtonsToRemove:"zoom3d pan3d select3d lasso3d zoomIn3d toImage resetCameraDefault3d resetCameraLastSave3d hoverClosest3d orbitRotation tableRotation".split(" ")}).then(function(){}).then(function(){let k=document.getElementById("div3DPlotIFrame");k.on("plotly_hover",function(u){var I=u.points[0];u=parseFloat(I.customdata[2]);u=u==360?0:u;let M=parseFloat(I.customdata[3]);var S=I.data.name;S.substring(0,2)=="f="&&($("#div3DPlotAnnotations").css("display", 52"block"),S=S.substring(2),I=parseFloat(I.customdata[0]).toFixed(2)+" dBi ("+parseFloat(I.customdata[1]).toFixed(2)+" dB)",$("#span3DPlotAnnotsFreq").html(S),$("#span3DPlotAnnotsGain").html(I),$("#span3DPlotAnnotsAzim").html(u+"°"),$("#span3DPlotAnnotsElev").html(M+"°"))});k.on("plotly_unhover",function(u){$("#div3DPlotAnnotations").css("display","none");$("#span3DPlotAnnotsGain").html("");$("#span3DPlotAnnotsAzim").html("");$("#span3DPlotAnnotsElev").html("")})})} 53function init3DPatternPlotAnnotations(){$("#span3DPlotAnnotsFreq").html("");$("#span3DPlotAnnotsGain").html("");$("#span3DPlotAnnotsAzim").html("");$("#span3DPlotAnnotsElev").html("")}function toggle3DPatternSliceObjects(){if(threeDPlotLoaded){var a=$("#inpChkLinkSlicesTo3D").is(":checked"),b=document.getElementById("div3DPlotIFrame"),c=[];b.data.forEach((e,d)=>{e.name&&e.name.startsWith("Slice")&&c.push(d)});Plotly.restyle(b,{visible:a},c)}} 54function plotVSWRChart_Highcharts(a,b){$("#divVSWRChart").on("mouseleave",function(){$("#divCustTTipPopup").stop(!0,!0).hide().html("")});let c=999,e=-999;var d=999;let n=-999;for(var w=0;w<aVSWRData.length;w++)c=Math.min(c,aVSWRData[w][0]),e=Math.max(e,aVSWRData[w][0]),d=Math.min(d,aVSWRData[w][1]),n=Math.max(n,aVSWRData[w][1]);$("#selUnunRatio").length>0&&parseFloat($("#selUnunRatio").val());w=999999;let f=-999999,h=999999,p=-999999;var m=[];let C=[];for(var v=0;v<aImpedData.length;v++){var z=parseFloat(aImpedData[v][0]); 55var q=parseFloat(aImpedData[v][1]);var F=parseFloat(aImpedData[v][2]);w=Math.min(w,q);f=Math.max(f,q);h=Math.min(h,F);p=Math.max(p,F);m.push([z,q]);C.push([z,F])}z=q=999;for(F=0;F<aVSWRData.length;
55F++)q=Math.min(q,aVSWRData[F][1]);for(F=0;F<aVSWRData.length;F++)if(aVSWRData[F][1]==q){z=aVSWRData[F][0];break}let G;q=[];if(F=$("input[name = 'rbGrpVSWRCheck']:checked").val()=="range"){$("#divVSWRChart").css("width","1000px");var D=$("#inpVSWRBand1").val();v=$("#selVSWRBand2").val();for(var t=0;t<aBandPlansFreqs.length;t++)if(d= 56aBandPlansFreqs[t][0],d==D){var B=aBandPlansFreqs[t][1][0];break}for(D=0;D<aBandPlansFreqs.length;D++)if(d=aBandPlansFreqs[D][0],d==v){var H=aBandPlansFreqs[D][1][1];break}for(D=0;D<aBandPlansFreqs.length;D++)d=aBandPlansFreqs[D][0],thisFreqLo=aBandPlansFreqs[D][1][0],thisFreqHi=aBandPlansFreqs[D][1][1],v=d=="8m"?"italic":"normal",thisFreqLo>=B&&thisFreqHi<=H&&q.push({color:"#cfc",from:thisFreqLo/1E3,to:thisFreqHi/1E3,label:{text:d+"<br />band",inside:!1,style:{color:"#030",fontSize:"0.8em",fontWeight:"bold", 57fontStyle:v},align:"center",verticalAlign:"top",y:20}})}else{$("#divVSWRChart").css("width","700px");B=n-d;G=B>=20?5:B>=10&&B<20?2:B>=5&&B<10?1:B>=3&&B<5?.5:B>=1.8&&B<3?.2:.1;d="";v=-999;D=-888;for(t=0;t<aBandPlansFreqs.length;t++)if(B=aBandPlansFreqs[t][1][0],H=aBandPlansFreqs[t][1][1],a>=B&&a<=H){d=aBandPlansFreqs[t][0];v=B/1E3;D=H/1E3;break}q.push({color:"#cfc",from:v,to:D,label:{text:d+" band",style:{color:"#030",fontSize:"0.8em",fontWeight:"bold"},align:"center",verticalAlign:"top",y:20}})}minImp= 58Math.min(w,h);maxImp=Math.max(f,p);w=minImp;f=maxImp;h=minImp;p=maxImp;aSeriesData=[];aSeriesData.push({name:"VSWR-ANT",yAxis:0,data:aVSWRData,custom:{legendHovText:"VSWR at antenna feed-point"},color:"#0055cc",lineWidth:2,marker:{symbol:"circle"}});D=$("#inpChkIncCoaxLosses").is(":checked");v=parseInt($("#selCoaxName").val());aAttenVSWRData=[];d={title:{text:""}};B=99999;H=-99999;if(D&&v>0){d=.66;for(t=0;t<aCoaxDetails.length;t++)if(D=aCoaxDetails[t][0],D==v){d=aCoaxDetails[t][2];break}D=parseInt($("#selCoaxLength").val()); 59t=new Complex([50,0]);let g;let x,N,R=[];v=[];for(let L=0;L<aImpedData.length;L++){g=aImpedData[L][0];var A=aImpedData[L][1];x=aImpedData[L][2];N=aImpedData[L][3];zLoad=new Complex([A,x]);A=calculateCoaxAttenAtFrequency(g);lossSWR=calculateSingleSWRLossValue(D,A,d,g,t,zLoad);v.push([g,lossSWR]);B=Math.min(B,lossSWR);H=Math.max(H,lossSWR);misMatchLoss=10*Math.log10(1-Math.pow((N-1)/(N+1),2));R.push([g,misMatchLoss])}aAttenVSWRData=calculateAttenuatedVSWRCurveData();aSeriesData.push({name:"VSWR-TRX", 60yAxis:0,data:aAttenVSWRData,custom:{legendHovText:"VSWR at transmitter end of coax"},color:"#00aa00",lineWidth:2,marker:{symbol:"circle"}});d={gridLineWidth:0,title:{text:"Power loss at antenna (dB)",style:{color:"#f138ff"},offset:26,margin:0},labels:{format:"{value:.1f}",style:{color:"#f138ff"},x:-3,y:1},min:B,max:H,opposite:!1};aSeriesData.push({name:"Coax pwr. loss",yAxis:3,data:v,custom:{legendHovText:"Power loss due to coax attenuation"},color:"#f138ff",lineWidth:1,dashStyle:"dashdot",marker:{symbol:"circle"}})}aSeriesData.push({name:"Imp.(Real)", 61yAxis:1,data:m,custom:{legendHovText:"Impedance (Real / Resistive)"},color:"#cc0000",lineWidth:.5,marker:{symbol:"circle"}});aSeriesData.push({name:"Imp.(Imag)",yAxis:2,data:C,custom:{legendHovText:"Impedance (Imaginary / Reactive)"},color:"#ffa336",lineWidth:.7,dashStyle:"longdash",marker:{symbol:"circle"}});aVSWRBandWidthPts.length==2&&(m=aVSWRBandWidthPts[0][1],aSeriesData.push({name:"B/W "+m.toFixed(1),yAxis:0,data:aVSWRBandWidthPts,custom:{legendHovText:"Curve displaying bandwidth at VSWR "+ 62m.toFixed(1)+":1"},color:"#3af",lineWidth:1.6,dashStyle:"dash",marker:{symbol:"circle",radius:4,lineWidth:1,lineColor:"#3af",fillColor:"#fff"}}));for(m=0;m<aBandPlansFreqs.length;m++)if(freqLo=aBandPlansFreqs[m][1][0],freqHi=aBandPlansFreqs[m][1][1],a>=freqLo&&a<=freqHi){band=parseInt(aBandPlansFreqs[m][0]);break}new Highcharts.Chart({chart:{type:"spline",renderTo:"divVSWRChart",backgroundColor:"#fff",width:F?1E3:700,height:442,spacing:[20,20,20,10],plotBorderWidth:.5,plotBorderColor:"#333",zoomType:"x", 63panning:F,panKey:"shift",events:{fullscreenClose:function(g){this.update({tooltip:{outside:!0}})}}},title:{text:'<span style="color:#00a; font-size:0.9em; font-weight:normal;">'+(band+"-meter "+b+" antenna</span>"),margin:0,useHTML:!0,y:0},subtitle:{text:'<span style="font-size:1.2em;"> Target frequency: <span style="color:#666; font-size:1.4em; font-weight:bold; vertical-align:-3px;">- - - - -</span>   Minimum-VSWR frequency: <span style="color:666; font-size:1.4em; font-weight:bold; vertical-align:-3px;">- · - · - · -</span></span>', 64useHTML:!0,y:25},exporting:{fallbackToExportServer:!1,buttons:{contextButton:{enabled:!0,x:-5,y:-8}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.update({tooltip:{outside:this.fullscreen.isOpen}});this.fullscreen.toggle()}}}},legend:{enabled:!0,align:"center",verticalAlign:"bottom",itemStyle:{}
64,symbolWidth:22,margin:0,x:0,y:-10},plotOptions:{spline:{marker:{radius:0,states:{hover:{radius:4,radiusPlus:0}}}},series:{states:{hover:{enabled:!0,halo:{size:0}}}}}, 65tooltip:{enabled:!0,outside:!0,crosshairs:!0,shared:!0,useHTML:!0,hideDelay:150,headerFormat:'<table style="width:160px; margin:0 -5px -5px 0;"><tr><th colspan="2" style="text-align:left; border-bottom:1px solid #aaa;"> Frequency: {point.key:.3f} MHz</th></tr>',pointFormatter:function(){if(this.series.name.substring(0,3)=="B/W"){var g=this.series.options.data;g=g[1][0]-g[0][0];g=(g*1E3).toFixed(1);g=parseInt(g/10)*10;return g='<tr><td colspan="2" style="text-align:left; width:70px;"><span style="color:'+ 66this.series.color+'; font-size:1.5em;">\u25a0</span> Bandwidth: ~ '+g+" kHz at VSWR "+this.y.toFixed(1)+" : 1</td></tr>"}g=this.series.name.substring(0,3)=="Imp"?"\u2126":this.series.name.substring(0,5)=="Power"?"dB":" : 1";return g='<tr><td style="text-align:left; width:70px;"><span style="color:'+this.series.color+'; font-size:1.5em;">\u25cf</span> '+this.series.name+'</td><td style="text-align:right">'+this.y.toFixed(2)+" "+g+"</td></tr>"},footerFormat:"</table>",style:{padding:"1px", 67lineHeight:"1.2em"},zIndex:100},yAxis:[{title:{text:"VSWR",style:{color:"#000",fontSize:"0.8em"},rotation:270,offset:27,margin:0},visible:!0,lineColor:"#000",lineWidth:0,allowDecimals:!0,max:n,min:1,startOnTick:!1,endOnTick:!1,tickColor:"#000",alignTicks:!0,tickInterval:G,tickPositioner:function(){if(G>1){let g=[];g.push(1);for(let x=G;x<=this.max;x+=G)g.push(x);return g}},labels:{x:-3,y:1,format:"{value:.1f}",style:{color:"#000",fontSize:"0.7em"}},plotLines:[{color:"#0000aa",label:{text:"VSWR 3.0", 68align:"left",x:5,y:-2,style:{color:"#0000aa",fontSize:"0.7em",fontStyle:"italic"}},dashStyle:"longdash",value:3,width:.5,zIndex:3}]},{gridLineWidth:0,title:{text:"Impedance (Real)",style:{color:"#aa0000",fontSize:"0.8em"},offset:35,margin:0},labels:{format:"{value} Ω",style:{color:"#aa0000",fontSize:"0.7em"},x:3,y:0},max:f,min:w,opposite:!0,plotLines:[{color:"#aa0000",label:{text:"50 Ω",align:"right",x:-10,y:-2,style:{color:"#aa0000",fontSize:"0.7em",fontStyle:"italic"}},dashStyle:"longdash", 69value:50,width:.5,zIndex:3},{color:"#aa0000",label:{text:"75 Ω",align:"right",x:-10,y:-2,style:{color:"#aa0000",fontSize:"0.7em",fontStyle:"italic"}},dashStyle:"longdash",value:75,width:.5,zIndex:3}]},{gridLineWidth:0,title:{text:"Impedance (Imaginary)",style:{color:"#ffa336",fontSize:"0.8em"},offset:10,margin:0},labels:{enabled:!1,format:"{value} Ω",style:{color:"#ffa336",fontSize:"0.7em"},x:5,y:0},max:p,min:h,opposite:!0},d],xAxis:{title:{text:"Frequency (MHz)",style:{fontSize:"0.8em", 70color:"#000"},offset:15},plotBands:q,plotLines:[{color:"#666666",dashStyle:"dashdot",value:z,width:1.5,zIndex:3},{color:"#666666",dashStyle:"dash",value:a/1E3,width:1.5,zIndex:3}],min:c,max:e,lineColor:"#000",lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:.7,tickLength:0,tickPositioner:function(){let g=this.max-this.min;this.tickInterval=increment=g>=20?1:g>=10&&g<20?.5:g>=5&&g<10?.1:g>=1&&g<5?.05:.01;return null},offset:0,labels:{enabled:!0,x:0,y:12,format:"{value:.2f}"}},series:aSeriesData,credits:{enabled:!0, 71text:"portable-antennas.com<br />Highcharts.com",href:"",style:{color:"#666",fontSize:"0.7em",cursor:null},position:{align:"right",verticalAlign:"bottom",x:-15,y:-20}}},function(g){$(g.series).each(function(x,N){let R=N.legendItem.group,L=$("#divCustTTipPopup"),ca="";x=N.chart.series[x].options;if(x.custom){ca=x.custom.legendHovText;let Q;R.on("mouseover",function(U){let V=U.pageX;U=U.pageY;clearTimeout(Q);L.html(ca);L.css("left",V+0+"px");L.css("top",U+25+"px");L.delay(500).show(0);Q=setTimeout(function(){L.stop(!0, 72!0).hide().html("")},4E3)}).on("mouseout",function(){clearTimeout(Q);L.stop(!0,!0).hide().html("")})}})})} 73function calculateCoaxAttenAtFrequency(a){var b=1;let c=!1;for(let f=0;f<aCableAttenData.length-1;f++){var e=aCableAttenData[f][0];var d=aCableAttenData[f+1][0];var n=aCableAttenData[f][1];var w=aCableAttenData[f+1][1];if(a>=e&&a<=d){b=(w-n)/(d-e);b=n+a*b;c=!0;break}}c||(e=aCableAttenData[0][0],d=aCableAttenData[1][0],n=aCableAttenData[0][1],w=aCableAttenData[1][1],a<e&&(b=(w-n)/(d-e),b=n-a*b));return b} 74function calculateSingleSWRLossValue(a,b,c,e,d,n){b=b/100/8.6858;c=2*Math.PI/(SPEED_OF_LIGHT/(e*1E6)*c);e=new Complex([Math.cosh(a*b)*Math.cos(a*c),Math.sinh(a*b)*Math.sin(a*c)]);var w=new Complex([Math.sinh(a*b)*Math.cos(a*c),Math.cosh(a*b)*Math.sin(a*c)]);e=n.mul(e).add(d.mul(w));w=new Complex([Math.sinh(a*b)*Math.cos(a*c),Math.cosh(a*b)*Math.sin(a*c)]);a=new Complex([Math.cosh(a*b)*Math.cos(a*c),Math.sinh(a*b)*Math.sin(a*c)]);a=n.mul(w).add(d.mul(a));a=d.mul(e.div(a));a=Complex(a.sub(d.conjugate()).div(a.add(d))).abs(); 75d=Complex(n.sub(d.conjugate()).div(n.add(d))).abs();return 10*Math.log10((1-a*a)/(1-d*d))} 76function calculateAttenuatedVSWRCurveData(){var a=aVSWRData.length,b=aVSWRData[a-1][0];var c=aCableAttenData[0];for(var e=0;e<aCableAttenData.length;e++){var d=aCableAttenData[e][0];if(d>=b&&d>c[0]){var n=aCableAttenData[e];break}}if(n.length==0)alert("Ouch!");else{n=(Math.log10(n[1])-Math.log10(c[1]))/(Math.log10(n[0])-Math.log10(c[0]));d=Math.log10(c[1])-n*Math.log10(c[0]);c=[];for(e=0;e<a;e++)b=aVSWRData[e][0],b=[b,Math.pow(10,d)*Math.pow(b,n)],c.push(b);a=parseInt($("#selCoaxLength").val());n= 77[];for(d=0;d<aVSWRData.length;d++){b=aVSWRData[d][0];var w=aVSWRData[d][1];
77e=c[d][1]*a/100;w=(w-1)/(w+1);e=2*e/8.6858;e=w/Math.exp(e);e=(1+Math.abs(e))/(1-Math.abs(e));n.push([b,e])}return n}} 78function createPNGFromVSWRChart(){let a=$("#divVSWRChart").width(),b=$("#divVSWRChart").height();vswrWHRatio=a/b;$("#divVSWRChart").is(":visible")&&setTimeout(function(){var c=$("#divVSWRChart").highcharts();if(c!==null){let e=document.getElementById("cvsVSWRChartExport");e.width=a;e.height=b;c=c.getSVG();c=utoa(c);let d="data:image/svg+xml;base64,"+c,n=new Image;n.src=d;setTimeout(function(){e.getContext("2d").drawImage(n,0,0,a+8,b+6);vswrChImgData=e.toDataURL("image/png")},200);c=(c.length*6/8/ 791E3).toFixed(2);console.log("VSWR chart PNG size: "+c+"kB")}},200)} 80function plotAntennaSmithChart_Plotly(a){if($("#inpChkPlotSmithChart").is(":checked")){$("#divSmithChartPlotly").html("");$("#selUnunRatio").length>0&&parseFloat($("#selUnunRatio").val());var b=[],c=[],e=[];for(var d=0;d<aImpedData.length;d++){var n=parseFloat(aImpedData[d][0]);for(var w=0;w<aBandPlansFreqs.length;w++){var f=aBandPlansFreqs[w][1][0]-.15;var h=aBandPlansFreqs[w][1][1]+.15;if(n>=f&&n<=h)break}f=parseFloat(aImpedData[d][1])/50;h=parseFloat(aImpedData[d][2])/50;b.push(f);c.push(h);f= 81aImpedData[d].length==4?parseFloat(aImpedData[d][3]):0;e.push([n,aImpedData[d][1],aImpedData[d][2],f])}var p=" Freq.: <b>%{customdata[0]:0.3f} MHz</b> <br /> Real: %{real:0.3f} \u03a9 (<b>%{customdata[1]:0.3f}</b> \u03a9) <br /> Imag: %{imag:0.3f} \u03a9 (<b>%{customdata[2]:0.3f}</b> \u03a9)"+(aImpedData.length==1?"":" <br /> VSWR: <b>%{customdata[3]:0.3f} : 1</b>");n={type:"scattersmith",name:"Feedpoint",showlegend:!0,real:b,imag:c,customdata:e,mode:"lines+markers",marker:{symbol:"circle", 82size:aImpedData.length>1?4:10,color:"#0055cc"},hoverlabel:{font:{size:11}},hovertemplate:p+"<extra></extra>"};$("#divSmithChartFptAnnotations").css("visibility","visible");var m=$("#inpChkIncCoaxLosses").is(":checked"),C=$("#selCoaxLength").val(),v=$("#selCoaxName").prop("disabled",!1),z=$("#selCoaxName :selected").text().trim(),q=$("#selCoaxName")[0].selectedIndex;f=null;var F=[];if(m&&v&&q>0){b=calculateAttenuatedSmithChartCurveData();c=[];d=[];for(var G=0;G<b.length;G++){var D=b[G][0];w=b[G][1]; 83f=b[G][2];h=b[G][3];F.push([D,f,h,w]);c.push(f/50);d.push(h/50)}f={type:"scattersmith",name:"TRX end",showlegend:!0,real:c,imag:d,customdata:F,mode:"lines+markers",marker:{symbol:"circle",size:b.length>1?4:10,color:"#0a0"},hoverlabel:{font:{size:11}},hovertemplate:" Freq.: <b>%{customdata[0]:0.3f} MHz</b> <br /> Real: %{real:0.3f} \u03a9 (<b>%{customdata[1]:0.3f}</b> \u03a9) <br /> Imag: %{imag:0.3f} \u03a9 (<b>%{customdata[2]:0.3f}</b> \u03a9)"+(b.length==1?"":" <br /> VSWR: <b>%{customdata[3]:0.3f} : 1</b>")+ 84"<extra></extra>"};$("#divSmithChartTRXAnnotations").css("visibility","visible")}h=[1.2,1.5,2,3,4,5];d=[];w=$("#inpChkConstantVSWRCurves").is(":checked");D=0;for(G=0;G<h.length;G++){D++;var t=h[G];p=t*50;b=[];c=[];for(let A=0;A<=50;A++){var B=transformImpedance(50,p,A*.01);b.push(B[0]);c.push(B[1])}p=" Constant VSWR="+t+" <extra></extra>";b={type:"scattersmith",name:"ConstVSWR"+D,showlegend:!1,real:b,imag:c,mode:"lines",line:{width:.6,color:"rgba(255, 64, 0, 0.7)"},visible:w,hoverlabel:{font:{size:11, 85color:"#fff"}},hovertemplate:p};d.push(b)}b=[];c={text:'<span style="font-size:1em; font-style:italic;">INDUCTIVE</span>',textangle:90,font:{size:12},xref:"container",x:1.15,xanchor:"left",yref:"container",y:.65,yanchor:"bottom",showarrow:!1};b.push(c);c={text:"_ _ _ _ _",textangle:0,font:{size:12},xref:"container",x:1.12,xanchor:"left",yref:"container",y:.485,yanchor:"bottom",showarrow:!1};b.push(c);c={text:'<span style="font-size:1em; font-style:italic;">CAPACITIVE</span>',textangle:90,font:{size:12}, 86xref:"container",x:1.15,xanchor:"left",yref:"container",y:.12,yanchor:"bottom",showarrow:!1};b.push(c);b.push({text:'<span style="font-size:1em; font-style:italic;">portable-antennas.com</span>',font:{size:11},xref:"container",x:1.01,xanchor:"left",yref:"container",y:-.1,yanchor:"bottom",showarrow:!1});initSmithChartAnnotBlocks(F.length>0);n=[n];m&&v&&q>0&&n.push(f);for(c=0;c<d.length;c++)n.push(d[c]);if($("#selMainBand").length>0)var H=parseInt($("#selMainBand").val());else for(c=parseInt($("input[name = 'rbGrpAntSections']:checked").val()), 87f=$("input[name = 'rbGrpCheckHarmonics']:checked").val()!=="no"?parseInt($("#inpHarmonicFreq").val()):aAntFreqs[c-1],h=0;h<aBandPlansFreqs.length;h++)if(c=aBandPlansFreqs[h][1][0],d=aBandPlansFreqs[h][1][1],f>=c&&f<=d){H=parseInt(aBandPlansFreqs[h][0]);break}Plotly.newPlot("divSmithChartPlotly",n,{title:{text:'<span style="color:#00a; font-weight:bold;">'+H+"-meter "+a+' antenna</span><br /><span style="text-decoration:underline;">Smith chart</span>',font:{size:13},xref:"container",xanchor:"left", 88x:.02,yref:"container",yanchor:"bottom",y:.955},autosize:!0,autoexpand:!1,width:700,height:440,margin:{l:200,r:140,t:40,b:40},legend:{xref:"paper",x:1.05,xanchor:"left",yref:"paper",y:.98,yanchor:"bottom"},smith:{realaxis:{gridcolor:"#aaa",linecolor:"#888",griddash:"dot",ticks:"top",ticklen:4,tickwidth:1,tickfont:{color:"#555",family:"'PT Sans Bold', 'Open Sans Bold', 'Nimbus Mono L', monospace",size:11}},bgcolor:"fff",imaginaryaxis:{gridcolor:"#bbb",linecolor:"#888",griddash:"dot",tickmode:"array", 89tickvals:[0,.2,.4,.6,.8,1,1.5,2,3,4,5,10,0,-.2,-.4,-.6,-.8,-1,-1.5,-2,-3,-4,-5,-10],tickfont:{color:"#000",size:10}}},annotations:b},{displaylogo:!1,showTips:!1,responsive:!0,modeBarButtonsToRemove:"zoom2d pan2d select2d lasso2d zoomIn2d toImage".split(" ")}).then(function(A){A=A.querySelectorAll("rect.legendtoggle");let g=document.createElement("div");g.style.position="absolute";g.style.display="none";g.style.background="#fff";g.style.border="1px solid #666";g.style.padding="4px 8px";g.style.fontSize= 90"12px";g.style.pointerEvents="none";document.body.appendChild(g);let x=[];x.push("Impedance measured directly <br />at the antenna feedpoint.");m&&v&&q>0&&x.push("Impedance measured at the transmitter end of the selected <br >"+C+"-meter length of '"+z+"' coax cable.");for(let N=0;N<x.length;N++)A[N].addEventListener("mouseenter",function(R){g.innerHTML=x[N];g.style.left=R.pageX+12+"px";g.style.top=R.pageY+12+"px";g.style.display="block"}),A[N].addEventListener("mousemove",function(R){g.style.left= 91R.pageX+12+"px";g.style.top=R.pageY+12+"px"}),A[N].addEventListener("mouseleave",function(){g.style.display="none"})}).then(function(A){document.getElementById("divSmithChartPlotly").on("plotly_restyle",function(g){let x=g[1][0];g=g[0].visible[0];x<2&&toggleSmithChartAnnotBlock(x,g!=="legendonly"?1:0)})}).then(function(A){A=document.getElementById("divSmithChartPlotly");A.on("plotly_hover",function(g){g=g.points[0];var x=g.data.name;x=="Feedpoint"?(x=g.pointIndex,g=g.customdata,$("#spanSmithChartAnnotsFptFreq").html(g[0].toFixed(2)), 92$("#spanSmithChartAnnotsFptImpRe").html(g[1].toFixed(2)),$("#spanSmithChartAnnotsFptImpIm").html(g[2].toFixed(2)),$("#spanSmithChartAnnotsFptVSWR").html(g[3].toFixed(2)),F.length>0&&(x=F[x],$("#spanSmithChartAnnotsTRXFreq").html(x[0].toFixed(2)),$("#spanSmithChartAnnotsTRXImpRe").html(x[1].toFixed(2)),$("#spanSmithChartAnnotsTRXImpIm").html(x[2].toFixed(2)),$("#spanSmithChartAnnotsTRXVSWR").html(x[3].toFixed(2)))):x=="TRX end"&&(x=g.pointIndex,g=g.customdata,x=e[x],$("#spanSmithChartAnnotsFptFreq").html(x[0].toFixed(2)), 93$("#spanSmithChartAnnotsFptImpRe").html(x[1].toFixed(2)),$("#spanSmithChartAnnotsFptImpIm").html(x[2].toFixed(2)),$("#spanSmithChartAnnotsFptVSWR").html(x[3].toFixed(2)),$("#spanSmithChartAnnotsTRXFreq").html(g[0].toFixed(2)),$("#spanSmithChartAnnotsTRXImpRe").html(g[1].toFixed(2)),$("#spanSmithChartAnnotsTRXImpIm").html(g[2].toFixed(2)),$("#spanSmithChartAnnotsTRXVSWR").html(g[3].toFixed(2)))});A.on("plotly_unhover",function(g){});A.on("plotly_click",function(g){})});plotlySmithChartLoaded=!0}} 94function calculateAttenuatedSmithChartCurveData(){var a=aImpedData.length,b=aImpedData[a-1][0];var c=aCableAttenData[0];for(var e=0;e<aCableAttenData.length;e++){var d=aCableAttenData[e][0];if(d>=b&&d>c[0]){var n=aCableAttenData[e];break}}if(n.length==0)alert("Ouch!");else{b=(Math.log10(n[1])-Math.log10(c[1]))/(Math.log10(n[0])-Math.log10(c[0]));n=Math.log10(c[1])-b*Math.log10(c[0]);c=[];for(e=0;e<a;e++)d=aImpedData[e][0],d=[d,Math.pow(10,n)*Math.pow(d,b)],c.push(d);a=new Complex(50,0);b=new Complex(1, 950);n=aCableAttenData[0][2]/100;e=parseInt($("#selCoaxLength").val());var w=[];for(let m=0;m<aImpedData.length;m++){d=aImpedData[m][0];var f=aImpedData[m][1];var h=aImpedData[m][2];var p=c[m][1]*e/100;f=new Complex(f,h);f=f.sub(a).div(f.add(a));p/=8.685889638;h=2*Math.PI*d*1E6*e/(SPEED_OF_LIGHT*n);p=(new Complex(-2*p,-2*h)).exp();h=f.mul(p);f=a.mul(b.add(h).div(b.sub(h)));p=f.re;f=f.im;h=h.abs();h=(1+h)/(1-h);w.push([d,h,p,f])}return w}} 96function initSmithChartAnnotBlocks(a){let b=$("#divSmithChartFptAnnotations"),c=$("#divSmithChartTRXAnnotations");b.css("display","none");c.css("display","none");a?(b.css("top","240px"),b.css("display","block"),c.css("top","350px"),c.css("display","block")):(b.css("top","350px"),b.css("display","block"))}function toggleSmithChartAnnotBlock(a,b){let c=$("#divSmithChartFptAnnotations"),e=$("#divSmithChartTRXAnnotations");[c,e][a].css("visibility",b?"visible":"hidden")}
97function toggleSmithChartVSWRCircles(){let a=$("#inpChkConstantVSWRCurves").is(":checked"),b=document.getElementById("divSmithChartPlotly"),c=[];b.data.forEach((e,d)=>{e.name&&e.name.startsWith("ConstVSWR")&&c.push(d)});Plotly.restyle(b,{visible:a},c)};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.