// function writeMessage(el){
//     $.ajax({
//         headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
//         url: '/user_account/chats/',
//         type: "POST",
//         // async: true,
//         cache: false,
//         processData: false,
//         contentType: false,
//         // enctype: 'json',
//         // data: formData,
//         success: function(data){
//
//             // location.href = '/profile'
//             document.querySelector(".info_profile").innerHTML = data.html;
//
//             let list_div = document.querySelectorAll('.menu_profile div');
//             list_div.forEach(el=>{ el.classList.remove('selected'); });
//             el.classList.add('selected')
//             let body = document.querySelector("body")
//             body.style.overflow = "hidden"
//              //updating the url without reloading
//             window.history.pushState(null, null, '/ru/profile/page/chat/')
//             middleWareJS()
//
//         },
//         error: function (data, exception){
//             console.log(400)
//
//         }
//     });
// }
//
//
// function technicalSupport(el){
//     $.ajax({
//         headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
//         url: '/user_account/support_tickets/',
//         type: "POST",
//         // async: true,
//         cache: false,
//         processData: false,
//         contentType: false,
//         // enctype: 'json',
//         // data: formData,
//         success: function(data){
//
//
//             // location.href = '/profile'
//             document.querySelector(".info_profile").innerHTML = data.html;
//
//             let list_div = document.querySelectorAll('.menu_profile div');
//             list_div.forEach(el=>{ el.classList.remove('selected'); });
//             el.classList.add('selected')
//
//             //updating the url without reloading
//             window.history.pushState(null, null, '/ru/profile/page/support/')
//             middleWareJS()
//
//         },
//         error: function (data, exception){
//             console.log(400)
//
//         }
//     });
// }
// function mySubscription(el){
//     // boris changed
//     $.ajax({
//         headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
//         url: '/subscribes/show_cur_subscribe/',
//         type: "POST",
//         // async: true,
//         cache: false,
//         processData: false,
//         contentType: false,
//         // enctype: 'json',
//         // data: formData,
//         success: function(data){
//
//             document.querySelector(".info_profile").innerHTML = data.html;
//
//             // location.href = '/profile'
//             // document.querySelector(".info_profile").innerHTML = data.html;
//
//             let list_div = document.querySelectorAll('.menu_profile div');
//             list_div.forEach(el=>{ el.classList.remove('selected'); });
//             el.classList.add('selected')
//
//             //updating the url without reloading
//             window.history.pushState(null, null, '/ru/profile/page/my_subscribe/')
//             middleWareJS()
//
//         },
//         error: function (data, exception){
//             console.log(400)
//
//         }
//     });
// }
// function myProfile(el){
//     $.ajax({
//         headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
//         url: '/user_account/change_profile/',
//         type: "POST",
//         // async: true,
//         cache: false,
//         processData: false,
//         contentType: false,
//         // enctype: 'json',
//         // data: formData,
//         success: function(data){
//
//
//             // location.href = '/profile'
//             document.querySelector(".info_profile").innerHTML = data.html;
//
//             let list_div = document.querySelectorAll('.menu_profile div');
//             list_div.forEach(el=>{ el.classList.remove('selected'); });
//             el.classList.add('selected')
//
//             //updating the url without reloading
//             window.history.pushState(null, null, '/ru/profile/page/change_profile/')
//             middleWareJS()
//
//         },
//         error: function (data, exception){
//             console.log(400)
//
//         }
//     });
// }

// function selectMenuItem() {
//         let list_div = document.querySelectorAll('.menu_profile div');
//
//         list_div.forEach(item =>{
//             item.addEventListener('click', (e) =>{
//             list_div.forEach(el=>{ el.classList.remove('selected'); });
//             item.classList.add('selected')
//         })
//     })
//
//
// }



