/*
Fahrenheit to Celsius or Celsius to Fahrenheit Converter Script
Created by Martin Carlsson
*/
/*Is DOM supported?*/
var ie = (document.all) ? true:false; // IE4+
var dom = ((document.getElementById) && (!ie)) ? true:false; // Mozilla 

/*Calls to the help function*/
setEventById("celsius", "keyup", function(){converter("celsius");});
setEventById("fahrenheit", "keyup", function(){converter("fahrenheit");});
setEventById("round-to-integer", "click", function(){roundChecked();});

/*Help function to add event listeners for browsers that support DOM and those who don't*/
function setEventById(id, ev, fu) {
    if(dom) {
		document.getElementById(id).addEventListener(ev, fu, false);
	} 
	if(ie) {
		document.getElementById(id).attachEvent('on' + ev, fu);
	}
} 

/*Converts Fahrenheit to Celsius and vice versa*/
function converter(scale) {
    checked =  document.getElementById("round-to-integer").checked;
    inCelsius=(document.getElementById("fahrenheit").value -32) * 5 / 9;
    inFahrenheit=document.getElementById("celsius").value * 9 / 5 + 32;
    if (scale=="celsius") {
        if(checked)
            document.getElementById("fahrenheit").value=Math.round(inFahrenheit);
        else
            document.getElementById("fahrenheit").value=inFahrenheit;
    }
    else if (scale=="fahrenheit")	{
        if(checked)
                document.getElementById("celsius").value=Math.round(inCelsius);
        else
            document.getElementById("celsius").value=inCelsius;
    }
}

/*Is round to nearest integer checked?*/
function roundChecked() {
    checked =  document.getElementById("round-to-integer").checked;
    if(checked) {
        document.getElementById("celsius").value=Math.round(inCelsius);
        document.getElementById("fahrenheit").value=Math.round(inFahrenheit);
        }
    else {
         document.getElementById("celsius").value=inCelsius;
         document.getElementById("fahrenheit").value=inFahrenheit;
    }
}

/*End convertToFahrenheitOrCelsius*/