function arrayMoveIndex(arr, fromIndex, toIndex) { var element = arr[fromIndex]; arr.splice(fromIndex, 1); arr.splice(toIndex, 0, element); } Element.prototype.remove = function() { this.parentElement.removeChild(this); } NodeList.prototype.remove = HTMLCollection.prototype.remove = function() { for(var i = this.length - 1; i >= 0; i--) { if(this[i] && this[i].parentElement) { this[i].parentElement.removeChild(this[i]); } } } function AJAXGet(getURL, callbackFunction) { // Determine if the request should be done asynchronously var async = true; if(callbackFunction === undefined){ async = false; } // Prepare the XMLHTTP Request object var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest({mozSystem: true}); }else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // Callback method for asynchronous mode xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ try{ var result = xmlhttp.responseText; if(async){ callbackFunction(JSON.parse(result)); } } catch(e) { // Log error console.log(e); // Display system error displaySystemError(e); // Reload page window.location.reload(); // Return false return false; } } } // Send GET request try{ xmlhttp.open('GET', getURL, async); xmlhttp.setRequestHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); xmlhttp.setRequestHeader('Pragma', 'no-cache'); xmlhttp.send(); if(async === false){ return JSON.parse(xmlhttp.responseText); } } catch(e) { // Log error console.log(e); // Display system error displaySystemError(e); // Reload page window.location.reload(); } } function AJAXPost(postURL, dataString, callbackFunction) { // Determine if the request should be done asynchronously var async = true; if(callbackFunction === undefined){ async = false; } // Prepare the XMLHTTP Request object var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest({mozSystem: true}); }else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // Callback method for asynchronous mode xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ try{ var result = xmlhttp.responseText; if(async){ callbackFunction(JSON.parse(result)); } } catch(e) { // Log error console.log(e); // Display system error displaySystemError(e); // Reload page window.location.reload(); // Return false return false; } } } // Send POST request try{ xmlhttp.open('POST', postURL, async); xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xmlhttp.setRequestHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); xmlhttp.setRequestHeader('Pragma', 'no-cache'); xmlhttp.send(dataString); if(async === false){ return JSON.parse(xmlhttp.responseText); } } catch(e) { // Log error console.log(e); // Display system error displaySystemError(e); // Reload page window.location.reload(); } } var additionalServiceID = 1; function addAdditionalServiceRow() { /* Create "additionalServiceItem" and append to "additionalServiceRows" container */ // #additionalServiceRows var additionalServiceRows = document.getElementById('additionalServiceRows'); // div #additionalServiceItem .inputSection .additionalServiceRow var inputSection = document.createElement('div'); inputSection.className = 'inputSection additionalServiceRow'; inputSection.id = 'additionalServiceItem'+ additionalServiceID; additionalServiceRows.appendChild(inputSection); // label .topLabel var topLabel = document.createElement('label'); topLabel.setAttribute('for', ''); topLabel.className = 'topLabel'; topLabel.style.display = 'inline-block'; topLabel.innerHTML = 'Toode'; inputSection.appendChild(topLabel); // span .removeRowButton .icon-cross var removeRowButton = document.createElement('span'); removeRowButton.className = 'removeRowButton icon-cross'; removeRowButton.setAttribute('title', 'Eemalda see toode'); removeRowButton.setAttribute('onClick', 'removeAdditionalServiceRow(additionalServiceID = '+ additionalServiceID +');'); inputSection.appendChild(removeRowButton); // div var div = document.createElement('div'); inputSection.appendChild(div); // div .tareRowInput .tareRowInputLarge var additionalServiceRowFirstRow = document.createElement('div'); additionalServiceRowFirstRow.className = 'tareRowInput tareRowInputLarge'; div.appendChild(additionalServiceRowFirstRow); // select #additionalService .? var additionalService = document.createElement('select'); additionalService.id = 'additionalService'+ additionalServiceID; additionalService.name = 'additionalService'+ additionalServiceID; additionalService.setAttribute('service-field','1'); //additionalService.title = 'TODO'; additionalServiceRowFirstRow.appendChild(additionalService); $(additionalService).select2({ placeholder: 'Lisateenused', language: 'en' }); // select #additionalService option(s) var option = document.createElement('option'); additionalService.appendChild(option); var dateTime = null; var date = jQuery('#emptying_date').val(); if (date) { var dateTime = Date.parse(date); } for(var key in additionalServices){ var is_active = true; if (dateTime && additionalServices[key].end_date) { var dateTime2 = Date.parse(additionalServices[key].end_date); if (dateTime > dateTime2) { is_active = false; } } if (is_active) { var option = document.createElement('option'); option.value = additionalServices[key].additional_service_id; option.setAttribute('end-date', additionalServices[key].end_date); option.innerHTML = additionalServices[key].name; additionalService.appendChild(option); } } // div .tareRowInput var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput'; div.appendChild(tareRowInput); // input #additionalServiceQuantity var additionalServiceQuantity = document.createElement('input'); additionalServiceQuantity.setAttribute('type', 'text'); additionalServiceQuantity.id = 'additionalServiceQuantity'+ additionalServiceID; additionalServiceQuantity.name = 'additionalServiceQuantity'+ additionalServiceID; additionalServiceQuantity.placeholder = 'Kogus'; //additionalServiceQuantity.title = 'TODO'; tareRowInput.appendChild(additionalServiceQuantity); additionalServiceQuantity.addEventListener('input', function(e) { // Get source value var source = e.target; var value = source.value; // Check if the source value is a whole number if(value != '' && !isNaN(value) && value.indexOf('e') === -1 && value.indexOf('.') === -1){ return true; }else{ if(value != ''){ alert("Palun sisesta täisarv"); } source.value = ''; return false; } }); // span .inputError var inputError = document.createElement('span'); inputError.className = 'inputError'; inputError.style.display = 'inline-block'; inputSection.appendChild(inputError); // Increment "additionalServiceID" additionalServiceID++; } function noExchangeTareInfo() { alert('Me ei paku sellele taarale asendustaarat'); } var ownTareID = 1; function addOwnTareRow(garbage_id, item_type_id) { /* Create "ownTareItem" and append to "ownTareRows" container */ // #ownTareRows var ownTareRows = document.getElementById('ownTareRows'); // div #ownTareItem .inputSection .tareRow var inputSection = document.createElement('div'); inputSection.className = 'inputSection tareRow'; inputSection.id = 'ownTareItem'+ ownTareID; ownTareRows.appendChild(inputSection); // label .topLabel var topLabel = document.createElement('label'); topLabel.setAttribute('for', 'ownGarbage'+ ownTareID); topLabel.className = 'topLabel'; topLabel.style.display = 'inline-block'; topLabel.innerHTML = 'Toode'; inputSection.appendChild(topLabel); // span .removeRowButton .icon-cross var removeRowButton = document.createElement('span'); removeRowButton.className = 'removeRowButton icon-cross'; removeRowButton.setAttribute('title', 'Eemalda see toode'); removeRowButton.setAttribute('onClick', 'removeOwnTareRow(ownTareID = '+ ownTareID +');'); inputSection.appendChild(removeRowButton); // div var div = document.createElement('div'); inputSection.appendChild(div); // div .tareRowFirstRow var tareRowFirstRow = document.createElement('div'); tareRowFirstRow.className = 'tareRowFirstRow'; div.appendChild(tareRowFirstRow); // select #ownGarbage var ownGarbage = document.createElement('select'); ownGarbage.id = 'ownGarbage'+ ownTareID; ownGarbage.className = 'ownGarbage'; ownGarbage.name = 'ownGarbage'+ ownTareID; ownGarbage.title = 'Jäätmete nimetus vastavalt Keskkonnaministri 14.12.2015. a määrus nr 70 „Jäätmete liigitamise kord ja jäätmenimistu” Lisa 1'; tareRowFirstRow.appendChild(ownGarbage); $(ownGarbage).select2({ placeholder: 'Jäätmete nimetus', language: 'en' }); // select #ownGarbage option(s) var option = document.createElement('option'); ownGarbage.appendChild(option); for(var key in garbage){ var option = document.createElement('option'); option.value = garbage[key].garbage_id; option.innerHTML = garbage[key].name; if(garbage[key].garbage_sku !== undefined && garbage[key].garbage_sku != ''){ option.innerHTML += ' ('+ garbage[key].garbage_sku +')'; } if(garbage_id !== undefined && garbage_id == garbage[key].garbage_id){ option.selected = true; } ownGarbage.appendChild(option); } // div var div = document.createElement('div'); inputSection.appendChild(div); // div .tareRowInput .tareRowInputLarge var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput tareRowInputLarge'; div.appendChild(tareRowInput); // select #ownTare .tare var ownTare = document.createElement('select'); ownTare.id = 'ownTare'+ ownTareID; ownTare.name = 'ownTare'+ ownTareID; ownTare.className = 'tare'; ownTare.title = 'Infot kogumisvahendi liigi kohta leiab kodulehelt: http://epler-lorenz.ee/konteinerid-2'; tareRowInput.appendChild(ownTare); $(ownTare).select2({ placeholder: 'Pakendi tüüp', language: 'en' }) .on('item_type_change', function(e) { // Get selected option var selectedOption = e.target.options[e.target.selectedIndex]; var transportTareNeeded = selectedOption.getAttribute('is_transport_tare_needed'); if (jQuery('#waste_transportation2').is(':checked')) { transportTareNeeded = 'false'; } if (transportTareNeeded == 'true') { if ($(this).closest('.tareRow').find('.transport-tare-needed').length == 0) { $(this).closest('.tareRow').append('
Sellele kogumisvahendile lisandub transporditaara päeva rendi maksumus
'); } } else { $(this).closest('.tareRow').find('.transport-tare-needed').remove(); } }) .on('change', function(e) { $(this).trigger('item_type_change'); // Get selected option var selectedOption = e.target.options[e.target.selectedIndex]; // Determine "ownTareID" var ownTareID = e.target.id; ownTareID = parseInt(ownTareID.replace('ownTare', '')); // Get reference to the tare and exchange tare selectors var tare = document.getElementById('ownTareQuantity'+ ownTareID); var exchangeTare = document.getElementById('ownTareExchangeQuantity'+ ownTareID); // Determine if exchange tare is available var exchangeTareAvailable = selectedOption.getAttribute('el_exchange_tare_available'); var is_transport_tare_needed = selectedOption.getAttribute('is_transport_tare_needed'); // Disable the exchange tare selector, if exchange tare is not available for the selected tare if(exchangeTareAvailable !== undefined && exchangeTareAvailable === 'false') { // Disable the exchange tare selector exchangeTare.disabled = true; // Set the exchange tare amount to "0" $(exchangeTare).prop('selectedIndex', 0).change(); // Indicate that exchange tare is not available if (is_transport_tare_needed == 'false') { noExchangeTareInfo(); } $(exchangeTare).parent().find('.select2-container')[0].addEventListener('click', noExchangeTareInfo); } // Disable the exchange tare selector, when selecting the "no tare" tare option else if(selectedOption.innerHTML == '0 m3 - ilma mahutita') { // Disable the tare and exchange tare selectors tare.disabled = true; exchangeTare.disabled = true; // Set tare amount to "1" and deselect the exchange tare amount $(tare).val('1'); $(exchangeTare).prop('selectedIndex', 0).change(); // Indicate that exchange tare is not available noExchangeTareInfo(); $(exchangeTare).parent().find('.select2-container')[0].addEventListener('click', noExchangeTareInfo); } // Reset the tare and exchange tare selectors to their default states else { // Enable the tare and exchange tare selectors tare.disabled = false; exchangeTare.disabled = false; // Set the tare and exchange tare amount to default //$(tare).val(''); //$(exchangeTare).prop('selectedIndex', 0).change(); // Remove indication of unavailable exchange tare $(exchangeTare).parent().find('.select2-container')[0].removeEventListener('click', noExchangeTareInfo); } }); // select #ownTare option(s) var option = document.createElement('option'); ownTare.appendChild(option); for(var key in tares){ var option = document.createElement('option'); option.value = tares[key].item_type_id; option.innerHTML = tares[key].name; if(item_type_id !== undefined && item_type_id == tares[key].item_type_id){ option.selected = true; } option.setAttribute('el_exchange_tare_available', tares[key].el_exchange_tare_available); option.setAttribute('is_transport_tare_needed', tares[key].is_transport_tare_needed); ownTare.appendChild(option); } // div .tareRowInput var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput'; div.appendChild(tareRowInput); // input #ownTareQuantity var ownTareQuantity = document.createElement('input'); ownTareQuantity.setAttribute('type', 'text'); ownTareQuantity.id = 'ownTareQuantity'+ ownTareID; ownTareQuantity.name = 'ownTareQuantity'+ ownTareID; ownTareQuantity.placeholder = 'Pakendi kogus, tk'; ownTareQuantity.title = 'Mitut kogumisvahendit (konteinerit, vaati) soovib ettevõte ära anda'; tareRowInput.appendChild(ownTareQuantity); // input #ownTareQuantity eventListener ownTareQuantity.addEventListener('input', function(e) { // Get source value var source = e.target; var value = source.value; // Allow a maximum of 50 tares if(value != '' && !isNaN(value) && value.indexOf('e') === -1 && value.indexOf('.') === -1){ // If the source value is a whole number if(value > 50){ source.value = '50'; value = '50'; } } // Determine "ownTareID" var ownTareID = e.target.id; ownTareID = parseInt(ownTareID.replace('ownTareQuantity', '')); // Get target var target = document.getElementById('ownTareExchangeQuantity'+ ownTareID); // Reset target options target.innerHTML = ''; // Add new options to target if(value != '' && !isNaN(value) && value.indexOf('e') === -1 && value.indexOf('.') === -1){ // If the source value is a whole number var option = document.createElement('option'); target.appendChild(option); var i = 0; while(i <= value){ var option = document.createElement('option'); option.value = i; option.innerHTML = i; target.appendChild(option); i++; } }else{ // If the source value is NOT a whole number if(value != ''){ alert("Palun sisesta täisarv"); } source.value = ''; return false; } }); // div .tareRowInput var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput'; div.appendChild(tareRowInput); // select #ownTareExchangeQuantity var ownTareExchangeQuantity = document.createElement('select'); ownTareExchangeQuantity.id = 'ownTareExchangeQuantity'+ ownTareID; ownTareExchangeQuantity.name = 'ownTareExchangeQuantity'+ ownTareID; ownTareExchangeQuantity.title = 'Mitmele kogumisvahendile (konteiner, vaat) soovib ettevõte saada vastu vahetustaarat'; tareRowInput.appendChild(ownTareExchangeQuantity); $(ownTareExchangeQuantity).select2({ placeholder: 'Vahetustaara kogus, tk', language: 'en' }); // span .inputError var inputError = document.createElement('span'); inputError.className = 'inputError'; inputError.style.display = 'inline-block'; inputSection.appendChild(inputError); if (item_type_id) { $(ownTare).trigger('item_type_change'); } // Increment "ownTareID" ownTareID++; } var tmpTareID = 1; function addTmpTareRow(garbage_id, item_type_id) { /* Create "ownTareItem" and append to "ownTareRows" container */ // #ownTareRows var ownTareRows = document.getElementById('tmpTareRows'); // div #ownTareItem .inputSection .tareRow var inputSection = document.createElement('div'); inputSection.className = 'inputSection tareRow'; inputSection.id = 'tmpTareItem'+ tmpTareID; ownTareRows.appendChild(inputSection); // label .topLabel var topLabel = document.createElement('label'); topLabel.setAttribute('for', 'tmpGarbage'+ tmpTareID); topLabel.className = 'topLabel'; topLabel.style.display = 'inline-block'; topLabel.innerHTML = 'Toode'; inputSection.appendChild(topLabel); // span .removeRowButton .icon-cross var removeRowButton = document.createElement('span'); removeRowButton.className = 'removeRowButton icon-cross'; removeRowButton.setAttribute('title', 'Eemalda see toode'); removeRowButton.setAttribute('onClick', 'removeTmpTareRow(tmpTareID = '+ tmpTareID +');'); inputSection.appendChild(removeRowButton); // div var div = document.createElement('div'); inputSection.appendChild(div); // div .tareRowFirstRow var tareRowFirstRow = document.createElement('div'); tareRowFirstRow.className = 'tareRowFirstRow'; div.appendChild(tareRowFirstRow); // select #ownGarbage var ownGarbage = document.createElement('select'); ownGarbage.id = 'tmpGarbage'+ tmpTareID; ownGarbage.className = 'tmpGarbage'; ownGarbage.name = 'tmpGarbage'+ tmpTareID; ownGarbage.title = 'Jäätmete nimetus vastavalt Keskkonnaministri 14.12.2015. a määrus nr 70 „Jäätmete liigitamise kord ja jäätmenimistu” Lisa 1'; tareRowFirstRow.appendChild(ownGarbage); $(ownGarbage).select2({ placeholder: 'Jäätmete nimetus', language: 'en' }); // select #ownGarbage option(s) var option = document.createElement('option'); ownGarbage.appendChild(option); for(var key in garbage){ var option = document.createElement('option'); option.value = garbage[key].garbage_id; option.innerHTML = garbage[key].name; if(garbage[key].garbage_sku !== undefined && garbage[key].garbage_sku != ''){ option.innerHTML += ' ('+ garbage[key].garbage_sku +')'; } if(garbage_id !== undefined && garbage_id == garbage[key].garbage_id){ option.selected = true; } ownGarbage.appendChild(option); } // div var div = document.createElement('div'); inputSection.appendChild(div); // div .tareRowInput .tareRowInputLarge var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput tareRowInputLarge'; div.appendChild(tareRowInput); // select #ownTare .tare var ownTare = document.createElement('select'); ownTare.id = 'tmpTare'+ tmpTareID; ownTare.name = 'tmpTare'+ tmpTareID; ownTare.className = 'tare'; ownTare.title = 'Infot kogumisvahendi liigi kohta leiab kodulehelt: http://epler-lorenz.ee/konteinerid-2'; tareRowInput.appendChild(ownTare); $(ownTare).select2({ placeholder: 'Pakendi tüüp', language: 'en' }); // select #ownTare option(s) var option = document.createElement('option'); ownTare.appendChild(option); for(var key in tmp_tares){ var option = document.createElement('option'); option.value = tmp_tares[key].item_type_id; option.innerHTML = tmp_tares[key].item_type; if(item_type_id !== undefined && item_type_id == tmp_tares[key].item_type_id){ option.selected = true; } ownTare.appendChild(option); } // div .tareRowInput var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput'; div.appendChild(tareRowInput); // input #ownTareQuantity var ownTareQuantity = document.createElement('input'); ownTareQuantity.setAttribute('type', 'text'); ownTareQuantity.id = 'tmpTareQuantity'+ tmpTareID; ownTareQuantity.name = 'tmpTareQuantity'+ tmpTareID; ownTareQuantity.placeholder = 'Pakendi kogus, tk'; ownTareQuantity.title = 'Mitut kogumisvahendit (konteinerit, vaati) soovib ettevõte ära anda'; tareRowInput.appendChild(ownTareQuantity); // span .inputError var inputError = document.createElement('span'); inputError.className = 'inputError'; inputError.style.display = 'inline-block'; inputSection.appendChild(inputError); // Increment "ownTareID" tmpTareID++; } var rentedTareID = 1; function addRentedTareRow(garbage_id, item_type_id, selectableAmount) { /* Create "rentedTareItem" and append to "rentedTareRows" container */ // #rentedTareRows var rentedTareRows = document.getElementById('rentedTareRows'); // div #rentedTareItem .inputSection .tareRow var inputSection = document.createElement('div'); inputSection.className = 'inputSection tareRow'; rentedTareRows.appendChild(inputSection); // label .topLabel var topLabel = document.createElement('label'); topLabel.setAttribute('for', 'rentedGarbage'+ rentedTareID); topLabel.className = 'topLabel'; topLabel.style.display = 'inline-block'; topLabel.innerHTML = 'Toode'; inputSection.appendChild(topLabel); // span .removeRowButton .icon-cross var removeRowButton = document.createElement('span'); removeRowButton.className = 'removeRowButton icon-cross'; removeRowButton.setAttribute('title', 'Eemalda see toode'); removeRowButton.setAttribute('onClick', 'removeRentedTareRow(rentedTareID = '+ rentedTareID +');'); inputSection.appendChild(removeRowButton); // div var div = document.createElement('div'); inputSection.appendChild(div); // div .tareRowFirstRow var tareRowFirstRow = document.createElement('div'); tareRowFirstRow.className = 'tareRowFirstRow'; div.appendChild(tareRowFirstRow); // select #rentedGarbage .garbage var rentedGarbage = document.createElement('select'); rentedGarbage.id = 'rentedGarbage'+ rentedTareID; rentedGarbage.name = 'rentedGarbage'+ rentedTareID; rentedGarbage.className = 'garbage'; rentedGarbage.title = 'Jäätmete nimetus vastavalt Keskkonnaministri 14.12.2015. a määrus nr 70 „Jäätmete liigitamise kord ja jäätmenimistu” Lisa 1'; rentedGarbage.setAttribute('disabled', true); tareRowFirstRow.appendChild(rentedGarbage); $(rentedGarbage).select2({ placeholder: 'Jäätmete nimetus', language: 'en' }); // select #rentedGarbage option(s) var option = document.createElement('option'); rentedGarbage.appendChild(option); for(var key in garbage){ var option = document.createElement('option'); option.value = garbage[key].garbage_id; option.innerHTML = garbage[key].name +' ('+ garbage[key].garbage_sku +')'; if(garbage[key].garbage_id == garbage_id){ option.setAttribute('selected', true); } rentedGarbage.appendChild(option); } // div var div = document.createElement('div'); inputSection.appendChild(div); // div .tareRowInput .tareRowInputLarge var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput tareRowInputLarge'; div.appendChild(tareRowInput); // select #rentedTare .tare var rentedTare = document.createElement('select'); rentedTare.id = 'rentedTare'+ rentedTareID; rentedTare.name = 'rentedTare'+ rentedTareID; rentedTare.className = 'tare'; rentedTare.title = 'Infot kogumisvahendi liigi kohta leiab kodulehelt: http://epler-lorenz.ee/konteinerid-2'; rentedTare.setAttribute('disabled', true); tareRowInput.appendChild(rentedTare); $(rentedTare).select2({ placeholder: 'Pakendi tüüp', language: 'en' }); // select #rentedTare option(s) var option = document.createElement('option'); rentedTare.appendChild(option); for(var key in tares){ var option = document.createElement('option'); option.value = tares[key].item_type_id; option.innerHTML = tares[key].name; if(tares[key].item_type_id == item_type_id){ option.setAttribute('selected', true); } rentedTare.appendChild(option); } // div .tareRowInput var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput'; div.appendChild(tareRowInput); // input #rentedTareQuantity var rentedTareQuantity = document.createElement('input'); rentedTareQuantity.setAttribute('type', 'text'); rentedTareQuantity.id = 'rentedTareQuantity'+ rentedTareID; rentedTareQuantity.name = 'rentedTareQuantity'+ rentedTareID; rentedTareQuantity.placeholder = 'Pakendi kogus, tk'; rentedTareQuantity.title = 'Mitut kogumisvahendit (konteinerit, vaati) soovib ettevõte ära anda'; tareRowInput.appendChild(rentedTareQuantity); rentedTareQuantity.addEventListener('input', function(e) { // Get source value var source = e.target; var value = source.value; // Determine "rentedTareID" var rentedTareID = source.id.split('Quantity')[1]; // Get target var target = document.getElementById('rentedTareExchangeQuantity'+ rentedTareID); // Check if the source value is a whole number if(value != '' && !isNaN(value) && value.indexOf('e') === -1 && value.indexOf('.') === -1){ target.value = source.value; }else{ if(value != ''){ alert("Palun sisesta täisarv"); } source.value = ''; target.value = ''; return false; } // Ensure that the entered value is not greater than "selectableAmount" if(parseInt(value) > parseInt(selectableAmount)){ alert("Vastavalt teie lepingule on maksimaalne kogumisvahendi arv, mida saate valida: " + selectableAmount); source.value = selectableAmount; target.value = selectableAmount; } }); // div .tareRowInput var tareRowInput = document.createElement('div'); tareRowInput.className = 'tareRowInput'; div.appendChild(tareRowInput); // input #rentedTareExchangeQuantity var rentedTareExchangeQuantity = document.createElement('input'); rentedTareExchangeQuantity.setAttribute('type', 'text'); rentedTareExchangeQuantity.id = 'rentedTareExchangeQuantity'+ rentedTareID; rentedTareExchangeQuantity.name = 'rentedTareExchangeQuantity'+ rentedTareID; rentedTareExchangeQuantity.placeholder = 'Vahetustaara kogus, tk'; rentedTareExchangeQuantity.title = 'Mitmele kogumisvahendile (konteiner, vaat) soovib ettevõte saada vastu vahetustaarat'; tareRowInput.appendChild(rentedTareExchangeQuantity); rentedTareExchangeQuantity.addEventListener('input', function(e) { // Get source value var source = e.target; var value = source.value; // Determine "rentedTareID" var rentedTareID = source.id.split('Quantity')[1]; // Get target var target = document.getElementById('rentedTareQuantity'+ rentedTareID); // Check if the source value is a whole number if(value != '' && !isNaN(value) && value.indexOf('e') === -1 && value.indexOf('.') === -1){ //target.value = source.value; }else{ if(value != ''){ alert("Palun sisesta täisarv"); source.value = target.value; } return false; } // Ensure that the entered value is not greater than "selectableAmount" if(parseInt(value) > parseInt(selectableAmount)){ alert("Vastavalt teie lepingule on maksimaalne kogumisvahendi arv, mida saate valida: " + selectableAmount); source.value = selectableAmount; } }); // Increment "rentedTareID" rentedTareID++; } var addressAutoCompleteRequest; var addressAutoCompleteTimer; function addressAutoComplete(e) { // var _this = $(this); // Define the search term and the currently available addresses var searchTerm = e.target.value; var valid_addresses = document.getElementById('valid_addresses'); // Do not execute this method if the search term is less than 3 characters long if(searchTerm.length < 3){ return false; } // Cancel any existing timers if(addressAutoCompleteTimer !== undefined){ clearTimeout(addressAutoCompleteTimer); } // Cancel any pending AJAX requests, if an option was selected from the available addresses (datalist) var options = valid_addresses.childNodes; for(var i = 0; i < options.length; i++) { if(options[i].value === searchTerm){ if(addressAutoCompleteRequest !== undefined){ addressAutoCompleteRequest.abort(); return; } } } // Start a timer (1 second), then execute an AJAX GET request addressAutoCompleteTimer = setTimeout(function() { // Cancel any pending AJAX requests if(addressAutoCompleteRequest !== undefined){ addressAutoCompleteRequest.abort(); } // Perform AJAX GET request addressAutoCompleteRequest = $.ajax({ type: 'GET', url: '/AJAX/addressAutoComplete.php?term='+ searchTerm, dataType: 'json', success: function(result) { console.log(result); $('#valid_addresses').empty(); for(var i=0; i < result.length; i++) { $('#valid_addresses').append(''); } e.target.focus(); } }); }, 300); } function autoFillContactInfo(el_order) { // Ensure that "el_order" is an object if(el_order === undefined || typeof el_order !== 'object'){ displaySystemError(); return false; } // contact_person if(el_order.contact_person !== undefined){ document.getElementById('contact_person').value = el_order.contact_person; } // contact_phone_number if(el_order.contact_phone_number !== undefined){ document.getElementById('contact_phone_number').value = el_order.contact_phone_number; } // contact_email if(el_order.contact_email !== undefined){ document.getElementById('contact_email').value = el_order.contact_email; } } function autoFillMostRecentOrder(contract_id, object_id) { // Submit a "getELOrderMostRecent" AJAX request AJAXGet('AJAX/getELOrderMostRecent.php?contract_id='+ contract_id +'&object_id='+ object_id, function(result){ if(typeof result === 'object' && result.hasOwnProperty('status')){ // Ensure that only a single order was received if(result.status == 1 && typeof result.data == 'object'){ // Define order from result data var el_order = result.data; // Fill out contact information from previous order autoFillContactInfo(el_order = result.data); // Fill out waste origin from previous order autoFillWasteOrigin(el_order = result.data); getContractService(contract_id, object_id, 'null'); /* Add own tares from previous order */ // Ensure that at least one previous order item exists if(el_order.el_order_item === undefined || el_order.el_order_item.length < 1){ return; } // Sort order items by unique garbage and tare combinations var uniqueOrderItemCombinations = []; for(var key in el_order.el_order_item){ var testString = el_order.el_order_item[key].order_item_has_garbage +','+ el_order.el_order_item[key].order_item_has_item_type; if(uniqueOrderItemCombinations.indexOf(testString) === -1){ uniqueOrderItemCombinations.push(testString); } } // Empty "ownTareRows" container document.getElementById('ownTareRows').innerHTML = ''; // Add unique garbage and tare combinations as individual own tare rows for(var key in uniqueOrderItemCombinations){ var ids = uniqueOrderItemCombinations[key].split(','); addOwnTareRow(garbage_id = ids[0], item_type_id = ids[1]); } }else{ console.log(result); displaySystemError(); } }else{ console.log('Error - An unexpected AJAX result was returned:'); console.log(result); displaySystemError(); } }); } function autoFillTempTares(res_tares) { tmp_tares = {}; for (var i in res_tares.data) { tmp_tares[i] = res_tares.data[i]; } } function autoFillObjects(objects) { // Reset "wasteSourceContainerLogin" select options var wasteSourceContainerLogin = document.getElementById('wasteSourceContainerLogin'); wasteSourceContainerLogin.innerHTML = ''; // Generate options for "wasteSourceContainerLogin" select var option = document.createElement('option'); option.value = ''; option.innerHTML = ''; wasteSourceContainerLogin.appendChild(option); for(var key in objects){ var option = document.createElement('option'); option.value = objects[key].object_id; if(objects[key].street !== undefined && objects[key].street != ''){ option.innerHTML = objects[key].address; }else{ displaySystemError(); console.log('Unable to determine object street name'); return false; } wasteSourceContainerLogin.appendChild(option); } // Add event listener to select $('#wasteSourceContainerLogin').change(function(e){ // Get "object_id" from selected value var object_id = e.target.options[e.target.selectedIndex].value; // Apply object info to form elements if(object_id == ''){ document.getElementById('waste_source_address').value = ''; }else{ // Add the selected object information to the hidden form fields for(var key in objects){ if(objects[key].object_id == object_id){ // waste_source_address var waste_source_address = document.getElementById('waste_source_address'); if(objects[key].street !== undefined && objects[key].street != ''){ waste_source_address.value = objects[key].street; if(objects[key].house_nr !== undefined && objects[key].house_nr != '' && objects[key].house_nr != null){ waste_source_address.value += ' '+ objects[key].house_nr; } if(objects[key].city !== undefined && objects[key].city != ''){ waste_source_address.value += ', '+ objects[key].city; } }else{ displaySystemError(); console.log('Unable to determine object street name'); return false; } break; } } // Automatically fill most recent order autoFillMostRecentOrder(contract_id, object_id); } }); $('#wasteSourceContainerLogin').select2({ placeholder: '(Jäätmete) Lähtekoha address', language: 'en' }); $('#wasteSourceContainerLogin').on('select2:select', function (e) { $('#wasteSourceContainerLogin').change(); autoFillObjectInfo(contract_id = document.getElementById('order_belongs_to_contract').value, object_id = $('#wasteSourceContainerLogin').val()); }); } function autoFillObjectInfo(contract_id, object_id) { // Ensure that "contract_id" and "object_id" is defined if(contract_id == '' || object_id == ''){ return false; } // Submit "getObjects" AJAX request AJAXGet('AJAX/getObjects.php?contract_id='+ contract_id, function(result) { // Handle return results if(!result || typeof result !== 'object') // Error { console.log('Error - An unexpected AJAX result was returned:'); console.log(result); displaySystemError(); } else // Success { // Reset field "emptying_date" document.getElementById('emptying_date').value = ''; // for(var key in result){ if(result[key].object_id == object_id) { // waste_producer_site_address var waste_producer_site_address = document.getElementById('waste_producer_site_address'); if(result[key].street !== undefined && result[key].street != ''){ waste_producer_site_address.value = result[key].address; } } } } }); } function checkFieldsByDate() { var date = jQuery('#emptying_date').val(); if (date) { var dateTime = Date.parse(date); jQuery('[service-field]').each(function() { var $select = jQuery(this); jQuery(this).find('option').each(function() { var end_date = jQuery(this).attr('end-date'); if (end_date !== 'null') { var dateTime2 = Date.parse(end_date); if (dateTime2 < dateTime) { jQuery(this).prop('disabled', true); if (jQuery(this).is(':selected')) { $select.val('').trigger('change'); } } else { //jQuery(this).prop('disabled', false); } } }); $select.trigger('change'); }); } } function autoFillOwnerInfo() { // Parse owner info from PHP session as JSON var ownerString = ''; var contractsString = ''; if(ownerString != ''){ var ownerInfo = JSON.parse(ownerString); } if(contractsString != ''){ var contractInfo = JSON.parse(contractsString); } if(ownerInfo === undefined){ return false; } // Hide "wasteSourceContainer" element var wasteSourceContainer = document.getElementById('wasteSourceContainer'); wasteSourceContainer.style.visibility = 'hidden'; wasteSourceContainer.style.height = 0; // Reset "waste_source_address" form element document.getElementById('waste_source_address').value = ''; // Show "wasteSourceContainerLogin" select element var wasteSourceContainerLogin = document.getElementById('wasteSourceContainerLogin'); wasteSourceContainerLogin.style.display = 'block'; /* Apply owner info to form elements (and disable some) */ // waste_transferor var waste_transferor = document.getElementById('waste_transferor'); if(ownerInfo.company_name !== undefined && ownerInfo.company_name != null){ waste_transferor.value = ownerInfo.company_name; waste_transferor.disabled = true; } // waste_transferor_registry_code var waste_transferor_registry_code = document.getElementById('waste_transferor_registry_code'); if(ownerInfo.owner_sku !== undefined && ownerInfo.owner_sku != null){ waste_transferor_registry_code.value = ownerInfo.owner_sku; waste_transferor_registry_code.disabled = true; } // waste_transferor_name var waste_transferor_name = document.getElementById('waste_transferor_name'); if(ownerInfo.firstname !== undefined && ownerInfo.firstname != '' && ownerInfo.firstname != null){ waste_transferor_name.value = ownerInfo.firstname; if(ownerInfo.surname !== undefined && ownerInfo.surname != '' && ownerInfo.surname != null){ waste_transferor_name.value += ' '+ ownerInfo.surname; } waste_transferor_name.disabled = true; } $('[name="order_belongs_to_contract"]').on('change', function(){ var current_contract_id = this.value; var current_waste_transferor_name = ''; var current_waste_transferor_phone_number = ''; var current_waste_transferor_email = ''; var current_invoice_email = ''; if(ownerInfo.firstname !== undefined && ownerInfo.firstname != '' && ownerInfo.firstname != null){ current_waste_transferor_name = ownerInfo.firstname; if(ownerInfo.surname !== undefined && ownerInfo.surname != '' && ownerInfo.surname != null){ current_waste_transferor_name += ' '+ ownerInfo.surname; } waste_transferor_name.disabled = true; } if( current_contract_id && current_contract_id != undefined){ if(contractInfo != undefined && contractInfo.length > 0){ $.each(contractInfo, function(cc_k, cc_v){ if(cc_v.contract_id == current_contract_id){ if( cc_v.contact_first_name && cc_v.contact_last_name ){ current_waste_transferor_name = cc_v.contact_first_name +' '+ cc_v.contact_last_name; } if( cc_v.contact_phone ){ current_waste_transferor_phone_number = cc_v.contact_phone; } if( cc_v.contact_email ){ current_waste_transferor_email = cc_v.contact_email; } if( cc_v.contact_invoice_email ){ current_invoice_email = cc_v.contact_invoice_email; } } }); } } $('[name="waste_transferor_name"]').val(current_waste_transferor_name); $('[name="waste_transferor_phone_number"]').val(current_waste_transferor_phone_number ? current_waste_transferor_phone_number : ownerInfo.phone); $('[name="waste_transferor_email"]').val(current_waste_transferor_email ? current_waste_transferor_email : ownerInfo.email); $('[name="invoice_email"]').val(current_invoice_email ? current_invoice_email : ownerInfo.invoice_email); }); // waste_transferor_address var waste_transferor_address = document.getElementById('waste_transferor_address'); if(ownerInfo.full_address !== undefined && ownerInfo.full_address != '' && ownerInfo.full_address != null){ waste_transferor_address.value = ownerInfo.full_address; waste_transferor_address.disabled = true; }else if(ownerInfo.street !== undefined && ownerInfo.street != '' && ownerInfo.street != null){ waste_transferor_address.value = ownerInfo.street; if(ownerInfo.house_nr !== undefined && ownerInfo.house_nr != '' && ownerInfo.house_nr != null){ waste_transferor_address.value += ' '+ ownerInfo.house_nr; } if(ownerInfo.flat_nr !== undefined && ownerInfo.flat_nr != '' && ownerInfo.flat_nr != null){ waste_transferor_address.value += '-'+ ownerInfo.flat_nr; } if(ownerInfo.zipcode !== undefined && ownerInfo.zipcode != '' && ownerInfo.zipcode != null){ waste_transferor_address.value += ', '+ ownerInfo.zipcode; } waste_transferor_address.disabled = true; } // waste_transferor_phone_number var waste_transferor_phone_number = document.getElementById('waste_transferor_phone_number'); if(ownerInfo.phone !== undefined && ownerInfo.phone != '' && ownerInfo.phone != null){ waste_transferor_phone_number.value = ownerInfo.phone; waste_transferor_phone_number.disabled = true; } // waste_transferor_email var waste_transferor_email = document.getElementById('waste_transferor_email'); if(ownerInfo.email !== undefined && ownerInfo.email != '' && ownerInfo.email != null){ waste_transferor_email.value = ownerInfo.email; waste_transferor_email.disabled = true; }else if(ownerInfo.email2 !== undefined && ownerInfo.email2 != '' && ownerInfo.email2 != null){ waste_transferor_email.value = ownerInfo.email2; waste_transferor_email.disabled = true; }else if(ownerInfo.email3 !== undefined && ownerInfo.email3 != '' && ownerInfo.email3 != null){ waste_transferor_email.value = ownerInfo.email3; waste_transferor_email.disabled = true; } // invoice_email var invoice_email = document.getElementById('invoice_email'); if(ownerInfo.invoice_email !== undefined && ownerInfo.invoice_email != '' && ownerInfo.invoice_email != null){ invoice_email.value = ownerInfo.invoice_email; invoice_email.disabled = true; }else if(ownerInfo.email !== undefined && ownerInfo.email != '' && ownerInfo.email != null){ invoice_email.value = ownerInfo.email; invoice_email.disabled = true; } // waste_producer_company_name var waste_producer_company_name = document.getElementById('waste_producer_company_name'); if(ownerInfo.company_name !== undefined && ownerInfo.company_name != '' && ownerInfo.company_name != null){ waste_producer_company_name.value = ownerInfo.company_name; } // waste_producer_registry_code var waste_producer_registry_code = document.getElementById('waste_producer_registry_code'); if(ownerInfo.owner_sku !== undefined && ownerInfo.owner_sku != '' && ownerInfo.owner_sku != null){ waste_producer_registry_code.value = ownerInfo.owner_sku; } } function autoFillRentedTares(contract_service) { // Ensure that "contract_service" is an object if(typeof contract_service != 'object'){ displaySystemError(); return false; } // Show "rentedTareArea" element var rentedTareArea = document.getElementById('rentedTareArea'); rentedTareArea.style.display = 'block'; // Sort "contract_service" by the number of garbage and tare combinations var garbageTareCombinations = {}; for(var key in contract_service) { var testKey = contract_service[key].garbage_id +','+ contract_service[key].item_type_id; if(!(testKey in garbageTareCombinations)){ garbageTareCombinations[testKey] = 1; }else{ garbageTareCombinations[testKey]++; } } // Add rented tare row for each "contract_service" object for(var key in garbageTareCombinations){ var stringSplit = key.split(','); var garbage_id = stringSplit[0]; var item_type_id = stringSplit[1]; var amount = garbageTareCombinations[key]; addRentedTareRow(garbage_id, item_type_id, amount); } } /* Resorts all "ownGarbage" selectors to have garbage used in contract services at the top of the list */ function resortOwnGarbage(contract_service) { // Ensure that "contract_service" is an object if(typeof contract_service != 'object'){ displaySystemError(); return false; } // Sort "contract_service" by unique garbage var uniqueGarbage = []; for(var key in contract_service) { if(uniqueGarbage.indexOf(contract_service[key].garbage_id) < 0){ uniqueGarbage.push(contract_service[key].garbage_id); } } if(uniqueGarbage.length == 0){ return; } // Get all ownGarbage selectors var ownGarbageSelectors = document.getElementsByClassName('ownGarbage'); // Remove "contract_service" garbage from all "ownGarbage" selectors on screen for(var i = 0, max = ownGarbageSelectors.length; i < max; i++) { for(var i2 = 0, max2 = ownGarbageSelectors[i].options.length; i2 < max2; i2++) { if(ownGarbageSelectors[i].options[i2] === undefined){ continue; }else if(ownGarbageSelectors[i].options[i2].index === undefined || ownGarbageSelectors[i].options[i2].index === null){ continue; } var index = ownGarbageSelectors[i].options[i2].index; var value = parseInt(ownGarbageSelectors[i].options[i2].value); if(uniqueGarbage.indexOf(value) > -1){ ownGarbageSelectors[i].remove(index); } } } // Add "contract_service" garbage to the top of all "ownGarbage" selectors on screen for(var i = 0, max = ownGarbageSelectors.length; i < max; i++) { for(var key in uniqueGarbage) { for(var key2 in garbage) { if(uniqueGarbage[key] == garbage[key2].garbage_id){ var option = document.createElement('option'); option.value = garbage[key2].garbage_id; option.innerHTML = garbage[key2].name; if(garbage[key2].garbage_sku !== undefined && garbage[key2].garbage_sku != ''){ option.innerHTML += ' ('+ garbage[key2].garbage_sku +')'; } ownGarbageSelectors[i].add(option, key); } } } } // Move "contract_service" garbage to the beginning of the global "garbage" variable for(var key in uniqueGarbage) { for(var key2 in garbage) { if(uniqueGarbage[key] == garbage[key2].garbage_id){ arrayMoveIndex(garbage, key2, key); } } } } function autoFillWasteOrigin(el_order) { // Ensure that "el_order" is an object if(el_order === undefined || typeof el_order !== 'object'){ displaySystemError(); return false; } // Get reference to the "waste_producer_waste_origin" select var select = document.getElementById('waste_producer_waste_origin'); // for(var key in select.options){ if(select.options[key].value == 'waste_producer_waste_origin_household' && el_order.waste_producer_waste_origin_household !== undefined && el_order.waste_producer_waste_origin_household === true){ select.selectedIndex = select.options[key].index; break; }else if(select.options[key].value == 'waste_producer_waste_origin_ship' && el_order.waste_producer_waste_origin_ship !== undefined && el_order.waste_producer_waste_origin_ship === true){ select.selectedIndex = select.options[key].index; break; }else if(select.options[key].value == 'waste_producer_waste_origin_temporary_storage' && el_order.waste_producer_waste_origin_temporary_storage !== undefined && el_order.waste_producer_waste_origin_temporary_storage === true){ select.selectedIndex = select.options[key].index; break; }else if(select.options[key].value == 'waste_producer_waste_origin_foreign_entrepreneur' && el_order.waste_producer_waste_origin_foreign_entrepreneur !== undefined && el_order.waste_producer_waste_origin_foreign_entrepreneur === true){ select.selectedIndex = select.options[key].index; break; }else if(select.options[key].value == 'waste_producer_waste_origin_transferor' && el_order.waste_producer_waste_origin_transferor !== undefined && el_order.waste_producer_waste_origin_transferor === true){ select.selectedIndex = select.options[key].index; break; }else if(select.options[key].value == 'waste_producer_waste_origin_unknown' && el_order.waste_producer_waste_origin_unknown !== undefined && el_order.waste_producer_waste_origin_unknown === true){ select.selectedIndex = select.options[key].index; break; } } // Trigger change event on select $('#waste_producer_waste_origin').trigger('change'); } function changePassword(e) { // Prevent a standard form submit if(e !== undefined){ e.preventDefault(); } // Parse owner from PHP session as JSON var ownerString = ''; if(ownerString != ''){ var owner = JSON.parse(ownerString); } if(owner === undefined){ return false; } // Get password fields in form var currentPassword = document.getElementById('currentPassword'); var newPassword = document.getElementById('newPassword'); var newPasswordRepeat = document.getElementById('newPasswordRepeat'); if(currentPassword === null || newPassword === null || newPasswordRepeat === null){ console.log('Unable to reference password fields in form'); displaySystemError(); return false; } // Reset potential error messages from previous attempt var inputErrorElm = currentPassword.parentElement.lastElementChild; inputErrorElm.innerHTML = ''; var inputErrorElm = newPassword.parentElement.lastElementChild; inputErrorElm.innerHTML = ''; // Compile data string var dataString = 'owner_id='+ owner.owner_id +'¤tPassword='+ currentPassword.value +'&newPassword='+ newPassword.value +'&newPasswordRepeat='+ newPasswordRepeat.value; // Submit login request AJAXPost('AJAX/changePassword.php', dataString, function(result){ // Handle unexpected return result if(typeof result !== 'object' || result.status === undefined){ console.log('Error - An unexpected AJAX result was returned:'); console.log(result); displaySystemError(); return false; } // Handle return results if(result.status == 1){ // Success // Display success message alert('Teie parool on muudetud.'); // Display logout notice alert('Nüüd logitakse teid välja. Palun logige uuesti sisse, kasutades oma uut parooli.'); // Log out logout(); }else if(result.status == 0){ // Error if(result.message !== undefined && result.message == 'Errors found'){ console.log(result); displaySystemError(); return false; } if(result.parametersMissing !== undefined){ // Missing API parameters console.log('Error - API request failed:'); console.log(result); displaySystemError(); return false; } if(result.parametersEmpty !== undefined){ // Empty parameters for(var key in result.parametersEmpty){ // Determine the parameter name var parameterName = result.parametersEmpty[key]; // Define error message var errorMessage = "Kohustuslik väli"; // Insert error message insertParameterInputMessage(parameterName, errorMessage); } } if(result.parameterErrors !== undefined){ // Other parameter errors for(var key in result.parameterErrors){ // Determine the parameter name var parameterName = result.parameterErrors[key].parameter; // Determine error message var errorMessage = result.parameterErrors[key].error; // Insert error message insertParameterInputMessage(parameterName, errorMessage); } } // Focus currentPassword field currentPassword.focus(); } }); } function displaySystemError(errorInfoText) { var text = 'Ilmnes süsteemi tõrge! \n\nPlease pöörduge info@epler-lorenz.ee '; if(errorInfoText !== undefined && errorInfoText != ''){ text += '\n\n' + errorInfoText; } alert(text); } function enableFinalOperator(contract_id) { // Ensure that "contract_id" is defined if(contract_id == ''){ return false; } // Ensure that contracts are available if(typeof contracts !== 'object'){ return false; } // for(var key in contracts) { if(contracts[key].contract_id != contract_id){ continue; }else if(contracts[key].is_el_final_operator_available){ document.getElementById('order_has_final_operator').style.display = 'block'; }else{ document.getElementById('order_has_final_operator').style.display = 'none'; } } } function transportAreaHide() { document.getElementById('transportArea').style.display = 'none'; } function transportAreaDisplay() { document.getElementById('transportArea').style.display = 'block'; } function ownTransportAreaHide() { document.getElementById('ownTransportArea').style.display = 'none'; } function ownTransportAreaDisplay() { document.getElementById('ownTransportArea').style.display = 'block'; } function wasteProducerWasteOriginChange(e) { if(e.target.value == 'waste_producer_waste_origin_ship') { // Get reference to the parent element of the form field "waste_producer_waste_origin" var parent = document.getElementById('waste_producer_waste_origin').parentNode; // Add form field "waste_producer_ship_imo_number" var inputSection = document.createElement('div'); inputSection.className = 'inputSection'; var label = document.createElement('label'); label.className = 'topLabel'; label.setAttribute('for', 'waste_producer_ship_imo_number'); label.innerHTML = "IMO number"; var font = document.createElement('font'); font.setAttribute('color', 'red'); font.innerHTML = ' *'; label.appendChild(font); inputSection.appendChild(label); inputSection.appendChild(document.createElement('br')); var input = document.createElement('input'); input.id = 'waste_producer_ship_imo_number'; input.name = 'waste_producer_ship_imo_number'; input.setAttribute('type', 'text'); inputSection.appendChild(input); var span = document.createElement('span'); span.className = 'inputError'; inputSection.appendChild(span); parent.parentNode.insertBefore(inputSection, parent.nextSibling); // Hide form field "waste_producer_company_name" document.getElementById('waste_producer_company_name').parentNode.style.display = 'none'; // Add form field "waste_producer_ship_name" var inputSection = document.createElement('div'); inputSection.className = 'inputSection'; var label = document.createElement('label'); label.className = 'topLabel'; label.setAttribute('for', 'waste_producer_ship_name'); label.innerHTML = "Laeva nini"; var font = document.createElement('font'); font.setAttribute('color', 'red'); font.innerHTML = ' *'; label.appendChild(font); inputSection.appendChild(label); inputSection.appendChild(document.createElement('br')); var input = document.createElement('input'); input.id = 'waste_producer_ship_name'; input.name = 'waste_producer_ship_name'; input.setAttribute('type', 'text'); inputSection.appendChild(input); var span = document.createElement('span'); span.className = 'inputError'; inputSection.appendChild(span); parent.parentNode.insertBefore(inputSection, parent.nextSibling); // Add form field "waste_producer_ship_flag_state" var inputSection = document.createElement('div'); inputSection.className = 'inputSection'; var label = document.createElement('label'); label.className = 'topLabel'; label.setAttribute('for', 'waste_producer_ship_flag_state'); label.innerHTML = "Lipuriik"; var font = document.createElement('font'); font.setAttribute('color', 'red'); font.innerHTML = ' *'; label.appendChild(font); inputSection.appendChild(label); inputSection.appendChild(document.createElement('br')); var input = document.createElement('input'); input.id = 'waste_producer_ship_flag_state'; input.name = 'waste_producer_ship_flag_state'; input.setAttribute('type', 'text'); inputSection.appendChild(input); var span = document.createElement('span'); span.className = 'inputError'; inputSection.appendChild(span); parent.parentNode.insertBefore(inputSection, parent.nextSibling); } else { // Remove form fields "waste_producer_ship_imo_number", "waste_producer_ship_name" and "waste_producer_ship_flag_state" var elm = document.getElementById('waste_producer_ship_imo_number'); if(typeof(elm) != 'undefined' && elm != null){ elm.parentNode.remove(); } var elm = document.getElementById('waste_producer_ship_name'); if(typeof(elm) != 'undefined' && elm != null){ elm.parentNode.remove(); } var elm = document.getElementById('waste_producer_ship_flag_state'); if(typeof(elm) != 'undefined' && elm != null){ elm.parentNode.remove(); } // Show form field "waste_producer_company_name" document.getElementById('waste_producer_company_name').parentNode.style.display = 'block'; } if(e.target.value == 'waste_producer_waste_origin_temporary_storage' || e.target.value == 'waste_producer_waste_origin_foreign_entrepreneur' || e.target.value == 'waste_producer_waste_origin_transferor' || e.target.value == 'waste_producer_waste_origin_different') { document.getElementById('waste_producer_company_name').parentNode.style.display = 'block'; document.getElementById('waste_producer_registry_code').parentNode.style.display = 'block'; document.getElementById('waste_producer_site_address').parentNode.style.display = 'block'; } else { document.getElementById('waste_producer_company_name').parentNode.style.display = 'none'; document.getElementById('waste_producer_registry_code').parentNode.style.display = 'none'; document.getElementById('waste_producer_site_address').parentNode.style.display = 'none'; } } function wasteTransporterAreaHide() { document.getElementById('wasteTransporterArea').style.display = 'none'; } function wasteTransporterAreaDisplay() { document.getElementById('wasteTransporterArea').style.display = 'block'; } function displayContractNotes(contract_id) { // Empty and hide the "contract_notes" element var contract_notes = document.getElementById('contract_notes'); contract_notes.innerHTML = ''; contract_notes.style.display = 'none'; // Parse contract(s) info from PHP session as JSON var contractsString = ''; if(contractsString != ''){ var contracts = JSON.parse(contractsString); } if(contracts === undefined){ return false; } // Display contract notes (if any) for(var key in contracts){ if(contracts[key].contract_id == contract_id){ if(contracts[key].notes !== null && contracts[key].notes != ''){ contract_notes.innerHTML = contracts[key].notes; contract_notes.style.display = 'block'; } break; } } } function getContractService(contract_id, object_id, emptying_date) { // Empty the "rentedTareRows" element and hide the "rentedTareArea" element document.getElementById('rentedTareRows').innerHTML = ''; document.getElementById('rentedTareArea').style.display = 'none'; // Ensure that "contract_id", "object_id" and "emptying_date" is defined if(contract_id == '' || object_id == '' || emptying_date == ''){ return false; } // Submit "getContractService" AJAX request AJAXGet('AJAX/getContractService.php?contract_id='+ contract_id +'&object_id='+ object_id +'&emptying_date='+ emptying_date, function(result) { // Handle return results if(typeof result === 'object'){ autoFillRentedTares(contract_service = result); resortOwnGarbage(contract_service = result); }else if(result !== true){ console.log('Error - An unexpected AJAX result was returned:'); console.log(result); displaySystemError(); } }); } function getTempTares(contract_id) { // Ensure that "contract_id" is defined if(contract_id == ''){ return; } // Submit "getObjects" AJAX request AJAXGet('AJAX/getTmpTares.php?contract_id='+ contract_id, function(result) { if(typeof result !== 'object'){ displaySystemError(); }else{ autoFillTempTares(result); } }); } function getObjects(contract_id) { // Ensure that "contract_id" is defined if(contract_id == ''){ autoFillObjects(''); return; } // Submit "getObjects" AJAX request AJAXGet('AJAX/getObjects.php?contract_id='+ contract_id, function(result) { // Handle return results if(!result){ // No objects returned alert('Sellele lepingule pole objekti määratud'); window.location.reload(); }else if(typeof result !== 'object'){ // System error console.log('Error - An unexpected AJAX result was returned:'); console.log(result); displaySystemError(); }else{ // Success autoFillObjects(result); } }); } function insertParameterInputMessage(parameterElementName, message) { // Locate the "inputError" span element for this parameter var elm = document.getElementsByName(parameterElementName); if(elm.length == 0 || elm[0] === undefined){ console.log('Unable to reference element with name "' + parameterElementName + '"'); return false; } var parentElement; if(elm[0].parentElement.className == 'inputSection'){ parentElement = elm[0].parentElement; }else if(elm[0].parentElement.parentElement.className == 'inputSection'){ parentElement = elm[0].parentElement.parentElement }else{ parentElement = elm[0].parentElement.parentElement.parentElement; } var inputErrorElement = parentElement.lastElementChild; if(inputErrorElement.className != 'inputError'){ console.log('Unable to locate the appropriate "inputError" element'); return false; } // Ensure that error message does not already exist if(inputErrorElement.innerHTML == '* ' + message){ return; } // Insert the error message if(inputErrorElement.innerHTML != ''){ inputErrorElement.innerHTML += '
'; } inputErrorElement.innerHTML += '* ' + message; } function login(e) { // Prevent a standard form submit if(e === undefined){ return false; } e.preventDefault(); // Reset potential error messages from previous attempt var inputErrorElm = document.getElementById('public_order_form_password').parentElement.parentElement.lastElementChild; inputErrorElm.innerHTML = ''; // Compile data string var dataString = 'owner_sku='+ document.getElementById('owner_sku').value +'&public_order_form_password='+ document.getElementById('public_order_form_password').value; // Reset password field var passwordElm = document.getElementById('public_order_form_password'); passwordElm.value = ''; // Submit login request AJAXPost('AJAX/login.php', dataString, function(result){ // Handle unexpected return result if(typeof result !== 'boolean'){ console.log('Error - An unexpected AJAX result was returned:'); console.log(result); displaySystemError(); return false; } // Handle anticipated return result(s) if(result === true){ // Success // Reload page to apply new PHP session location.reload(); }else{ // Failure // Focus password field passwordElm.focus(); // Display unsuccessful login error message inputErrorElm.innerHTML = '* Vale kasutajanimi või parool'; } }); } function logout() { // Submit logout request AJAXGet('AJAX/logout.php', function(result){ if(result){ location.reload(); }else{ displaySystemError(); } }); } function removeAdditionalServiceRow(additionalServiceID) { var additionalServiceItem = document.getElementById('additionalServiceItem'+ additionalServiceID); var confirm = window.confirm("Eemalda see toode?"); if(!confirm){ return false; } if(additionalServiceItem.parentNode.children.length == 1){ additionalServiceItem.parentNode.removeChild(additionalServiceItem); addAdditionalServiceRow(); }else{ additionalServiceItem.parentNode.removeChild(additionalServiceItem); } } function removeOwnTareRow(ownTareID) { var ownTareItem = document.getElementById('ownTareItem'+ ownTareID); var confirm = window.confirm("Eemalda see toode?"); if(!confirm){ return false; } if(ownTareItem.parentNode.children.length == 1){ ownTareItem.parentNode.removeChild(ownTareItem); addOwnTareRow(); }else{ ownTareItem.parentNode.removeChild(ownTareItem); } } function removeTmpTareRow(tmpTareID) { var ownTareItem = document.getElementById('tmpTareItem'+ tmpTareID); var confirm = window.confirm("Eemalda see toode?"); if(!confirm){ return false; } if(ownTareItem.parentNode.children.length == 1){ ownTareItem.parentNode.removeChild(ownTareItem); addOwnTareRow(); }else{ ownTareItem.parentNode.removeChild(ownTareItem); } } function removeRentedTareRow(rentedTareID) { var rentedTareQuantity = document.getElementById('rentedTareQuantity'+ rentedTareID); var rentedTareExchangeQuantity = document.getElementById('rentedTareExchangeQuantity'+ rentedTareID); var confirm = window.confirm("Eemalda see toode?"); if(!confirm){ return false; } rentedTareQuantity.value = ''; rentedTareExchangeQuantity.value = ''; jQuery(rentedTareQuantity).closest('.tareRow').remove(); } function resetForm(confirm) { if(confirm === undefined){ confirm = true; } if(!confirm){ window.location.href = '/'; }else{ var response = window.confirm("Kas oled kindel, et soovid selle tellimuse tühistada?\n\nKõik väljad tühjendatakse ja sisestatud andmed lähevad kaotsi."); if(response){ window.location.href = '/'; }else{ return false; } } } function submitForm() { // Disable submit button document.getElementById('formSubmitButton').style.display = 'none'; // Reset potential error messages from previous submit inputErrorElements = document.getElementsByClassName('inputError'); for(var key in inputErrorElements){ inputErrorElements[key].innerHTML = ''; } // Ensure that the EULA has been agreed to if(!document.getElementById('eula').checked) { // Display error document.getElementById('eula').parentElement.lastElementChild.innerHTML = "Kasutustingimustega peab nõustuma"; alert("Te peate nõustuma kasutustingimustega enne tellimuse esitamist."); // Re-enable submit button document.getElementById('formSubmitButton').style.display = 'inline-block'; // Return false return false; } // Gather form data var elements = $('#form').find(':input'); var dataString = ''; for(var key in elements){ if( elements[key] === null || typeof elements[key] !== 'object' || !('type' in elements[key]) || !('name' in elements[key]) || elements[key].name == '' || elements[key].type == 'button' || elements[key].style.display == 'none' || elements[key].parentNode.style.display == 'none' ){ continue; } if(elements[key].type == 'text' || elements[key].type == 'textarea' || elements[key].type == 'select-one'){ if(dataString != ''){ dataString += '&'; } dataString += elements[key].name + '=' + encodeURIComponent(elements[key].value); }else if(elements[key].type == 'radio' || elements[key].type == 'checkbox'){ if(elements[key].checked){ if(dataString != ''){ dataString += '&'; } dataString += elements[key].name + '=' + elements[key].value; } }else{ console.log('Encountered an unexpected form element type'); continue; } } // Send AJAX POST request AJAXPost('AJAX/submitForm.php', dataString, function(result) { // Handle unexpected return result if(typeof result !== 'object' || result.status === undefined) { // Log error console.log('Error - An unexpected AJAX result was returned:'); console.dir(result); // Display system error displaySystemError(result); // Reload page window.location.reload(); // Return false return false; } // Handle return results if(result.status == 1) // Success { // Display a proper success message alert("Teie tellimus on vastu võetud. Aitäh!"); // Reload form location.reload(); } else if(result.status == 0) // Error { // Scroll to top of page window.scrollTo(0, 0); // Re-enable submit button document.getElementById('formSubmitButton').style.display = 'inline-block'; // Determine the type of error if(result.parametersEmpty !== undefined) // Empty parameters { for(var key in result.parametersEmpty) { // Determine the parameter name var parameterName = result.parametersEmpty[key]; // Define error message var errorMessage = "Kohustuslik väli"; // Insert error message insertParameterInputMessage(parameterName, errorMessage); } alert("Tellimuses leiti üks või rohkem viga.\nVead on tellimuses punasega märgitud."); } else if(result.parameterErrors !== undefined) // Other parameter errors { for(var key in result.parameterErrors) { // Determine the parameter name var parameterName = result.parameterErrors[key].parameter; // Determine error message var errorMessage = result.parameterErrors[key].error; // Insert error message insertParameterInputMessage(parameterName, errorMessage); } alert("Tellimuses leiti üks või rohkem viga.\nVead on tellimuses punasega märgitud."); } else if(result.message !== undefined && result.message == 'At least one order item or additional service must be present') // Missing order item or additional service message { alert('Tellimuse vormistamiseks peate valima vähemalt ühe toote või lisateenuse'); } else if(result.parametersMissing !== undefined) // Missing API parameters { // Log error console.log('Error - API request failed:'); console.log(result); // Display system error displaySystemError(); // Reload page window.location.reload(); } else // Back-end system error { if(result.message !== undefined) { // Log error console.log(result.message); // Display system error displaySystemError(result.message); // Reload page window.location.reload(); } else { // Log error console.dir(result); // Display system error displaySystemError(); // Reload page window.location.reload(); } } } }); }