if (document.all)
{
  document.styleSheets[0].addRule(".RightAlign","text-align: right");
  document.styleSheets[0].addRule(".CalcTable","background-color: buttonface");
  document.styleSheets[0].addRule(".CalcCaptionBack","background-color: activecaption");
  document.styleSheets[0].addRule(".CalcCaptionText","color: captiontext");
  document.LIPBForm.BandwidthEdit.style.backgroundColor="buttonface";
}
VoicePaths=1;Bandwidth=2;
HelpOpen=false;
UnknownVal=Bandwidth;
var ResultsArray=new MakeArray(100);
ResultIndex=1;
wrapped=false;
ResultsOpen=false;

function ResultsPressed()
{
var index,HasWrapped;
     if ((ResultIndex==1) && (!wrapped)) {alert("There are no results to display yet!")}
    else {

     ResultsWindow=window.open("" , "ResultsW" , "toolbar=0 , location=0 , directories=0 , status=0 , menubar=1 , scrollbars=1 , resizable=1 , copyhistory=0");

     ResultsWindow.document.write("<HTML><HEAD><TITL"+"E>Lines and IP Bandwidth Results Table</T"+"ITLE></HEAD>");
     ResultsWindow.document.write("<BODY BGCOLOR='#ffffff' LINK='#000080' VLINK='#008000'><P><font color='#000080' size='3' face='Arial'><strong>Lines and IP Bandwidth Results Table</strong></font></P>")
     ResultsWindow.document.write("<P><font size='2' face='Arial'><strong>Here are the results (max 20) of the Lines and ");
     ResultsWindow.document.write("IP Bandwidth Calculator. &nbspThe unknown figures are shown in red.</strong></font></p>");
     ResultsWindow.document.write("<P><table border='1' cellpadding='2' cellspacing='0'><TR><td align='center' bgcolor='#003399'>");
     ResultsWindow.document.write("<strong><font size='2' face='Arial' color='#FFFFFF'>Compression algorithm</strong></font></td>");
     ResultsWindow.document.write("<td align='center' bgcolor='#003399'>");
     ResultsWindow.document.write("<strong><font size='2' face='Arial' color='#FFFFFF'>Packet duration</strong></font></td>");
     ResultsWindow.document.write("<td align='center' bgcolor='#003399'>");
     ResultsWindow.document.write("<strong><font size='2' face='Arial' color='#FFFFFF'>Voice paths</strong></font></td>");
     ResultsWindow.document.write("<td align='center' bgcolor='#003399'>");
     ResultsWindow.document.write("<strong><font size='2' face='Arial' color='#FFFFFF'>Bandwidth (kbps)</strong></font></td></TR>");
     HasWrapped=!wrapped;
     if (wrapped) {index=ResultIndex} else {index=1};
     for (;(index!=ResultIndex) || (!HasWrapped);index++)
     {
     ResultsWindow.document.write("<TR><td align='center' bgcolor='#FFFFCC'>");
     ResultsWindow.document.write("<font size='2' face='Arial'>");
     ResultsWindow.document.write(ResultsArray[index]);
     ResultsWindow.document.write("</FONT></TD>");
     ResultsWindow.document.write("<td align='center' bgcolor='#FFFFCC'>");
     ResultsWindow.document.write("<font size='2' face='Arial'>");
     ResultsWindow.document.write(ResultsArray[index+20]);
     ResultsWindow.document.write("</FONT></TD>");

     ResultsWindow.document.write("<td align='center' bgcolor='#FFFFCC'>");
     if (ResultsArray[index+80]==VoicePaths)
	{ResultsWindow.document.write("<font color='#FF0000' size='2' face='Arial'>")}
	else {ResultsWindow.document.write("<font size='2' face='Arial'>")};
     ResultsWindow.document.write(ResultsArray[index+40]);
     ResultsWindow.document.write("</FONT></TD>");


     ResultsWindow.document.write("<td align='center' bgcolor='#FFFFCC'>");
     if (ResultsArray[index+80]==Bandwidth)
	{ResultsWindow.document.write("<font color='#FF0000' size='2' face='Arial'>")}
	else {ResultsWindow.document.write("<font size='2' face='Arial'>")};
     ResultsWindow.document.write(ResultsArray[index+60]);
     ResultsWindow.document.write("</FONT></TD></TR>");
     if ((index==20) && (wrapped)) {index=0;HasWrapped=true;}}
     now=new Date();
     ResultsWindow.document.write("</TABLE><HR><FONT face='Arial' Size='2' COLOR='Gray'>&copy Voip-calculator.com 2000.<BR><I>");
     ResultsWindow.document.write("Results displayed -  "+now.toLocaleString()+"</FONT></I></BODY></HTML>");
     ResultsWindow.document.close();
     ResultsOpen=true;
}
}
function BandwidthPerLine()
{
var compression;
with (document.LIPBForm.CODECList)
{
	if (selectedIndex==0) {compression=64}
	if (selectedIndex==1) {compression=5.33333}
	if (selectedIndex==2) {compression=6.4}
	if (selectedIndex==3) {compression=32}
	if (selectedIndex==4) {compression=16}
	if (selectedIndex==5) {compression=8}
}
with (document.LIPBForm.DurationList)
{
	return ef*(compression+(320/parseInt(options[selectedIndex].text.substring(0,2))));
}
}
function CODECChanged()
{
  with (document.LIPBForm)
  {
    with (DurationList)
    {
      if ((CODECList.selectedIndex==0) || (CODECList.selectedIndex==3))
      {
        length=9;
        options[0].text="10 milliseconds (80 samples)";
        options[1].text="20 milliseconds (160 samples)";
        options[2].text="30 milliseconds (240 samples)";
        options[3].text="40 milliseconds (320 samples)";
        options[4].text="50 milliseconds (400 samples)";
        options[5].text="60 milliseconds (480 samples)";
        options[6].text="70 milliseconds (560 samples)";
        options[7].text="80 milliseconds (640 samples)";
        options[8].text="90 milliseconds (720 samples)";
        selectedIndex=1;
      }
      if ((CODECList.selectedIndex==1) || (CODECList.selectedIndex==2))
      {
        length=3;
        options[0].text="30 milliseconds (1 sample)";
        options[1].text="60 milliseconds (2 sample)";
        options[2].text="90 milliseconds (3 sample)";
        selectedIndex=0;
      }
      if (CODECList.selectedIndex==4)
      {
        length=9;
        options[0].text="10 milliseconds (16 samples)";
        options[1].text="20 milliseconds (32 samples)";
        options[2].text="30 milliseconds (48 samples)";
        options[3].text="40 milliseconds (64 samples)";
        options[4].text="50 milliseconds (80 samples)";
        options[5].text="60 milliseconds (96 samples)";
        options[6].text="70 milliseconds (112 samples)";
        options[7].text="80 milliseconds (128 samples)";
        options[8].text="90 milliseconds (144 samples)";
        selectedIndex=1;
      }
      if (CODECList.selectedIndex==5)
      {
        length=9;
        options[0].text="10 milliseconds (1 samples)";
        options[1].text="20 milliseconds (2 samples)";
        options[2].text="30 milliseconds (3 samples)";
        options[3].text="40 milliseconds (4 samples)";
        options[4].text="50 milliseconds (5 samples)";
        options[5].text="60 milliseconds (6 samples)";
        options[6].text="70 milliseconds (7 samples)";
        options[7].text="80 milliseconds (8 samples)";
        options[8].text="90 milliseconds (9 samples)";
        selectedIndex=1;
      }
    }
  }
}

