// calc.js

// Смена форм
function ChangeAsk(val) {
  var i=0;
  i = val.substring(4,3);
  i++;
  if(val!="end") {
   for (k=1;k<=3;k++) {
    if (i!=k) {
     document.getElementById('Ask'+k).style.display='none';
    } else {
     document.getElementById('Ask'+k).style.display='block';
    }
   }
  } else {
    for (k=1;k<=3;k++) {
     document.getElementById('Ask'+k).style.display='none';
    }
    document.getElementById('end').style.display='block';
  }
 }

// Проверка занесения форм
 function checkAsk(val, ftype) {
  var fields_ask1 = new Array();
  var fields_ask2 = new Array();
  var fields_ask3 = new Array();
  var k = 0;
  var countvals_ask1 = 0;
  var countvals_ask2 = 0;
  var countvals_ask3 = 0;

  fields_ask1[0] = "ask1_hm";
  fields_ask1[1] = "ask1_time";

  fields_ask2[0] = "ask2_hms";
  fields_ask2[1] = "ask2_hms_var";
  fields_ask2[2] = "ask2_hms_time";

  fields_ask3[0] = "ask3_yn";

  var nlink = val.name.substring(5,3);

  switch(ftype) {
   default:
    // for(k=0;k<((val.elements.length)-1);k++) {
   for(k=0;k<((val.elements.length));k++) {
     if(val.elements[k].checked==true) {
      countvals_ask1++;
     }
    }

    if(countvals_ask1 == eval("fields_"+val.name).length) {
     nlink++;
     document.getElementById('ask'+nlink+'_link').style.display='block';
     SaveParams(val,0);
    }
   break;
   case "select":
    for(k=0;k<((val.elements.length));k++) {
      if(val.elements[k].name == 'ask2_hms' && val.elements[k].value == 'other') {
          fields_ask2[3] = "ask2_hms_other";
          if (val.ask2_hms_other.value.length > 0) {
           countvals_ask2++;
           SaveParams(val,0);
          }
      }
    }
    countvals_ask2 = countvals_ask2 + 2;
    for(k=0;k<((val.elements.length));k++) {
     if(val.elements[k].checked==true) {
      countvals_ask2++;
      SaveParams(val,0);
     }
    }
    if(countvals_ask2 == eval("fields_"+val.name).length) {
     nlink++;
     document.getElementById('ask'+nlink+'_link').style.display='block';
     SaveParams(val,0);
    }
   break;
   case "text":
    for(k=0;k<((val.elements.length)-1);k++) {
     if(val.elements[k].checked==true) {
      countvals_ask3++;
     }
    }
    for(k=0;k<((val.elements.length)-1);k++) {
     if(val.elements[k].name == 'ask3_yn' && val.elements[k].checked == true) {
      nlink++;
      if(val.elements[k].value==0) {
      fields_ask3[1] = "ask3_hms";
      fields_ask3[2] = "ask3_hms_var";
      countvals_ask3 = countvals_ask3+2;
      SaveParams(val,0);
      }
     }
    }
    SaveParams(val,0);
   break;
  }
makeLastStage(nlink);
}

 // Подготовка расчета
function makeLastStage(val) {
    if (window.brackets==undefined) {
      window.brackets = new Array();
    }
    var inarr = 0;
     if (window.brackets.length == 0 ) { window.brackets[0]=val;}
    for (i=0; i<window.brackets.length; i++) {
     if (window.brackets[i]==val) {  inarr++;  }
    }
    if (inarr == 0) {
     window.brackets[window.brackets.length]=val;
    }

    // window.alert("VAL: ("+val+") 0:"+window.brackets[0]+" 1:"+window.brackets[1]+" 2:"+window.brackets[2]+" 3:"+window.brackets[3]+" COUNT:"+window.brackets.length);

     if(window.brackets.length==4) {
      document.getElementById('end_link_button').disabled=false;
      document.getElementById('end_link_button').className='button_active_bold';
      document.getElementById('end_link').style.display='block';
     }
}
 // Чистка undefined элементов массивов
 function remUndef(val) {
  nvalarr = Array();
  var z = 0;
  for (i=0;i<val.length; i++) {
   if(val[i]!=undefined) {
    nvalarr[z] = val[i];
    z++;
   }
  }
  return nvalarr;
 }

// Сохранение данных для рассчета
 function SaveParams(val, togo) {

  if (window.countvals==undefined) {
   window.countvals=0;
  }
  if (window.nvals==undefined) {
   window.nvals = new Array();
  }
  if (window.valsn==undefined) {
   window.valsn = new Array();
  }

 for (z=0;z<val.elements.length;z++) {
  for (m=0; m<valsn.length; m++) {
   if(valsn[m]==val.elements[z].name) {
    minus = 1;
    window.valsn.splice(m,minus);
    window.nvals.splice(m,minus);
   }
  }
 }

  for(k=0;k<(val.elements.length);k++) {
   if(val.elements[k].checked==true) {
    window.nvals[countvals]=val.elements[k].value;
    window.valsn[countvals]=val.elements[k].name;
    countvals++;
   }
  }

  for(k=0;k<(val.elements.length);k++) {
   if(val.elements[k].type!="radio") {
    window.nvals[countvals]=val.elements[k].value;
    window.valsn[countvals]=val.elements[k].name;
    countvals++;
   }
  }
  window.nvals = remUndef(nvals);
  window.valsn = remUndef(valsn);

   if(nvals.length>=10) {
    makeEnd(nvals,valsn);
   }
 }

