// JavaScript Document


// use. Справочник авто
function showCarDct(form){
  var CarYear = form.CarProductYear.value;
  if ( wCarBrands != null )
    if ( wCarBrands.closed ) { wCarBrands = null; }
    else { wCarBrands.focus(); return; }
  wCarBrands = open( '', 'WindowCarBrands', oCarBrandOpen );
  with (wCarBrands.document){
    write('<form name="CarBrands" method="post" action="/system/modules/reso.express.site/elements/controller.jsp">');
    write('<input type="hidden" name="action"  value=\'viewCarBrands\'>');
    write('<input type="hidden" name="CarProductYear"  value=\''+ CarYear +'\'>'); 
    write('<input type="hidden" name="sessionID" value="' + form.sessionID.value + '">');
    write('</form>');
    close();
    CarBrands.submit();
  }
}

// use. Справочник годов выпуска
function showYearDct(form){
  var content = "<ul>\n";
  for ( i = cToday.getFullYear(); i >= (cToday.getFullYear() - 7); i-- ) {
    content = content + "<li><a class='value' href='#' OnClick=' " +
              " if (" + form.CarModelID.value + " != 0 ) { " +
              " document.getElementById( \"sessionID\" ).value = \"" + form.sessionID.value + "\";" +
              " document.getElementById( \"id\" ).value = " + i + ";" +
              " document.getElementById( \"action\" ).value = \"setCarYears\"; " +
              " document.formDictionary.submit(); }" +
              " else window.close(); " +
              " window.opener.document.getElementById( \"CarProductYear\" ).value = " + i + ";" +
              " window.opener.document.getElementById( \"CarProductYearDisabled\" ).value = " + i + ";" +
              " return false; " +
              "'> " +  i + "</a></li>\n";
    }
  content = content + "</ul>\n";
  setSimpleDct( "Год изготовления авто", content, null, oSimpleDct );
}

// use. Справочник авто. Выбор модели авто.
function selectValue( id, action ){
  var elm = document.getElementById( "formDictionary" );
  elm.id.value = id;
  elm.action.value = action;
  elm.submit();
  return false;
}

// for Cash
function lpad(str, char, count) {
        var s = new String( str );
        for ( var i = 1; i <= ( count - s.length ); i++ ) {
                s = char.concat(s);
        }
    return s;
}

// use. Расчет toDate
function CalcToDate() {
  if (CheckElementAsDate(document.formCalc.PolicyFromDate))
  {
    var aFromDate = document.formCalc.PolicyFromDate.value.split(".");
    d = eval( aFromDate[0] );
    m = eval( aFromDate[1] - 1 );
    y = eval( aFromDate[2] );
    FromDate = new Date(y,m,d);
    ToDate = new Date( FromDate.getFullYear() + 1, FromDate.getMonth(), FromDate.getDate() - 1 );
    document.formCalc.PolicyToDate.value = Date2String(ToDate);
    //lpad(ToDate.getDate(),'0',2) + '.' + lpad((ToDate.getMonth() + 1),'0',2) + '.' + ToDate.getFullYear();
  }
}

// use. Проверка заполненности обящательных полей Калькулятора
function checkRequiredFields(form, carTab, driverTab, policyTab) {
    countTab = policyTab;
    if (( form.CarModelID.value.length <= 0 ) || ( form.CarModelID.value == 0  ) ) {
          alert(cErrorEmptyCarModel);
          ShowDiv(carTab, countTab);
          return false;
        }
    if (( form.CarModificationID.value.length <= 0 ) || ( form.CarModificationID.value == 0 ) ) {
          alert(cErrorEmptyCarModel);
          ShowDiv(carTab, countTab);
          return false;
        }

    if ( ( !checkElementAsDouble( form.CarPriceDisabled ) ) || ( new Number( form.CarPriceDisabled.value ) <= 0 ) ) {
          alert(cErrorEmptyCarPrice);
          ShowDiv(carTab, countTab );
          form.CarPriceDisabled.focus();
          return false;
        }

    if ( ( new Number( form.CarPriceDisabled.value ) < new Number( form.CarPriceMin.value ) ) || ( new Number( form.CarPriceDisabled.value ) > new Number( form.CarPriceMax.value )  ) ) {
          alert(cErrorWrongCarPrice);
          ShowDiv(carTab, countTab );
          form.CarPriceDisabled.focus();
          return false;
        }

    if ( (form.CarProductYear.value < (cToday.getFullYear() - 8) ) || (form.CarProductYear.value > cToday.getFullYear() )) {
          alert(cErrorWrongCarPorductYear);
          ShowDiv(carTab, countTab );
          form.CarProductYear.focus();
          return false;
        }

    if ( (form.CarRenta.value != "Д" ) && (form.CarRenta.value != "Н" )) {
          alert(cErrorWrongCarRenta);
          ShowDiv(carTab, countTab );
          form.CarRenta.focus();
          return false;
        }

    if (form.CarGoal.value != 0 ) {
          alert( cErrorUnUsableCarGoal );
          ShowDiv(carTab, countTab );
          form.CarGoal.focus();
          return false;
        }

    if ( (form.CarOwnerRegion.value != 1 ) && (form.CarOwnerRegion.value != 200270 ) ) {
          alert(cErrorWrongCarOwnerRegion);
          ShowDiv(carTab, countTab );
          form.CarOwnerRegion.focus();
          return false;
        }

    if (( vDriverCount == 0 ) && ( !form.DriverAccessType.checked )) {
          alert(cErrorCountDriver);
          ShowDiv( driverTab, countTab );
          return false;
    }

    if ( ( form.DriverAccessType.checked ) && (form.InsuredKBM.value.length <= 0) ) {
          alert(cErrorInsuredKBM);
          ShowDiv( driverTab, countTab );
          return false;
    }

    for ( var i = 1; i <= vDriverCount; i++ ) {
        // проверка формата даты рождения
        if ( !CheckElementAsDateWOAlert(eval('document.formCalc.DriverBirthDate' + i + ''))) {
            alert(cErrorWrongDriverBirthDate);
            ShowDiv(driverTab, countTab);
            eval('document.formCalc.DriverBirthDate' + i + '.focus(); ');
            return false;
        }
        // проверка правильного диапазона даты рождения
        var aBirthDate = eval('document.formCalc.DriverBirthDate' + i + '.value.split(".")');
        var y = eval(aBirthDate[2]);
        if ( ( y < cToday.getFullYear() - 80 ) || ( y > cToday.getFullYear() - 18 ) ) {
          alert(cErrorWrongDriverBirthDate);
          ShowDiv(driverTab, countTab);
          eval('document.formCalc.DriverBirthDate' + i + '.focus(); ');
          return false;
        }
        // проверка пола
        if ( (eval('document.formCalc.DriverSex' + i + '.value != "F"')) && (eval('document.formCalc.DriverSex' + i + '.value != "M"'))) {
            alert(cErrorWrongDriverSex);
            ShowDiv(driverTab, countTab);
            eval('document.formCalc.DriverSex' + i + '.focus(); ');
            return false;
        }
    } // for по водителям

    if ( ( form.PolicyDeductible.value != 7000 ) && ( form.PolicyDeductible.value != 0 ) )  {
          alert(cErrorWrongPolicyDeductible);
          ShowDiv(policyTab, countTab);
          form.PolicyDeductible.focus();
          return false;
        }

    /* kajam 2010-12-06 
    if ( form.PolicyLiaISum.value != 500000 )  {
          alert(cErrorWrongPolicyLiaISum);
          ShowDiv(policyTab, countTab);
          form.PolicyLiaISum.focus();
          return false;
        }
    */
    if ((form.PolicyLiaISum.value != 300000)  &&  (form.PolicyLiaISum.value != 600000)  &&
       (form.PolicyLiaISum.value != 1000000) &&  (form.PolicyLiaISum.value != 1500000) &&
       (form.PolicyLiaISum.value != 3000000)) 
    {
          alert(cErrorWrongPolicyLiaISum);
          ShowDiv(policyTab, countTab);
          form.PolicyLiaISum.focus();
          return false;
    }
    return true;
}

