<!--
// Обработка событий
// Смена тарифа
function jscChangeTarif(objFld)
{
 var n,i,j,k,ionTarif,objCars,ionCarOld,ionCarNew=0,jCar;
 var urlAgree=urlRules;
 var objAgree;
 var isFind;

 // Получаем тариф
 n=objFld.selectedIndex;
 ionTarif=objFld.options[n].value;

 // Ищем новый url условий
 if(ionTarif!=0)
  for(i=0;i<T.length;i++)
   if(T[i][0]==ionTarif)
    {
     if(T[i][6].length>0)
      urlAgree=T[i][6];

     break;
    }

 objAgree=document.getElementById("id_agree");
 if(objAgree)
  objAgree.href=urlAgree;

 // Доступаемся к списку автомобилей
 objCars=document.getElementById("id_cars");

 if(objCars)
  {
   n=objCars.selectedIndex;
   ionCarOld=objCars.options[n].value;

   // Очищаем список автомобилей
   for(i=objCars.options.length-1;i>0;i--)
    objCars.options[i]=null;

   // Формируем список автомобилей тарифа
   jCar=0;

   // Фильтруем автомобили по тарифу
   for(i=0,j=1;i<arrCar.length;i++)
    {
     isFind=0;
     
     if(ionTarif==0)
       isFind=1;
      else
     for(k=0;k<TC[ionTarif].length;k++)
      {
       if(TC[ionTarif][k]!=arrCar[i][0])
        continue;
        
       if(arrCar[i][0]==lastCar)
        jCar=j;

       isFind=1;       
       break;
      }

     if(isFind)
      objCars.options[j++]=new Option(arrCar[i][2],arrCar[i][0]);
    }

   objCars.selectedIndex=jCar;
   ionCarNew=objCars.options[jCar].value;

   // Обрабатываем смену автомобиля
   if(ionCarOld!=ionCarNew)
    {
     ionCarNew=lastCar;
     jscChangeCar(objCars,0);
     lastCar=ionCarNew;

     jscDrawAdds(objFld.form);

     return;
    }
  }
  

 // Активируем таблицу дополнительных данных
 jscDrawAdds(objFld.form);


 // Вызываем калькулятор
 jscRecalc1(objFld.form);
}


// Смена автомобиля
function jscChangeCar(objFld,isUCP)
{
 var n,ionCar,img="";
 var obj;

 n=objFld.selectedIndex;
 ionCar=objFld.options[n].value;
 lastCar=ionCar;

 if(ionCar==0)
   img="<?=constImgNothing?>";
  else
  {
   for(i=0;i<arrCar.length;i++)
    if(arrCar[i][0]==ionCar)
     {
      img="/view.php"+arrCar[i][1];
      break;
     }
  }

 obj=document.getElementById("id_crPreview");
 if(obj)
  obj.src=img;

 obj=document.getElementById("id_crA");
 if(obj)
  {
   obj.href="/car_info.php?cr="+ionCar;
   obj.style.display=(ionCar==0 ? "none" : "block");
  }

 obj=document.getElementById("id_crPreviewE");
 if(obj)
  obj.style.display=(ionCar!=0 ? "none" : "block");


 // Обновляем цены дополнительных колонок
 if(isUCP!=0)
  jscUpdateColsPrice();
  
  
 // Вызываем пересчет калькулятора
 jscRecalc1(objFld.form);
}


