function getPageSize(){  
    var xScroll=0, yScroll=0, pageWidth=0,pageHeight=0;
    
    if(window.innerWidth && window.scrollMaxX) xScroll=window.innerWidth + window.scrollMaxX;   
    if(window.innerHeight && window.scrollMaxY) yScroll=window.innerHeight + window.scrollMaxY;
    
    if(document.body.scrollWidth && document.body.scrollWidth>xScroll) xScroll=document.body.scrollWidth;
    if(document.body.scrollHeight && document.body.scrollHeight>yScroll) yScroll=document.body.scrollHeight;
    
    if(document.body.offsetWidth && document.body.offsetWidth>xScroll) xScroll=document.body.offsetWidth;
    if(document.body.offsetHeight && document.body.offsetHeight>yScroll) yScroll=document.body.offsetHeight;
    
    if(document.documentElement.scrollWidth && document.documentElement.scrollWidth>xScroll) xScroll=document.documentElement.scrollWidth;
    if(document.documentElement.scrollHeight && document.documentElement.scrollHeight>yScroll) yScroll=document.documentElement.scrollHeight;
    
             
    var windowWidth=0, windowHeight=0;
    if (self.innerHeight) { // all except Explorer
        windowWidth = self.innerWidth;
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }
    
        
    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }
    
    return [pageWidth,pageHeight,windowWidth,windowHeight];
}






function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  
  return xmlhttp;
}




function ajax(method, url, data, successFunc, errorFunc){
    var xmlhttp = getXmlHttp();
    var GETData='';
    var POSTData=null;
    if(!method || method=='GET') GETData='?'+data;
    if(method=='POST') POSTData=data;
    xmlhttp.open(method, url+GETData, true);
    if(method=='POST'){
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    }
    xmlhttp.send(POSTData);
    
    var interv=setInterval(function(){
        if(xmlhttp.readyState == 4){   
            clearInterval(interv); 
            if(xmlhttp.status == 200){  
                successFunc(xmlhttp.responseText); 
            }else{ 
                if(errorFunc) errorFunc(xmlhttp.statusText); 
            }   
        }    
    }, 10);
}





function setElementOpacity(elem, nOpacity)
{
  var opacityProp = getOpacityProperty();

  if (!elem || !opacityProp) return; 
  
  if (opacityProp=="filter") 
  {
    nOpacity *= 100;
    

    var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
    if (oAlpha) oAlpha.opacity = nOpacity;
    else elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")";
  }
  else 
    elem.style[opacityProp] = nOpacity;
}

function getOpacityProperty()
{
  if (typeof document.body.style.opacity == 'string') 
    return 'opacity';
  else if (typeof document.body.style.MozOpacity == 'string')
    return 'MozOpacity';
  else if (typeof document.body.style.KhtmlOpacity == 'string')
    return 'KhtmlOpacity';
  else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) 
    return 'filter';

  return false; 
}


function resizeOverlay(){
    hideOverlay();                                                                     
    var f=function(){
        var buf=getPageSize();    
        __Overlay.style.display="block";
        var pageWidth=buf[0];   
        var pageHeight=buf[1];        
        __Overlay.style.width=pageWidth+'px';
        __Overlay.style.height=pageHeight+'px';
    };
    setTimeout(f, 1);
}



function showOverlay(){
    __Overlay.style.display="block";
    resizeOverlay();
}

function hideOverlay(){
    __Overlay.style.display="none";
}



function addEvent(elm, evType, fn) {
    var old_fn=elm['on' + evType];
    if(typeof old_fn=='function'){
        elm['on' + evType]=function(e){
            old_fn(e);                        
            fn(e);            
        }
    }else elm['on' + evType] = fn;
}




var __Overlay;