//use. Рассчитать полис
function calculatePolicy() {
  // проверка заполненности полей
  if ( checkRequiredCalcSmallFields()  ) {
    setActionAndSubmit( document.formCalc, 'calcNewPolicy' );
  }
}


// use. Проверка заполненности полей Калькулятор
function checkRequiredCalcSmallFields() {
  if ( !checkRequiredFields(document.formCalc, cCalcCarTab, cCalcDriverTab, cCalcPolicyTab)  ) {
    return false;
  }

  for ( var i = 1; i <= vDriverCount; i++ ) {
    // проверка стажа вождения
    if ( (eval('document.formCalc.DriverStage' + i + '.value < 0 ')) || (eval('document.formCalc.DriverStage' + i + '.value > 11 '))) {
      alert(cErrorWrongDriverStage);
      ShowDiv( cCalcDriverTab, cCalcPolicyTab );
      eval('document.formCalc.DriverStage' + i + '.focus(); ');
      return false;
    }
  }

  if ( document.formCalc.protectedCode.value.length <= 0  ) {
    alert(cErrorEmptyProtectedCode);
    ShowDiv( cCalcPolicyTab, cCalcPolicyTab );
    document.formCalc.protectedCode.focus();
    return false;
  }
  return true;
}

// use. CalcBig. проверка заполненности обязательных полей
function checkRequiredCalcBigFields() {
  if ( !checkRequiredFields(document.formCalc, cCashCarTab, cCashDriverTab, cCashPolicyTab )  ) {
    return false;
  }

  document.formCalc.insuredFIO.value = trim(document.formCalc.insuredFIO.value);
  if ( document.formCalc.insuredFIO.value.length <= 0 ) {
    alert(cErrorEmptyName);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredFIO.focus();
    return false;
  }

  // проверка формата даты рождения
  if ( !CheckElementAsDateWOAlert(document.formCalc.insuredBirthDate)) {
    alert(cErrorWrongDriverBirthDate);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    //document.formCalc.insuredBirthDate.focus();
    return false;
  }

  // проверка правильного диапазона даты рождения
  var aBirthDate = document.formCalc.insuredBirthDate.value.split(".");
  var y = aBirthDate[2];
  if ( ( y < cToday.getFullYear() - 80 ) || ( y > cToday.getFullYear() - 18 ) ) {
    alert(cErrorWrongDriverBirthDate);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredBirthDate.focus();
    return false;
  }

  // проверка пола
  if ( ( document.formCalc.insuredSex.value != "F" ) && (document.formCalc.insuredSex.value != "M") ) {
    alert(cErrorWrongDriverSex);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredSex.focus();
    return false;
  }

  document.formCalc.insuredNum.value = trim(document.formCalc.insuredNum.value);
  if ( document.formCalc.insuredNum.value.length <= 0 ) {
    alert(cErrorEmptyDocNum);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredNum.focus();
    return false;
  }

  document.formCalc.insuredSeria.value = trim(document.formCalc.insuredSeria.value);
  if ( document.formCalc.insuredSeria.value.length <= 0 ) {
    alert(cErrorEmptyDocSeria);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredSeria.focus();
    return false;
  }

  document.formCalc.insuredCity.value = trim(document.formCalc.insuredCity.value);
  if ( document.formCalc.insuredCity.value.length <= 0 ) {
    alert(cErrorEmptyCity);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredCity.focus();
    return false;
  }
  document.formCalc.insuredMPhone.value = trim(document.formCalc.insuredMPhone.value);
  if ( !phonePattern.test(document.formCalc.insuredMPhone.value) ) {
    alert(cErrorWrongMPhone);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredMPhone.focus();
    return false;
  }
  if ( !emailPattern.test(document.formCalc.insuredEMail.value) ) {
    alert(cErrorWrongEMail);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredEMail.focus();
    return false;
  }
  document.formCalc.ownerFIO.value = trim(document.formCalc.ownerFIO.value);
  if ( document.formCalc.ownerFIO.value.length <= 0 ) {
    alert(cErrorEmptyName);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerFIO.focus();
    return false;
  }
  // проверка формата даты рождения
  if ( !CheckElementAsDateWOAlert(document.formCalc.ownerBirthDate)) {
    alert(cErrorWrongDriverBirthDate);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    //document.formCalc.ownerBirthDate.focus();
    return false;
  }

  // проверка правильного диапазона даты рождения
  aBirthDate = document.formCalc.ownerBirthDate.value.split(".");
  y = aBirthDate[2];
  if ( ( y < cToday.getFullYear() - 80 ) || ( y > cToday.getFullYear() - 18 ) ) {
    alert(cErrorWrongDriverBirthDate);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerBirthDate.focus();
    return false;
  }

  // проверка пола
  if ( ( document.formCalc.ownerSex.value != "F" ) && (document.formCalc.ownerSex.value != "M") ) {
    alert(cErrorWrongDriverSex);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerSex.focus();
    return false;
  }

  document.formCalc.ownerNum.value = trim(document.formCalc.ownerNum.value);
  if ( document.formCalc.ownerNum.value.length <= 0 ) {
    alert(cErrorEmptyDocNum);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerNum.focus();
    return false;
  }

  document.formCalc.ownerSeria.value = trim(document.formCalc.ownerSeria.value);
  if ( document.formCalc.ownerSeria.value.length <= 0 ) {
    alert(cErrorEmptyDocSeria);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerSeria.focus();
    return false;
  }


  document.formCalc.ownerCity.value = trim(document.formCalc.ownerCity.value);
  if ( document.formCalc.ownerCity.value.length <= 0 ) {
    alert(cErrorEmptyCity);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerCity.focus();
    return false;
  }

  document.formCalc.ownerMPhone.value = trim(document.formCalc.ownerMPhone.value);
  if ( !phonePattern.test(document.formCalc.ownerMPhone.value) ) {
    alert(cErrorWrongMPhone);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerMPhone.focus();
    return false;
  }

  if ( !emailPattern.test(document.formCalc.ownerEMail.value) ) {
    alert(cErrorWrongEMail);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerEMail.focus();
    return false;
  }

  // проверка соответствия формату VIN
  if ( !vinPattern.test(trim(document.formCalc.CarVIN.value)) ) {
    alert(cErrorEmptyVIN);
    ShowDiv(cCashCarTab, cCashPolicyTab );
    document.formCalc.CarVIN.focus();
    return false;
  }

  document.formCalc.CarPassportSeria.value = trim(document.formCalc.CarPassportSeria.value);
  if ( document.formCalc.CarPassportSeria.value.length <= 0 ) {
    alert(cErrorEmptyCarPassportSeria);
    ShowDiv(cCashCarTab, cCashPolicyTab );
    document.formCalc.CarPassportSeria.focus();
    return false;
  }

  document.formCalc.CarPassportNum.value = trim(document.formCalc.CarPassportNum.value);
  if ( document.formCalc.CarPassportNum.value.length <= 0 ) {
    alert(cErrorEmptyCarPassportNum);
    ShowDiv(cCashCarTab, cCashPolicyTab );
    document.formCalc.CarPassportNum.focus();
    return false;
  }

  if ( (document.formCalc.CarPassportNum.value.length + document.formCalc.CarPassportSeria.value.length) > 10 ) {
    alert(cErrorCarPassportLenghtMore);
    ShowDiv(cCashCarTab, cCashPolicyTab );
    document.formCalc.CarPassportSeria.focus();
    return false;
  }

  if ( (document.formCalc.insuredArea.value.length +
        document.formCalc.insuredCity.value.length +
        document.formCalc.insuredStreet.value.length +
        document.formCalc.insuredHouse.value.length +
        document.formCalc.insuredFlat.value.length ) > 80 ) {
    alert(cInsuredAddressLenghtMore);
    ShowDiv(cCashInsuredTab, cCashPolicyTab );
    document.formCalc.insuredArea.focus();
    return false;
  }

  if ( (document.formCalc.ownerCity.value.length +
        document.formCalc.ownerStreet.value.length +
        document.formCalc.ownerHouse.value.length +
        document.formCalc.ownerFlat.value.length ) > 80 ) {
    alert(cOwnerAddressLenghtMore);
    ShowDiv(cCashOwnerTab, cCashPolicyTab );
    document.formCalc.ownerArea.focus();
    return false;
  }

  document.formCalc.RegSign.value = trim(document.formCalc.RegSign.value);
  if ( !regSignPattern.test(document.formCalc.RegSign.value) ) {
    alert(cErrorWrongCarRegSign);
    ShowDiv(cCashCarTab, cCashPolicyTab );
    document.formCalc.RegSign.focus();
    return false;
  }

  document.formCalc.RegSign.value = trim( document.formCalc.RegSign.value );
  if ( !regSignMoscowPattern.test( document.formCalc.RegSign.value ) ) {
    alert( cErrorWrongRegionCarRegSign );
    ShowDiv( cCashCarTab, cCashPolicyTab );
    document.formCalc.RegSign.focus();
    return false;
  }


  if (trim(document.formCalc.CarDate.value).length > 0 ) {
    if ( CheckElementAsDateWOAlert(document.formCalc.CarDate)) {
      aCarPTSDate = document.formCalc.CarDate.value.split(".");
      y = aCarPTSDate[2];
      var m = aCarPTSDate[1] - 1;
      var d = aCarPTSDate[0];
      var carPTSDate = new Date(y, m, d);
      if ( carPTSDate > cToday ) {
        alert(cErrorWrongCarPTSDate);
        ShowDiv(cCashCarTab, cCashPolicyTab );
        document.formCalc.CarDate.focus();
        return false;
      }
    }
    else {
      alert(cErrorIncorrectDate);
      ShowDiv(cCashCarTab, cCashPolicyTab );
      document.formCalc.CarDate.focus();
      return false;
    }
  }

  // проверка формата даты
  if ( !CheckElementAsDateWOAlert(document.formCalc.PolicyFromDate) ) {
     alert(cErrorIncorrectDate);
     ShowDiv(cCashPolicyTab, cCashPolicyTab );
     //document.formCalc.PolicyFromDate.focus();
     return false;
  }
  // проверка правильного диапазона даты
  var aFromDate = document.formCalc.PolicyFromDate.value.split(".");
  var d = eval(aFromDate[0]);
  var m = eval(aFromDate[1] - 1 );
  var y = eval(aFromDate[2]);
  FromDate = new Date(y,m,d);
  EnableDate = new Date();
  EnableDate = new Date( EnableDate.getFullYear(), EnableDate.getMonth(), EnableDate.getDate() + 14 );
  if ( (FromDate > EnableDate) || ( FromDate < cToday ) ) {
    alert(cErrorWrongPolicyFromDate);
    ShowDiv(cCashPolicyTab, cCashPolicyTab );
    //document.formCalc.PolicyFromDate.focus();
    return false;
  }

  if ( !( document.formCalc.PolicyRiskDamage.checked || document.formCalc.PolicyRiskTheft.checked ||
    document.formCalc.PolicyRiskOSAGO.checked || document.formCalc.PolicyRiskLiability.checked ) )
  {
    if ( document.formCalc.PolicyResoHelp.checked )
      alert( cErrorWrongPolicyRiskResoHelp );
    else
      alert( cErrorWrongPolicyRisk );
    ShowDiv( cCashPolicyTab, cCashPolicyTab );
    return false;
  }

  for ( var i = 1; i <= vDriverCount; i++ ) {
    if (eval('trim(document.formCalc.DriverFIO' + i + '.value).length <= 0')) {
      alert(cErrorEmptyName);
      ShowDiv(cCashDriverTab, cCashPolicyTab );
      eval('document.formCalc.DriverFIO' + i + '.focus(); ');
      return false;
    }

    if (eval('trim(document.formCalc.DriverLicenseSeria' + i + '.value).length <= 0')) {
      alert( cErrorEmptyDriverLicenseSeria );
      ShowDiv(cCashDriverTab, cCashPolicyTab );
      eval('document.formCalc.DriverLicenseSeria' + i + '.focus(); ');
      return false;
    }

    if ( !checkElementAsInteger( eval('document.formCalc.DriverLicenseNum' + i ) ) ) {
      alert( cErrorEmptyDriverLicenseNumber );
      ShowDiv(cCashDriverTab, cCashPolicyTab );
      eval('document.formCalc.DriverLicenseNum' + i + '.focus(); ');
      return false;
    }

    // проверка даты выдачи документ о вождении
    if ( !CheckElementAsDateWOAlert(eval('document.formCalc.DriverLicDate' + i) ) ) {
      alert(cErrorIncorrectDate);
      ShowDiv(cCashDriverTab, cCashPolicyTab );
      eval('document.formCalc.DriverLicDate' + i + '.focus(); ');
       return false;
    }

    // проверка правильного диапазона даты
    var aDriverLicDate = ( eval( 'document.formCalc.DriverLicDate' + i + '.value.split(".")' ) );
    var d = eval(aDriverLicDate[0]);
    var m = eval(aDriverLicDate[1] - 1 );
    var y = eval(aDriverLicDate[2]);
    driverLicDate = new Date( y, m, d );
    var aDriverBirthDate = ( eval( 'document.formCalc.DriverBirthDate' + i + '.value.split(".")' ) );
    var dBirthDate = eval(aDriverBirthDate[0]);
    var mBirthDate = eval(aDriverBirthDate[1] - 1 );
    var yBirthDate = eval(aDriverBirthDate[2]);
    var driverBirthDate18 = new Date( yBirthDate + 18, mBirthDate, dBirthDate );

    if ( ( driverLicDate > cToday ) || ( driverLicDate < driverBirthDate18 ) ) {
      alert(cErrorWrongDriverLicDate);
      ShowDiv(cCashDriverTab, cCashPolicyTab );
      eval('document.formCalc.DriverLicDate' + i + '.focus(); ');
      return false;
    }

  } // for по водителям

  if ( ( vDriverCount == 0 ) && ( document.formCalc.PolicyRiskDamage.checked ) ) {
    alert(cErrorEmptyDriverList);
    ShowDiv(cCashDriverTab, cCashPolicyTab );
    return false;
  }

  if ( ( document.formCalc.DriverAccessType.checked ) && ( !document.formCalc.PolicyRiskOSAGO.checked ) && ( !document.formCalc.PolicyRiskLiability.checked )) {
    if ( confirm(cErrorDriverAccessTypeCheckedWOGORisk) )
      document.formCalc.DriverAccessType.checked = false;
    else
      ShowDiv(cCashDriverTab, cCashPolicyTab );
    return false;
  }

  if ( ( document.formCalc.DriverAccessType.checked ) && ( vDriverCount > 0 ) && ( !document.formCalc.PolicyRiskDamage.checked )) {
    if ( confirm(cErrorDriverCountMoreZeroWODamageRisk) )
      deleteDriver(cCashDriverTab);
    else
      ShowDiv(cCashDriverTab, cCashPolicyTab );
    return false;
  }

  if ( document.formCalc.protectedCode.value.length <= 0  ) {
    alert(cErrorEmptyProtectedCode);
    ShowDiv(cCashPolicyTab, cCashPolicyTab );
    document.formCalc.protectedCode.focus();
    return false;
  }
  return true;
}