// Прямо
function showDirect(ok) {
  var EndBlock = document.getElementById('EndBlock');
  var UpperTextBlock = document.getElementById('UpperTextBlock');
  var Message = document.getElementById('Message');
  var response = "";
  UpperTextBlock.style.display='none';
  Message.style.display='block';

  for (z=1; z<=3 ; z++) {
   document.getElementById('Ask'+z).style.display='none';
   document.getElementById('ask'+z+'_link').style.display='none';
  }
  response= response + "Указанное Вами значение, в месяц: <b>" +ok+"</b> мин.<br>";
// Цены по тарифам + подборка тарифного плана
  response= response+"<br><table cellpadding='3' cellspacing='0' width='100%' border='1'><tr><td colspan='4'>Результирующие стоимости по тарифным планам.</td></tr>";
  response= response+"<tr><td>Тариф</td><td>Абонплата, руб.</td><td>Расчет по ТП (руб. * минуты)</td><td>Итого, руб./месяц</td></tr>";
  var ok_tarif1_ok = Math.round((ok*.28)+125);
  response= response+"<tr><td>Повременный</td><td>125</td><td>"+.28.toString()+" * "+ok+"</td><td>"+ok_tarif1_ok+"</td></tr>";
  var ok_tarif2 = (ok - 370);
  if (ok_tarif2 > 0) {
  var ok_tarif2_ok = Math.round((ok_tarif2*.23)+229);
  response= response+"<tr><td>Комбинированный</td><td>229 (125+104)</td><td>"+.23.toString()+" * "+ok_tarif2+"</td><td>"+ok_tarif2_ok+"</td></tr>";
  } else {
  response= response+"<tr><td>Комбинированный</td><td>229 (125+104)</td><td>"+.23.toString()+" * 0"+"</td><td>229 (125+104)</td></tr>";
  }
  response= response+"<tr><td>Безлимитный</td><td>380</td><td>-</td><td>380</td></tr>";
  response= response+"</table><br>";

  document.getElementById('end').style.display='block';
  EndBlock.innerHTML=response;
}


