//-- Noise Figure Conversion
function conv_nfigure(){
	userin=document.cv_noise.in_nfigure.value;
	if (userin == 0){
		userin=3.0;
		document.cv_noise.in_nfigure.value=userin;
	}
	noise_figure=eval(userin);
	if (noise_figure<0){
		noise_figure=-noise_figure;
	}
      noise_factor = Math.pow(10,(noise_figure/10));
      noise_temp = 290 * (noise_factor - 1);

	document.cv_noise.in_nfactor.value = Math.round(noise_factor*1000)/1000;
	document.cv_noise.in_ntemp.value = Math.round(noise_temp*10)/10;

}
//-- Noise Factor Conversion
function conv_nfactor(){
	log10 = Math.log(10);
	userin=document.cv_noise.in_nfactor.value;
	if (userin < 1){
		userin=2.0;
		document.cv_noise.in_nfactor.value=userin;
	}
	noise_factor=eval(userin);
      noise_temp = 290 * (noise_factor - 1);
      noise_figure = 10 * Math.log(noise_factor) / log10;
	document.cv_noise.in_nfigure.value = Math.round(noise_figure * 1000)/1000;
	document.cv_noise.in_ntemp.value = Math.round(noise_temp * 10)/10;

}
//-- Noise Temperature Conversion
function conv_ntemp(){
	log10 = Math.log(10);
	userin=document.cv_noise.in_ntemp.value;
	if (userin <= 0){
		userin=290.0;
		document.cv_noise.in_ntemp.value=userin;
	}
	noise_temp =eval(userin);
      noise_factor = 1 + (noise_temp/ 290);
      noise_figure = 10 * Math.log(noise_factor) / log10;
	document.cv_noise.in_nfigure.value = Math.round(noise_figure * 1000)/1000;
	document.cv_noise.in_nfactor.value = Math.round(noise_factor * 1000)/1000;

}
//-- VSWR Conversion
function conv_vswr(){
	log10 = Math.log(10);
	userin=document.cv_reflect.in_vswr.value;
	if (userin <= 0){
		userin=2.0;
		document.cv_reflect.in_vswr.value=userin;
	}
	vswr = eval(userin);
      gamma = (vswr - 1) / (vswr + 1);
      if (gamma < 0.000001){
      	return_loss = 9999;
      }else{
            return_loss = -20 * Math.log(gamma) / log10;
      }
      if (gamma > 0.999999){ 
      	insert_loss = 9999;
      }else{
            insert_loss = -10 * Math.log(1 - (gamma* gamma)) / log10;
      }
	document.cv_reflect.in_rloss.value = Math.round(return_loss * 100)/100;
	document.cv_reflect.in_gamma.value = Math.round(gamma * 1000)/1000;
	document.cv_reflect.in_iloss.value = Math.round(insert_loss * 100)/100;
}
//-- Return Loss Conversion
function conv_rloss(){
	log10 = Math.log(10);
	userin=document.cv_reflect.in_rloss.value;
	if (userin <= 0){
		userin=10.0;
		document.cv_reflect.in_rloss.value=userin;
	}
	return_loss = eval(userin);
      gamma = Math.pow(10,(-return_loss/ 20));
      if (gamma > 0.999999){ 
      	insert_loss = 9999;
      	vswr = 9999;
      }else{
            insert_loss = -10 * Math.log(1 - (gamma* gamma)) / log10;
      	vswr = (1 + gamma) / (1 - gamma);
      }
	document.cv_reflect.in_vswr.value = Math.round(vswr * 100)/100;
	document.cv_reflect.in_gamma.value = Math.round(gamma * 1000)/1000;
	document.cv_reflect.in_iloss.value = Math.round(insert_loss * 100)/100;
}
//-- Gamma Conversion
function conv_gamma(){
	log10 = Math.log(10);
	userin=document.cv_reflect.in_gamma.value;
	if ((userin <= 0) || (userin > 1)){
		userin=0.333;
		document.cv_reflect.in_gamma.value=userin;
	}
	gamma = eval(userin);
      if (gamma < 0.000001){
      	return_loss = 9999;
      }else{
            return_loss = -20 * Math.log(gamma) / log10;
      }
      if (gamma > 0.999999){ 
      	insert_loss = 9999;
      	vswr = 9999;
      }else{
            insert_loss = -10 * Math.log(1 - (gamma* gamma)) / log10;
      	vswr = (1 + gamma) / (1 - gamma);
      }
	document.cv_reflect.in_vswr.value = Math.round(vswr * 100)/100;
	document.cv_reflect.in_rloss.value = Math.round(return_loss * 100)/100;
	document.cv_reflect.in_iloss.value = Math.round(insert_loss * 100)/100;
}
//-- Insertion Loss Conversion
function conv_iloss(){
	log10 = Math.log(10);
	userin=document.cv_reflect.in_iloss.value;
	if (userin == 0){
		userin=0.5;
		document.cv_reflect.in_iloss.value=userin;
	}
	insert_loss = eval(userin);
	if (insert_loss < 0){
		insert_loss=-insert_loss;
	}
      gamma = Math.sqrt(1 - Math.pow(10,(-insert_loss / 10)));
      if (gamma < 0.000001){
      	return_loss = 9999;
      }else{
            return_loss = -20 * Math.log(gamma) / log10;
      }
      if (gamma > 0.999999){ 
      	vswr = 9999;
      }else{
      	vswr = (1 + gamma) / (1 - gamma);
      }
	document.cv_reflect.in_vswr.value = Math.round(vswr * 100)/100;
	document.cv_reflect.in_rloss.value = Math.round(return_loss * 100)/100;
	document.cv_reflect.in_gamma.value = Math.round(gamma * 1000)/1000;
}
//-- MilliWatt Conversion
function conv_mw(){
	log10 = Math.log(10);
	userin=document.cv_power.in_mw.value;
	if (userin == 0){
		userin=200;
		document.cv_power.in_mw.value=userin;
	}
	mw = eval(userin);
	if (mw  < 0){
		mw =-mw ;
	}
	dbm = 10 * Math.log(mw) / log10;
	dbw = dbm - 30;
	w = mw / 1000;

	document.cv_power.in_w.value = Math.round(w * 1000)/1000;
	document.cv_power.in_dbm.value = Math.round(dbm  * 100)/100;
	document.cv_power.in_dbw.value = Math.round(dbw * 100)/100;
}
//-- Watt Conversion
function conv_w(){
	log10 = Math.log(10);
	userin=document.cv_power.in_w.value;
	if (userin == 0){
		userin=50;
		document.cv_power.in_w.value=userin;
	}
	w = eval(userin);
	if (w  < 0){
		w =-w ;
	}
	mw = w * 1000;
	dbm = 10 * Math.log(mw) / log10;
	dbw = dbm - 30;

	document.cv_power.in_mw.value = Math.round(mw * 100)/100;
	document.cv_power.in_dbm.value = Math.round(dbm  * 100)/100;
	document.cv_power.in_dbw.value = Math.round(dbw * 100)/100;
}
//-- dBm Conversion
function conv_dbm(){
	log10 = Math.log(10);
	userin=document.cv_power.in_dbm.value;
	if (userin == 0){
		userin=10;
		document.cv_power.in_dbm.value=userin;
	}
	dbm= eval(userin);
	mw = Math.pow(10,(dbm / 10));
	w = mw / 1000;
	dbw = dbm - 30;

	document.cv_power.in_mw.value = Math.round(mw * 100)/100;
	document.cv_power.in_w.value = Math.round(w * 1000)/1000;
	document.cv_power.in_dbw.value = Math.round(dbw * 100)/100;
}
//-- dBW Conversion
function conv_dbw(){
	log10 = Math.log(10);
	userin=document.cv_power.in_dbw.value;
	if (userin == 0){
		userin=6;
		document.cv_power.in_dbw.value=userin;
	}
	dbw= eval(userin);
	w = Math.pow(10,(dbw / 10));
	mw = w * 1000;
	dbm = dbw + 30;

	document.cv_power.in_mw.value = Math.round(mw * 100)/100;
	document.cv_power.in_w.value = Math.round(w * 1000)/1000;
	document.cv_power.in_dbm.value = Math.round(dbm  * 100)/100;
}
//-- Temperature Conversion
function conv_temp(){
	userin=document.cv_temp.in_temp.value;
	
	// WHY IS THIS HERE? 
	//if (userin == 0){
	//	userin=25.0;
	//	document.cv_temp.in_temp.value=userin;
	//}
	
	baseval=eval(userin);

	Index=document.cv_temp.in_unit.selectedIndex;
	if (Index == 0){
		document.cv_temp.out_C.value=Math.round(baseval*100)/100;
		document.cv_temp.out_F.value=Math.round((baseval*9/5+32)*100)/100;
		document.cv_temp.out_K.value=Math.round((baseval+273.15)*100)/100;
	}else if (Index == 1){
		document.cv_temp.out_C.value=Math.round((5/9*(baseval-32))*100)/100;
		document.cv_temp.out_F.value=Math.round(baseval*100)/100;
		document.cv_temp.out_K.value=Math.round((5/9*(baseval-32)+273.15)*100)/100;
	}else{
		document.cv_temp.out_C.value=Math.round((baseval-273.15)*100)/100;
		document.cv_temp.out_F.value=Math.round(((baseval-273.15)*9/5+32)*100)/100;
		document.cv_temp.out_K.value=Math.round(baseval*100)/100;
	}
}