addEvent(window, 'load', function(){         
    __Overlay=document.createElement('div');
    __Overlay.style.position="absolute";
    __Overlay.style.display="none";
    __Overlay.style.left="0px";
    __Overlay.style.zIndex="1";
    __Overlay.style.top="0px";
    __Overlay.style.margin="0px";
    __Overlay.style.padding="0px";
    __Overlay.style.backgroundColor='black'; 
    addEvent(window, 'resize', function(){if(__Overlay.style.display=='block') resizeOverlay();});
    document.body.appendChild(__Overlay); 
    setElementOpacity(__Overlay, 0.8); 
        
       /* 
       var str='window.scrollMaxX= '+window.scrollMaxX;
       str+='\nwindow.scrollMaxY= '+window.scrollMaxY;
       str+='\ndocument.body.scrollWidth= '+document.body.scrollWidth
       str+='\ndocument.body.scrollHeight= '+document.body.scrollHeight;
       str+='\ndocument.body.offsetWidth= '+document.body.offsetWidth;
       str+='\ndocument.body.offsetHeight= '+document.body.offsetHeight;
       str+='\ndocument.documentElement.scrollWidth= '+document.documentElement.scrollWidth;
       str+='\ndocument.documentElement.scrollHeight= '+document.documentElement.scrollHeight;
    alert(str);
        */
});








function visibl() {
 eval("document.getElementById('"+visibl.arguments[0]+"').style.display=('"+visibl.arguments[1]+"')");
 eval("document.getElementById('"+visibl.arguments[2]+"').style.display=('"+visibl.arguments[3]+"')");
}

function GetObject(obj_id) {
    return document.getElementById(obj_id);
}

function show_and_hide(targetid) {
    if (document.getElementById) {
        target = document.getElementById(targetid);
        if (target.style.display == "none") {
            target.style.display = "";
        } else {
            target.style.display = "none";
        }
    }
}

/*
function calculate_WM(){
    tot=document.getElementById('wm_total_out').value;    
    res=tot*curses['WMU'][document.getElementById('wm_out').value];
    res=res-res*(procent_out/100);
    res=Math.floor(res);
    document.getElementById('dowm').innerHTML="<b>получаем: </b>"+res+" <b>грн</b>"; 
    document.getElementById('wm_total_out_cl').value=res; 
}

function calculate_WM_in(){
    tot=document.getElementById('wm_total_in').value;    
    res=tot*curses[document.getElementById('wm_in').value]['WMU'];
    res=res+res*(procent/100);
    res=Math.ceil(res);        
    document.getElementById('diwm').innerHTML="<b>платим: </b>"+res+" <b>грн</b>"; 
    document.getElementById('wm_total_in_cl').value=res; 
}
*/
                       

function calculate_WM(){
    var tariff_act=document.getElementById('out_tariff_act').value;
    var currency_text='грн';
    var discount = (document.getElementById('discount')) ? document.getElementById('discount').value : 0;
    obj=document.getElementById('wm_total_out');
    tot=obj.value;

    if(tot){       
        document.getElementById('comition_box').style.display='inline';
        var buf = parseFloat(tot); 
        buf = Math.round((buf + buf*0.008)*100)/100;
        document.getElementById('comition_sum').innerHTML = buf.toString();
    }else{
        document.getElementById('comition_box').style.display='none';
    }
    
    var curse=curses['WMU'][document.getElementById('wm_out').value]; 
    if(tariff_act == 'in_d' || tariff_act == 'out_d'){
        curse = curse*(1/curses['WMU']['WMZ']);
        currency_text='$';
    }
    
    res=tot*curse;
    var res_discount = res;
                           
    if(procent || procent===0){  
        res_discount=res-res*((procent_out - procent_out*discount/100)/100);      
        res=res-res*(procent_out/100);              
        if(tariff_act == 'in_d' || tariff_act == 'out_d'){
            res=Math.floor(res*100)/100;
            res_discount=Math.floor(res_discount*100)/100;
        }else{
            res=Math.floor(res);
            res_discount=Math.floor(res_discount); 
        }
    }else if(grn){
        res_discount=Math.floor(res-(grn-grn*discount/100));
        res=Math.floor(res-grn);
    }else return;      
    
    var disc = Math.round((res_discount-res)*100)/100;
    
    res=res.toString();
    res_discount=res_discount.toString();
    document.getElementById('dowm').innerHTML="<b>получаем: </b>"+res+" + "+disc+" (по скидке "+discount+"%) = "+res_discount+" <b>"+currency_text+"</b>";
    document.getElementById('wm_total_out_cl').value=res_discount;
    document.getElementById('wm_total_out_cl_d').value=res;
    document.getElementById('wm_discount').value=discount;
}


