var BookingCaracteristiqueForm = function(){
   
};

/***
 * Initialise le formulaire
 * @returns {undefined}
 */
BookingCaracteristiqueForm.Init = function(callBack){
    Event.AddById("btnSaveCaracteristique", "click", BookingCaracteristiqueForm.SaveElement);
    Event.AddById("btnAddItem", "click", BookingCaracteristiqueForm.AddItem);
    BookingCaracteristiqueForm.callBack = callBack;
};

/***
* Obtient l'id de l'itin�raire courant 
*/
BookingCaracteristiqueForm.GetId = function(){
    return Form.GetId("BookingCaracteristiqueFormForm");
};

/*
* Sauvegare l'itineraire
*/
BookingCaracteristiqueForm.SaveElement = function(e){
   
    if(Form.IsValid("BookingCaracteristiqueFormForm"))
    {

    var data = "Class=Booking&Methode=SaveCaracteristique&App=Booking";
        data +=  Form.Serialize("BookingCaracteristiqueFormForm");


        let items = document.querySelectorAll("#caracteristiqueItem input");
        let itemsData = Array();

        for(var i = 0; i < items.length ; i ++){
            itemsData.push({id:items[i].id, label : items[i].value });
        }

        data += "&items="+ JSON.stringify(itemsData);

        Request.Post("Ajax.php", data).then(data => {

            data = JSON.parse(data);

            if(data.statut == "Error"){
                Form.RenderError("BookingCaracteristiqueFormForm", data.message);
            } else{

                Form.SetId("BookingCaracteristiqueFormForm", data.data.Id);
                Dialog.Close();
                
                 
                if(BookingCaracteristiqueForm.callBack){
                    BookingCaracteristiqueForm.callBack(data);
                }
            }
        });
    }
};

/***
 * Ajout un item
 */
BookingCaracteristiqueForm.AddItem = function(e){
    let addItem = "<input type='text' id='0' style='width:90%;margin-right:5px' class='form-control'/>";
        addItem += "<i class='fa fa-trash removeCaracteristique' onclick='BookingCaracteristiqueForm.RemoveItem(this)' ></i>";

    let addItemContainer = document.createElement("div");
    addItemContainer.innerHTML = addItem;
    addItemContainer.style.display = "flex";
    addItemContainer.style.marginTop = "5px";

    let caracteristiqueItem = document.getElementById("caracteristiqueItem");
    caracteristiqueItem.appendChild(addItemContainer);
};

/***
 * Remove a itme
 */
BookingCaracteristiqueForm.RemoveItem = function(control) {

    let itemId = control.parentNode.querySelector("input").id;

    if(itemId != 0){
        let data = "Class=Booking&Methode=RemoveCaracteristiqueItem&App=Booking";
            data += "&itemId=" + itemId;    

            Request.Post("Ajax.php", data).then(data => {
                let container = control.parentNode;
                container.parentNode.removeChild(container);    
                        
            });
    }

};
