
	var  En  = 0;
	var  bChanging = false;
	
	//  18 Nov 2002 cool chip efficiency changed from 70% to 55%
	//      changes in function ShowCOP(), ShowE(), E70Changed()
	//      did not change any variable names, only values
	
	// 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;
  }
  
  
  function ShowCOP() {
  	var df = document.forms[0];
   	// COP cooling
	df.COPc05.value = roundOff( 1/(En/0.05) , 3 );
	df.COPc45.value = roundOff( 1/(En/0.45) , 3 );
	// df.COPc70.value = roundOff( 1/(En/0.70) , 3 );
	df.COPc70.value = roundOff( 1/(En/0.55) , 3 );
	// COP Heating
	df.COPh05.value = roundOff( 1 + 1/(En/0.05) , 3 );
	df.COPh45.value = roundOff( 1 + 1/(En/0.45) , 3 );
	//df.COPh70.value = roundOff( 1 + 1/(En/0.70) , 3 );
	df.COPh70.value = roundOff( 1 + 1/(En/0.55) , 3 );

  }
  
  function WattToX( watt ) {
  	var df = document.forms[0];
  	if ( df.Energy[0].checked )
  		return watt;
  	else
  		return watt * 3.41214;
  }
  
  function XToWatt( x ) {
  	var df = document.forms[0];
  	if ( df.Energy[0].checked )
  		return x;
  	else
  		return x / 3.41214;
  }
  
  
  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(){
  	var df = document.forms[0];
	ShowE();
	if ( df.Energy[0].checked ) {
	  	df.Pd1.src='cc-watts.gif'; 
	} 
	
	if ( df.Energy[1].checked ) {
	  	df.Pd1.src='cc-btus.gif'; 
	}

  }
  
  
  function ShowE() {
  	var df = document.forms[0];
  	bChanging = true; 	
  	if ( En != 0 ) {
		df.E05.value = roundOff( WattToX( En/0.05 ), 3 );
		df.E45.value = roundOff( WattToX( En/0.45 ), 3 );
		//df.E70.value = roundOff( WattToX( En/0.70 ), 3 );
    df.E70.value = roundOff( WattToX( En/0.55 ), 3 );

		ShowCOP()
	}
	else
	  ClearE();
	bChanging = false;
  }
  
  function ClearE() {
  	var df = document.forms[0];
	En=0;
	df.E05.value = "";
	df.E45.value = "";
	df.E70.value = "";
	df.COPh05.value = "";
	df.COPh45.value = "";
	df.COPh70.value = "";
	df.COPc05.value = "";
	df.COPc45.value = "";
	df.COPc70.value = "";
	
  }	  

  function SetEn( e ) {
  	var df = document.forms[0];
  	En = e; 
  	if ( En != 0 ) {
		if ( isFilled( df.Tc ) )   // expect Tc wanted => calculate hot side
		  df.Th.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 = ( XtoKelvin( df.Th.value ) / XtoKelvin( df.Tc.value)  - 1);  
	 		}
  		}
	  	// Th empty
  		if ( !isFilled( df.Th ) ){
  			if( isFilled( df.Tc ) && ( En!=0 ) ) {
				T1 = KelvinToX( XtoKelvin( df.Tc.value ) * ( En + 1 ) );
				df.Th.value = roundOff( T1 , 2 );   		
			}
	  	}	
  		// Tc empty
	  	if ( !isFilled( df.Tc ) ){
  			if( isFilled( df.Th ) && ( En!=0 ) ) {
				T1 = KelvinToX( XtoKelvin( df.Th.value ) / ( En + 1 ) );
				df.Tc.value = roundOff( T1 , 2 );   		
			}
  		}
		
	  	ShowE();
	 }
  }  
  
  

  function E05Changed() {
  	var df = document.forms[0];
  	if (!bChanging)
	  	SetEn(  XToWatt( parseFloat(df.E05.value) * 0.05 )  );
  }


  
  function E45Changed() {
  	var df = document.forms[0];
  	if (!bChanging)
	  	SetEn( XToWatt( parseFloat(df.E45.value) * 0.45 ) );
  }
  
  
  function E70Changed() {
  	var df = document.forms[0];
  	if (!bChanging)
//  		SetEn( XToWatt( parseFloat(df.E70.value) * 0.7 ) );
  		SetEn( XToWatt( parseFloat(df.E70.value) * 0.55 ) );
  }
  
  
  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();
  }
  
  