function checkOutSum(){         
    obj=document.getElementById('wm_total_out');
    tot=obj.value;
    tot=parseFloat(tot);
    if(price_from && tot<price_from){alert('Минимальная сумма этого тарифа '+price_from+' '+tariff_purse); return false;}
    if(price_to && tot>price_to){alert('Максимальная сумма этого тарифа '+price_to+' '+tariff_purse); return false;}
              
    var type = document.getElementById('receive_type').value;          
    if(type == 3){
        var buf = document.getElementById('receive_card_number').value;        
        if(!buf || isNaN(buf)){alert('Неверно введено поле: Номер счета'); return false;} 
    } 
    if(type == 4){                         
        var buf = document.getElementById('receive_card_number').value;        
        if(!buf || isNaN(buf)){alert('Неверно введено поле: Номер карты'); return false;} 
    }   
    
    var pasport = document.getElementById('outSn_pasport').value;
    if(pasport.length < 6){
        alert('Неверно введено поле: Серия и № паспорта'); return false;    
    }
                    
    return true;
}


function calculate_WM_in(){
    var tariff_act=document.getElementById('in_tariff_act').value;
    var currency_text='грн';
    
    obj=document.getElementById('wm_total_in');
    tot=obj.value;
    
    var curse=curses[document.getElementById('wm_in').value]['WMU'];   
    if(tariff_act == 'in_d' || tariff_act == 'out_d'){
        curse = curse*(1/curses['WMZ']['WMU']);
        currency_text='$';   
    }                                       
    
    res=tot*curse;        
     
    if(procent || procent===0){                    
        res=res+res*(procent/100);
        if(tariff_act == 'in_d' || tariff_act == 'out_d'){
            res=Math.ceil(res*100)/100;
        }else{
            res=Math.ceil(res);
        }
    }else if(grn){
        res+=grn;    
        res=Math.ceil(res);
    }else return; 
    res=res.toString();           
    document.getElementById('diwm').innerHTML="<b>платим: </b>"+res+" <b>"+currency_text+"</b>"; 
    document.getElementById('wm_total_in_cl').value=res; 
}


function checkInSum(){
    obj=document.getElementById('wm_total_in');
    tot=obj.value;
    tot=parseFloat(tot);
    if(price_from && tot<price_from){alert('Минимальная сумма этого тарифа '+price_from+' '+tariff_purse); return false;}
    if(price_to && tot>price_to){alert('Максимальная сумма этого тарифа '+price_to+' '+tariff_purse); return false;}
    return true;
}



function update_WM_data(){    
  document.getElementById('LMI_PAYMENT_AMOUNT').value=document.getElementById('wm_total_in').value;
  document.getElementById('LMI_PAYEE_PURSE').value=cashes[document.getElementById('wm_in').value];
}