function removeRoute(el) {
    let data = el.currentTarget.closest('.carrier-card');
    let remove_item = data.dataset.numberOfRoute
    let remove_data = {}
    let name_route = 'route_id'
    remove_data[name_route] = remove_item

     // console.log(remove_item)

        $.ajax({
        headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
        url: '/routes/del_route/',
        type: "POST",
        // async: true,
        cache: false,
        processData: false,
        contentType: false,
        // enctype: 'json',
        data: JSON.stringify(remove_data) ,
        success: function(data){


            // location.href = '/profile'
            document.querySelector(".info_profile").innerHTML = data.html;

            // let list_div = document.querySelectorAll('.menu_profile div');
            // list_div.forEach(el=>{ el.classList.remove('selected'); });
            // el.classList.add('selected')

            //updating the url without reloading
            window.history.pushState(null, null, '/ru/profile/page/change_profile/')

            middleWareJS()
        },
        error: function (data, exception){
            console.log(400)

        }
    });


}

function cancelRemove() {
    let parent_cancel_button = document.querySelector('.button_remove_route')
    let cancel_button = document.querySelector('.cancel_remove')
    parent_cancel_button.removeChild(cancel_button)

    let remove_button = document.querySelector('.confirm_remove');
    remove_button.classList.remove('confirm_remove');
    remove_button.innerText = 'Удалить';
    remove_button.setAttribute("id", "remove_route");

    remove_button.removeEventListener('click', removeRoute);


}


function confirmRemove(el) {

    el.setAttribute("id", "select-remove");
    let btn = document.querySelector("#select-remove");

    if (!btn.classList.contains('confirm_remove')) {
        btn.classList.add('confirm_remove');
        btn.innerText = 'Подтвердить удаление';
        btn.addEventListener('click', removeRoute, { once: true });

        let cancel_button = document.createElement('button');
        cancel_button.className = "cancel_remove";
        cancel_button.innerText = "Отменить удаление";
        cancel_button.addEventListener('click', cancelRemove)


        let place = btn.closest(".button_remove_route");
        place.insertBefore(cancel_button, btn.nextSibling);

        btn.removeAttribute( "select-remove");


    }
}

function loader_place_ins_boris (el,type=null){
    if (el){
        let loader_place = document.querySelector(".abbreviation_airport_in_search")
        let cur_loader_place = el.nextElementSibling
        if (type){
            cur_loader_place.innerHTML = ""
        } else {
            if (loader_place){
                if (cur_loader_place.innerHTML === '<img src="/static/img/svg/loader.svg" style="height: 30px;padding-top: 17px;padding-left: 15px;">'){
                    cur_loader_place.innerHTML = ""
                } else {
                    cur_loader_place.innerHTML = "<img src='/static/img/svg/loader.svg' style='height: 30px;padding-top: 17px;padding-left: 15px;'>"
                }
            }
        }
    }
}

function searchTown(el){

    if (el.value.length > 0){
            el.style.background = 'white url("/static/img/svg/loader.svg") no-repeat calc(100% - 15px) center';
            loader_place_ins_boris(el)


    }else {
            el.style.background = 'white url("/static/img/png/icon-arrow.svg") no-repeat calc(100% - 15px) center';
    }

      if(el.value.length>=3){
            let timer = null
            if (timer) {
              clearTimeout(timer);
            }
            timer = setTimeout(function(){

                timer = null;
                let form = el.form;
                let type_transport_el = form['type_transport'];
                let type_transport = ""
                if(type_transport_el){
                    type_transport = type_transport_el.value
                }
                let search_str = el.value;
                let get_address_point = new Object({type_transport, search_str});
                get_address_point['ctrl_name'] = el.name;

                $.ajax({
                    headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
                    url: '/reference_data/get_address_point/',
                    type: "POST",
                    // async: true,
                    cache: false,
                    processData: false,
                    contentType: false,
                    // enctype: 'json',
                    data: JSON.stringify(get_address_point),
                    success: function(data){
                         el.style.background = 'white url("/static/img/png/icon-arrow.svg") no-repeat calc(100% - 15px) center';
                        loader_place_ins_boris(el,"el")


                        return insertSearchList(data, el.name + '_list');
                        middleWareJS()
                    },
                    error: function (data){

                        console.log('Error')

                    }
                });
           }, 1500);
}

    }










