@@ -4,26 +4,109 @@ const res = document.getElementById('response');
44const form = document . getElementById ( 'form' ) ;
55const celsiusBtn = document . querySelector ( '.Celsius' ) ;
66const fahrenheitBtn = document . querySelector ( '.Fahrenheit' ) ;
7+ const KelvinBtn = document . querySelector ( '.Kelvin' ) ;
78const element_result = document . getElementById ( 'element_result' ) ;
9+ const Celsius_output = document . querySelector ( '.Celsius_output' ) ;
10+ const Fahrenheit_output = document . querySelector ( '.Fahrenheit_output' ) ;
11+ const Kelvin_output = document . querySelector ( '.Kelvin_output' ) ;
812let sentence = '' ;
913let temperatureInput = '' ;
14+ let temperatureOutput = '' ;
1015
1116function getTypeTemperatureInput ( ipt ) {
12- if ( ipt === 'Celsius' ) {
13- fahrenheitBtn . classList . remove ( 'selected' )
14- celsiusBtn . classList . add ( 'selected' ) ;
15- } else {
16- fahrenheitBtn . classList . add ( 'selected' ) ;
17- celsiusBtn . classList . remove ( 'selected' )
17+ switch ( ipt ) {
18+ case 'Celsius' : {
19+ fahrenheitBtn . classList . remove ( 'selected' ) ;
20+ KelvinBtn . classList . remove ( 'selected' ) ;
21+ celsiusBtn . classList . add ( 'selected' ) ;
22+ return temperatureInput = ipt ;
23+ }
24+ case 'Fahrenheit' : {
25+ celsiusBtn . classList . remove ( 'selected' ) ;
26+ KelvinBtn . classList . remove ( 'selected' ) ;
27+ fahrenheitBtn . classList . add ( 'selected' ) ;
28+ return temperatureInput = ipt ;
29+ }
30+ case 'Kelvin' : {
31+ fahrenheitBtn . classList . remove ( 'selected' )
32+ celsiusBtn . classList . remove ( 'selected' ) ;
33+ KelvinBtn . classList . add ( 'selected' ) ;
34+ return temperatureInput = ipt ;
35+ }
1836 }
19- return temperatureInput = ipt ;
2037}
38+ function getTypeTemperatureOutput ( ipt ) {
39+ switch ( ipt ) {
40+ case 'Celsius' : {
41+ Fahrenheit_output . classList . remove ( 'selected' ) ;
42+ Kelvin_output . classList . remove ( 'selected' ) ;
43+ Celsius_output . classList . add ( 'selected' ) ;
44+ return temperatureOutput = ipt ;
45+ }
46+ case 'Fahrenheit' : {
47+ Celsius_output . classList . remove ( 'selected' ) ;
48+ Kelvin_output . classList . remove ( 'selected' ) ;
49+ Fahrenheit_output . classList . add ( 'selected' ) ;
50+ return temperatureOutput = ipt ;
51+ }
52+ case 'Kelvin' : {
53+ Fahrenheit_output . classList . remove ( 'selected' )
54+ Celsius_output . classList . remove ( 'selected' ) ;
55+ Kelvin_output . classList . add ( 'selected' ) ;
56+ return temperatureOutput = ipt ;
57+ }
58+ }
59+ }
60+
2161function transformCelsiusToFahrenheit ( degCel ) {
2262 return ( degCel * ( 9 / 5 ) + 32 ) ;
2363}
64+ function transformCelsiusToKelvin ( celsius ) {
65+ return celsius + 273.15 ;
66+ }
2467function transformFahrenheitToCelsius ( degCel ) {
2568 return ( degCel - 32 * 5 / 9 ) ;
26- }
69+ }
70+ function transformFahrenheitToKelvin ( fahrenheit ) {
71+ return ( fahrenheit - 32 ) * 5 / 9 + 273.15 ;
72+ }
73+ function transformKelvinToCelsius ( kelvin ) {
74+ return kelvin - 273.15 ;
75+ }
76+ function transformKelvinToFahrenheit ( kelvin ) {
77+ return ( kelvin - 273.15 ) * 9 / 5 + 32 ;
78+ }
79+
80+ function getTransformFunction ( input , output , value ) {
81+ if ( input === 'Celsius' ) {
82+ switch ( output ) {
83+ case 'Fahrenheit' : {
84+ return transformCelsiusToFahrenheit ( value ) ;
85+ }
86+ case 'Kelvin' : {
87+ return transformCelsiusToKelvin ( value ) ;
88+ }
89+ }
90+ } if ( input === 'Fahrenheit' ) {
91+ switch ( output ) {
92+ case 'Celsius' : {
93+ return transformFahrenheitToCelsius ( value ) ;
94+ }
95+ case 'Kelvin' : {
96+ return transformFahrenheitToKelvin ( value ) ;
97+ }
98+ }
99+ } if ( input === 'Kelvin' ) {
100+ switch ( output ) {
101+ case 'Fahrenheit' : {
102+ return transformKelvinToFahrenheit ( value ) ;
103+ }
104+ case 'Celsius' : {
105+ return transformKelvinToCelsius ( value ) ;
106+ }
107+ }
108+ }
109+ }
27110form . onkeydown = function ( e ) {
28111 if ( e . keyCode == 13 ) {
29112 e . preventDefault ( ) ;
@@ -32,14 +115,16 @@ form.onkeydown = function(e){
32115 } ;
33116function getSentenceResult ( ) {
34117 const value = + res . value ;
118+ if ( isNaN ( value ) ) {
119+ return element_result . innerHTML = 'Input data not correct.' ;
120+ }
35121 if ( temperatureInput === '' ) {
36122 return element_result . innerHTML = 'Please enter valid conversion' ;
37123 }
38- if ( isNaN ( value ) ) {
39- return element_result . innerHTML = 'Input data not correct. ' ;
124+ else if ( temperatureOutput === temperatureInput ) {
125+ return element_result . innerHTML = 'Please enter valid conversion ' ;
40126 }
41- const val = temperatureInput === 'Celsius' ? transformCelsiusToFahrenheit ( value ) : transformFahrenheitToCelsius ( value ) ;
42- const labelTemperature = ( temperatureInput === 'Celsius' ) ? ' Fahrenheit' : ' Celsius' ;
43- return element_result . innerHTML = `<p class='response'>${ value } ${ temperatureInput } give ${ parseInt ( val ) } ${ labelTemperature } </p>` ;
127+ const val = getTransformFunction ( temperatureInput , temperatureOutput , value )
128+ return element_result . innerHTML = `<p class='response'>${ value } ${ temperatureInput } give ${ parseInt ( val ) } ${ temperatureOutput } </p>` ;
44129
45130}
0 commit comments