// Смена места получения/выдачи
function jscChangePlace(objSel,mode)
{
 var frm,idBlock,objBlock,n,ionPlace,i,isOffice=0;
 var ionOffice=0;
 var parms,strRet,arrRet;
 var isOK=1;

 frm=objSel.form;

 // Получаем выбраное место получения/возврата
 n=objSel.selectedIndex;
 ionPlace=objSel.options[n].value;

 // Определяем ID офиса для этого места
 for(i=0;i<arrOffices.length;i++)
  if(ionPlace==arrOffices[i][1])
   {
    ionOffice=arrOffices[i][0];
    break; 
   }

 // Доступаемся к блоку информации о выбраном офисе
 idBlock="id_placeinfo_"+mode;
 objBlock=document.getElementById(idBlock);

 // Обновляем информацию в нем
 if(objBlock)
  {
   if(ionOffice==0)
    {
     // Место получения/выдачи не является офисом
     // Выключаем блок информации
     objBlock.style.display="none";
    }
    else
    {
     // Надо отобразить данные офиса в блоке информации
     // Запрашиваем через AJAX данные офиса
     // Собственно вызов
     parms="off="+ionOffice+"&tms="+(tms++);
     objReq.open("GET","/ajax/get_office_info.php?"+parms,false);
     objReq.send(null);

     // Проверянм результат
     if(isOK && objReq.status!=200)
      {
       alert("Системная ошибка при получении информации об офисе: "+objReq.statusText);
       isOK=0;
      }
 
     if(isOK)
      {
       strRet=objReq.responseText;
       if(strRet.charAt(0)!="0")
        {
         arrRet=objReq.responseText.split("|");
         alert("Ошибка при получении информации об офисе:\n"+arrRet[0]+" - "+arrRet[1]);
         isOK=0;
        } 
      }

     if(isOK)
      objBlock.innerHTML=strRet.substring(1,strRet.length-1);

     objBlock.style.display=(isOK ? "block" : "none");
    }
  }


 // Вызываем пересчет калькулятора
 jscRecalc1(frm);
}


// Управляем видимостью таблицы дополнительных данных
function jscDrawAdds(frm)
{
 var objTab;
 var cntOpt,cntCol;

 
 // Доступаемся к строке таблицы дополнительных данных
 objTab=document.getElementById("row_adds");
 if(!objTab)
  return;
 

 // Активируем сопутствующие услуги 
 cntOpt=jscDrawOptions(frm);
  

 // Активируем дополнительные колонки
 cntCol=jscDrawCols(frm);

 
 // Определяемся с видимостью всей таблицы
 objTab.style.display=(cntOpt==0 && cntCol==0 ? "none" : (jisMozilla ? "table-row" : "block")); 
}


// Управление видимостью сопутствующих услуг
function jscDrawOptions(frm)
{
 var objSel,n,ionTarif,jTarif;
 var isShow=0;
 var objRow;
 var i;
 var cntShow=0;


 // Получаем важные параметры
 objSel=document.getElementById("id_tarifs");
 if(!objSel)
  return(0);

 n=objSel.selectedIndex;
 ionTarif=objSel.options[n].value;
 

 // Ищем данные тарифа
 if(ionTarif!=0)
  {
   for(jTarif=0;jTarif<T.length;jTarif++)
    if(T[jTarif][0]==ionTarif)
      break;
   
   if(jTarif<T.length)
    if(T[jTarif][5]==0)
     isShow=1;
  }
  

 // Задаем видимость строк сопутствующих услуг
 for(i=0;i<arrOptions.length;i++)
  {
   objRow=document.getElementById("id_tro_row_"+arrOptions[i][0]);
   if(!objRow)
    continue;

   if(isShow)
    cntShow++;    

   objRow.style.display=(isShow==0 ? "none" : (jisMozilla ? "table-row" : "block"));
  }
  
 return(cntShow); 
}


// Управление видимостью дополнительных колонок
function jscDrawCols(frm)
{
 var objSel,n,ionTarif;
 var objRow,objFld;
 var i;
 var cntShow=0;


 // Получаем важные параметры
 objSel=document.getElementById("id_tarifs");
 if(!objSel)
  return(0);

 n=objSel.selectedIndex;
 ionTarif=objSel.options[n].value;

 // Убираем дополнительные колонки других тарифов
 // Дополнительные колонки текущего тарифа включаем
 // Конвертируем выставленные значения колонок чужих тарифов в соответствующие колонки текущего тарифа
 for(i=0;i<CL.length;i++)
  {
   // Получаем строку с дополнительной колонкой
   objRow=document.getElementById("id_trc_row_"+CL[i][0]);
   if(!objRow)
    continue;

   // Определяем ее видимость 
   if(CL[i][1]==ionTarif)
    cntShow++;

   objRow.style.display=(CL[i][1]!=ionTarif ? "none" : (jisMozilla ? "table-row" : "block"));

   // Конвертируем значение колонки между тарифами
   if(ionTarif!=0 && CL[i][1]!=ionTarif)
    {
     objFld=document.getElementById("id_trc_"+CL[i][0]);
     if(objFld && objFld.checked)
      {
       // Пытаемся найти аналогичную колонку в активном тарифе
       for(j=0;j<CL.length;j++)
        {
         if(CL[j][1]!=ionTarif)
          continue;

         if(CL[j][2]!=CL[i][2])
          continue;

         objFld.checked=false;

         objFld=document.getElementById("id_trc_"+CL[j][0]);
         if(objFld)
          objFld.checked=true;

         break;
        }
      }
    }
  }

 // Вызываем обновление цен в дополнительных колонках
 if(cntShow>0)
  jscUpdateColsPrice();

 return(cntShow);
}