function selectItemAddrPoint(id, name, ctrl_name,){
            let input_list = document.getElementsByName(ctrl_name + '_list')[0];
            let tap_txt_cont = document.querySelector("#id_" + ctrl_name);
            tap_txt_cont.value = name;
            let tap_cont = document.querySelector("#id_" + ctrl_name.slice(0, -4));
            tap_cont.value = id;

            input_list.classList.remove('show');

  }


function insertSearchList(data, ctrl_name) {

    let input_list = document.getElementsByName(ctrl_name)[0];
    let divs = data.res_search_list;

    if (divs.length > 0) {
        input_list.classList.add("show");
        input_list.innerHTML = divs;
    } else {
        input_list.classList.remove("show");
    }

}


function showSearchList(el) {
    if(el.classList.contains('from_address_point_txt')){
        let input_list = document.querySelectorAll('.input_list')
        let value = input_list[0].classList.contains('show')
        if(value === false && input_list[0].childElementCount > 0){
            input_list[0].classList.add("show");
        }
    }else if (el.classList.contains('to_address_point_txt')) {
        let input_list = document.querySelectorAll('.input_list')
        let value = input_list[1].classList.contains('show')
        if(value === false && input_list[1].childElementCount > 0){
            input_list[1].classList.add("show");
        }
    }


}

function onblurInputField(event,el){

    // if(el.classList.contains("from_country_container")){
        let search_list = document.getElementsByName(el.name + '_list')[0];
        let parent_event = $(event.explicitOriginalTarget).parents('.input_list' );
        if(!parent_event || parent_event[0] !== search_list){

       search_list.classList.remove('show')
    }

    // }
}


// function hideErrorMsg(el) {
//     let hide_element = document.querySelector()
//     if(el.value !== 0){
//         hide_element.classList.add('hide')
//     }
//
// }

function sliderInit() {

     let $range = $("#id_weight"),
         $input = $(".js-input"),
         instance,
         min = 0,
         max = 1000,
         start_value = document.querySelector(".range-slider").value;

    $range.ionRangeSlider({
        skin: "round",
        type: "single",
        min: min,
        max: max,
        from: start_value,
        step: 1,
        grid: true,
        grid_num: 5,
        onStart: function(data) {
            if(data.from > 0){
                $input.prop("value", data.from);
            }
        },
        onChange: function(data) {
            $input.prop("value", data.from);
        }
    });

    instance = $range.data("ionRangeSlider");

    $input.on("change keyup", function() {
        let val = $(this).prop("value");

        // validate
        if (val < min) {
            val = min;
        } else if (val > max) {
            val = max;
        }

        instance.update({
            from: val
        });
    });


}

function sendRoute(el, routeID = null){
    event.preventDefault()
    el.disabled = true


    let list_of_elements_form = document.querySelectorAll(".el_form_b_new_route");
    let checked_cargo_type = document.querySelectorAll('.cargo_check');



    let obj_w_el_form = {}


    for (let n = 0;n < checked_cargo_type.length; n++){
        let checked_cargo = checked_cargo_type[n]
        if(checked_cargo.checked === true){
           let name_cargo = checked_cargo.name
           let value_cargo = checked_cargo_type[n].value
           obj_w_el_form[name_cargo] = value_cargo


        }
    }




    for (let i = 0; i < list_of_elements_form.length ;i++) {
        // let id_el = list_of_elements_form[i].id
        // if (id_el){
        //     if (id_el === "")
        // }



        let name_attr = list_of_elements_form[i].attributes["name"]
        if (name_attr) {
            let name_el = name_attr.value
            let value_el = list_of_elements_form[i].value
            obj_w_el_form[name_el] = value_el
        }
    }



    let selected_owner_type = document.querySelectorAll("#customer, #mover")

    selected_owner_type.forEach(function(item) {
    if (item.classList.contains('selected')) {
          let { id, innerText } = item
          obj_w_el_form['owner_type'] = id
      }
    });

    if (selected_owner_type[0].classList.contains('selected')){

    }else{}

    let url = '/routes/create_or_change_route/'
    if (routeID !== null){
        url = '/routes/change_route/' + routeID + '/'
    }

    $.ajax({
        headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
        url: url,
        type: "POST",
        // async: true,
        cache: false,
        processData: false,
        contentType: false,
        // enctype: 'json',
        data:  JSON.stringify(obj_w_el_form),
        success: function(data){


            // location.href = '/profile'
            document.querySelector(".info_profile").innerHTML = data.html

            let list_div = document.querySelectorAll('.menu_profile div');
            let my_routes = document.getElementById("my_routes_id")
            list_div.forEach(el=>{ el.classList.remove('selected'); });
            my_routes.classList.add('selected')
            middleWareJS()

        },
        error: function (data, exception){
            document.querySelector(".info_profile").innerHTML = data.responseJSON.html;
            // $(el).attr('disabled', 'false')

            sliderInit();



        }
    });
}