// use. сохранить полис
function savePolicy() {
  // проверка заполненности полей
  if ( checkRequiredCalcBigFields()  ) {
    setActionAndSubmit(document.formCalc, "savePolicy");
  }
}

// use. Установить название действия и перегрузить
function setActionAndSubmit( obj, actionName ) {
  obj.action.value = actionName;
  obj.submit();
  return false;
}


// use. Копирование данных страхователя в данные собственника
function copyInsuredToOwner() {
  with (document.formCalc) {
    ownerFIO.value = insuredFIO.value;
    ownerBirthDate.value = insuredBirthDate.value;
    ownerSex.value = insuredSex.value;
    ownerDoc.selectedIndex = insuredDoc.selectedIndex;
    ownerSeria.value = insuredSeria.value;
    ownerNum.value = insuredNum.value;
    if ( document.formCalc.insuredIndex != null ) {
      ownerIndex.value = insuredIndex.value; 
    }
    ownerCity.value = insuredCity.value;
    ownerStreet.value = insuredStreet.value;
    ownerHouse.value = insuredHouse.value;
    ownerHouse_k.value = insuredHouse_k.value;
    ownerFlat.value = insuredFlat.value;
    ownerMPhone.value = insuredMPhone.value;
    ownerHPhone.value = insuredHPhone.value;
    ownerEMail.value = insuredEMail.value;
  }
}