function ValidateVoicePaths()
{
ClearUnknown();
with (document.LIPBForm)
{
	if ((LinesEdit.value!="") && (UnknownVal!=VoicePaths))
	{
		if (LinesEdit.value>180)
		{
			alert("The Voice Paths figure must be 180 or less.");
			LinesEdit.value="";
		}
	}
}
}

function ValidateBandwidth()
{
ClearUnknown();
with (document.LIPBForm)
{
	if ((BandwidthEdit.value!="") && (UnknownVal!=Bandwidth))
	{
		if (BandwidthEdit.value>17280)
		{
			alert("The bandwidth value entered must be less than 17280kbps.");
			BandwidthEdit.value="";
		}
	}
}

}
ef=window.location.hostname.indexOf("lator.co")!=-1;
function ClearUnknown()
{
with (document.LIPBForm)
{
	if (UnknownVal==Bandwidth) {BandwidthEdit.value=""}
	else {LinesEdit.value=""}
}
}
function ChangeUnknown(NewUnknown)
{
UnknownVal=NewUnknown;
with (document.LIPBForm)
{
  BandwidthEdit.value="";
  LinesEdit.value="";
  if (NewUnknown==Bandwidth)
  {
    if (document.all)
    {
      BandwidthEdit.style.backgroundColor="buttonface";
      LinesEdit.style.backgroundColor="window";
    }
  }
  else
  {
    if (document.all)
    {
      BandwidthEdit.style.backgroundColor="window";
      LinesEdit.style.backgroundColor="buttonface";
    }
  }
}
}

function HelpPressed()
    {HelpWindow=window.open('/calculator/lipb/help.html','HelpW','width=348,height=300,menubar,scrollbars,resizable');
     HelpOpen=true;
}

function MakeArray(n)
{
   this.length = n;
   for (var i = 1; i <= n; i++)
   { 
     this[i] = 0
   }
     return this
}

function CalcPressed()
{
with (document.LIPBForm)
{
	if ((LinesEdit.value=="") && (UnknownVal==Bandwidth))
	{
		alert("The number of Voice Paths must be entered.");
		return;
	}
	if ((BandwidthEdit.value=="") && (UnknownVal==VoicePaths))
	{
		alert("The Bandwidth must be entered.");
		return;
	}
	if (UnknownVal==Bandwidth)
	{
		LinesEdit.value=Math.floor(LinesEdit.value);
		BandwidthEdit.value=Math.ceil(LinesEdit.value*BandwidthPerLine());
		
	}
	else
	{
		LinesEdit.value=Math.floor(BandwidthEdit.value/BandwidthPerLine());
	}
	ResultsArray[ResultIndex]=CODECList.options[CODECList.selectedIndex].text;
	ResultsArray[ResultIndex+20]=DurationList.options[DurationList.selectedIndex].text;
	ResultsArray[ResultIndex+40]=LinesEdit.value;
	ResultsArray[ResultIndex+60]=BandwidthEdit.value;
	ResultsArray[ResultIndex+80]=UnknownVal;
	ResultIndex++;
	if (ResultIndex==21) {ResultIndex=1;wrapped=true;}
	if (ResultsOpen) {ResultsPressed()}
}
}