function update_WM_data_out(){    
  document.getElementById('LMI_PAYMENT_AMOUNT').value=document.getElementById('wm_total_out').value;
  document.getElementById('LMI_PAYEE_PURSE').value=cashes[document.getElementById('wm_out').value];
  
  var type = document.getElementById('receive_type').value;
  var recive = '';
  if(type == 3 || type == 4){ 
    if(document.getElementById('receive_bank').value != 'other') 
        recive += ', Банк:' + BANKS[document.getElementById('receive_bank').value]['name']; 
    else
        recive += ', Банк:' +  document.getElementById('receive_other_bank').value;
  }
  if(type == 3) recive += ', Счет:' + document.getElementById('receive_account_number').value;
  if(type == 4) recive += ', Карта:' + document.getElementById('receive_card_number').value;
  
  document.getElementById('LMI_PAYMENT_DESC').value='WMID:' + document.getElementById('outId').value + ', №:' + document.getElementById('outNo').value + recive + ', Ф.И.О.:' + document.getElementById('outFio').value + ', Сер. и № пасп.:' + document.getElementById('outSn_pasport').value + ', Пасп. выдан:' + document.getElementById('outWho_pasport').value + ', Город:' + document.getElementById('outCity').value + ', mail:' + document.getElementById('outMail').value + ', Тел.:' + document.getElementById('outPhone').value;
  

}


 var procent;
 var grn;
  var procent_out;
  var price_from;
  var price_to;
  var tariff_purse;
      
                
function show_payment_form(tariff_id){ 
    showOverlay();
    
    document.getElementById('comition_sum').innerHTML = '';
    document.getElementById('comition_box').style.display='none';
    
    
    var __f=function(){
   
       
        document.getElementById('wm_total_in').value='';
        document.getElementById('wm_total_out').value='';
        
        var ind=tariff_id.indexOf('id_');
        tariff_id=tariff_id.substr(ind+3);
                                                                  
        var tariff_act=document.getElementById('tariff_act').value;    
        price_from=parseFloat(document.getElementById('price_from_'+tariff_id).value);
        price_to=parseFloat(document.getElementById('price_to_'+tariff_id).value);
        var tariff_value=parseFloat(document.getElementById('tariff_value_'+tariff_id).value);
        var tariff_type=document.getElementById('tariff_type_'+tariff_id).value;
        var purse_name=document.getElementById('purse_name_'+tariff_id).value;
        tariff_purse=purse_name;        
        
        var paymodes_type = document.getElementById('paymodes_type_'+tariff_id).value;
        
        var pay_type = (tariff_act=='in' || tariff_act=='in_d') ? 'pay' : 'receive';
        
        if(paymodes_type=='cash'){
            document.getElementById(pay_type+'_type_1').style.display = '';
            document.getElementById(pay_type+'_type_1').disabled=false;
            document.getElementById(pay_type+'_type_3').style.display = 'none';
            document.getElementById(pay_type+'_type_3').disabled=true;
            document.getElementById(pay_type+'_type_4').style.display = 'none';
            document.getElementById(pay_type+'_type_4').disabled=true;
            
            document.getElementById(pay_type+'_type_1').selected = true;
        }else{
            document.getElementById(pay_type+'_type_1').style.display = 'none';
            document.getElementById(pay_type+'_type_1').disabled=true;
            document.getElementById(pay_type+'_type_3').style.display = '';
            document.getElementById(pay_type+'_type_3').disabled=false;
            document.getElementById(pay_type+'_type_4').style.display = '';
            document.getElementById(pay_type+'_type_4').disabled=false;
            
            document.getElementById(pay_type+'_type_3').selected = true;
        }
        
         
        var p; var currency='';
        if(purse_name=='WMU'){p='u';currency='UAH'}
        if(purse_name=='WMZ'){p='z';currency='USD'}
        if(purse_name=='WME'){p='e';currency='EUR'}
        if(purse_name=='WMR'){p='r';currency='RUB'}
        
        
        
        var title_=purse_name+', ';
        if(price_from) title_+='От '+price_from;
        if(price_to){
            var buf=(price_from)?' до ' : 'До ';
            title_+=buf+price_to;
        }
        title_+=' ';
        
        
        
                          
        if(tariff_act=='in' || tariff_act=='in_d'){            
            
            document.getElementById('purse_in').value=document.getElementById('purse_'+p).value;
            if(tariff_type=='percent') procent=tariff_value; else procent='';
            document.getElementById('form_content_in').style.display='block';
            document.getElementById('wm_in').value=purse_name;
            document.getElementById('wm_in_info').innerHTML=title_;
            document.getElementById('diwm').innerHTML=' ';                 
            document.getElementById('wm_total_in').focus();
            document.getElementById('in_tariff_act').value=tariff_act;
            
            document.getElementById('tariff_plan_name_in').value = document.getElementById('tariff_plan_name').value;
            
            showBlockByPayType();
            
            setWmidByPurse('in'); 
        }else{            
        
            document.getElementById('outNo').value=document.getElementById('purse_'+p).value;
            if(tariff_type=='percent') procent_out=tariff_value; else procent='';    
            document.getElementById('form_content_out').style.display='block';
            document.getElementById('wm_out').value=purse_name;
            document.getElementById('wm_out_info').innerHTML=title_;
            document.getElementById('dowm').innerHTML=' ';
            document.getElementById('wm_total_out').focus();
            document.getElementById('out_tariff_act').value=tariff_act;
            
            document.getElementById('tariff_plan_name_out').value = document.getElementById('tariff_plan_name').value;
            
            showBlockByReceiveType();
            
            setWmidByPurse('out');
        }
        if(tariff_type=='grn') grn=tariff_value; else grn='';       
                            
    
    }
    
    
    var __Interval=setInterval(function(){if(__Overlay.style.display=='block'){__f();clearInterval(__Interval);}},10);
                        
}



