//============================================================+
// AWG calculator              || Author:                     |
// A JavaScript Program        ||-----------------------------|
//                             || Nicola Asuni                |
//                             || Via Ugo Foscolo n.19        |
// ----------------------------|| 09045 Quartu Sant'Elena (CA)|
// start          : 31/01/2001 || info@technick.net           |
// last update    : 31/01/2001 || www.technick.net            |
//============================================================+
// (c) Copyright 1999-2001 Tecnick.com s.r.l.

//variables and arrays
var conv = 0.0254; // 1 mils in mm
var awg = 0;
var temperature = 20;
var T0 = 20; 

// Error message  ----------------------------------------------------------
function InputError() {alert("INPUT ERROR: Please check values");}

// Check input values
// --------------------------------------------------------------------------
function Check_A()
{
	if(isNaN(document.awgform.awg.value)) return(0); 
	awg = document.awgform.awg.value;
	return(1);
}

function Check_T()
{
	if(isNaN(document.awgform.temperature.value)) return(0); 
	temperature = document.awgform.temperature.value;
	return(1);
}

// Calculate Diameter -----------------------------------------
function Diameter(AWG)
{
 var d1 = 5;
 var d2 = 460;
 var g1 = 36;
 var g2 = -3;
 return(conv*(Math.pow( d1 , (AWG - g2) / (g1 - g2) ) * Math.pow( d2 , (g1 - AWG) / (g1 - g2) )) );
}

// Calculate Diameter -----------------------------------------
function CalculateAWG()
{
 var diameter = 0;
 var area = 0;
 var resistance = 0;
 var rho = 0; //resistivity at temperature of interest [Ohm * meter]
 var rhoT0 = 0; //resistivity at reference temperature [Ohm * meter]
 var a = 0; //temperature coefficient of resistivity [1/deg Celsius] at 20 degree Celsius
 
 switch(document.awgform.material.options[document.awgform.material.selectedIndex].value) //at 20 degree Celsius
 {
 	case "Copper"   : {rhoT0=0.0000000168;  a=0.0068;   break;} 
	case "Silver"   : {rhoT0=0.0000000159;  a=0.0061;   break;}
	case "Aluminium": {rhoT0=0.0000000265;  a=0.00429;  break;} 
	case "Tungsten" : {rhoT0=0.000000056;   a=0.0045;   break;}
	case "Iron"     : {rhoT0=0.0000000971;  a=0.00651;  break;}
	case "Platinum" : {rhoT0=0.000000106;   a=0.003927; break;} 
	case "Manganin" : {rhoT0=0.000000482;   a=0.000002; break;}
	case "Mercury"  : {rhoT0=0.00000098;    a=0.0009;   break;} 
	case "Nichrome" : {rhoT0=0.000001;      a=0.0004;   break;} 
 }
 
 if ( Check_A() && Check_T() )
 	{
 	diameter = Diameter(awg);
 	area = diameter * diameter * Math.PI / 4;
	rho =  rhoT0 * (1 + a*(temperature - T0));               
	resistance = rho/(area/1000000);

 	document.awgform.diameter.value = diameter;
 	document.awgform.area.value = area;
 	document.awgform.resistance.value = resistance;
 	}
 return;
}

// -------------------------------------------------------------------------
// END OF SCRIPT
// -------------------------------------------------------------------------




