
InUSDRevRURLimit1=InUSDLimit1*(100+InWMRKommissia2)/100;
InUSDRevRURLimit2=InUSDLimit2*(100+InWMRKommissia3)/100;

InUSDRevUSDLimit1=InUSDLimit1*(100+InWMZKommissia2)/100;
InUSDRevUSDLimit2=InUSDLimit2*(100+InWMZKommissia3)/100;

OutUSDRevRURLimit1=OutUSDLimit1*(100+OutRURKommissia2)/100;
OutUSDRevRURLimit2=OutUSDLimit2*(100+OutRURKommissia3)/100;

OutUSDRevUSDLimit1=OutUSDLimit1*(100+OutUSDKommissia2)/100;
OutUSDRevUSDLimit2=OutUSDLimit2*(100+OutUSDKommissia3)/100;

dom = (document.getElementById)? true : false;
nn4 = (document.layers)? true : false;
ie4 = (document.all && !dom)? true : false;

koef=0;
to_sum08 = 0;


function putElem(elemId) {
if (dom) var o= document.getElementById(elemId);
			if (o != null)
			{
				document.getElementById(elemId).style.display = "block";
			}
else if (ie4) document.all[elemId].style.display = "block";
}

function remElem(elemId) {
if (dom) { var o= document.getElementById(elemId);
			if (o != null)
			{
				document.getElementById(elemId).style.display = "none";
			}
		 }
		 
else if (ie4) document.all[elemId].style.display = "none";
}

function getElem(elemId) {
var s = "";
if (dom) { var o= document.getElementById(elemId);
			if (o != null)
			{
				s = o.style.display;
			}
		 }
else if (ie4) { s = document.all[elemId].style.display}
return s;
}

function ShowHideTar() { 
if (getElem('tar')!='none') { remElem('tar')}  else {putElem('tar')}
}

function OpChange() {
if (!nn4) {
if (document.op == null)
{
	return;
}
if (document.op.oper.selectedIndex==0) { remElem('vyvod_calc');putElem('vvod_calc'); } 
	else { putElem('vyvod_calc');remElem('vvod_calc'); }}
}


function RoundDec(OriginalNum, Decimals){
	if(OriginalNum<0) OriginalNum=0; return (Math.round(OriginalNum * Math.pow(10,  Decimals)) / Math.pow(10,  Decimals))
}

function Calc(from_sum, from_val, to_val, reverse)
{
 var from_sumUSD = 0;
 if (from_val%128 == 0) { from_sumUSD = from_sum;} 
  else { if (from_val%128 == 1)  {from_sumUSD = from_sum/KursUSD; }
   else { if (from_val == 2)  {from_sumUSD = from_sum*KursTensor/KursUSD; } // Тензор у.е.
           else { if (from_val == 3)  {from_sumUSD = from_sum/KursUSD; } } // Тензор рубли
        }
       } 
 // превращаем исходную сумму в доллары 
 var koefZ = 0;
 var koefR = 0;
 var k = 0;
 var sum = 0;
 if (!reverse)
 { // прямой расчет
  switch (from_val) 
  {
  case 0:; // WM - ввод
  case 1:
   if (from_sumUSD<InUSDLimit1) { koefZ=InWMZKommissia1; koefR=InWMRKommissia1;}
   else { if (from_sumUSD>=InUSDLimit2) { koefZ=InWMZKommissia3; koefR=InWMRKommissia3; }
           else {koefZ=InWMZKommissia2; koefR=InWMRKommissia2;} }
  if (from_val%128 == 0) { k=koefZ;  }
   else if (from_val%128 == 1) { k=koefR; }
   break;
  case 2:;
  case 3: k=0; koefZ=0; koefR=0; break; 
  case 128:;
  case 129: // нал - вывод
   if (from_sumUSD<OutUSDLimit1) { koefZ=OutUSDKommissia1; koefR=OutRURKommissia1;}
   else { if (from_sumUSD>=OutUSDLimit2) { koefZ=OutUSDKommissia3; koefR=OutRURKommissia3; }
           else {koefZ=OutUSDKommissia2; koefR=OutRURKommissia2;}
        }
  if (to_val%128 == 0) { k=koefZ; }
   else if (to_val%128 == 1) { k=koefR; }
   break;
  }   
  if (to_val%128 == 0) {sum = from_sumUSD*(100+k)/100; }
   else if (to_val%128 == 1) {sum = from_sumUSD*KursUSD*(100+k)/100; }
     else if (to_val == 2) {sum = from_sumUSD*KursUSD/KursTensor;}
       else if (to_val == 3) {sum = from_sumUSD*KursUSD;}
 }
 else
 {
  switch (from_val) 
  {
  case 0:; // WM - вывод
  case 1:
   if (from_sumUSD<OutUSDRevRURLimit1) { koefR=OutRURKommissia1; }
   else { if (from_sumUSD>=OutUSDRevRURLimit2) { koefR=OutRURKommissia3; }
           else { koefR=OutRURKommissia2;}
        }
   if (from_sumUSD<OutUSDRevUSDLimit1) { koefZ=OutUSDKommissia1;}
   else { if (from_sumUSD>=OutUSDRevUSDLimit2) { koefZ=OutUSDKommissia3; }
           else { koefZ=OutUSDKommissia2;}
        }
   if (from_val%128 == 0) {k=koefZ; }
     else if (from_val%128 == 1) {k=koefR; }
   break;
  case 2:;
  case 3: k=0; koefZ=0; koefR=0; break; 
  case 128:; // нал - ввод
  case 129:
   if (from_sumUSD<InUSDRevRURLimit1) { koefR=InWMRKommissia1;}
   else { if (from_sumUSD>=InUSDRevRURLimit2) { koefR=InWMRKommissia3; }
           else {koefR=InWMRKommissia2;}
        }
   if (from_sumUSD<InUSDRevUSDLimit1) { koefZ=InWMZKommissia1;}
   else { if (from_sumUSD>=InUSDRevUSDLimit2) { koefZ=InWMZKommissia3; }
           else {koefZ=InWMZKommissia2;}
        }
   if (to_val%128 == 0) {k=koefZ; }
     else if (to_val%128 == 1) {k=koefR; }
   break;
  }   
 if (to_val%128 == 0) {sum = from_sumUSD*100/(100 + k);}
   else if (to_val%128 == 1) { sum = from_sumUSD*KursUSD*100/(100 + k);}
     else if (to_val == 2) {sum = from_sumUSD*KursUSD/KursTensor;}
       else if (to_val == 3) {sum = from_sumUSD*KursUSD;}
 }
 
 if (from_val>=128)  { sumtot1 = sum; val = to_val; } else { sumtot1 = from_sum; val = from_val; }
 sumtot = sumtot1*0.008;
 if (val%128 == 0) {
  if (sumtot<0.01)   { sumtot = 0.01; }
   else if (sumtot>50) { sumtot = 50 ; }
  sumtot = RoundDec(sumtot1+sumtot,2) + 'WMZ';
 }
 else if (val%128 == 1) {
  if (sumtot<0.01)   { sumtot = 0.01; }
   else if (sumtot>1500) { sumtot = 1500 ; }
  sumtot = RoundDec(sumtot1+sumtot,2) + 'WMR';
 }
 koef = RoundDec(k,2) + '%';
 to_sum08 = sumtot;
 return RoundDec(sum,2);
}


