var globalNoData=true;
var curs=new Array();
var nCurs=6;
var cb=new Array();
var forex=new Array();
var cash=new Array();
var forex_date;
var cb_date;
var cash_date;
function Currency(id,curId,fullName) {
this.id=id;
this.curId=curId;
this.fullName=fullName;
}
function Init() {
curs[0]=new Currency(0,"RUR","Российский рубль");
curs[1]=new Currency(1,"USD","Доллар США");
curs[2]=new Currency(2,"EUR","ЕВРО");
curs[3]=new Currency(3,"JPY","Японская иена");
curs[4]=new Currency(4,"DEM","Немецкая марка");
curs[5]=new Currency(5,"GBP","Английский фунт стерлингов");
for(i=0;i<36;i++) {
forex[i]=0;
cb[i]=0;
cash[i]=0;
}
forex[2.0*6+5.0]=0.6439;
forex[2.0*6+1.0]=1.018450;
forex[5.0*6+3.0]=194.07;
forex[5.0*6+1.0]=1.581750;
forex[1.0*6+3.0]=122.70;
forex[1.0*6+0.0]=31.8650;
forex[2.0*6+3.0]=124.9750;
forex_date='12-DEC-02';
cb[2.0]=1/32.1467;
cb[2.0*6]=32.1467;
cb[5.0]=1/50.1381;
cb[5.0*6]=50.1381;
cb[3.0]=1/25.8478;
cb[3.0*6]=25.8478;
cb[1.0]=1/31.86;
cb[1.0*6]=31.86;
cb_date='12-DEC-02';
cash[4.0]=1/(null);
cash[4.0*6]=13.50;
cash[2.0]=1/32.62117647;
cash[2.0*6]=32.39222222;
cash[1.0]=1/31.98382353;
cash[1.0*6]=31.93794118;
cash_date='13-DEC-02';
updateToFrom();
}
function updateToFrom() {
source=document.forms[formName].source.options[document.forms[formName].source.selectedIndex].value;
document.forms[formName].To.length=nCurs;
document.forms[formName].From.length=0;
for(i=0;i<nCurs;i++) {
isConv=false;
for(j=0;j<nCurs;j++) {
if(source=='forex') {
if(forex[i*6+j]!=0) {
isConv=true;
break;
}
} else if(source=='cb') {
if(cb[i*6+j]!=0) {
isConv=true;
break;
}
} else if(source=='cash') {
if(cash[i*6+j]!=0) {
isConv=true;
break;
}
}
}
if(isConv) {
document.forms[formName].From.length++;
document.forms[formName].From.options[document.forms[formName].From.length-1]=new Option(curs[i].fullName,curs[i].curId,false,false);
}
document.forms[formName].To.options[i]=new Option(curs[i].fullName,curs[i].curId,false,false);
}
if(document.forms[formName].From.length==0) {
document.forms[formName].From.length=1;
document.forms[formName].From.options[0]=new Option("Нет данных","",true,true);
document.forms[formName].To.length=1;
document.forms[formName].To.options[0]=new Option("Нет данных","",true,true);
globalNoData=true;
} else {
globalNoData=false;
}
document.forms[formName].From.selectedIndex=0;
document.forms[formName].To.selectedIndex=0;
if(source=='forex') document.forms[formName].date.value=forex_date;
else if(source=='cb') document.forms[formName].date.value=cb_date;
else if(source=='cash') document.forms[formName].date.value=cash_date;
changeTo();
updateQuote();
}
function getCurId(cur) {
for(i=0;i<nCurs;i++) {
if(curs[i].curId==cur) return i;
}
}
function getCurName(cur) {
for(i=0;i<nCurs;i++) {
if(curs[i].curId==cur) return curs[i].fullName;
}
}
function getQuote(fromCur,toCur,source) {
if(source=='forex') {
fromId=getCurId(fromCur);
toId=getCurId(toCur);
return forex[fromId*nCurs+toId];
} else if(source=='cb') {
fromId=getCurId(fromCur);
toId=getCurId(toCur);
return cb[fromId*nCurs+toId];
} else if(source=='cash') {
fromId=getCurId(fromCur);
toId=getCurId(toCur);
return cash[fromId*nCurs+toId];
}
}
function changeTo() { // Calling when onChange of From raised changing to select
if(globalNoData) return;
choosedSource=document.forms[formName].source.options[document.forms[formName].source.selectedIndex].value;
choosedCurId=getCurId(document.forms[formName].From.options[document.forms[formName].From.selectedIndex].value);
document.forms[formName].To.length=0;
if(choosedSource=='forex') {
for(i=0;i<nCurs;i++) {
if(forex[choosedCurId*nCurs+i]!=0) {
document.forms[formName].To.length++;
document.forms[formName].To.options[document.forms[formName].To.length-1]=new Option(curs[i].fullName,curs[i].curId,false,false);
}
}
} else if(choosedSource=='cb') {
for(i=0;i<nCurs;i++) {
if(cb[choosedCurId*nCurs+i]!=0) {
document.forms[formName].To.length++;
document.forms[formName].To.options[document.forms[formName].To.length-1]=new Option(curs[i].fullName,curs[i].curId,false,false);
}
}
} else if(choosedSource=='cash') {
for(i=0;i<nCurs;i++) {
if(cash[choosedCurId*nCurs+i]!=0) {
document.forms[formName].To.length++;
document.forms[formName].To.options[document.forms[formName].To.length-1]=new Option(curs[i].fullName,curs[i].curId,false,false);
}
}
}
document.forms[formName].To.selectedIndex=0;
updateQuote();
}
function updateQuote() {
if(globalNoData) {
document.forms[formName].quote.value="";
return;
}
fromCur=document.forms[formName].From.options[document.forms[formName].From.selectedIndex].value;
toCur=document.forms[formName].To.options[document.forms[formName].To.selectedIndex].value;
source=document.forms[formName].source.options[document.forms[formName].source.selectedIndex].value;
if(source=='forex') {
fromId=getCurId(fromCur);
toId=getCurId(toCur);
quote=forex[fromId*nCurs+toId];
} else if(source=='cb') {
fromId=getCurId(fromCur);
toId=getCurId(toCur);
if(toId>fromId) quote=cb[toId*nCurs+fromId];
else quote=cb[fromId*nCurs+toId];
} else if(source=='cash') {
fromId=getCurId(fromCur);
toId=getCurId(toCur);
if(toId>fromId) quote= 1/cash[fromId*nCurs+toId];
else quote=cash[fromId*nCurs+toId];
}
quote=""+quote;
if((ind=quote.indexOf("."))>=0) {
if(ind+5<quote.length-1) {
quote=quote.substring(0,ind+5);
}
}
document.forms[formName].quote.value=quote;
}
function compute() {
if(globalNoData) return false;
fromCur=document.forms[formName].From.options[document.forms[formName].From.selectedIndex].value;
toCur=document.forms[formName].To.options[document.forms[formName].To.selectedIndex].value;
source=document.forms[formName].source.options[document.forms[formName].source.selectedIndex].value;
sum=parseInt(document.forms[formName].sum.value);
if(isNaN(sum)) return false;
/*if(acceptUserQuote) {
quote=parseFloat(document.forms[formName].quote.value);
if(!isNaN(quote)) {
resSum=sum*quote*parseFloat(document.forms[formName].tax.options[document.forms[formName].tax.selectedIndex].value);
}
} else { */
resSum=sum*getQuote(fromCur,toCur,source)*parseFloat(document.forms[formName].tax.options[document.forms[formName].tax.selectedIndex].value);
/* } */
resSum=""+resSum;
if((ind=resSum.indexOf("."))>=0) {
if(ind+3<resSum.length-1) {
resSum=resSum.substring(0,ind+3);
}
}
document.forms[formName].ressum.value=resSum;
//updateToFrom();
//alert("from="+fromCur+"\ntoCur="+toCur);
return false;
}