function validate(el) {
  if (el.checked) {
      console.log('cheked', el.id);
  } else {
      console.log("You didn't check it! Let me check it for you.", el.id);
  }
}




//cleaning route inputs after selection changes
function OnSelectionChange(el) {
    event.preventDefault()

    let form = el.form;
    let formData = new FormData(form);

    // let data = {};
    // data['csrfmiddlewaretoken'] = $('input[name="csrfmiddlewaretoken"]')[0].value;
    // data['type_transport'] = $('select[name="type_transport"]')[0].value;

    $.ajax({
        headers: {"X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val()},
        url: '/user_account/new_route_view/',
        type: "POST",
        // async: true,
        cache: false,
        processData: false,
        contentType: false,
        // enctype: 'json',
        // data: JSON.stringify(data),
        data: formData,
        success: function (data) {
            console.log('data.html');
            // location.href = '/profile'
            document.querySelector(".info_profile").innerHTML = data.html
            //
            // let checkbox_width = document.querySelector('.checkbox_cargo_type');
            // if(checkbox_width.childElementCount === 4){
            //     checkbox_width.classList.add('width')
            // }
            sliderInit();

            init_arrival_DT()
            init_departure_DT()



       }
    });

}



// function createRoute(el, owner_type){
//     let obj = {
//         'owner_type': owner_type
//     }
//
//     $.ajax({
//         headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
//         url: '/user_account/new_route_view/',
//         type: "POST",
//         // async: true,
//         cache: false,
//         processData: false,
//         contentType: false,
//         // enctype: 'json',
//         data: JSON.stringify(obj),
//         success: function(data){
//
//
//             // location.href = '/profile'
//             document.querySelector(".info_profile").innerHTML = data.html
//
//             let list_div = document.querySelectorAll('.menu_profile div');
//             list_div.forEach(el=>{ el.classList.remove('selected'); });
//             el.classList.add('selected')
//
//             //updating the url without reloading
//             if(el.id == 'customer'){
//                window.history.pushState(null, null, '/ru/profile/page/create_route_for_customer/')
//             } else {
//                window.history.pushState(null, null, '/ru/profile/page/create_route_for_mover/')
//             }
//             middleWareJS()
//
//
//
//             //get dynamic value
//             // let fromCountry = document.getElementById('id_from_country');
//             // let toCounytry = document.getElementById('id_to_country')
//             //
//             // toCounytry.oninput = function (){
//             //     console.log(toCounytry.value)
//             // }
//             // fromCountry.oninput = function (){
//             // console.log(fromCountry.value)
// //
// // };
//
//
//         },
//         error: function (data, exception){
//             console.log(101)
//
//         }
//     });
// }

// function getRoute(el){
//     $.ajax({
//         headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
//         url: '/routes/get_routes/',
//         type: "POST",
//         // async: true,
//         cache: false,
//         processData: false,
//         contentType: false,
//         // enctype: 'json',
//         // data: formData,
//         success: function(data){
//
//
//             // location.href = '/profile'
//             document.querySelector(".info_profile").innerHTML = data.html;
//
//             let list_div = document.querySelectorAll('.menu_profile div');
//             list_div.forEach(el=>{ el.classList.remove('selected'); });
//             el.classList.add('selected')
//
//             window.history.pushState(null, null, '/ru/profile/page/my_routes/')
//
//             middleWareJS()
//
//         },
//         error: function (data, exception){
//             console.log(101)
//
//         }
//     });
// }

function editRoute(id) {
    let route_obj = {
        'route_id': id
    }

    $.ajax({
        headers: {"X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val()},
        url: '/routes/edit_route/',
        type: "POST",
        // async: true,
        cache: false,
        processData: false,
        contentType: false,
        // enctype: 'json',
        data: JSON.stringify(route_obj),
        success: function (data) {

            // location.href = '/profile'
            document.querySelector(".info_profile").innerHTML = data.html;
            if(data.html){
                let changeTextButton = document.getElementById('registration')
                changeTextButton.innerText = 'Сохранить изменения'
            }

            init_departure_DT()
            init_arrival_DT()
            sliderInit();



        },
        error: function (data, exception) {
            console.log(101)

        }
    });

}




function showMenu(el, event) {
    let menu = document.querySelector('.dropdown-content');

    if(menu.classList.contains('show')){
       menu.classList.remove('show')
    } else {
       menu.classList.add('show')
    }
}
function showLang(el) {
    let lang = document.querySelector('.dropdown-content-lang');
     if(lang.classList.contains('show')){
       lang.classList.remove('show')
    } else {
       lang.classList.add('show')
    }

}

// function hideMenu(event) {
//     let menu = document.querySelector('.dropdown-content')
//    if(event.currentTarget !== event.relatedTarget && event.relatedTarget != null){
//         menu.classList.remove('show')
//     }
//
// }

function checkDate() {
      let dateDeparture = document.getElementById('id_departure_DT');
      let dateArrival = document.getElementById('id_arrival_DT');
      let DateStart = new Date(dateDeparture.value);
      let DateEnd = new Date(dateArrival.value);
      if (DateEnd < DateStart) {

        // alert("End date cannot be less than Start date.");
        dateArrival.value = ""

        let arrivalDiv = document.getElementById('arrival_div')
        let errorMessage = document.createElement('span');
            errorMessage.textContent = "Дата прибытия, не может быть установлена раньше даты отправки"
            errorMessage.classList.add('errorlist')
            arrivalDiv.appendChild(errorMessage);
      }
        else if (DateEnd > DateStart){
            let arrivalDiv = document.getElementById('arrival_div');
            let errorMessage = document.querySelector('.errorlist');
            arrivalDiv.removeChild((errorMessage))
      }
    
}

function RequestCommercialOffer (el){

    event.preventDefault()
    let form = el.form;
    let formData = new FormData(form);




    $.ajax({
        headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
        url: '/user_account/request_offer/',
        type: "POST",
        // async: true,
        cache: false,
        processData: false,
        contentType: false,
        // enctype: 'json',
        data: formData,
        success: function(data){

            // location.href = '/profile'


        },
        error: function (data, exception){
        //     document.querySelector(".login").innerHTML = data.responseJSON.html
        }
    });
}



function counterText(evt) {
    const counter = document.querySelector('.counter-text__current');
    const maxlength = 360;
    counter.textContent = evt.value.length;



}


function showTabBtn(el) {

    let mover_info = document.getElementById('content-1')
    let customer_info = document.getElementById('content-2')
    let tab_btn_1 = document.querySelector('.tab-btn-1')
    let tab_btn_2 = document.querySelector('.tab-btn-2')

    if (el.classList.contains('tab-btn-1')){
        mover_info.classList.add('show')
        customer_info.classList.remove('show')

        tab_btn_1.classList.add('tab-btn-active')
        tab_btn_2.classList.remove('tab-btn-active')


    } else if(el.classList.contains('tab-btn-2')){
        customer_info.classList.add('show')
        mover_info.classList.remove('show')

        tab_btn_2.classList.add('tab-btn-active')
        tab_btn_1.classList.remove('tab-btn-active')



    }


}