// Обновление цен в видимых дополнительных колонках
function jscUpdateColsPrice()
{
 var objSel,n,ionTarif,ionCar;
 var objTD,objFld;
 var i,j;
 var strPrice;


 // Получаем важные параметры
 objSel=document.getElementById("id_tarifs");
 if(!objSel)
  return;

 n=objSel.selectedIndex;
 ionTarif=objSel.options[n].value;

 if(ionTarif==0)
  return;

 objSel=document.getElementById("id_cars");
 if(!objSel)
  return;

 n=objSel.selectedIndex;
 ionCar=objSel.options[n].value;

 // Обходим дополнительные колонки
 // Для видимых колонок ищем цену и выставляем ее
 for(i=0;i<CL.length;i++)
  {
   // Пропускаем невидимые колонки
   if(CL[i][1]!=ionTarif)
    continue;

   // Доступаемся к колонке с ценой
   objTD=document.getElementById("id_trc_prc_"+CL[i][0]);
   if(!objTD)
    continue;

   // Если автомобиль не выбран, то цена будет пустой
   if(ionCar==0)
    {
     objTD.innerHTML="&nbsp;";
     continue;
    }

   // Автомобиль выбран. Ищем цену
   // Если в тарифе будет задан сезон, то цена останется пустой, ибо непонятно, какой сезон принимать.
   // Оставим эту проблему на будущее
   strPrice="";
   for(j=0;j<C.length;j++)
    {
     if(C[j][0]!=CL[i][0])
      continue;

     if(C[j][1]!=ionTarif)
      continue;

     if(C[j][3]!=ionCar)
      continue;

     if(C[j][2]!=0)
      continue;

     strPrice=C[j][4]+" руб.";
     if(CL[i][4]==0)
      strPrice+=" в день";

     break;
    }

   objTD.innerHTML=strPrice;
  } 
}