function showBlockByReceiveType(){
   document.getElementById('receive_bank_c').style.display = 'none';
   document.getElementById('receive_card_number_c').style.display = 'none';
   
   document.getElementById('receive_bank').value = '0';
   document.getElementById('receive_card_number').value = '';
   document.getElementById('receive_card_number').disabled = true;
   
   var type = document.getElementById('receive_type').value;
   
   if(type == 1){
        
   }else if(type == 3){
        
        document.getElementById('receive_bank_c').style.display = '';
        document.getElementById('receive_card_number_c').style.display = '';
        document.getElementById('receive_card_number').disabled = false;
        document.getElementById('receive_card_caption').innerHTML = 'Номер счета:';
        
   }else if(type == 4){
   
        document.getElementById('receive_bank_c').style.display = '';
        document.getElementById('receive_card_number_c').style.display = '';
        document.getElementById('receive_card_number').disabled = false;
        document.getElementById('receive_card_caption').innerHTML = 'Номер карты:';
   
   }
   
   onChangeBank();  
}



function onChangeBank(){
    var type = document.getElementById('receive_type').value;
    
    document.getElementById('receive_egrpou_c').style.display = 'none';
    document.getElementById('receive_mfo_c').style.display = 'none';
    document.getElementById('receive_account_number_c').style.display = 'none';    
    document.getElementById('receive_other_bank_c').style.display = 'none';    
    document.getElementById('receive_inn_c').style.display = 'none';
    
    document.getElementById('receive_egrpou').value = '';    
    document.getElementById('receive_inn').value = '';    
    document.getElementById('receive_mfo').value = '';
    document.getElementById('receive_other_bank').value = '';
    document.getElementById('receive_account_number').value = '';
    document.getElementById('receive_account_number').disabled = true;
    document.getElementById('receive_egrpou').disabled = true;
    document.getElementById('receive_other_bank').disabled = true;
    document.getElementById('receive_mfo').disabled = true;
    document.getElementById('receive_inn').disabled = true;
    
    if(type == 3 || type == 4){
        
        if(document.getElementById('receive_bank').value == 'other'){
                        
            
            document.getElementById('receive_egrpou_c').style.display = '';
            document.getElementById('receive_mfo_c').style.display = '';       
            document.getElementById('receive_other_bank_c').style.display = '';    
            document.getElementById('receive_egrpou').disabled = false;
            document.getElementById('receive_other_bank').disabled = false;
            document.getElementById('receive_mfo').disabled = false;
            if(type == 4){
                document.getElementById('receive_account_number_c').style.display = '';
                document.getElementById('receive_account_number').disabled = false;
            }                        
        
        }
        
        if(document.getElementById('receive_bank').value == 'OTP'){
            document.getElementById('receive_inn_c').style.display = '';
            document.getElementById('receive_inn').disabled = false;
        }
        
    }     

}



