
var set=['acosech','acosec','cosech','cosec','acoth','acosh','asech','atanh','asinh','acosh','clear','sqrt','cbrt','asin','acos','atan','asec','acot','tanh','sech','sinh','coth','cosh','sin','cos','tan','sec','cot','gcd','lcm','log','mod','abs','pi','ln','rt','E','P','C','^'];var mx=7;var fst=['a','t','s','c','l','r','d','g','E','p'];function setnum(ic)
{if((ic==0)&&(ntype!=0))
{ntype=0;remset('i');remset('re');remset('im');remset('arg');document.getElementById('vs').style.visibility='hidden';document.getElementById('i_complex').style.visibility='hidden';document.getElementById('imagpart').style.visibility='hidden';document.getElementById('realpart').style.visibility='hidden';document.getElementById('argpart').style.visibility='hidden';}else if((ic==1)&&(ntype!=1))
{ntype=1;addset('i');addset('re');addset('im');addset('arg');document.getElementById('vs').style.visibility='visible'
document.getElementById('i_complex').style.visibility='visible'
document.getElementById('imagpart').style.visibility='visible';document.getElementById('realpart').style.visibility='visible';document.getElementById('argpart').style.visibility='visible';}}
function ck(c,end1,end2)
{var hs="";var a='';var ac=0;if(i<st.length)
{var j=i;while((i<st.length)&&(st.charAt(i)!=end1)&&(st.charAt(i)!=end2))
{var tp=0;if(i==ec)
{tp=1;ep=0;}
ac=st.charCodeAt(i);a=st.charAt(i);j=i;if((a=='+')||(a=='-'))
{if(((en&1)!=1)&&(ep==-1))
ep=i;hs+=fs(a,0,c);en=573;i++;}else if((a=='*')||(a=='/'))
{if(((en&2)!=2)&&(ep==-1))
ep=i;hs+=fs(a,0,c);en=573;i++;}
else
if(((ac>=ze)&&(ac<=ni)))
{if(((en&4)!=4)&&(ep==-1))ep=i;hs+=fs(a,1,c);en=1023;i++;if((st.charAt(i)=='e')&&((st.charAt(i+1)=='+')||(st.charAt(i+1)=='-')))
{hs+=fs('e',1,c);i++;}}
else
if(a=='.')
{if(((en&8)!=8)&&(ep==-1))ep=i;hs+=fs('.',1,c);en=4;i++;}else if(a=='!')
{if(((en&128)!=128)&&(ep==-1))
ep=i;hs+=fs('!',1,c);en=887;i++;}else if(a=='%')
{if(((en&128)!=128)&&(ep==-1))
ep=i;hs+=fs('%',1,c);en=887;i++;}
else if(a=='(')
{var j=i;brktid++;var hs1="";t1++;if(t2<=t1)
t2++;if(((en&32)!=32)&&(ep==-1))
ep=i;en=573;i++;var b=ck(c,')',')');var str='brkt_'+j+'_'+histp+'_'+brktid;hs1=fs('style=\"position:relative;bottom:0px;font-size:'+(c+4*(t2-t1))+'px\" onmouseout=\"brkthndl(\''+str+'\')\"  onmouseover=\"brkthndl(\''+str+'\')\" id=\''+str+'o\' >(</i>',5,0);hs1+=b;if(st.charAt(i)==')')
{if(((en&64)!=64)&&(ep==-1))
ep=i;hs1+=fs('style=\"position:relative;bottom:0px;font-size:'+(c+4*(t2-t1))+'px\" onmouseout=\"brkthndl(\''+str+'\')\"  onmouseover=\"brkthndl(\''+str+'\')\" id=\''+str+'c\' >)</i>',5,0);en=1023;i++;}
t1--;if(t1==0)
t2=0;hs+=hs1;}else hs+=ge(c);if(tp==1)
ep=-1;if(j==i)
{ep=0;hs=hs+fs(a,0,c);i++;}}
if((i>=st.length)&&(en==573))
if(ec==-2)
ec=j;}
return hs;}
function ge(ic)
{var tp=0;if(i==ec)
{tp=1;ep=0;}
var hs='';var tm=getst();if(tm=='')
{}else
if((tm=='E')||(tm=='pi')||(tm=='i')||(getcstf(tm,-1)!=-1))
{if(((en&16)!=16)&&(ep==-1))
ep=i;hs=fs(tm,1,ic)
en=1015;i=i+tm.length;}else if((tm=="gcd")||(tm=='lcm'))
{i=i+tm.length;if(((en&512)!=512)&&(ep==-1))
ep=i;hs+=fs(tm,2,ic);en=573;if(st.charAt(i)=='(')
{var tt='';hs+=fs('(',2,ic)
i++;while((st.charAt(i)!=')')&&(i<st.length))
{tt+=ck(ic,',',')')
if(st.charAt(i)==',')
{if(((en&64)!=64)&&(ep==-1))
ep=0;tt+=fs(',',0,ic);i++;en=573}}
if(st.charAt(i)==')')
{if(((en&64)!=64)&&(ep==-1))
ep=0;tt+=fs(')',0,ic);i++;en=1023;}
hs+=tt;}else ep=0;}else if(tm=='log')
{if(((en&512)!=512)&&(ep==-1))
ep=i;i=i+3
hs=fs(tm,2,ic);en=573;if(st.charAt(i)=='[')
{i++;var ca=ck(ic,']',']')
if((st.charAt(i)==']')&&(en!=573))
{i++;hs+="<sub><sub>"+ca+"<\/sub><\/sub>"
en=573}else{ep=i;hs+=fs('[',0,ic)+ca;}}else ep=i;}else if(tm=='rt')
{if(((en&512)!=512)&&(ep==-1))
ep=i;i=i+2;if(st.charAt(i)=='[')
{i++;en=573;var ca=ck(ic,']',']')
if((st.charAt(i)==']')&&(en!=573))
{i++;hs="<sup class=\"thsuprts\">"+ca+"<\/sup>"
hs+=fs(('&#8730;'),2,(ic+2))
en=573}else{ep=i;hs+=fs(('&#8730;'),2,(ic+2));hs+=fs('[',0,ic)+ca;}}else{ep=i;hs+=fs(('&#8730;'),2,(ic+2));}}else if((tm=='mod')||(tm=='C')||(tm=='P')||(tm=='^'))
{if(((en&256)!=256)&&(ep==-1))
ep=i;hs=fs(tm,2,ic)
en=573
i=i+tm.length;}
else if(tm=='clear')
{if(st!='clear')
ep=i;hs=fs('clear',2,ic)
i=i+5;en=0;}
else
{var k=i;if(((en&512)!=512)&&(ep==-1))
ep=i;hs=fs(tm,2,ic);en=573;i=i+tm.length;var a=getcstf(tm,0)
if(a!=-1)
{if(cstf[a][1]>1)
{if(st.charAt(i)=='(')
{var tt='';hs+=fs('(',2,ic);var j=0;i++;while((st.charAt(i)!=')')&&(i<st.length)&&(j<cstf[a][1]))
{tt+=ck(ic,',',')')
j++;if(st.charAt(i)==',')
{if((((en&64)!=64)&&(ep==-1))||(j==cstf[a][1]))
ep=0;tt+=fs(',',0,ic);i++;en=573}}
if(st.charAt(i)==')')
{if(((en&64)!=64)&&(ep==-1))
ep=0;tt+=fs(')',0,ic);i++;en=1023;}
hs+=tt;if(j!=cstf[a][1])
if(ec==-2)
ec=k;}else ep=0;}}}
if(tp==1)
ep=-1;return hs;}
function pt(ic)
{var j=0;var ip=document.getElementById("in");var tp=ip.value;var a=''
if((hst1!=tp)||(ic==1))
{hst1=tp;var dv=document.getElementById("di");dv.innerHTML='';var tf=0;var inht='';brktid=0;while(j<tp.length)
{st="";tf=0;while((j<tp.length)&&(tp.charAt(j)!=':'))
{if(tp.charAt(j)==' ')
j++;else if(tp.charAt(j)=='=')
{tf=1;st+='=';j++;}
else if(tp.charAt(j)!=':'){st+=tp.charAt(j);j++}}
en=573;ep=-1;ec=-2;er='';i=0;if(tf!=1)
inht=ck(ft,':',':');else
inht='<i class=\"h\" >'+st+'</i>'
if((ic&1)==1)
{ip.value='';document.getElementById('in').focus();if(tf==1)
hist+='<i class=\"h\"    style=\"font-size:'+ft+'px\"      onClick=\"setip(\''+st+'\')\"> > '+st+' >> '+mkfc()+'</i>'+'<br />';else
if(st=='clear')
cls(0);else if(ec!=-2)
{i=0;ep=-1;hist+=' <i class=\"h\" style=\"font-size:'+ft+'px\" onClick=\"setip(\''+st+'\')\">  &gt;'+ck(ft,':',':')+" >> "+'syntax error<\/i><br \/>';}else
if(ep!=-1)
hist+='<i class=\"h\" style=\"font-size:'+ft+'px\"  onClick=\"setip(\''+st+'\')\"> &gt; '+inht+" >> "+'syntax error<\/i><br \/>';else
{i=0;var x=['','']
if(ntype==0)
{x=frac(ev('~'));if(ep!=-1)
x[1]=er}else if(ntype==1)
{var rt=evc('~');if(ep!=-1)
x[1]=er;else
{x=frac(rt[0]);var y=frac(rt[1]);x[0]+='+('+y[0]+')i';if(document.getElementsByName('pol')[0].checked)
x[1]+=' + '+y[1]+'i';else
{y=frac(mag(rt));x[1]=y[1]
y=frac(arg(rt));x[1]+='e<sup>'+y[1]+'i</sup>';}}}
i=0;en=573;if(ep==-1)
hist+='<i class=\"h\"   style=\"font-size:'+ft+'px\"  onClick=\"setip(\''+st+'\')\"> &gt; '+ck(ft,':',':')+'<\/i> = '+'<i class=\"h\" onClick=\"setip(\''+x[0]+'\')\"> '+x[1]+'<\/i>'+'<br \/>';else
{ec=ep;ep=-1;hist+='<i class=\"h\"   style=\"font-size:'+ft+'px\" onClick=\"setip(\''+st+'\')\"> &gt; '+ck(ft,':',':')+' >> '+' '+x[1]+' '+'<\/i>'+'<br \/>';}}
histmo();}else
inht+='<br />'
a+=inht
j++;}
if((ic&1)==1)
dv.innerHTML=hist
else
dv.innerHTML=hist+a
dv.scrollTop=dv.scrollHeight;}}
function mkfc()
{i=0;var b=10;var rt='';var f=0;var fname=''
var param;var tp=st.charCodeAt(i);var str='';var j=0;while(((tp>=aa)&&(tp<=za))||((tp>=Aa)&&(tp<=Za))||(st.charAt(i)=='_'))
{fname+=st.charAt(i);i++;tp=st.charCodeAt(i);}
if(chkav(fname)==1)
{if(fname.length<=16)
{if(st.charAt(i)=='(')
{i++;f=1;param=gtparam(0);if(st.charAt(i)!=')')
er='parameter naming error';else{i++;while(j<param.length)
{if(chkav(param[j])==0)
{er='cannot not use \"'+param[j]+'\" as a parameter';j=param.length;}
else j++;}}}
if(er=='')
{if(st.charAt(i)=='=')
{i++;if(f==1)
{j=0;while(j<param.length)
{if(chkav(param[j])==0)
er='parameter naming error: '+param[j];cstf.push([param[j],-1,'',ntype])
addset(param[j]);j++;}
if(er=='')
{j=i;en=573;ec=-2
ep=-1;str=ck(ft,':',':');if((ec==-2)&&(ep==-1))
{var ts='';str=st;st=st.substring(j,st.length)
j=0;var tm='';while(j<param.length)
{i=0;addset(param[j]);while(i<st.length)
{tm=getst()
if(tm==param[j])
{ts+='#'+param[j];i+=param[j].length}else if(tm!='')
{ts+=tm;i+=tm.length;}else
{ts+=st.charAt(i)
i++;}}
st=ts;ts='';remset(param[j]);j++;}
addset(fname);cstf.push([fname,param.length,('#'+param.join(',#')+','+st),ntype]);er='ok function created';if(b!=0)
{if(fname.length>6)
b=32;document.getElementById('cstmfs').innerHTML+='<button id=\"cstm_'+fname+'\"onClick=\"bthd(\''+fname+'(\',\'\');cstbthd(\''+str+'\')\" class=\"cstmbutt\" style=\"width:'+b+'%\">'+fname+'</button>';}}else
{i=j;en=573;ep=-1;er=ck(ft,':',':')+' >> syntax error';}}
j=0;while(j<param.length)
{remcst(cstf,param[j])
remset(param[j]);j++;}}
else
{j=i;en=573;ec=-2;ep=-1;str=ck(ft,':',':');if((ep==-1)&&(ec==-2))
{i=j
var ts;if(ntype==0)
ts=ev(':');else
ts=evc(':')
if(ep==-1)
{if(ntype==0)
rt=''+frac(ts)[0]
else
rt=frac(ts[0])[0]+'+('+frac(ts[1])[0]+')i';cstf.push([fname,-1,rt,ntype])
addset(fname)
er='ok constant created';if(b!=0)
{if(fname.length>6)
b=20;document.getElementById('cstmfs').innerHTML=document.getElementById('cstmfs').innerHTML+'<button id=\"cstm_'+fname+'\"onClick=\"bthd(\''+fname+'\',\'\');cstbthd(\''+fname+'='+rt+'\')\" class=\"cstmbutt\" style=\"width:'+b+'%\">'+fname+'</button>'}}else
{i=j;en=573;ec=ep;er=ck(ft,':',':')+' >> '+er;}}else
{i=j;en=573;ep=-1;er=ck(ft,':',':')+' >> syntax error';}}}else
er='naming error';}}else er='names of functions or constants should not have more than 16 characters';}else
{if(fname=='')
er='wrong function or constant definition';else
er='\"'+fname+'\" cannot be used to define a function or constant';}
return er;}
function delf(a)
{if((getcstf(a,-1)!=(-1))||(getcstf(a,0)!=(-1)))
{remset(a);remcst(cstf,a);var buttremo=document.getElementById('cstm_'+a);var parent=buttremo.parentNode;parent.removeChild(buttremo);}}
function getcstf(a,b)
{var j=0;var f=0;while((j<cstf.length)&&(f==0))
{if(cstf[j][0]==a)
{if((b==-1)&&(cstf[j][1]==-1))
f=1;else if((cstf[j][1]!=-1)&&(b!=-1))
f=1;else j++;}
else
j++;}
if(f==0)
return-1;else
return j;}
function gtparam()
{var rt=[''];var tp=st.charCodeAt(i);while(((tp>=aa)&&(tp<=za))||((tp>=Aa)&&(tp<=Za))||(st.charAt(i)=='_'))
{rt[0]+=st.charAt(i);i++;tp=st.charCodeAt(i);}
if((i<st.length)&&(st.charAt(i)==','))
{i++;return rt.concat(gtparam())}else
return rt;}
function chkav(str)
{var j=0;var f=1;if((str=='i')||(str=='im')||(str=='re')||(str=='arg')||(str=='')||(str=='e'))
f=0;while((j<set.length)&&(f==1))
{if(set[j]==str)
f=0;j++;}
return f;}
function remcst(a,b)
{var j=0;var f=0;while((j<a.length)&&(f==0))
{if(a[j][0]==b)
f=1
else
j++;}
if(f==1)
{while(j<(a.length-1))
{a[j][0]=a[j+1][0];a[j][1]=a[j+1][1];a[j][2]=a[j+1][2];a[j][3]=a[j+1][3];j++;}
a.pop();}}
function histmo()
{if(histp>=histm)
{var a=hist.indexOf("<br \/>");hist=hist.substring((a+6),hist.length);}
else
histp++;}
function frac(a)
{var f=document.getElementsByName("fra")
var j=0;var rt=['',''];var tp=''+a;var be='';var af='';if(tp.charAt(j)=='+')
j++;else if(tp.charAt(j)=='-')
{j++;rt[0]='-';rt[1]='-';}
while((tp.charCodeAt(j)>=ze)&&(tp.charCodeAt(j)<=ni))
{be+=tp.charAt(j);j++;}
if(tp.charAt(j)=='.')
j++;while((tp.charCodeAt(j)>=ze)&&(tp.charCodeAt(j)<=ni))
{af+=tp.charAt(j);j++;}
if((be=='')&&(af==''))
rt[0]=rt[1]=a;else
{if(((f[2].checked)||(f[1].checked))&&(af!=''))
{var nu=0;var de=0;if(af!='')
{nu=parseFloat(af)/gcds(parseFloat(af),Math.pow(10,af.length));de=Math.pow(10,af.length)/gcds(parseFloat(af),Math.pow(10,af.length));}
if((f[2].checked)&&(be!='0')&&(be!=''))
{rt[1]+=be+'<i class=\"fa\" >'+nu+'/'+de+'</i>';}else
{if((be=='0')||(parseInt(a)==0))
rt[1]+=nu+'/'+de;else
rt[1]+=((de*parseInt(be))+nu)+'/'+de;}}else
{if(af!='')
rt[1]+=be+'.'+af;else
rt[1]+=be;}
rt[0]+=be
if(af!='')
rt[0]+='.'+af;if(tp.charAt(j)=='e')
{j++;rt[0]+='*10^';rt[1]+=' &#215; 10<sup>';while(j<tp.length)
{rt[0]+=tp.charAt(j);rt[1]+=tp.charAt(j);j++;}
rt[1]+='<\/sup>'}}
return rt;}
function cstbthd(a)
{document.getElementById('desc').innerHTML=a;var j=0;var ts='';var tp=a.charCodeAt(0);while((((tp>=aa)&&(tp<=za))||((tp>=Aa)&&(tp<=Za))||(a.charAt(j)=='_'))&&(j<a.length))
{ts+=a.charAt(j);j++;tp=a.charCodeAt(j);}
document.getElementById('desc').innerHTML+=' <button onClick=\"delf(\''+ts+'\')\" style=\"width:100px;height:25px\" />delete</button>';}
var is={ie:navigator.appName=='Microsoft Internet Explorer',java:navigator.javaEnabled(),ns:navigator.appName=='Netscape',ua:navigator.userAgent.toLowerCase(),version:parseFloat(navigator.appVersion.substr(21))||parseFloat(navigator.appVersion),win:navigator.platform=='Win32'}
is.mac=is.ua.indexOf('mac')>=0;if(is.ua.indexOf('opera')>=0){is.ie=is.ns=false;is.opera=true;}
if(is.ua.indexOf('gecko')>=0){is.ie=is.ns=false;is.gecko=true;}