// use. Копирует данные из страхователя в водителя
function copyInsuredToDriver( DriverNo ) {
    eval('  document.formCalc.DriverFIO'  + DriverNo + '.value = document.formCalc.insuredFIO.value; '  );
    eval('  document.formCalc.DriverSex'  + DriverNo + '.value = document.formCalc.insuredSex.value; '  );
    eval('  document.formCalc.DriverBirthDate'  + DriverNo + '.value = document.formCalc.insuredBirthDate.value; '  );
    eval('  document.formCalc.DriverFIO'  + DriverNo + '.focus(); '  );

}

// use. Копирует данные из собственника в водителя
function copyOwnerToDriver( DriverNo ) {
    eval('  document.formCalc.DriverFIO'  + DriverNo + '.value = document.formCalc.ownerFIO.value; '  );
    eval('  document.formCalc.DriverSex'  + DriverNo + '.value = document.formCalc.ownerSex.value; '  );
    eval('  document.formCalc.DriverBirthDate'  + DriverNo + '.value = document.formCalc.ownerBirthDate.value; '  );
    eval('  document.formCalc.DriverFIO'  + DriverNo + '.focus(); '  );
}


// use. Переход по вкладкам
function ShowDiv( Num, TabCount ) {
  vActiveTab = Num;
  var fs;

  if (myCalendar != null) { myCalendar.closeCalendar(); myCalendar=null; }

  for (var i = 1; i <= TabCount; i++) {
    if (i == Num) {
          fs = document.getElementById("step" + i);
          fs.className= "calcVisible";
          document.getElementById("headerStep" + i).className="sel";
        }
        else {
          fs = document.getElementById("step" + i);
          fs.className= "calcHidden";
          document.getElementById("headerStep" + i).className="desel";
        }
  }

  if (Num == TabCount) {
    document.getElementById("NextStep").style.visibility = "hidden";
  }
  else {
        document.getElementById("NextStep").style.visibility = "visible";
  }
  if (Num == 1) {
    document.getElementById("PrevStep").style.visibility = "hidden";
  }
  else {
        document.getElementById("PrevStep").style.visibility = "visible";
  }
}


//use. Добавить водителя в калькулятор
function addDriverToCalcSmall() {
  if (vDriverCount  == cMaxDriverCount) {
    alert("Максимальное количество водителей не более " + cMaxDriverCount + "!" );
    return;
  }
  vDriverCount += 1;
  var parentElmId = "drivers";

  var elm = document.createElement("div");
  elm.id = "divDriver" + vDriverCount;
  elm.name = "divDriver" + vDriverCount;
  document.getElementById(parentElmId).appendChild(elm);

  var separator = document.createElement("div");
  separator.id = "divDriverSeparator" + vDriverCount;
  separator.className = "separatorBig";
  document.getElementById(elm.id).appendChild(separator);

  var spanHeader = document.createElement("span");
  spanHeader.innerHTML = "Данные водителя №" + vDriverCount;
  document.getElementById(separator.id).appendChild(spanHeader);

  // Дата рождения
  var label = document.createElement("label");
  label.id = "labelDriverBirthDate" + vDriverCount;
  label.className = "calc";
  label.htmlFor = "DriverBirthDate" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  var span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Дата рождения";
  document.getElementById(label.id).appendChild(span);

  var input = document.createElement("input");
  input.type = "text";
  input.id = "DriverBirthDate" + vDriverCount;
  input.name = "DriverBirthDate" + vDriverCount;
  input.className = "text";
  input.size = 8;
  input.value = "01.01.1980";
  input.maxLength = 10;
  input.onblur = new Function("if (!CheckElementAsDateWOAlert(this)) alert(cErrorIncorrectDate); return true;");
  document.getElementById(label.id).appendChild(input);

  var button = document.createElement("input");
  button.type = "button";
  button.className = "dctButton";
  button.value = "Выбрать";
  button.onclick = new Function("viewCalendar(document.formCalc.DriverBirthDate" + vDriverCount + ");");
  document.getElementById(label.id).appendChild(button);

  input.focus();

  // Пол
  label = document.createElement("label");
  label.className = "calc";
  label.id = "labelDriverSex" + vDriverCount;
  label.htmlFor = "DriverSex" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  span = document.createElement("span");
  span.innerHTML = "Пол";
  span.className = "bigLabel";
  document.getElementById(label.id).appendChild(span);

  var select = document.createElement("select");
  select.id = "DriverSex" + vDriverCount;
  select.name = "DriverSex" + vDriverCount;
  document.getElementById(label.id).appendChild( select );

  var option = document.createElement("option");
  option.value = "M";
  option.innerHTML = "Мужчина";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = "F";
  option.innerHTML = "Женщина";
  document.getElementById(select.id).appendChild(option);

  // Стаж вождения
  label = document.createElement("label");
  label.className = "calc";
  label.id = "labelDriverStage" + vDriverCount;
  label.htmlFor = "DriverStage" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Стаж вождения в годах";
  document.getElementById(label.id).appendChild(span);

  select = document.createElement("select");
  select.id = "DriverStage" + vDriverCount;
  select.name = "DriverStage" + vDriverCount;
  document.getElementById(label.id).appendChild(select);

  for ( i = 0; i <= 4; i++ ) {
    option = document.createElement("option");
    option.value = i;
    if ( i == 4 )
      option.innerHTML = ">3";
    else
      option.innerHTML = i;
    document.getElementById(select.id).appendChild(option);
  }

  // Коэффициент бонуса-малуса
  label = document.createElement("label");
  label.className = "calc";
  label.id = "labelDriverKBM" + vDriverCount;
  label.htmlFor = "DriverKBM" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Класс - Коэффициент бонуса-малуса";
  document.getElementById(label.id).appendChild(span);

  select = document.createElement("select");
  select.id = "DriverKBM" + vDriverCount;
  select.name = "DriverKBM" + vDriverCount;
  select.className = "text";
  document.getElementById(label.id).appendChild(select);

  option = document.createElement("option");
  option.value = -1;
  option.innerHTML = "M - 2.45";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = 0;
  option.innerHTML = option.value + " - 2.30";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = 1;
  option.innerHTML = option.value + " - 1.55";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = 2;
  option.innerHTML = option.value + " - 1.40";
  document.getElementById(select.id).appendChild(option);

  var j = 1;
  for ( i = 3; i <= 13; i++ ) {
    option = document.createElement("option");
    option.value = i;
    option.innerHTML = i + " - " + j.toFixed(2);
    j -= 0.05;
    document.getElementById(select.id).appendChild(option);
  }
  select.selectedIndex = 4;

  button = document.createElement("input");
  button.type = "button";
  button.className = "dctButton";
  button.value = "?";
  button.onclick = new Function("viewDctKBM();");
  document.getElementById(label.id).appendChild(button);
}