// Калькулятор
function jscRecalc1(frm)
{
 var ionTarif,ionCar,ionPlaceBeg,ionPlaceEnd;
 var dtbY,dtbM,dtbD,dtbH,dtbI;
 var dteY,dteM,dteD,dteH,dteI;
 var strParms="",strRet;
 var i,cnt;
 var objFld;
 var arrRet=[],arrLine=[];
 var strAmount="",strErr="",strNotes="",strNote="",strValue="";
 var arrO=[],arrC=[];
 

 // Получаем параметры формы
 ionTarif=frm.itarif.options[frm.itarif.selectedIndex].value;
 ionCar=frm.icar.options[frm.icar.selectedIndex].value;
 ionPlaceBeg=frm.cplaceb.options[frm.cplaceb.selectedIndex].value;
 ionPlaceEnd=frm.cplacee.options[frm.cplacee.selectedIndex].value;

 dtbY=frm.dtby.options[frm.dtby.selectedIndex].value; 
 dtbM=frm.dtbm.options[frm.dtbm.selectedIndex].value; 
 dtbD=frm.dtbd.options[frm.dtbd.selectedIndex].value; 
 dtbH=frm.dtbh.options[frm.dtbh.selectedIndex].value; 
 dtbI=frm.dtbi.options[frm.dtbi.selectedIndex].value; 

 dteY=frm.dtey.options[frm.dtey.selectedIndex].value; 
 dteM=frm.dtem.options[frm.dtem.selectedIndex].value; 
 dteD=frm.dted.options[frm.dted.selectedIndex].value; 
 dteH=frm.dteh.options[frm.dteh.selectedIndex].value; 
 dteI=frm.dtei.options[frm.dtei.selectedIndex].value; 
 

 // Формируем параметры
 strParms="itarif="+ionTarif+
         "&icar="+ionCar+
         "&cplaceb="+ionPlaceBeg+
         "&cplacee="+ionPlaceEnd+
         "&dtby="+dtbY+
         "&dtbm="+dtbM+
         "&dtbd="+dtbD+
         "&dtbh="+dtbH+
         "&dtbi="+dtbI+
         "&dtey="+dteY+
         "&dtem="+dteM+
         "&dted="+dteD+
         "&dteh="+dteH+
         "&dtei="+dteI+
         "&tms="+(tms++);


 // Добавляем в параметры выбранные сопутствующие товары
 for(i=0;i<arrOptions.length;i++)
  {
   objFld=document.getElementById("id_tro_"+arrOptions[i][0]);
   if(!objFld)
    continue;
   
   if(objFld.checked)
    strParms+="&tro_"+arrOptions[i][0]+"=1";
  }
  

 // Добавляем в параметры выбранные дополнительные колонки
 for(i=0;i<CL.length;i++)
  {
   objFld=document.getElementById("id_trc_"+CL[i][0]);
   if(!objFld)
    continue;
   
   if(objFld.checked)
    strParms+="&trc_"+CL[i][0]+"=1";
  }
  
  
 // Отправляем запрос вычислителю
 objReq.open("POST","/ajax/get_order_amount.php",false);
 objReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
 objReq.send(strParms);

 // Проверянм результат
 if(objReq.status!=200)
  {
   alert("Системная ошибка при расчете стоимости заказа: "+objReq.statusText);
   return;
  }
 
 strRet=objReq.responseText;
 if(strRet.charAt(0)!="0")
  {
   arrRet=objReq.responseText.split("|");
   alert("Ошибка при расчете стоимости заказа:\n"+arrRet[0]+" - "+arrRet[1]);
   return;
  }
  
 arrRet=strRet.split("\n");

 
 // Формируем сообщения
 if(arrRet.length>1)
  strAmount=arrRet[1];
  
 strErr="";
 for(i=2;i<arrRet.length;i++)
  {
   if(arrRet[i].length==0)
    break;
    
   strErr+=arrRet[i]+"<br />";
  }
  
 strNotes="";
 for(i++;i<arrRet.length;i++)
  {
   if(arrRet[i].length==0)
    break;
    
   strNotes+=arrRet[i]+"<br />";
  }
  
 strNote=strErr;
 if(strNotes.length>0)
  strNote=strNotes; 
  
 arrO=[];
 for(i++,cnt=0;i<arrRet.length;i++)
  {
   if(arrRet[i].length==0)
    break;
    
   arrLine=arrRet[i].split("|");
   if(arrLine.length!=2)
    continue;
    
   arrO[cnt++]=[arrLine[0],arrLine[1]];
  }
  
 arrC=[];
 for(i++,cnt=0;i<arrRet.length;i++)
  {
   if(arrRet[i].length==0)
    break;
    
   arrLine=arrRet[i].split("|");
   if(arrLine.length!=2)
    continue;
    
   arrC[cnt++]=[arrLine[0],arrLine[1]];
  }
  
  
 // Обновляем данные формы
 // Результаты расчета
 objFld=document.getElementById("id_notes");
 if(objFld)
  objFld.innerHTML=strNote;
  
 objFld=document.getElementById("id_notes_row")
 if(objFld)
  objFld.style.display=(strNote.length==0 ? "none" : (jisMozilla ? "table-row" : "block"));
  
 objFld=document.getElementById("id_amount");
 if(objFld)
  objFld.innerHTML=strAmount;
 

 // Таблица сопутствующих услуг
 for(i=0;i<arrOptions.length;i++)
  {
   strValue="&nbsp;";
   for(j=0;j<arrO.length;j++)
    if(arrO[j][0]==arrOptions[i][0])
     {
      strValue=arrO[j][1];
      break;
     }
     
   objFld=document.getElementById("id_tro_amt_"+arrOptions[i][0]);
   if(!objFld)
    continue;
    
   objFld.innerHTML=strValue;
  }
 
 
 // Таблица дополнительных колонок 
 for(i=0;i<CL.length;i++)
  {
   strValue="&nbsp;";
   for(j=0;j<arrC.length;j++)
    if(arrC[j][0]==CL[i][0])
     {
      strValue=arrC[j][1];
      break;
     }
     
   objFld=document.getElementById("id_trc_amt_"+CL[i][0]);
   if(!objFld)
    continue;
    
   objFld.innerHTML=strValue;
  }
}
//-->
