﻿function pageLoad() {
    $addHandler($get('singlePhase'), 'click', singlePhase_click);
    $addHandler($get('threePhaseDelta'), 'click', threePhaseDelta_click);
    $addHandler($get('threePhaseWye'), 'click', threePhaseWye_click);
    $addHandler($get('resetForm'), 'click', resetForm_click);
    $addHandler($get('calculateNow'), 'click', calculateNow_click);
}
    
function calculateNow_click(evt) {
    var blanks = 0;
    var volts = $get('voltage');
    var watts = $get('heat_output');
    var ohms = $get('resistance');
    var amps = $get('current');
    
    if (volts.value == '') {
        blanks++;
    }
    if (watts.value == '') {
        blanks++;
    }
    if (ohms.value == '') {
        blanks++;
    }
    if (amps.value == '') {
        blanks++;
    }
    
    if (blanks != 2) {
        alert(errorTwoValues);
    }
    
    if ($get('singlePhase').checked) {
        calc(1);
    }
    else {
        calc(3);
    }
    return false;
}

function round3(num) {
    // Rounds a number to 3 decimal places
    var multiplier = 1000;
    num = num * multiplier;
    num = Math.round(num);
    return num/multiplier;
}

function calc(phase) {
    // This function does the calculations
    var volts = $get('voltage');
    var watts = $get('heat_output');
    var ohms = $get('resistance');
    var amps = $get('current');
    
    var R = parseFloat(ohms.value);
    var V = parseFloat(volts.value);
    var I = parseFloat(amps.value);
    var W = parseFloat(watts.value);
    
    var voltsHasValue = volts.value != '';
    var wattsHasValue = watts.value != '';
    var ohmsHasValue = ohms.value != '';
    var ampsHasValue = amps.value != '';
    
    if (voltsHasValue && wattsHasValue) { // Volts & Watts
        if (phase==1) {
	        ohms.value=round3((V*V)/W);
	        amps.value=round3(W/V);
        }
        else {
	        ohms.value = round3(2*V*V/W);
	        amps.value = round3(W/(Math.sqrt(3)*V));
        }
    }
    if (voltsHasValue && ampsHasValue) { // Volts & Amps
        if (phase == 1) {
	        ohms.value = round3(V/I);
	        watts.value = round3(V*I);
        }
        else {
	        ohms.value=round3(2*V/(Math.sqrt(3)*I));
	        watts.value=round3(Math.sqrt(3)*V*I);
        }
    }
    if (wattsHasValue && ampsHasValue) { // Watts & Amps
        if (phase==1) {
	        ohms.value=round3(W/(I*I));
	        volts.value=round3(W/I);
        }
        else {
	        ohms.value=round3(2*W/(3*I*I));
	        volts.value=round3(W/(Math.sqrt(3)*I));
        }
    }
    if (wattsHasValue && ohmsHasValue) { // Watts & Ohms
        if (phase==1) {
	        amps.value=round3(Math.sqrt(W/R));
	        volts.value=round3(Math.sqrt(W*R));
        }
        else {
	        amps.value=round3(Math.sqrt(2*W/(3*R)));
	        volts.value=round3(Math.sqrt(R*W/2));
        }
    }
    if (voltsHasValue && ohmsHasValue) { // Volts & Ohms
        if (phase==1) {
	        amps.value=round3(V/R);
	        watts.value=round3(V*V/R);
        }
        else {
	        amps.value=round3(2*V/(Math.sqrt(3)*R));
	        watts.value=round3(2*V*V/R);
        }
    }
    if (ampsHasValue && ohmsHasValue) { // Amps & Ohms
        if (phase==1) {
	        volts.value=round3(I*R);
	        watts.value=round3((I*I)*R);
        }
        else {
	        volts.value=round3(Math.sqrt(3)*I*R/2);
	        watts.value=round3(3*I*I*R/2);
        }
    }
}

function resetForm_click(evt) {
    $get('voltage').value = '';
    $get('heat_output').value = '';
    $get('resistance').value = '';
    $get('current').value = '';
    singlePhase_click(null);
    $get('singlePhase').checked = true;
    return false;
}

function singlePhase_click(evt) {
    $get('diagram').src = '/_images/pages/calculator/ohm.gif';
}
function threePhaseDelta_click(evt) {
    $get('diagram').src = '/_images/pages/calculator/ohm_3_delta.gif';
}
function threePhaseWye_click(evt) {
    $get('diagram').src = '/_images/pages/calculator/ohm_3_wye.gif';
}