function feet2SqMetres(valxa,valxb,valya,valyb) {
    if(isNaN(valxb)) valxb = 0;
    if(isNaN(valyb)) valyb = 0;
    var sqInches = ((valxa*12)+valxb)*((valya*12)+valyb);
    return sqInches/1552.4;
}

function sqMetres(valxa,valxb,valya,valyb) {
    if(isNaN(valxb)) valxb = 0;
    if(isNaN(valyb)) valyb = 0;
    return parseFloat((valxa+'.'+valxb)*(valya+'.'+valyb))
}

function chLabels(opt) {
    var xalbl = document.getElementById('lblxa');
    var xblbl = document.getElementById('lblxb');
    var yalbl = document.getElementById('lblya');
    var yblbl = document.getElementById('lblyb');
    switch(opt.value) {
        case '1': innerTxt(xalbl,' ft');
                  innerTxt(xblbl,' in');
                  innerTxt(yalbl,' ft');
                  innerTxt(yblbl,' in');
            break;
        case '2': innerTxt(xalbl,' m');
                  innerTxt(xblbl,' cm');
                  innerTxt(yalbl,' m');
                  innerTxt(yblbl,' cm');
            break;
        default: innerTxt(xalbl,' ft');
                  innerTxt(xblbl,' in');
                  innerTxt(yalbl,' ft');
                  innerTxt(yblbl,' in');
            break;
    }
}

function convert() {
    var convType = document.getElementById('type').value;
    var result = document.getElementById('result');
    var xa = parseInt(document.getElementById('xa').value);
    var xb = parseInt(document.getElementById('xb').value);
    var ya = parseInt(document.getElementById('ya').value);
    var yb = parseInt(document.getElementById('yb').value);
    
    if(isNaN(xa) || isNaN(ya))
        alert('Problem detected; Input is empty or not a number');
    else {
        var metres;
        switch(convType) {
            case '1': metres = feet2SqMetres(xa,xb,ya,yb);
                break;
            case '2': metres = sqMetres(xa,xb,ya,yb);
                break;
        }

        result.value = metres.toFixed(2);
    }
}

// wrapper for innerHTML of which only seems to work on IE.
// This should make it work with everything else.
// innerTxt(el [objectHTML], content [string]);
function innerTxt(el,content) {
	if (document.getElementById && !document.all) {
		rng = document.createRange();
		rng.setStartBefore(el);
		htmlFrag = rng.createContextualFragment(content);
		while (el.hasChildNodes())
			el.removeChild(el.lastChild);
		el.appendChild(htmlFrag);
	}
	else {
		el.innerHTML = content;
	}
}