﻿//-------General-----------
function GetPrecision() {var result = 4.0; try{result = $get(ddlPrecisionCID).value/1.0;}catch(err){result = 4;}if(isNaN(result))return 4.0;return result;}
function RoundOff(num){return Math.round(num* Math.pow(10, GetPrecision()))/Math.pow(10, GetPrecision());}
//-------Circle-----------
function RotateInputCirc()
{   switch($get("I1Circlbl").innerHTML)
    {
     case "Radius":
      $get("I1Circlbl").innerHTML = "Perimeter";
      SolveCircle();
      break;    
    case "Perimeter":
      $get("I1Circlbl").innerHTML = "Area";
      SolveCircle();         
      break
    case "Area":
      $get("I1Circlbl").innerHTML = "Radius";
      SolveCircle();      
      break
    default:
      $get("I1Circlbl").innerHTML = "Radius"    
      SolveCircle();   
      break
    } 
}

function SolveCircle()
{ var Input = $get("I1Circlbl").innerHTML;
  var IVal = $get("CirRad").value;
  if(!isNaN(IVal))
    if(IVal <= 0)
    {$get("O1Circ").innerHTML = "Must be > 0?";
     $get("O2Circ").innerHTML = "Must be > 0?";return;}
  try{
    switch(Input)
    {case "Radius":
      $get("O1Circlbl").innerHTML = "Perimeter";
      $get("O1Circ").innerHTML = RoundOff(2.0 * Math.PI * IVal);
      $get("O2Circlbl").innerHTML = "Area";
      $get("O2Circ").innerHTML = RoundOff(Math.PI * IVal * IVal);
      break;  
     case "Perimeter":
      $get("O1Circlbl").innerHTML = "Area";
      $get("O1Circ").innerHTML = RoundOff(IVal*IVal/(4.0*Math.PI));
      $get("O2Circlbl").innerHTML = "Radius";
      $get("O2Circ").innerHTML = RoundOff(IVal/(2.0*Math.PI));
      break;
     case "Area":
      $get("O1Circlbl").innerHTML = "Radius";
      $get("O1Circ").innerHTML = RoundOff(Math.pow(IVal/Math.PI, 0.5));
      $get("O2Circlbl").innerHTML = "Perimeter";
      $get("O2Circ").innerHTML = RoundOff(2.0 * Math.PI * Math.pow(IVal/Math.PI, 0.5));
      break;}}
    catch(err){ $get("O1Circ").innerHTML = "Invalid Input!";
    $get("O2Circ").innerHTML = err; }
}
//---------------Ellipse  Start ---------------------
function SolveEllipse()
{  //var i1 =  $get(tbI1Ellipse").value;
  var i1 =  $get(tbI1EllipseCID).value;
  var i2 = $get(tbI2EllipseCID).value;
  if("" == i1 || "" == i2)
    {$get("O1Ellipse").innerHTML = "<span style=\"color: #ff0033\">Enter Input to solve!</span><br/>"; return;}
  if(isNaN(i1) || isNaN(i2))
    {$get("O1Ellipse").innerHTML = "<span style=\"color: #ff0033\">Error! Invalid Data</span><br/>"; return;}
    
   AreaPeriVolu.SolveEllipse($get(ddlEllipse1CID).value, $get(ddlEllipse2CID).value, i1, i2, GetPrecision(), DisplayEllipseResult );
}
function DisplayEllipseResult(result){$get("O1Ellipse").innerHTML = result;}
//-----------------Parallelogram---------
function SolveParall()
{  var i1 =  $get(tbI1ParallCID).value;
   var i2 = $get(tbI2ParallCID).value;
   var i3 = $get(tbI3ParallCID).value;
   
  if("" == i1 || "" == i2 || "" == i3)
    {$get("O1Parall").innerHTML = "<span style=\"color: #ff0033\">Enter Input to solve!</span><br/>"; return;}
  if(isNaN(i1) || isNaN(i2)|| isNaN(i3))
    {$get("O1Parall").innerHTML = "<span style=\"color: #ff0033\">Error! Invalid Data</span><br/>"; return;}
    
   AreaPeriVolu.SolveParall($get(ddl1ParallCID).value, $get(ddl2ParallCID).value, i1, i2, i3, GetPrecision(), DisplayParallResult );
}
function DisplayParallResult(result){$get("O1Parall").innerHTML = result;}
//-----------------RECTANGLE------------
function SolveRectangle()
{
   var i1 = $get(tbI1RectangleCID).value;
   var i2 = $get(tbI2RectangleCID).value;
  if("" == i1 || "" == i2)
    {$get("O1Rectangle").innerHTML = "<span style=\"color: #ff0033\">Enter Input to solve!</span><br/>"; return;}
  if(isNaN(i1) || isNaN(i2))
    {$get("O1Rectangle").innerHTML = "<span style=\"color: #ff0033\">Error! Invalid Data</span><br/>"; return;}
    
   AreaPeriVolu.SolveRectangle($get(ddlRectangle1CID).value, $get(ddlRectangle2CID).value, i1, i2, GetPrecision(), DisplayRectangleResult );
}
function DisplayRectangleResult(result){$get("O1Rectangle").innerHTML = result;}
//---------------Regular Polygon-------
function SolveRegPolygon()
{ var i1 = $get(tbI1RegPolygonCID).value;
  var i2 = $get(tbI2RegPolygonCID).value;
  if("" == i1 || "" == i2)
    {$get("O1RegPolygon").innerHTML = "<span style=\"color: #ff0033\">Enter Input to solve!</span><br/>"; return;}
  if(isNaN(i1) || isNaN(i2))
    {$get("O1RegPolygon").innerHTML = "<span style=\"color: #ff0033\">Error! Invalid Data</span><br/>"; return;}
  if(i1 != Math.round(i1))
    {$get("O1RegPolygon").innerHTML = "<span style=\"color: #ff0033\">N must be an integer and N must be > 2!</span><br/>"; return;}

   AreaPeriVolu.SolveRegPolygon("N", $get(ddlRegPolygon2CID).value, i1, i2, GetPrecision(), DisplayRegPolygonResult );
}
function DisplayRegPolygonResult(result){var test = result; 
$get("O1RegPolygon").innerHTML = result;}
//--------------Trapezoid-------------
function SolveTrapezoid(UseObtuseAngle)
{ 
  var i1 = $get(tbI1TrapezoidCID).value;
  var i2 = $get(tbI2TrapezoidCID).value;
  var i3 = $get(tbI3TrapezoidCID).value;
  var i4 = $get(tbI4TrapezoidCID).value;
  if("" == i1 || "" == i2|| "" == i3|| "" == i4)
    {$get("O1Trapezoid").innerHTML = "<span style=\"color: #ff0033\">Enter Input to solve!</span><br/>"; return;}
  if(isNaN(i1) || isNaN(i2) || isNaN(i3) || isNaN(i3))
    {$get("O1Trapezoid").innerHTML = "<span style=\"color: #ff0033\">Error! Invalid Data</span><br/>"; return;}
   AreaPeriVolu.SolveTrapezoid("b", "t", $get(ddl3TrapezoidCID).value, $get(ddl4TrapezoidCID).value, i1, i2, i3, i4, GetPrecision(), UseObtuseAngle, DisplayTrapezoidResult );
}
function DisplayTrapezoidResult(result)
{$get("O1Trapezoid").innerHTML = result;
 if($get(ddl3TrapezoidCID).value != "Theta" && $get(ddl4TrapezoidCID).value != "Theta" && $get("aTrapezoid").style.display == "none")
        $get("aTrapezoid").style.display = "inline";
 else $get("aTrapezoid").style.display = "none";         
}
//-------------Triangle--------------
function SolveTriangle()
{  var i1 =  $get(tbI1TriangleCID).value;
   var i2 = $get(tbI2TriangleCID).value;
   var i3 = $get(tbI3TriangleCID).value;

  if("" == i1 || "" == i2 || "" == i3)
    {$get("O1Triangle").innerHTML = "<span style=\"color: #ff0033\">Enter Input to solve!</span><br/>"; return;}
  if(isNaN(i1) || isNaN(i2)|| isNaN(i3))
    {$get("O1Triangle").innerHTML = "<span style=\"color: #ff0033\">Error! Invalid Data</span><br/>"; return;}
    
   AreaPeriVolu.SolveTriangle($get(ddlTriangle3CID).value, i1, i2, i3, GetPrecision(), DisplayTriangleResult );
}
function DisplayTriangleResult(result){$get("O1Triangle").innerHTML = result;}

