//**************************************************************************
// JavaScript for unreg_ps.html
//**************************************************************************

var DC_Req, DC_Out, T1_Pri, T1_Sec;
var NL_DC_Out, FL_DC_Out, V_Reg;

function PwrCct_1_Calc() {

   //******************************************************************
   // Prompt for the intended output voltage and then calculate a
   // optimum transformer for the job.
   //******************************************************************

   DC_Req = parseFloat(document.PwrCct_1.DC_Req.value);
   DC_Out = DC_Req;
   T1_Pri = 117;
   T1_Sec = (DC_Out+1.4)/1.41;
   NL_DC_Out = T1_Sec*1.41;
   FL_DC_Out = DC_Out;
   V_Reg = 100*(NL_DC_Out-DC_Out)/DC_Out;

   document.getElementById("DC_Out_Ini").innerHTML = DC_Out;
   document.getElementById("T1_Pri_Ini").innerHTML = T1_Pri;
   document.getElementById("T1_Sec_Ini").innerHTML = Rnd(T1_Sec,2);
   document.getElementById("NL_DC_Out_Ini").innerHTML = Rnd(NL_DC_Out,2);
   document.getElementById("FL_DC_Out_Ini").innerHTML = Rnd(FL_DC_Out,2);
   document.getElementById("V_Reg_Ini").innerHTML = Rnd(V_Reg,2);

   //******************************************************************
   // Ask if the user wants to specify a different transformer. The input
   // should be the transformer secondary voltage and should be higher
   // than the previous specifications.
   //******************************************************************

   New_T1_Sec = parseFloat(document.PwrCct_1.New_T1_Sec.value);
   New_DC_Req = 1.41 * New_T1_Sec - 1.4;
   New_DC_Out = New_DC_Req;
   New_T1_Pri = 117;
   New_NL_DC_Out = New_T1_Sec*1.41;
   New_FL_DC_Out = New_DC_Out;
   New_V_Reg = 100*(New_NL_DC_Out-New_DC_Out)/New_DC_Out;

   document.getElementById("T1_Sec_XSpec_Hdr").innerHTML = Rnd(New_T1_Sec,2);
   document.getElementById("T1_Pri_XSpec").innerHTML = New_T1_Pri;
   document.getElementById("T1_Sec_XSpec").innerHTML = Rnd(New_T1_Sec,2);
   document.getElementById("NL_DC_Out_XSpec").innerHTML = Rnd(New_NL_DC_Out,2);
   document.getElementById("FL_DC_Out_XSpec").innerHTML = Rnd(New_FL_DC_Out,2);
   document.getElementById("V_Reg_XSpec").innerHTML = Rnd(New_V_Reg,2);

   //******************************************************************
   // Prompt for the required output current I_Out and Ripple percentage
   // and then calculate the part specifications.
   //******************************************************************

   I_Out = parseFloat(document.PwrCct_1.I_Out.value);
   Ripple_Percent = parseFloat(document.PwrCct_1.Ripple_Percent.value);

   Time_Const = 1/120;
   Ripple_Voltage = Ripple_Percent / 100 * New_T1_Sec * 2.8
   C_Val = Rnd((I_Out*Time_Const/Ripple_Voltage)*1000000,0)
   Working_Voltage = Rnd(1.4 * New_T1_Sec,0)

   document.getElementById("I_Out_Spec").innerHTML = I_Scale(I_Out);
   document.getElementById("Ripple_Percent_Spec").innerHTML = Ripple_Percent;
   document.getElementById("C_Val_Calc").innerHTML = comma_ins(C_Val);
   document.getElementById("WV_Calc").innerHTML = Working_Voltage;

   Volt_Amp = Rnd(New_T1_Sec * I_Out,0);

   Diode_PRV = Rnd(New_T1_Sec * 2 * 1.41,0);
   Diode_I_Rating = 2 * I_Out;

   I_T1 = Rnd(Volt_Amp/117,2); I_T2 = Rnd(Volt_Amp/New_T1_Sec,2);
   R_Sec = New_T1_Sec / I_Out; P_Out = Rnd(New_T1_Sec * I_Out,2);

   F1 = Rnd((I_Out * New_T1_Sec / 117) * 1.2,1);
   if ( F1 < 0.1 ) F1 = 0.1;

   C_Std = parseFloat(document.PwrCct_1.C_Std.value);
   Ripple_Voltage = I_Out*Time_Const*1000000/C_Std;
   Ripple_Percent = Rnd(Ripple_Voltage*100/New_T1_Sec/2.8,2);

   Bleeder_R = 100 * NL_DC_Out;
   Bleeder_I = NL_DC_Out / Bleeder_R;
   Bleeder_P = Math.pow(Bleeder_I,2) * Bleeder_R;
   Wattage = Rnd(5 * Bleeder_P + .5,1);

   Pilot_V = New_DC_Req - 2;
   Pilot_I = .01;
   Pilot_R = Pilot_V/Pilot_I;
   Diode_I = Pilot_V / Pilot_R;

   Part_Data = "";
   Part_Data += "Power Transformer, " + Volt_Amp + " VoltAmps<BR>";
   Part_Data += New_T1_Pri + " Volts @ " + I_T1 + " Amps AC Primary<BR>";
   Part_Data += Rnd(New_T1_Sec,1) + " Volts @ " + I_T2 + " Amps AC Secondary<BR>";
   Part_Data += R_Sec + " Ohms Load Resistance<BR>";
   Part_Data += P_Out + " Watts Power Dissipation\n\n";

   document.getElementById("T1_Desc").innerHTML = Part_Data;

   Part_Data = "Diode, Rectifier, " + I_Scale(Diode_I_Rating)+ ", " + Diode_PRV + " PRV";
   document.getElementById("D1_D4_Desc").innerHTML = Part_Data;

   Part_Data = "Diode, Light Emitting, " + "2.0 Volts @ " + I_Scale(Diode_I);
   document.getElementById("D5_Desc").innerHTML = Part_Data;

   Part_Data = "Electrolytic Capacitor, " + comma_ins(C_Std) + " uF @ " + Working_Voltage + " WVDC";
   document.getElementById("C1_Desc").innerHTML = Part_Data;

   Part_Data = "Resistor, Bleeder, " + comma_ins(Get_Std_Res(Bleeder_R,"GT",10)) + " Ohms @ " + Wattage + " Watts";
   document.getElementById("R1_Desc").innerHTML = Part_Data;

   Part_Data = "Resistor, Pilot, " + comma_ins(Get_Std_Res(Pilot_R,"GT",10)) + " Ohms";
   document.getElementById("R2_Desc").innerHTML = Part_Data;

   Part_Data = "Fuse, " + F1 + " Amps, mimimum";
   document.getElementById("F1_Desc").innerHTML = Part_Data;

   //******************************************************************
   // Get the value of the Standared Value Capacitor
   //******************************************************************

   C_Std = parseFloat(document.PwrCct_1.C_Std.value);
   Ripple_Voltage = I_Out*Time_Const*1000000/C_Std;
   Ripple_Percent = Rnd(Ripple_Voltage*100/New_T1_Sec/2.8,2);

   document.getElementById("No_Load_Out").innerHTML = Rnd(New_NL_DC_Out,2) + " Volts DC";
   document.getElementById("Full_Load_Out").innerHTML = Rnd(New_FL_DC_Out,2) + " Volts DC";
   document.getElementById("Load_Reg_Out").innerHTML = Rnd(Ripple_Percent,2) + " %";

}


