function showForm() {
	document.getElementById("calcdiv").style.display = 'block';
}
function closeForm() {
	document.getElementById("calcdiv").style.display = 'none';
}

function doRas() {
   if (!ableCalc) {      // Расчет не разрешен
      return false;
   }
	// Значения для расчета
	// 1. Вид деятельности
	var deyatprice = {'opt': 4200,		// Торговля оптовая
				 'rozn': 6300, 			   // Торговля розница
				 'smesh': 6900, 			// Торговля смешанная (опт и розн.)
				 'usl': 1000, 			   // Услуги
				 'proizv': 8900, 		   // Производство
				 'predst': 6500};	 	   // Представительство
	// 2. Система налогообложения
	var sysnalprice = {'osn': 3900,	// ОСН
					   'usn6': 700, 	   // УСН 6
					   'usn15': 2100, 	   // УСН 15
					   'envd': 500, 	   // ЕНВД
					   'smesh': 2500}; 	// Смешанная (ЕНВД+Общая, ЕНВД+УСН)
	// 3. Количество работников общее
	var rabprice = 950;
	// 4. Количество накладных (актов) по покупке товаров услуг в месяц
	var pokprice = 550;
	// 5. Количество накладных (актов) по продаже товаров услуг в месяц
	var prodprice = 400;
	// 6. Наличие ВЭД
	var vedprice = {'y': 6000,			// да
					'n': 0};			   // нет
	// 7. Количество кассовых аппаратов
	var kassaprice = 1000;
				 
	// Проверка правильности ввода
   var allOK = fldProv('fio') * fldProv('phone') * fldProv('email') * fldProv('rabkol') * fldProv('pokkol') * fldProv('prodkol') * fldProv('kassa');
   if (!allOK) {      // Если не все проверки прошли удачно
      document.calcform.itogo.value = 0;
      return;
   }
   // Расчет
   var res = deyatprice[document.calcform.deyat.value] + sysnalprice[document.calcform.sysnal.value] + 
             rabprice*document.calcform.rabkol.value + pokprice*document.calcform.pokkol.value + 
             prodprice*document.calcform.prodkol.value + vedprice[document.calcform.ved.value] + 
             kassaprice*document.calcform.kassa.value;
   document.calcform.itogo.value = res;
   document.calcform.itogo.className = document.calcform.itogo.className + " ready";
   window.setTimeout(function(){document.calcform.itogo.className = document.calcform.itogo.className.replace(" ready", "");},1000);
   
   for (var i = 0; i < document.calcform.deyat.length; i++) { 
      if (document.calcform.deyat.options[i].selected == true)  
         var deyattxt = document.calcform.deyat.options[i].text;       
   }
   for (var i = 0; i < document.calcform.sysnal.length; i++) { 
      if (document.calcform.sysnal.options[i].selected == true)  
         var sysnaltxt = document.calcform.sysnal.options[i].text;       
   }
   for (var i = 0; i < document.calcform.ved.length; i++) { 
      if (document.calcform.ved.options[i].selected == true)  
         var vedtxt = document.calcform.ved.options[i].text;       
   }
   // Отправка письма
   var request = createRequest();
   var url = "/calc/sendmail.php";      // поменять пути 
   request.open("POST", url, false);
   request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   var sendstr = "deyat="+deyattxt + "&sysnal="+sysnaltxt + 
                 "&rabkol="+document.calcform.rabkol.value + "&pokkol="+document.calcform.pokkol.value + 
                 "&prodkol="+document.calcform.prodkol.value + "&ved="+vedtxt + 
                 "&kassa="+document.calcform.kassa.value + "&itogo="+res + 
                 "&fio="+document.calcform.fio.value + "&phone="+document.calcform.phone.value + 
                 "&email="+document.calcform.email.value;
   request.send(sendstr);
   dispBttn(false);
}

// Проверка значения, введенного в поле fld
function fldProv(fld) {
   var ok = true;
   var fldval = document.calcform[fld].value;
   document.calcform[fld].className = document.calcform[fld].className.replace(" err", "");
   var re = '';
   if (fldval == undefined) fldval = '';
   fldval = fldval.replace(/^\s+/, "").replace(/\s+$/, "");
   switch (fld) {
      case 'fio':
         re = /^[А-Яа-яA-Za-z\s\-\.]{3,}$/;
         if (!re.test(fldval)) {
            ok = false;
            break;
         }
         // Фильтруем ФИО, состоящие из одинаковых символов (например, 'ххх'). Для этого берем первый символ в строке и убираем все его вхождения в имени
         var ch1 = fldval.charAt(0);
         var difch = fldval.substr(1);
         do {
            chpos = difch.search(ch1);
            difch = difch.substr(0,chpos) + difch.substr(chpos+1);
         } while (chpos>=0);
         if (difch.replace(/[\-\s]/g, "").length==0)    ok = false;
         break;
      case 'phone':
         re = /^(8|\+7)?[0123456789\-\(\)\s]{7,}$/;
         document.calcform[fld].value = fldval;
         if (!re.test(fldval)) {
            ok = false;
            break;
         }
         // проверяем количество цифр
         var digs = fldval.replace(/^(8|\+7)?/, "").replace(/\D/g, "");     // убираем все нецифровые символы и 8 или +7 из начала номера 
         var digcnt = digs.length;
         if (digcnt<7 || digcnt>10) {                                      // от 7 до 10 цифр
            ok = false;       
            break;
         }
         if (digs.substr(0,3)==digs.substr(3,3)) {                         // первые 3 цифры не повторяются
            ok = false;       
            break;
         }
         re = /^\d*(012345|123456|234567|345678|456789|987654|876543|765432|654321|543210)+\d*$/;
         if (re.test(fldval)) {                                            // если есть перечисленные последовательности - ошибка
             ok = false;       
         }
         break;
      case 'email':
         re = /^\w+([\.-]?\w+)*@(((([a-z0-9]{2,})|([a-z0-9][-][a-z0-9]+))[\.][a-z0-9])|([a-z0-9]+[-]?))+[a-z0-9]+\.(ru|com|by|org|su|de|es)$/i;
         break;
      default: 
         if (''==fldval) document.calcform[fld].value = 0;
         else    {
            fldval = fldval.replace(",", ".");
            re = /^[0-9\.]+$/;
         }
   }
   document.calcform[fld].value = fldval;
   if (fld!='fio' && fld!='phone' && ''!=re && !re.test(fldval))     ok = false;  
   if (ok==false) {        // есть ошибки при вводе
      document.calcform[fld].className = document.calcform[fld].className + " err";
      dispBttn(false);
      return false;
   }
   dispBttn(true);
   return true;
}

var ableCalc = true;    // разрешен или нет расчет
function dispBttn(able) {
   ableCalc = able;
}


//----------------- Создание объекта запроса Ajax --------------------- 
function createRequest() {
   try {
      request = new XMLHttpRequest();
   } catch (trymicrosoft) {
      try {
         request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (othermicrosoft) {
         try {
            request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (failed) {
            request = null;
         }
      }
   }
   if (request == null) {
      alert("Error creating request object!");
   } else {
      return request;
   }
}


