function getBodyScrollTop()
// возвращает величину вертикального скролла окна
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function parse_phone(phone)
{
  var res=''; var result='';
  for (var i=0; i<phone.length; i++) if ((!isNaN(phone.charAt(i)))&&(phone.charAt(i)!=" ")) res+=phone.charAt(i);
  switch (res.length)
  {
    case 7:  result=res.charAt(0)+res.charAt(1)+res.charAt(2)+"-"+res.charAt(3)+res.charAt(4)+"-"+res.charAt(5)+res.charAt(6); break;
    case 10: result="+7 "+res.charAt(0)+res.charAt(1)+res.charAt(2)+" "+res.charAt(3)+res.charAt(4)+res.charAt(5)+"-"+res.charAt(6)+res.charAt(7)+"-"+res.charAt(8)+res.charAt(9); break;
    case 11: result="+7 "+res.charAt(1)+res.charAt(2)+res.charAt(3)+" "+res.charAt(4)+res.charAt(5)+res.charAt(6)+"-"+res.charAt(7)+res.charAt(8)+"-"+res.charAt(9)+res.charAt(10); break;
    default: result=""; break;
  }
  return result;
}
  
function clear_form(oForm) 
{
  var elements = oForm.elements; oForm.reset();
  for(i=0; i<elements.length; i++) 
  {
    field_type = elements[i].type.toLowerCase();
    switch(field_type) 
    {
      case "text": elements[i].value = ""; break;
      case "password": elements[i].value = ""; break;
      case "textarea": elements[i].value = ""; break;
      case "hidden": elements[i].value = ""; break;
      case "radio": elements[i].checked = false; break;
      case "checkbox": if (elements[i].checked) {elements[i].checked = false;} break;
      case "select-one":
      case "select-multi": elements[i].selectedIndex = -1; break;
      default: break;
    }
  }
}  

function trim(str) 
{
  str = str.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "");
  str = str.replace(/<\/?[^>]+>/gi, ''); 
  str = str.replace('/\0/g', '0').replace('/\(.)/g', '$1');
  str = str.replace(/'/g, '`');
  str = str.replace(/"/g, '`');
  return str;
}


function swap_jurfiz() // Используется в work.php
{
  if (document.getElementById('jurl').style.display=="block") 
  {
    document.getElementById('jurl').style.display="none";
    document.getElementById('flink').innerHTML="<strong>частное лицо</strong>";
    document.getElementById('jlink').innerHTML="<a href='#' onclick='swap_jurfiz(); return false;'>юридическое лицо</a>";
  } 
  else 
  {
    document.getElementById('jurl').style.display="block";
    document.getElementById('flink').innerHTML="<a href='#' onclick='swap_jurfiz(); return false;'>частное лицо</a>";
    document.getElementById('jlink').innerHTML="<strong>юридическое лицо</strong>";  
  }  
}

function recalc_itog() // Используется в services.php
{
  var up = new Array; up[1]=document.getElementById('_pay1').value*1; up[2]=document.getElementById('_pay2').value*1; up[3]=document.getElementById('_pay3').value*1; up[4]=document.getElementById('_pay4').value*1;
  var cp=document.getElementById('_sumcorrpay').value;
  
  // Вычисляем размер скидки/наценки в зависимости от того в процентах она или в рублях
  if (document.getElementById('_saleunit').value=="p") {var samount=Math.floor((document.getElementById('_itogo').innerHTML*document.getElementById('_sale').value)/100);}
                                                  else {var samount=document.getElementById('_sale').value*1;}
  
  if (document.getElementById('_sumcorr').value==0) // если это скидка - вычитаем её из заданного счета оплаты
  {
    if (up[cp]>=samount) {up[cp]=up[cp]-samount; var delta=0;} 
                    else {var delta=samount-up[cp]; up[cp]=0;}
    // delta - это разница между скидкой и счетом оплаты, если скидка больше этого счета, тогда с остальных счетов списываются равные доли дельты
    if (delta>0) while (delta>0)
    {
      if ((delta>0)&&(up[1]>0)) {delta--; up[1]--;}
      if ((delta>0)&&(up[2]>0)) {delta--; up[2]--;}
      if ((delta>0)&&(up[3]>0)) {delta--; up[3]--;}
      if ((delta>0)&&(up[4]>0)) {delta--; up[4]--;}    
    }      
                    
  }
  else {up[cp]=up[cp]+samount;} // если это наценка, просто добавляем её к счету оплаты                  
  
  // возвращаем рассчитанные данные в поля для ввода
  document.getElementById('_userpay1').value=up[1];
  document.getElementById('_userpay2').value=up[2];
  document.getElementById('_userpay3').value=up[3];
  document.getElementById('_userpay4').value=up[4];
  document.getElementById('_paysum').innerHTML=up[1]+up[2]+up[3]+up[4];
}


function select_pict(cntr) // используется в photo.php
{
  if (document.getElementById('sl'+cntr.toString()).value==document.getElementById('stor'+cntr.toString()).value) 
  {
    document.getElementById('img'+cntr.toString()).style.border='3px white solid';
    document.getElementById('sl'+cntr.toString()).value='0';
  }
  else
  {
    document.getElementById('img'+cntr.toString()).style.border='3px green solid';
    document.getElementById('sl'+cntr.toString()).value=document.getElementById('stor'+cntr.toString()).value; 
  }
  return false;
} 

function shop_activatemenu(n_cat, total) // Используется в shop.php
{
  for (i=0; i<total; i++)
  {
    document.getElementById('_box'+i).style.border='1px solid white';
    document.getElementById('_box'+i).style.background='white';
    document.getElementById('_list'+i).style.display='none';
    document.getElementById('_head'+i).style.fontWeight='normal';
  }
  document.getElementById('_box'+n_cat).style.border='1px solid #DDDDDD';
  document.getElementById('_box'+n_cat).style.background='#F5F5F5';
  document.getElementById('_list'+n_cat).style.display='block';
  document.getElementById('_head'+n_cat).style.fontWeight='bold';
}

function shop_recalculate(count) // Используется в shop_purchase.php
{
  var sum=0;
  for (i=0; i<count; i++)
  {
    document.getElementById('_sum'+i).innerHTML=document.getElementById('_pr'+i).innerHTML * document.getElementById('_am'+i).value;
    sum=sum + document.getElementById('_sum'+i).innerHTML*1;
  }
  document.getElementById('_sumtotal').innerHTML=sum;
}

function spell_days(amount) //используется в calendar/action.php
{
  switch(amount.substring(amount.length, amount.length-1))
  {
    case '0': return "дней"; break;
    case '1': if (amount=='11') {return "дней";} else {return "день";}; break;
    case '2': if (amount=='12') {return "дней";} else {return "дня";}; break;
    case '3': if (amount=='13') {return "дней";} else {return "дня";}; break;
    case '4': if (amount=='14') {return "дней";} else {return "дня";}; break;
    default: return "дней";
  }
}
