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)
{
$.get(getURL, function(response) {
if (callbackFunction) {
if (typeof response === 'string' || response instanceof String) {
callbackFunction($.parseJSON(response));
return;
}
callbackFunction(response);
}
});
}
function AJAXPost(postURL, dataString, callbackFunction)
{
$.post(postURL, dataString, function(response) {
if (callbackFunction) {
if (typeof response === 'string' || response instanceof String) {
callbackFunction($.parseJSON(response));
return;
}
callbackFunction(response);
}
});
}
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 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();
}
}
}
});
}