// use. удалить водителя калькулятор
function deleteDriver( driverTab ) {
  if (vDriverCount >= 1) {
    var parentElmId = "drivers";
//    var elm = document.getElementById("divDriver" + vDriverCount);
    var elm = document.getElementById( parentElmId ).lastChild;
    document.getElementById(parentElmId).removeChild(elm);
    vDriverCount--;
  }
}

// use. Большой калькулятор. Добавить водителя
function addDriverToCalcBig() {

  if (vDriverCount  == cMaxDriverCount) {
    alert("Максимальное количество водителей не более " + cMaxDriverCount + "!" );
    return;
  }

  vDriverCount += 1;
  var parentElmId = "drivers";

  var elm = document.createElement("div");
  elm.id = "divDriver" + vDriverCount;
  elm.name = "divDriver" + vDriverCount;
  document.getElementById(parentElmId).appendChild(elm);

  var separator = document.createElement("div");
  separator.id = "divDriverSeparator" + vDriverCount;
  separator.className = "separatorBig";
  document.getElementById(elm.id).appendChild(separator);

  var spanHeader = document.createElement("span");
  spanHeader.innerHTML = "Данные водителя №" + vDriverCount;
  document.getElementById(separator.id).appendChild(spanHeader);

  // Кнопки
  var div = document.createElement("div");
  div.id = "divHeaderButton" + vDriverCount;
  div.className = "headerButton";
  document.getElementById(elm.id).appendChild(div);
  var a = document.createElement("a");
  a.className = "greenText";
  a.href = "#";
  a.title = "Нажмите, чтобы копировать данные страхователя";
  a.innerHTML = "Копировать данные страхователя";
  a.onclick = new Function("copyInsuredToDriver(" + vDriverCount + ");");
  document.getElementById(div.id).appendChild(a);
  a = document.createElement("a");
  a.className = "greenText";
  a.href = "#";
  a.title = "Нажмите, чтобы копировать данные собственника";
  a.innerHTML = "Копировать данные собственника";
  a.onclick = new Function("copyOwnerToDriver(" + vDriverCount + ");");
  document.getElementById(div.id).appendChild(a);

  // Дата рождения
  label = document.createElement("label");
  label.id = "labelDriverBirthDate" + vDriverCount;
  label.className = "calcBig";
  label.htmlFor = "DriverBirthDate" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Дата рождения";
  document.getElementById(label.id).appendChild(span);

  input = document.createElement("input");
  input.type = "text";
  input.id = "DriverBirthDate" + vDriverCount;
  input.name = "DriverBirthDate" + vDriverCount;
  input.className = "text";
  input.value = "01.01.1980";
  input.maxLength = 10;
  input.onblur = new Function("if (!CheckElementAsDateWOAlert(this)) alert(cErrorIncorrectDate); return true;");
  document.getElementById(label.id).appendChild(input);

  var button = document.createElement("input");
  button.type = "button";
  button.className = "dctButton";
  button.value = "Выбрать";
  button.onclick = new Function("viewCalendar(document.formCalc.DriverBirthDate" + vDriverCount + ");");
  document.getElementById(label.id).appendChild(button);
  input.focus();

  // Пол
  label = document.createElement("label");
  label.className = "calcBig";
  label.id = "labelDriverSex" + vDriverCount;
  label.htmlFor = "DriverSex" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  span = document.createElement("span");
  span.innerHTML = "Пол";
  span.className = "bigLabel";
  document.getElementById(label.id).appendChild(span);

  var select = document.createElement("select");
  select.className = "edit";
  select.id = "DriverSex" + vDriverCount;
  select.name = "DriverSex" + vDriverCount;
  document.getElementById(label.id).appendChild( select );

  var option = document.createElement("option");
  option.value = "M";
  option.innerHTML = "Мужчина";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = "F";
  option.innerHTML = "Женщина";
  document.getElementById(select.id).appendChild(option);

  // Коэффициент бонуса-малуса
  label = document.createElement("label");
  label.className = "calcBig";
  label.id = "labelDriverKBM" + vDriverCount;
  label.htmlFor = "DriverKBM" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Класс - Коэффициент бонуса-малуса";
  document.getElementById(label.id).appendChild(span);

  select = document.createElement("select");
  select.className = "text";
  select.id = "DriverKBM" + vDriverCount;
  select.name = "DriverKBM" + vDriverCount;
  document.getElementById(label.id).appendChild(select);

  option = document.createElement("option");
  option.value = -1;
  option.innerHTML = "M - 2.45";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = 0;
  option.innerHTML = option.value + " - 2.30";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = 1;
  option.innerHTML = option.value + " - 1.55";
  document.getElementById(select.id).appendChild(option);
  option = document.createElement("option");
  option.value = 2;
  option.innerHTML = option.value + " - 1.40";
  document.getElementById(select.id).appendChild(option);

  var j = 1;
  for ( i = 3; i <= 13; i++ ) {
    option = document.createElement("option");
    option.value = i;
    option.innerHTML = i + " - " + j.toFixed(2);
    j -= 0.05;
    document.getElementById(select.id).appendChild(option);
  }
  select.selectedIndex = 4;

  button = document.createElement("input");
  button.type = "button";
  button.className = "dctButton";
  button.value = "?";
  button.onclick = new Function("viewDctKBM();");
  document.getElementById(label.id).appendChild(button);

  // ФИО
  var label = document.createElement("label");
  label.id = "labelDriverFIO" + vDriverCount;
  label.className = "calcBig";
  label.htmlFor = "DriverFIO" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  var span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Фамилия, имя, отчество";
  document.getElementById(label.id).appendChild(span);

  var input = document.createElement("input");
  input.type = "text";
  input.id = "DriverFIO" + vDriverCount;
  input.name = "DriverFIO" + vDriverCount;
  input.maxLength = 80;
  input.size = 55;
  document.getElementById(label.id).appendChild(input);

  // Водит удостоверение
  var label = document.createElement("label");
  label.id = "labelDriverLicenseSeria" + vDriverCount;
  label.className = "calcBig";
  label.htmlFor = "DriverLicenseSeria" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  var span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Серия водительского удостоверения";
  document.getElementById(label.id).appendChild(span);

  var input = document.createElement("input");
  input.type = "text";
  input.id = "DriverLicenseSeria" + vDriverCount;
  input.name = "DriverLicenseSeria" + vDriverCount;
  input.className = "edit100px";
  input.maxLength = 8;
  document.getElementById(label.id).appendChild(input);

  // номер водит удостов
  var label = document.createElement("label");
  label.id = "labelDriverLicenseNum" + vDriverCount;
  label.className = "calcBig";
  label.htmlFor = "DriverLicenseNum" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  var span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Номер водительского удостоверения";
  document.getElementById(label.id).appendChild(span);

  var input = document.createElement("input");
  input.type = "text";
  input.id = "DriverLicenseNum" + vDriverCount;
  input.name = "DriverLicenseNum" + vDriverCount;
  input.className = "edit100px";
  input.maxLength = 12;
  document.getElementById(label.id).appendChild(input);

  // дата выдачи первого водит удостов
  var label = document.createElement("label");
  label.id = "labelDriverLicDate" + vDriverCount;
  label.className = "calcBig";
  label.htmlFor = "DriverLicDate" + vDriverCount;
  document.getElementById(elm.id).appendChild(label);

  var span = document.createElement("span");
  span.className = "bigLabel";
  span.innerHTML = "Дата выдачи первого удостоверения";
  document.getElementById(label.id).appendChild(span);

  var input = document.createElement("input");
  input.type = "text";
  input.id = "DriverLicDate" + vDriverCount;
  input.name = "DriverLicDate" + vDriverCount;
  input.className = "text";
  input.maxLength = 10;
  input.onblur = new Function("if (!CheckElementAsDateWOAlert(this)) alert(cErrorIncorrectDate); return true;");
  document.getElementById(label.id).appendChild(input);

  var button = document.createElement("input");
  button.type = "button";
  button.className = "dctButton";
  button.value = "Выбрать";
  button.onclick = new Function("viewCalendar( document.formCalc.DriverLicDate" + vDriverCount + ");");
  document.getElementById(label.id).appendChild(button);
}