function InCalculate1(form)
{
 if (isNaN(form.InSumma1.value)) { return; }
 var from_sum=form.InSumma1.value-0;
 var from_val=form.InValuta1.selectedIndex+128;
 var to_val=form.InValuta2.selectedIndex;
 form.InSumma2.value=RoundDec(Calc(from_sum, from_val, to_val, 1),2);
 form.kom.value=koef;
}

function InCalculate2(form) {
 if (isNaN(form.InSumma2.value))  {  return;  }
 var from_sum=form.InSumma2.value-0;
 var from_val=form.InValuta2.selectedIndex;
 var to_val=form.InValuta1.selectedIndex+128;
 form.InSumma1.value=RoundDec(Calc(from_sum, from_val, to_val, 0),2);
 form.kom.value=koef;
}

function OutCalculate1(form)
{
 if (isNaN(form.OutSumma1.value)) { return; }
 var from_sum=form.OutSumma1.value-0;
 var from_val=form.OutValuta1.selectedIndex;
 var to_val=form.OutValuta2.selectedIndex+128;
 form.OutSumma2.value=RoundDec(Calc(from_sum, from_val, to_val, 1),2);
 form.kom.value=koef;
 form.total.value=to_sum08;
}

function OutCalculate2(form)
{
 if (isNaN(form.OutSumma2.value)) { return; }
 var from_sum=form.OutSumma2.value-0;
 var from_val=form.OutValuta2.selectedIndex+128;
 var to_val=form.OutValuta1.selectedIndex;
 form.OutSumma1.value=RoundDec(Calc(from_sum, from_val, to_val, 0),2);
 form.kom.value=koef;
 form.total.value=to_sum08;
}

function TensorCalculate2(form)
{
 if (isNaN(form.InSumma2.value))  {  return;  }
 var from_sum=(form.InSumma2.value-0)/(1+TensorCom);
 var from_val=form.InValuta2.selectedIndex;
 var to_val=form.InValuta1.selectedIndex+2;
 if (to_val==2) { form.InSumma1.value=RoundDec(Calc(from_sum, from_val, to_val, 0),4);}
    else { form.InSumma1.value=RoundDec(Calc(from_sum, from_val, to_val, 0),2);}
}

function TensorCalculate1(form)
{
 if (isNaN(form.InSumma1.value))  {  return;  }
 var from_sum=(form.InSumma1.value-0)*(1+TensorCom);
 var from_val=form.InValuta1.selectedIndex+2;
 var to_val=form.InValuta2.selectedIndex;
 form.InSumma2.value=RoundDec(Calc(from_sum, from_val, to_val, 0),2);
}


function GetKeyPres(KeyEvent) {
 return (KeyEvent.which) ? KeyEvent.which : KeyEvent.keyCode;
}

