
	var  En  = 0;
	var  bChanging = false;
	
	// Min - Max parameters -> degrees KELVIN !!
	//   18-6-2001 : no limits -> take extreme values
	var  ThMax =  5000;
	var  ThMin = -273;
	var  TcMax =  5000;
	var  TcMin = -273;
  

	function roundOff(number,precision) {
		precision = parseInt(precision);
		m = Math.pow(10, precision);
		return parseInt(Math.round(number*m))/m;
	}


	function isFilled(elm) {
		return !( (elm.value == "") || (elm.value == null) );
	}


  
  function XtoKelvin( deg ) { 
  	var df = document.forms[0];
  	if ( df.Temperatuur[0].checked )
  		return 273 + parseFloat( deg ); 
  	else
  		return 5/9 * ( parseFloat( deg ) - 32 )  + 273;
  }
  
  function KelvinToX( deg ) { 
  	var df = document.forms[0];
  	if ( df.Temperatuur[0].checked )
		return  parseFloat( deg ) - 273; 
  	else
  		return  9/5*( ( parseFloat( deg ) - 273 ) ) +32;
  }


  // used in error messages
  function KtoDeg( deg ) {
  	var df = document.forms[0];
  	if ( df.Temperatuur[0].checked )
  		return  ""+roundOff( KelvinToX( deg ) , 0 ) +" ºC";
  	else
  		return  ""+roundOff( KelvinToX( deg ) , 2 ) + " ºF";
  }  




  function TestLimits() {
  	var df = document.forms[0];
  	var bh = isFilled( df.Th );
  	var bc = isFilled( df.Tc );
  	var ok = true;
  	if ( bh ) {
		if ( XtoKelvin( df.Th.value ) > ThMax ) {
	  		confirm( "The maximum value for the Hot side is "+ KtoDeg( ThMax ) );
	  		ok = false;
	  	}
	  	if (ok && bc && ( XtoKelvin( df.Th.value ) < parseFloat( df.Tc.value ) ) ){
			confirm( "The Hot side must be warmer than the Cold side" );
			ok = false;
		}
		if ( ok && ( XtoKelvin( df.Th.value ) < ThMin ) ) {
			confirm( "The minimum value for the Hot side is "+ KtoDeg( ThMin ) );
			ok = false;
		}
  	} 
  	if ( ok && bc ) {
		if ( XtoKelvin( df.Tc.value ) > TcMax ) {
	  		confirm( "The maximum value for the Cold side is "+ KtoDeg( TcMax ) );
	  		ok = false;
	  	}
	  	if ( ok && bh && ( XtoKelvin( df.Th.value ) < parseFloat( df.Tc.value ) ) ){
			confirm( "The Cold side must be cooler than the Hot side" );
			ok = false;
		}
		if (ok && ( XtoKelvin( df.Tc.value ) < TcMin ) ) {
			confirm( "The minimum value for the Cold side is "+ KtoDeg( TcMin ) );
			ok = false;
	  	}
  	}  
  	return ok;
  }
  
  
  
  // 19-6-2001 : No BTU's
  function WattToX( watt ) {
	return watt;
  }
  
  function XToWatt( x ) {
	return x;
  }
  
  
  function ChangeOptieTemp(){
  	var df = document.forms[0];

	if ( df.Temperatuur[0].checked ) {
		df.Temperatuur2[0].checked=1;
	} 
	
	if ( df.Temperatuur[1].checked ) {
		df.Temperatuur2[1].checked=1;
	}
    ClearE();
	CalcIt();
  }

  function ChangeOptieTemp2(){
  	var df = document.forms[0];

	if ( df.Temperatuur2[0].checked ) {
		df.Temperatuur[0].checked=1;
	} 
	
	if ( df.Temperatuur2[1].checked ) {
		df.Temperatuur[1].checked=1;
	}
    ClearE();
	CalcIt();
  }

  function ChangeOptieEnergy(){
  	ClearE();
  	CalcIt();
  }
  
  
  function ShowE() {
  	var df = document.forms[0];
  	bChanging = true; 	
  	if ( En != 0 ) {
 		df.En.value = roundOff(  En  , 3 )
		df.E05.value = roundOff( En*0.05 , 3 );
		df.E30.value = roundOff( En*0.30 , 3 );
		df.E70.value = roundOff( En*0.70 , 3 );
	}
	else
	  ClearE();
	bChanging = false;
  }
  
  function ClearE() {
  	var df = document.forms[0];
	En=0;
	df.En.value = "";
	df.E05.value = "";
	df.E30.value = "";
	df.E70.value = "";
  }	  

  function SetEn( e ) {
  	var df = document.forms[0];
  	En = e; 
  	if ( En != 0 ) {
		if ( isFilled( df.Th ) )   // expect Th wanted => calculate cold side
		  df.Tc.value = "";
		CalcIt();
	}
  }
  
  
  function CalcIt() {
  	var df = document.forms[0];
  	var T1 = 0;
  	if ( TestLimits() ) {
	  	// Exx empty
  		if ( En==0 ){
  			if( isFilled( df.Th) && isFilled( df.Tc ) ) {
 				En = WattToX( 1 ) * ( 1- XtoKelvin( df.Tc.value ) / XtoKelvin( df.Th.value) );  
	 		}
  		}
	  	// Th empty
  		if ( !isFilled( df.Th ) ){
  			if( isFilled( df.Tc ) && ( En!=0 ) ) {
				T1 = KelvinToX( WattToX( 1 ) * XtoKelvin( df.Tc.value ) / ( WattToX( 1 ) - En ) );
				df.Th.value = roundOff( T1 , 2 );   		
			}
	  	}	
  		// Tc empty
	  	if ( !isFilled( df.Tc ) ){
  			if( isFilled( df.Th ) && ( En!=0 ) ) {
				T1 = KelvinToX( ( 1 -  En / WattToX( 1 ) ) *  XtoKelvin( df.Th.value ) );
				df.Tc.value = roundOff( T1 , 2 );   		
			}
  		}
	  	ShowE();
	 }
  }  



  function EnChanged() {
  	var df = document.forms[0];
  	if (!bChanging)
	  	SetEn(  parseFloat(df.En.value)  );
  }

  
  

  function E05Changed() {
  	var df = document.forms[0];
  	if (!bChanging)
	  	SetEn(  parseFloat(df.E05.value) / 0.05   );
  }



  function E30Changed() {
  	var df = document.forms[0];
  	if (!bChanging)
	  	SetEn(  parseFloat(df.E30.value) / 0.30  );
  }

  
  
  
  function E70Changed() {
  	var df = document.forms[0];
  	if (!bChanging)
  		SetEn( parseFloat(df.E70.value) / 0.7  );
  }
  


  function ThChanged() {
  	var df = document.forms[0];
	if( isFilled( df.Tc) )
	  En = 0;
  	CalcIt();
  }
  
  function TcChanged() {
  	var df = document.forms[0];
	if( isFilled( df.Th) )
	  En = 0;
  	CalcIt();
  }
  