function showBlockByPayType(){
    var type = document.getElementById('pay_type').value;
    
    document.getElementById('pay_bank_c').style.display = 'none';
    document.getElementById('pay_card_number_c').style.display = 'none';    
    document.getElementById('pay_card_number').value = '';    
    document.getElementById('pay_card_number').disabled = true;    
    
    if(type == 3 || type == 4){
        document.getElementById('pay_bank_c').style.display = '';
        document.getElementById('pay_card_number_c').style.display = '';
        document.getElementById('pay_card_number').disabled = false;
        if(type == 3){
            document.getElementById('pay_card_caption').innerHTML = 'Номер счета:';
        }else{
            document.getElementById('pay_card_caption').innerHTML = 'Номер карты:';
        }
    }
    
    onChangeBankIn();
}


function onChangeBankIn(){
    var type = document.getElementById('pay_type').value;
    
    document.getElementById('pay_other_bank_c').style.display = 'none'; 
    document.getElementById('pay_other_bank').value = '';
    document.getElementById('pay_other_bank').disabled = true;
    
    if(type == 3 || type == 4){
        if(document.getElementById('pay_bank').value == 'other'){
            document.getElementById('pay_other_bank_c').style.display = ''; 
            document.getElementById('pay_other_bank').disabled = false;        
        }
    }
}



function checkInData(){
    /*    
    var data = 'type=' + GetObject('pay_type').value + '&purse=' + GetObject('purse_in').value + '&amount=' + GetObject('wm_total_in').value + '&wmid=' + GetObject('wmid_in').value + '&pnomer=' + encodeURIComponent(GetObject('passport_in').value) + '&fio=' + encodeURIComponent(GetObject('fio_in').value) + '&bank=' + encodeURIComponent(GetObject('pay_bank').value) + '&card_number=' + encodeURIComponent(GetObject('pay_card_number').value) + '&other_bank=' + encodeURIComponent(GetObject('pay_other_bank').value);
    
    var f = function (data){
        GetObject('wm_in_indicator').style.visibility = 'hidden';
        if(data=='YES'){
            GetObject('Wm_form').submit();
        }else{
            alert(data);
        }        
    }
    
    GetObject('wm_in_indicator').style.visibility = 'visible';
    
    ajax('POST', '/checkByX19.php', data, f);
    */
    
    
    GetObject('Wm_form').submit();
}


var setWmidByPurseCounter = 0;


// type = in|out
function setWmidByPurse(type, complete_function){        
    if(type == 'in'){
        var wmid = document.getElementById('wmid_in');
        var purse = document.getElementById('purse_in').value;
    }else{
        var wmid = document.getElementById('outId');
        var purse = document.getElementById('outNo').value;
    }
                
    str = '';
    for(var i=0; i<purse.length; i++){
        if(purse.charAt(i) != ' ') str += purse.charAt(i);
    }
    purse = str; 
                     
    if(!purse.length) return;    
    
    setWmidByPurseCounter++;
    var counter = setWmidByPurseCounter;
                     
    var f = function(res){        
        if(counter != setWmidByPurseCounter) return;
        
        if(res.length == 12){
            wmid.value = res;
            if(typeof complete_function == 'function') complete_function();
        }else{
            wmid.value = '';
        }
    }
    
    ajax('POST', '/getWMIDbyX8.php', 'purse='+purse, f);
}




function getJson(str){
    try {            
        eval("var red="+str);                
    }
    catch (e) {            
        return false;                
    }            
    
    return red;
}

