function NetworkUtility(){this.pings=[];this.average=0;this.num_tests=120;this.off=0;}NetworkUtility.prototype.ping=function(A){var C=new Date();var B=C.getTime();var E=$H({i:"Help.ping",seq:A,time:B});var D=function(I){var L=I.responseText;var K=L.split("|");var H=K[0];var J=new Date();var F=J.getTime();var G=F-K[1];O_HELP_CONTAINER.nu.pings[H]=G;O_HELP_CONTAINER.nu.update();};ajax_request(E.toQueryString(),null,D);};NetworkUtility.prototype.ping_test=function(){if(O_APP.NetworkUtility_test_running){return ;}else{$("network_utility_btn").disabled=true;O_APP.NetworkUtility_test_running=true;var B=1000;this.pings=[];var E="<table cellpadding='5' style='color: #fff; font-weight: bold;' width='100%'><tr><td>"+O_APP.strings["requests"]+": <span class='nu_input'id='nu_requests' /></td><td>"+O_APP.strings["min_elapsed"]+": <span class='nu_input' id='nu_min' /></td><td>"+O_APP.strings["max_elapsed"]+": <span class='nu_input' id='nu_max' /></td><td>"+O_APP.strings["avg_elapsed"]+": <span class='nu_input' id='nu_avg' /></td></tr><tr><td align='center' colspan='4'>"+O_APP.strings["dropped_requests"]+": <span class='nu_input' id='nu_dropped' /></td></tr><td style='padding: 15px;' align='center' colspan='4'>"+O_APP.strings["connection_quality"]+": <span id='nu_quality' style='padding-left: 5px; padding-right: 5px; text-transform: uppercase; font-weight: bold'></span></td></tr></table>";$("network_utility").innerHTML=E;for(var C=0;C<this.num_tests;C++){var A=C;var D="O_HELP_CONTAINER.nu.ping( "+A+")";setTimeout(D,C*B);}}};NetworkUtility.prototype.update=function(){var G=0;var H=0;var D=999999;var A=0;for(var B=0;B<this.pings.length;B++){var J=this.pings[B];if(J){G+=J;if(J>H){H=J;}if(J<D){D=J;}}else{A++;}}var F=G/this.pings.length;F=Math.round(F);if(this.pings.length==this.num_tests){$("nu_requests").innerHTML=O_APP.strings["test_complete"];$("nu_requests").style.color="#00ff00";$("network_utility_btn").disabled=false;O_APP.NetworkUtility_test_running=false;}else{$("nu_requests").innerHTML=this.pings.length+"/"+this.num_tests;}$("nu_dropped").innerHTML=A;$("nu_max").innerHTML=H;$("nu_min").innerHTML=D;$("nu_avg").innerHTML=F;var I="";var C="";if(F>1400){I=O_APP.strings["very_poor"];C="#ff0000";}else{if(F>1100){I=O_APP.strings["poor"];C="#ff4400";}else{if(F>800){I=O_APP.strings["fair"];C="#ffff00";}else{if(F>500){I=O_APP.strings["good"];C="#00bb00";}else{I=O_APP.strings["excellent"];C="#00ff00";}}}}if(A){I=O_APP.strings["very_poor"];C="#ff0000";$("nu_dropped").style.color="#ff0000";}else{$("nu_dropped").style.color="#ffffff";}var E=$("nu_quality").style;E.color=C;E.border="1px solid "+C;$("nu_quality").innerHTML=I;};