// JavaScript Document
function initForms(){
	var forms = document.forms;
	
	for(var i = 0; i < forms.length; i++){
		if(forms[i].id == 'temperatureCalculation'){
			forms[i].onsubmit = calculateTemperature;
		}else{
			forms[i].onsubmit = handleCalculationFormSubmit;
		}
	}
}

function calculateTemperature(){
	
	var unitFrom = document.getElementById('temperatureUnitFrom').value;
	var unitTo = document.getElementById('temperatureUnitTo').value;
	
	var temperatureFrom = parseFloat(document.getElementById('temperatureValueFrom').value.replace(',', '.'));
	var temperatureTo = document.getElementById('temperatureValueTo');
	
	
	this.getKelvin = function(temperature, unit){
		switch(unit){
			case 'Celsius':  return temperature + 273.15;
			case 'Fahrenheit':  return 5/9 * (temperature + 459.67);
			case 'Kelvin':  return temperature;
			case 'Rankine':  return 5/9 * temperature;
			case 'Raumure':  return 5/4 * temperature + 273.15;
		}
	}
	
	
	this.convertFromKelvin = function(temperature, unit){
		switch(unit){
		  case 'Celsius':  return temperature - 273.15;
		  case 'Fahrenheit':  return 9/5 * temperature - 459.67;
		  case 'Kelvin':  return temperature;
		  case 'Rankine':  return 9/5 * temperature;
		  case 'Raumure':  return 4/5 * (temperature - 273.15);
		}
	}
	
	
	var kelvin = this.getKelvin(temperatureFrom, unitFrom);
	temperatureTo.value = parseFloat(this.convertFromKelvin(kelvin, unitTo));
	
	return false;
}


function handleCalculationFormSubmit(){
	
	var from = parseFloat(this.getElementsByTagName('input')[0].value.replace(',','.'));
	var unitFrom = parseFloat(this.getElementsByTagName('select')[0].value);
	var to = this.getElementsByTagName('input')[1];
	var unitTo = parseFloat(this.getElementsByTagName('select')[1].value);
	
	to.value = parseFloat(from * (unitFrom / unitTo));
	
	return false;
}

function showUnitConvertor(type){
	window.location.hash = type;
	showTab();
}

function showTab(){
	var tab = window.location.hash;
	tab = tab.toString();
	tab = tab.replace('#', '');
	
	if(tab == ''){
		window.location.hash = 'area';
		setTimeout(showTab, 500);
		return;
	}
	
	// forms
	var forms = document.getElementsByTagName('form');
	for(var i = 0; i < forms.length; i++){
		forms[i].style.display = 'none';
	}
	
	// show active form
	document.getElementById(tab + 'Calculation').style.display = 'block';
}


/*
	INPUT FOCUS STYLE MICROSOFT INTERTER EXPLORER
*/
function handleSetStyle(){
	var input = document.getElementById(this.id);
	
	input.style.borderLeft = '4px solid #0064AE';
	input.style.paddingLeft = '2px';
}

function handleClearStyle(){
	var input = document.getElementById(this.id);
	
	input.style.borderLeft = '1px solid #999';
	input.style.paddingLeft = '5px';
}
/*
	// INPUT FOCUS STYLE MICROSOFT INTERTER EXPLORER
*/


/*
	WINDOW LOAD
*/
	window.onload = function(){
		// MICROSOFT INTERNET EXPLORER
		if(navigator.appName == 'Microsoft Internet Explorer'){
			var inputs = document.getElementsByTagName('input');
			
			for(var i = 0; i < inputs.length; i++){
				inputs[i].onfocus = handleSetStyle;
				inputs[i].onblur = handleClearStyle;
			}
		}
	}
/*
	// WINDOW LOAD
*/