// use. 
function accessDriverCalc(form, driverTab) {
  accessDriverCalcBig(form);

  var elmAdd = document.getElementById( "buttonAddDriver" );
  var elmDelete = document.getElementById( "buttonDeleteDriver" );
  elmAdd.disabled = elmDelete.disabled = form.DriverAccessType.checked;

   if ( form.DriverAccessType.checked ) {
     for (i = vDriverCount; i >= 1; i--) {
       deleteDriver(driverTab);
     }
   }
}

// use.
function accessDriverCalcBig(form) {
  form.InsuredKBM.disabled =
  form.ButtonDctKBM.disabled =
  !form.DriverAccessType.checked;
}

// for Cash v2
function checkDamage() {
  document.formCalc.PolicyRiskDamage.checked = document.formCalc.PolicyRiskTheft.checked;
}
// for Cash v2
function checkTheft() {
  document.formCalc.PolicyRiskTheft.checked = document.formCalc.PolicyRiskDamage.checked;
}

//use. Примечание по КБМ
function viewDctKBM() {
  var note = "<p class='woIndent'>При заключении полиса ОСАГО Страхователем для назначения коэффициента 'Бонус-Малус' " +
             "должны быть письменно предоставлены сведения о страховании в отношении каждого указанного " +
             "им водителя.</p>";

   var content = "<table>" +
                 "<tr>" +
                 "<th rowspan=2>Класс на начало годового срока страхования</th>" +
                 "<th rowspan=2>Коэффициент</th>" +
                 "<th colspan=5>Класс на окончание годового срока страхования</th>" +
                 "</tr>" +
                 "<tr>" +
                 "<th>0 страховых выплат</th>" +
                 "<th>1 страховых выплат</th>" +
                 "<th>2 страховых выплат</th>" +
                 "<th>3 страховых выплат</th>" +
                 "<th>4 и более страховых выплат</th>" +
                 "</tr>" +
                 "<tr><td class='dctTable'>M</td><td class='dctTable'>2.45</td><td class='dctTable'>0</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>0</td><td class='dctTable'>2.30</td><td class='dctTable'>1</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>1</td><td class='dctTable'>1.55</td><td class='dctTable'>2</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>2</td><td class='dctTable'>1.40</td><td class='dctTable'>3</td><td class='dctTable'>1</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>3</td><td class='dctTable'>1.00</td><td class='dctTable'>4</td><td class='dctTable'>1</td><td class='dctTable'>M</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>4</td><td class='dctTable'>0.95</td><td class='dctTable'>5</td><td class='dctTable'>2</td><td class='dctTable'>1</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>5</td><td class='dctTable'>0.90</td><td class='dctTable'>6</td><td class='dctTable'>3</td><td class='dctTable'>1</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>6</td><td class='dctTable'>0.85</td><td class='dctTable'>7</td><td class='dctTable'>4</td><td class='dctTable'>2</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>7</td><td class='dctTable'>0.80</td><td class='dctTable'>8</td><td class='dctTable'>4</td><td class='dctTable'>2</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>8</td><td class='dctTable'>0.75</td><td class='dctTable'>9</td><td class='dctTable'>5</td><td class='dctTable'>2</td><td class='dctTable'>M</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>9</td><td class='dctTable'>0.70</td><td class='dctTable'>10</td><td class='dctTable'>5</td><td class='dctTable'>2</td><td class='dctTable'>1</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>10</td><td class='dctTable'>0.65</td><td class='dctTable'>11</td><td class='dctTable'>6</td><td class='dctTable'>3</td><td class='dctTable'>1</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>11</td><td class='dctTable'>0.60</td><td class='dctTable'>12</td><td class='dctTable'>6</td><td class='dctTable'>3</td><td class='dctTable'>1</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>12</td><td class='dctTable'>0.55</td><td class='dctTable'>13</td><td class='dctTable'>6</td><td class='dctTable'>3</td><td class='dctTable'>1</td><td class='dctTable'>M</td></tr>" +
                 "<tr><td class='dctTable'>13</td><td class='dctTable'>0.50</td><td class='dctTable'>13</td><td class='dctTable'>7</td><td class='dctTable'>3</td><td class='dctTable'>1</td><td class='dctTable'>M</td></tr>" +
                 "</table>";
  setSimpleDct( "Класс-коэффициент бонуса-малуса", content, note, oKBMOpen );
}