// По шагам
 function makeEnd(nvals, valsn) {
  var EndBlock = document.getElementById('EndBlock');
  var UpperTextBlock = document.getElementById('UpperTextBlock');
  var response = "";
  var k=0;

  for(i=0;i<nvals.length; i++) {
  switch(valsn[i]) {
 // Долгие
  case "ask1_hm":
   var ask1_hm = nvals[i];
  break;
  case "ask1_time":
   var ask1_time = nvals[i];
  break;
 // Короткие
 case "ask2_hms":
  if(nvals[i]=="other") {
   for (gg=0; gg<valsn.length; gg++) {
    if (valsn[gg]=="ask2_hms_other") {
     var ask2_hms = nvals[gg];
    }
   }
  } else {
   var ask2_hms = nvals[i];
  }
 break;
 case "ask2_hms_var":
  var ask2_hms_var = nvals[i];
 break;
 case "ask2_hms_time":
  var ask2_hms_time = nvals[i];
 break;
 // Отсутствие
 case "ask3_yn":
  var ask3_yn = nvals[i];
  if(nvals[i]==0) {
   for (zz=0; zz<valsn.length; zz++) {
    if (valsn[zz]=="ask3_hms") {
     var ask3_hms = nvals[zz];
    }
    if (valsn[zz]=="ask3_hms_var") {
     var ask3_hms_var = nvals[zz];
    }
   }
  }
 break;
 }
}
 // Человеческие слова
  switch (ask1_hm) {
   case "56":
    var ask1_hms = "чаще, чем один раз в день";
   break;
   case "28":
    var ask1_hms = "один раз, каждый день";
   break;
   case "8":
    var ask1_hms = "2 раза в неделю";
   break;
   case "4":
    var ask1_hms = "1 раз в неделю";
   break;
   case "2":
    var ask1_hms = "1 раз в  2 недели";
   break;
   case "1":
    var ask1_hms = "реже, чем один раз в две недели";
   break;
 }
  response= response + "<br>";
  response= response + "Продолжительные разговоры: <b>" + ask1_hms + "</b>, по <b>" + ask1_time + "</b> мин.<br>";
  response= response + "На продолжительные разговоры в месяц: <b>" + (ask1_hm*ask1_time) + "</b> мин.<br>";
  response= response + "<br>";
 // Человеческие слова 
 switch(ask2_hms_var) {
   case "28":
    var human_ask2_hms_var = "ежедневно";
   break;
   case "4":
    var human_ask2_hms_var = "еженедельно";
   break;
   case "1":
    var human_ask2_hms_var = "ежемесячно";
   break;

 }
  response= response + "Короткие звонки: <b>" + ask2_hms + "</b> раз(а), <b>"+human_ask2_hms_var+"</b>, по <b>"+ask2_hms_time+"</b> мин.<br>";
  response= response + "На короткие звонки в месяц: <b>" +(ask2_hms*ask2_hms_var*ask2_hms_time)+"</b> мин.<br>";
  response= response + "<br>";
 // Проверка на наличие периода не работы с гтс.
  if (ask3_yn>0) {
   response= response + "Телефон используется круглый год.<br>";
  } else {
   response= response + "В течение года Вы не используете телефон: <b>"+(ask3_hms*ask3_hms_var)+"</b> мин. (<b>"+((ask3_hms*ask3_hms_var)/60)+"</b> час.).<br>";
  }
  response= response + "<br>";
  if(ask3_yn>0) {
   var ok = ((ask2_hms*ask2_hms_var*ask2_hms_time)+(ask1_hm*ask1_time));
   response= response + "В среднем Вы разговариваете <b>" +ok+"</b> мин. в месяц.<br>";
  } else {
   var real_year = (483840 - (ask3_hms*ask3_hms_var));
   var real_month = real_year/12;
   var month_k = 40320/real_month;
   var ok = Math.round(((ask2_hms*ask2_hms_var*ask2_hms_time)+(ask1_hm*ask1_time))/month_k);
   response= response + "В среднем Вы разговариваете <b>" +ok+"</b> минут в месяц*.<br>";
   response= response + "* с учетом периода, когда телефон не используется.<br>";
  }
 // Цены по тарифам + подборка тарифного плана (поskipано по приказу)
  response= response+"<br><table cellpadding='3' cellspacing='0' width='100%' border='1'><tr><td colspan='4'>Результирующие стоимости по тарифным планам.</td></tr>";
  response= response+"<tr><td>Тариф</td><td>Абонплата, руб.</td><td>Расчет по ТП (руб. * минуты)</td><td>Итого, руб./месяц</td></tr>";
  var ok_tarif1_ok = Math.round((ok*.28)+125);
  response= response+"<tr><td>Повременный</td><td>125</td><td>"+.28.toString()+" * "+ok+"</td><td>"+ok_tarif1_ok+"</td></tr>";
  var ok_tarif2 = (ok - 370);
  if (ok_tarif2 > 0) {
  var ok_tarif2_ok = Math.round((ok_tarif2*.23)+229);
  response= response+"<tr><td>Комбинированный</td><td>229 (125+104)</td><td>"+.23.toString()+" * "+ok_tarif2+"</td><td>"+ok_tarif2_ok+"</td></tr>";
  } else {
  response= response+"<tr><td>Комбинированный</td><td>229 (125+104)</td><td>"+.23.toString()+" * 0"+"</td><td>229</td></tr>";
  }
  response= response+"<tr><td>Безлимитный</td><td>380 (125+225)</td><td>-</td><td>380 (125+225)</td></tr>";
  response= response+"</table><br>";
  EndBlock.innerHTML=response;
 }

// Подгрузка верхнего текста
 function getUpperTextBlock() {
  try {
   externalDoc = new XMLHttpRequest();
  } catch(error) {
   try {
    externalDoc = new ActiveXObject("Msxml2.XMLHTTP");
   } catch(error) {
     window.alert("Извините, но для корректной работы этой страницы, нужна более современная программа для просмотра web-страниц (броузер)");
     return;
   }
  }

  if ( navigator.appName=="Microsoft Internet Explorer" ) {
   externalDoc.open('GET','/calc/files/upper.htm', false);
  } else { 
   externalDoc.open('GET','/calc/files/upper.htm', false);
  }
  externalDoc.send(null);

  var UpperTextBlock = document.getElementById('UpperTextBlock');
  meta = document.createElement('meta');
  meta.setAttribute('http-equiv', 'content-type');
  meta.setAttribute('content', 'text/html; charset=UTF-8');
  UpperTextBlock.appendChild(meta);

  try {
   if (externalDoc.status==200) {
    var restext;
    restext = externalDoc.responseText;
    UpperTextBlock.style.display="block";
    UpperTextBlock.innerHTML=restext;
   } else {
     window.alert('Ошибка соединения сервера: Обратитесь к службу поддержки страницы: url@spdop.ru'); 
   }
  } catch (error) {
   var conmes="Идет загрузка данных, подождите.";
   UpperTextBlock.innerHTML=conmes;
   }
 }

// Число ли?
function IsNumeric(sText) {
 var ValidChars = "0123456789";
 var IsNumber=true;
 var Char;

 for (i = 0; i < sText.length && IsNumber == true; i++) {
  Char = sText.charAt(i); 
  if (ValidChars.indexOf(Char) == -1) {
   IsNumber = false;
  }
 }
  return IsNumber;
 }
