/*smiths chart cursor specfic javascript*/
function xtra(){
var cur = document.getElementById('cur');
var cu0 = document.getElementById('cu0');
var cu1 = document.getElementById('cu1');
var cu2 = document.getElementById('cu2');
if(cur && cu0 && cu1 && cu2 && window.Math){
cu0.style.borderStyle = 'solid';
cu2.innerHTML = 'Enabling the cursor may slow down your computer.';
var cursor = document.getElementById('cursor');
if (document.getElementById('tickon') && cursor){
cursor.checked = true;
doCursor(cursor);
}
}
}

function doCursor(obj){
document.getElementById('smith').onmousemove = (obj.checked) ? register : null;
document.getElementById('cu1').innerHTML = '';
if (obj.checked === false) {undoCursor();}
}

function register(e){
if (!e) {e = window.event;}
var obj = document.getElementById('smith');
var cu1 = document.getElementById('cu1');
obj.style.cursor = 'crosshair';
var x_re = Math.round((getPosition(e).x - 200 - findPosX(obj))*1000/198)/1000;
var y_re = Math.round((getPosition(e).y - 200 - findPosY(obj))*1000/198)/1000;
cu1.innerHTML = 'Mag: '+ xy2ma(x_re,y_re).m +'<br />Ang: '+ xy2ma(x_re,y_re).a;
cu1.innerHTML += '<br />&nbsp;<br />R:&nbsp;&nbsp;&nbsp;'+xy2rx(x_re,y_re).r+'<br />jX:&nbsp;&nbsp;'+xy2rx(x_re,y_re).x;
return true;
}

function undoCursor(){
document.getElementById('smith').style.cursor = 'default';
document.getElementById('cu1').innerHTML = '';
}

function xy2ma(x,y){
var ma = {m:0, a:0};
ma.m = Math.round(1000*Math.sqrt(Math.pow(x,2) + Math.pow(y,2)))/1000;
ma.a = Math.round(1000*Math.atan2(-y,x)*180/Math.PI)/1000;
return ma; 
}

function xy2rx(x,y){
var rx = {r:0, x:0};
rx.r = Math.round(1000*50*(1 - Math.pow(x,2) - Math.pow(y,2))/(Math.pow(1-x,2)+ Math.pow(y,2)))/1000;
rx.x = Math.round(1000*50*(-2*y)/(Math.pow(1-x,2)+ Math.pow(y,2)))/1000;
return rx;
}