// use. Календарь alex
function viewCalendar( elm ){
  var curDate = null, curDay = null, curMonth = null, curYear = null;

  if ( CheckElementAsDateWOAlert( elm ) ) {
    curDate = elm.value.split(".");
    curDay = curDate[0];
    curMonth = curDate[1];
    curYear = curDate[2];
  }

  if( wCalendar != null )
    if ( wCalendar.closed ) { wCalendar = null; }
    else { wCalendar.focus(); return; }

  wCalendar = window.open("", "WindowCalendar", oCalendarOpen );


  with ( wCalendar.document ) {

    write("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>\n");
    write("<html xmlns='http://www.w3.org/1999/xhtml'>\n");
    write("<head>\n");
    write("<meta http-equiv='content-type' content='text/html; charset=windows-1251'>\n");
    write("<link href='/system/modules/reso.site/resources/css/default.css' type='text/css' rel='stylesheet'/>");
    write("<link href='/system/modules/reso.express.site/resources/css/dictionary.css' type='text/css' rel='stylesheet'/>");
    write("<title>");
    write("РЕСО-Экспресс. Справочник");
    write("</title>\n");
    write("</head>\n");
    write("<body>\n");

    //IE иначе не берет
    var s = wCalendar.document.createElement('script');
    s.src = '/system/modules/reso.express.site/resources/js/Calendar.js';
    s.type = 'text/javascript';
    wCalendar.document.body.appendChild(s);

    s = wCalendar.document.createElement('script');
    s.src = '/system/modules/reso.express.site/resources/js/ResoExpress.js';
    s.type = 'text/javascript';
    wCalendar.document.body.appendChild(s);


    write("<div id='dctMain'>\n");
    write("<form name='calendar' action='#' method='post'>\n");

    write("<div id='headerText'>\n");
    write("Год");
    write("</div>");

    write("<table class='calendar'>\n")
    yearBegin = 1920;
    for( i = yearBegin ; i <= cToday.getFullYear(); i++ ) {
      if ( i % 10 == 0 ) 
        write('<tr>\n');
      if ( ( ( curDate != null ) && ( i == curYear ) ) || ( ( curDate == null ) &&  ( i ==  cToday.getFullYear() )  ) )
        write("<td><input type='radio' name='year' id='year' value='" + i + "' checked />"+ i + "</td>" );
      else
        write("<td><input type='radio' name='year' id='year' value='" + i + "' />"+ i + "</td>" );
      if ( i % 10 == 9 ) 
        write('</tr>\n');
    }
    write("</table>\n")

    write("<div id='headerText'>\n");
    write("Месяц");
    write("</div>");
    write("<table class='calendar'>\n")
    write("<tr>\n");
    for( i = 1; i < 13; i++ ) {
      if ( (i % 7) == 0 ) {
        write("</tr><tr>"); }
      if ( (( curDate != null ) && (i == curMonth )) || ( ( curDate == null ) &&  (i == 1)  ) )
        write("<td><input type='radio' name='month' value='" + ( i < 10 ? "0" : "" ) + i + "' checked />" + cMonths[ i - 1 ] + "</td>" );
      else
        write("<td><input type='radio' name='month' value='" + ( i < 10 ? "0" : "" ) + i + "' />"+ cMonths[ i - 1 ] + "</td>" );
    }
    write("</tr>\n");
    write("</table>\n");

    write("<div id='headerText'>\n");
    write("Число");
    write("</div>");
    write("<table class='calendar'>\n")
    write("<tr>\n");
    for( i = 1; i <= 31; i ++ ){
      if ( (( curDate != null ) && ( curDay == i )) || ( ( curDate == null ) && (i == 1)  ) )
        write("<td><input type='radio' name='day' value='" + ( i < 10 ? "0" : "") + i + "' checked>" + i + "</td>" );
      else
        write("<td><input type='radio' name='day' value='" + ( i < 10 ? "0" : "") + i + "'>"+ i + "</td>" );
      if ( (i % 10) == 0 ) {
        write("</tr><tr>\n"); }
    }
    write("</tr>\n");
    write("</table>\n");

    write("<div id='dctFooter'>");
    write("<div id='warning'>");
    write("</div>");
    write("<div id='buttons'>");

    write("<input value='Выбрать' class='dctButton' onclick='setDate(\"" + elm.name + "\"); return false;' type='button' />&nbsp;");
    write("<input value='Закрыть' class='dctButton' onclick='window.close(); return false;' type='button' />");

    write("</div>");
    write("</div>");

    write("</form>");
    write("</div>");
    write("</body>");
    write("</html>");
    close();
  }

}

//for Calc, Cash v2
function Date2String(d){
  var sd, sm;
  sd = d.getDate() + ".";
  sm = (d.getMonth() + 1) + ".";
  if(sd.length == 2) sd = "0" + sd;
  if(sm.length == 2) sm = "0" + sm;
  return sd + sm + d.getFullYear();
}

// for Calc v2
function CheckStringAsDate(s) {
  var pattern = /^[0-3]{1}\d{1}\.[0-1]{1}\d{1}\.\d{4}$/;
  if (!pattern.test(s))
  {
    alert(cErrorIncorrectDate);
        return false;
  }
  return true;
}

// for Calc, Cash v2
function CheckElementAsDate(elem) {
  if (!CheckElementAsDateWOAlert(elem) )
  {
    alert(cErrorIncorrectDate);
    elem.focus();
    return false;
  }
  return true;
}

//v2
function CheckElementAsDateWOAlert(elem) {
  var pattern = /^[0-3]{1}\d{1}\.[0-1]{1}\d{1}\.\d{4}$/;
  if (!pattern.test(elem.value))
  {
    return false;
  }
  var curDate = elem.value.split(".");
  var curDay = curDate[0];
  var curMonth = curDate[1];
  var curYear = curDate[2];
  var countDays = getDaysInMonth(curYear, curMonth);
  if ( ( (curMonth < 1 ) || ( curMonth > 12 ) ) || ( ( curDay < 1 ) || ( curDay > countDays ) ) ) {
      return false;
  }
  return true;
}

function getAbsolutePos(elm)
{
   var r = { left: elm.offsetLeft, top: elm.offsetTop };
   if (elm.offsetParent)
       {
       var tmp = getAbsolutePos(elm.offsetParent);
       r.left += tmp.left;
       r.top += tmp.top;
   }
   return r;
}


function trim(s)
{
  return rtrim(ltrim(s));
}

function ltrim(s)
{
  return s.replace(/^\s+/, '');
}

function rtrim(s)
{
  return s.replace(/\s+$/, '');
}

function replaceSpecSymbol(obj, ch) {
  obj.value = obj.value.replace(/ch/g, ch);
}

function checkPolicyFilter() {
  var policyIDPattern = /^\d{2,6}$/;

  document.policyFilter.FilterPNumber.value = trim( document.policyFilter.FilterPNumber.value );
  document.policyFilter.FilterPolicyID.value = trim( document.policyFilter.FilterPolicyID.value );
  document.policyFilter.FilterRegSign.value = trim( document.policyFilter.FilterRegSign.value );
  if ( (document.policyFilter.FilterPNumber.value.length > 0 ) || ( document.policyFilter.FilterPolicyID.value.length > 0 ) || (document.policyFilter.FilterRegSign.value.length > 0) ) {
    return true;
  }
  else {
    alert(cErrorEmptyFilterParams);
    return false;
  }
}


function clickLoginForEdit() {
  var policyIDPattern = /^\d{2,6}$/;
  if ( (trim(document.LoginForEdit.LoginPolicyID.value).length > 0 ) && ( trim(document.LoginForEdit.LoginProtectiveCode.value).length > 0 ) &&   (policyIDPattern.test(trim(document.LoginForEdit.LoginPolicyID.value)))
) {
    document.LoginForEdit.submit();
  }
  else {
    alert(cErrorEmptyLoginParams);
  }
}

function clickFeedBack() {
  document.formFeedBack.feedBackMessage.value = trim(document.formFeedBack.feedBackMessage.value);
  if ( document.formFeedBack.feedBackMessage.value.length <= 0 )  {
    alert(cErrorEmptySendMessage);
    document.formFeedBack.feedBackMessage.focus();
    return false;
  }
  if ( trim(document.formFeedBack.protectedCode.value).length <= 0 )  {
    alert(cErrorEmptyProtectedCode);
    document.formFeedBack.protectedCode.focus();
    return false;
  }
  if ( !emailPattern.test(trim(document.formFeedBack.feedBackEmail.value)) ) {
    if ( confirm(cErrorWrongEMailWithConfirm) ) {
      document.formFeedBack.feedBackEmail.focus();
      return false;
    }
  }
  document.formFeedBack.submit();
  return true;
}