function ItsDigit(KeyEvent, MyForm, Digits) {
 var KeyPresed = GetKeyPres(KeyEvent)
 if ( ((MyForm.value.length - (MyForm.value.indexOf(".")==-1?100:MyForm.value.indexOf(".")))<Digits+1)
       &&((((KeyPresed>=48) && (KeyPresed<=57)) || (KeyPresed<40))))
    //     ||  ((KeyPresed>=96) && (KeyPresed<=105)))) || (KeyPresed==46))
       { return true }
 return false
}

function ItsFloatDigit(KeyEvent, MyForm, Digits) {
 var Flag = ItsDigit(KeyEvent, MyForm, Digits)
 var KeyPresed = GetKeyPres(KeyEvent)
// alert(KeyPresed);
 if (Flag) { return true; }
 else if ((MyForm.value.indexOf(".") == -1) && ((KeyPresed==46)||(KeyPresed==47)))
 	{ MyForm.value = MyForm.value+ "."; return false	}
 	//  ((KeyPresed==110)||(KeyPresed==190)||(KeyPresed==191)||(KeyPresed==188)))
 return false
}

function ItsTensorSum(MyForm, event, Form1)
{
 if (MyForm.InValuta1.selectedIndex==0) return ItsFloatDigit(event, Form1,4)
  else if (MyForm.InValuta1.selectedIndex==1) return ItsFloatDigit(event, Form1,2)
}

function InFormValidate(form)
{
 if (isNaN(form.InSumma2.value)) {  alert("Некорректный ввод"); form.InSumma2.value='0'; return false; }
 if (isNaN(form.InSumma1.value)) {  alert("Некорректный ввод"); form.InSumma1.value='0'; return false; }
 sum1=form.InSumma1.value-0;
 sum2=form.InSumma2.value-0;
 if (sum1==0)
 {
   alert("0 - слишком мало для заказа"); return false;
 }
}

function OutFormValidate(form)
{
 if (isNaN(form.OutSumma2.value)) {  alert("Некорректный ввод"); form.OutSumma2.value='0'; return false; }
 if (isNaN(form.OutSumma1.value)) {  alert("Некорректный ввод"); form.OutSumma1.value='0'; return false; }
 sum2=form.OutSumma2.value-0;
 if (sum2==0)
 {
   alert("0 - слишком мало для заказа"); return false;
 }
}

function checkEmail(myForm) {
   if (/^[-a-z0-9!#$%&\'*+/=?^_`{|}~]+(\.[-a-z0-9!#$%&\'*+/=?^_`{|}~]+)*@(([a-z]([-a-z0-9]*[a-z0-9]+)?){1,63}\.)+([a-z]([-a-z0-9]*[a-z0-9]+)?){2,63}$/.test(myForm.mail.value)) { return (true) }
alert("Некорректный e-mail");
return false;
}

function checkPurse(myForm)
{
  var test = myForm.purse.value;
  if (test.length!=13)
  {
     alert("Некорректный номер кошелька.");
	 return false;
  }
  var ltr=" ";
  switch (myForm.InValuta2.value)
  {
  case "0": ltr="Z"; break;
  case "1": ltr="R"; break;
  case "2": ltr="E";
  }
  if (test.charAt(0)!=ltr)
  {
     alert("Некорректный тип кошелька.");
	 return false;
  }
  
  for (i=1; i<test.length; i++) {
    if ((test.charCodeAt(i)>57) || (test.charCodeAt(i)<48)) {

     alert("Некорректный номер кошелька.");
     return false;
   }
  }
   return true;
}

function CommunalFormValidate(form)
{
  var test = form.luno.value;
  if ((test.length!=3) || (isNaN(test)))
  {
     alert("Некорректный номер линейного участка (должно быть 3 цифры).");
	 return false;
  }
  
  test = form.schetno.value;
  if ((test.length!=9) || (isNaN(test)))
  {
     alert("Некорректный номер лицевого счёта (должно быть 9 цифр).");
	 return false;
  }

 if (isNaN(form.OutSumma2.value))
   {
	  alert("Сумма к оплате некорректна");
	  form.OutSumma2.value='0';
	  return false;
   }

 sum1=form.OutSumma2.value-0;
 if (sum1<1)
 {
   alert("Cлишком мало для оплаты");
   return false;
 }
}

function Validate1(MyForm)
{
 if ((checkEmail(MyForm)) && (checkPurse(MyForm))) {return true;}
 return false;
}

function Validate2(MyForm)
{
 if (checkEmail(MyForm)) {return true;}
 return false;
}

function TensorValidate(form)
{
 if (isNaN(form.InSumma2.value)) {  alert("Некорректный ввод"); form.InSumma2.value='0'; return false; }
 if (isNaN(form.InSumma1.value)) {  alert("Некорректный ввод"); form.InSumma1.value='0'; return false; }
 if (isNaN(form.account.value)) {  alert("Некорректный ввод"); form.account.value=''; return false; }
 sum1=form.InSumma1.value-0;
 sum2=form.InSumma2.value-0;
 if (sum1==0)
 {
   alert("0 - слишком мало для заказа"); return false;
 }
}