// use. Изменение цели использования
function onBlurCarGoal(form) {
  if (form.CarGoal.value != 0 ) {
    alert( cErrorUnUsableCarGoal );
    form.CarGoal.focus();
  }
}

//use. Если модель не может быть застрахована в Р-Э, то предлагаем Ресо-Авто
function NotIsTariff() {
  if ( confirm( cNotIsTariff ) ) {
    if ( wResoRu != null )
    if ( wResoRu.closed ) { wResoRu = null; }
    else { wResoRu.focus(); return false; }
    wResoRu = open('http://www.reso.ru/Retail/Motor/Calculator/','RESO', oResoRuOpen);
  }
  return false;
}


function getDaysInMonth(year, month) {
  return [31,((!(year % 4 ) && ( (year % 100 ) || !( year % 400 ) ))?29:28),31,30,31,30,31,31,30,31,30,31][month-1];
  }

// use
function setSimpleDct( header, content, note, options ) {

  if( wSimpleDct != null )
    if( wSimpleDct.closed ) { wSimpleDct = null; }
    else { wSimpleDct.close(); }
  if ( note == null )  note = "";
  if ( options == null ) options = oSimpleDct;
  wSimpleDct = open("", "WindowSimpleDct", options);

  with ( wSimpleDct.document ) {
    write("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>\n");
    write("<html xmlns='http://www.w3.org/1999/xhtml'>\n");
    write("<head>\n");
    write("<meta http-equiv='content-type' content='text/html; charset=windows-1251'>\n");
    write("<link href='/system/modules/reso.site/resources/css/default.css' type='text/css' rel='stylesheet'/>");
    write("<link href='/system/modules/reso.express.site/resources/css/dictionary.css' type='text/css' rel='stylesheet'/>");
    write("<title>");
    write("РЕСО-Экспресс. Справочник");
    write("</title>");
    write("</head>");

    write("<body>");
    write("<div id='dctMain'>");

    write("<form action='/system/modules/reso.express.site/elements/controller.jsp' method='POST' name='formDictionary' id='formDictionary'>");

    write("<div id='headerText'>");
    write(header);
    write("</div>");
    write("<div id='dctContent'>");
    write(content);
    write("</div>");
    write("<div id='dctFooter'>");
    write("<div id='warning'>");
    write(note);
    write("</div>");
    write("<div id='buttons'>");
    write("<input value='Закрыть' class='dctButton' onclick='window.close(); return false;' type='button' />");
    write("</div>");
    write("</div>");

    write("<input type='hidden' name='id' id='id' />");
    write("<input type='hidden' name='ParentID' id='ParentID' />");
    write("<input type='hidden' name='action' id='action' />");
    write("<input type='hidden' name='sessionID' id='sessionID' />");

    write("</form>");

    write("</div>");
    write("</body>");
    write("</html>");
    close();
  }
}

function writeDocumentSceleton( win, winName, options, cssFileName, jsFileName) {
  if( win != null )
    if( win.closed ) { win = null; }
    else { win.close(); }
  if ( options == null ) options = oSimpleDct;
  if ( cssFileName == null ) cssFileName = "dictionary.css";

  win = open("", winName, options);

  with ( win.document ) {

    write("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>\n");
    write("<html xmlns='http://www.w3.org/1999/xhtml'>\n");
    write("<head>\n");
    write("<meta http-equiv='content-type' content='text/html; charset=windows-1251'>\n");
    write("<link href='Css/" + cssFileName + "' type='text/css' rel='stylesheet'/>");
    write("<title>");
    write("Ресо-Гарантия");
    write("</title>");

    if ( jsFileName != null )
      write("<script language='JavaScript' src='" + jsFileName + "' type='text/javascript'></script>\n");

    write("</head>");
    write("<body>");
    write("</body>");
    write("</html>");
    close();
  }
  return win.document;
}

//v2
function checkLogin() {
  document.formLogin.loginPolicyID.value = trim(document.formLogin.loginPolicyID.value);
  document.formLogin.loginProtectiveCode.value = trim(document.formLogin.loginProtectiveCode.value);
  if ( document.formLogin.loginPolicyID.value.length <= 0 ) {
    alert(cErrorEmptyPolicyID);
    document.formLogin.loginPolicyID.focus();
    return false;
  }
  if ( document.formLogin.loginProtectiveCode.value.length <= 0 ) {
    alert(cErrorEmptyProtectedCode);
    document.formLogin.loginProtectiveCode.focus();
    return false;
  }
  return true;
}


function enterUser() {
  var path = "unknown";
  if (window.opener != null )
      path = window.opener.location.href;
  else
    path = window.document.referrer;
  window.document.formIndex.path.value = path;
  setActionAndSubmit( document.formIndex, "MainPage" );
}

// use.
function checkElementAsDouble( elem ) {
  var pattern = /^\d{1,}\.{0,1}\d*$/;
  return ( pattern.test( trim( elem.value ) ) );
}

function checkElementAsInteger( elem ) {
  var pattern = /^\d{1,}$/;
  return ( pattern.test( trim( elem.value ) ) );
}

// use.
function increaseISum( elem ) {
  var form = elem.form;
  if ( checkElementAsDouble( form.CarPriceDisabled ) ) {
    var value = new Number( form.CarPriceDisabled.value );
    var min = new Number( form.CarPriceMin.value );
    var max = new Number( form.CarPriceMax.value );

    if ( ( max != 0 ) && ( min != 0 ) ) {
      if ( ( max - value ) > 1000 )
        value += 1000;
      form.CarPriceDisabled.value = value;
    }
  }
  else {
    alert( cErrorIncorrectDouble );
  }
}

// use.
function decreaseISum( elem ) {
  var form = elem.form;
  if ( checkElementAsDouble( form.CarPriceDisabled ) ) {
    var value = new Number( form.CarPriceDisabled.value );
    var min = new Number( form.CarPriceMin.value );
    var max = new Number( form.CarPriceMax.value );

    if ( ( max != 0 ) && ( min != 0 ) ) {
      if ( ( value - min ) > 1000 )
        value -= 1000;
      form.CarPriceDisabled.value = value;
    }
  }
  else {
    alert( cErrorIncorrectDouble );
  }
}

//use. Изменение СС
function changeISum( elem ) {
  var form = elem.form;
  if ( checkElementAsDouble( form.CarPriceDisabled ) ) {
    var value = new Number( form.CarPriceDisabled.value );
    var min = new Number( form.CarPriceMin.value );
    var max = new Number( form.CarPriceMax.value );

    if ( value < min ) form.CarPriceDisabled.value = min;
    if ( value > max ) form.CarPriceDisabled.value = max;
  }
  else {
    alert( cErrorIncorrectDouble );
  }
}


function checkIntKeyPress( event ) {
  var key, keyChar;

  if ( window.event )
    key = window.event.keyCode;
  else if ( event )
    key = event.which;
  else true;

  if ( key == null || key == 0 || key == 8 || key == 13 || key == 13 || key == 27 )
    return true;

  keyChar = String.fromCharCode( key );
  if ( /\d/.test( keyChar ) ) {
    return true;
  }
  else
    return false;
}

function checkFloatKeyPress( event ) {
  var key, keyChar;
  var premiumPattern = /[0-9.]/;

  if ( window.event )
    key = window.event.keyCode;
  else if ( event )
    key = event.which;
  else true;
  if ( key == null || key == 0 || key == 8 || key == 13 || key == 13 || key == 27 )
    return true;

  keyChar = String.fromCharCode( key );
  if ( premiumPattern.test( keyChar ) ) {
    return true;
  }
  else
    return false;
}


