var fs = nw.require('fs'); var programPath = process.cwd(); var horizonData = null; document.on('DOMContentLoaded', function(event) { loadDataFromFile(programPath + "/ftv/" + "horizon_hamry.json", function(data) { horizonData = data; //var cl = findClosest(horizonData, 20); //console.log(cl); let points = []; horizonData.loopEach(function(val) { points.push([val["A"], val["H_hor"]]); }); drawGraph( $('#horizont'), [ { name: "hor", unit: "deg", style: { color: "#a31cda", label: "all", labelVisibility: "pop" }, points: points } ], 0, { yMin: 0, yMax: 45, xMin: -180, xMax: 180 } ); }); // *** UI *** // $(".c--collapse-button").on("click", function(event) { event.preventDefault(); this.getSiblings('.c--content').classList.toggle('hidden'); }); $(".t--tab").on("click", function(event) { event.preventDefault(); $(".t--head .active").classList.remove("active"); this.classList.add("active"); let tab = this.getAttribute('href').substring(1); //console.log(tab, document.getElementById(tab)); $(".t--content.active").classList.remove("active"); document.getElementById(tab).classList.add("active"); }); /*var citySel = $('select[name="mesto"]'); var option = document.createElement("OPTION"); Object.entries(places).forEach(function(val, key) { let cln = option.cloneNode(true); cln.setAttribute("value", val[0]); cln.innerText = val[1].title; citySel.append(cln); });*/ var elem = parseHTML([{ cat: "city" }].map(tpl.advSelCity).join('')); $('#popup').append(elem); var elemFV = parseHTML([{ cat: "fv-model" }].map(tpl.advSelCity).join('')); $('#popup').append(elemFV); var citySel = $('.as--option-content')[0]; var fvSel = $('.as--option-content')[1]; var option = document.createElement("div"); Object.entries(pd.places).forEach(function(val, key) { let cln = option.cloneNode(true); cln.setAttribute("class", "as--option"); cln.setAttribute("data-value", val[0]); cln.innerText = val[1].title; citySel.append(cln); }); pd.FVModels.forEach(function(val, key) { let manufacturer = val['manufacturer']; let mKey = key; if(val.models) { val.models.forEach(function(val, key) { let cln = option.cloneNode(true); cln.setAttribute("class", "as--option"); cln.setAttribute("data-value", mKey); cln.setAttribute("data-model", key); cln.innerText = manufacturer + " " + val['model']; fvSel.append(cln); }); } }); $('.as--search-container input').on('keyup', function(event) { if(event.keyCode == 13) { let options = this.parentNode.parentNode.find(".as--option-content").children; for(opt in options) { if(!options[opt].classList.contains('hidden')) { options[opt].trigger('click'); break; } }; } }); $('.as--search-container input').on('input', function(event) { var input, filter, table, tr, td, i, txtValue; input = this; filter = input.value.toUpperCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""); table = this.parentNode.parentNode.find(".as--option-content"); tr = table.getElementsByClassName("as--option"); // Loop through all table rows, and hide those who don't match the search query for(i = 0; i < tr.length; i++) { txtValue = tr[i].textContent || tr[i].innerText; if(txtValue.toUpperCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").indexOf(filter) > -1) { tr[i].classList.remove("hidden"); }else{ tr[i].classList.add("hidden"); } } }); $('.btn.catalog.city').on('click', function(event) { let pos = this.getBoundingClientRect(); $('.advanced-select.city').style.left = (pos.left + pos.width) + "px"; $('.advanced-select.city').style.top = (pos.top - 4) + "px"; $('.advanced-select.city').classList.toggle("hidden"); $('.advanced-select.city input[type="search"]').focus(); }); $('.btn.catalog.fv-model').on('click', function(event) { let pos = this.getBoundingClientRect(); $('.advanced-select.fv-model').style.left = (pos.left + pos.width) + "px"; $('.advanced-select.fv-model').style.top = (pos.top - 4) + "px"; $('.advanced-select.fv-model').classList.toggle("hidden"); $('.advanced-select.fv-model input[type="search"]').focus(); }); $('.city .as--option').on('mouseover', function() { let val = this.getAttribute('data-value'); let place = pd.places[val]; let c = $('.advanced-select.city'); let elem = c.find('.as--content'); elem.find('input[name="title"]').value = place.title; elem.find('input[name="z_f"]').value = place.cord[0]; elem.find('input[name="z_g"]').value = place.cord[1]; elem.find('input[name="nvyska"]').value = place.elev; elem.find('input[name="tau_year"]').value = place.tau_skut_year; if(place.tau_skut_day) { elem.find('input[name="sundur_daily"]').checked = true; }else{ elem.find('input[name="sundur_daily"]').checked = false; } if(place.tau_skut_month) { elem.find('input[name="sundur_monthly"]').checked = true; }else{ elem.find('input[name="sundur_monthly"]').checked = false; } if(place.t_es_day) { elem.find('input[name="temp_daily"]').checked = true; }else{ elem.find('input[name="temp_daily"]').checked = false; } if(place.t_es) { elem.find('input[name="temp_monthly"]').checked = true; }else{ elem.find('input[name="temp_monthly"]').checked = false; } if(place.pressure) { elem.find('input[name="pressure_monthly"]').checked = true; }else{ elem.find('input[name="pressure_monthly"]').checked = false; } }); $('.city .as--option').on('click', function() { let val = this.getAttribute('data-value'); let place = pd.places[val]; $('input[name="mesto_nazev"]').value = place.title; $('input[name="mesto_name"]').value = val; $('input[name="mesto_zsirka"]').value = place.cord[0]; $('input[name="mesto_zdelka"]').value = place.cord[1]; $('input[name="mesto_nvyska"]').value = place.elev; for(let m = 0; m < 12; ++m) { $('input[name="mesto_tau_skut-' + (m + 1) + '"]').value = place.tau_skut_month[m]; } if(place.pressure) { for(let m = 0; m < 12; ++m) { $('input[name="pressure-' + (m + 1) + '"]').value = place.pressure[m]; } }else{ let p_0 = 101.325; let pressureRatioAprox = Math.exp(-place.elev/8434.5); let pressureValAprox = (p_0 * pressureRatioAprox * 10).toFixed(2); for(let m = 0; m < 12; ++m) { $('input[name="pressure-' + (m + 1) + '"]').value = pressureValAprox; } } if(place.t_es) { for(let m = 0; m < 12; ++m) { $('input[name="tes-' + (m + 1) + '"]').value = place.t_es[m]; } }else{ for(let m = 0; m < 12; ++m) { $('input[name="tes-' + (m + 1) + '"]').value = pd.temp.t_es[m]; } } $('.advanced-select.city').classList.add("hidden"); $('.advanced-select.city input[type="search"]').value = ""; $('.advanced-select.city input[type="search"]').trigger("input"); }); $('.fv-model .as--option').on('click', function() { let mKey = this.getAttribute('data-value'); let key = parseInt(this.getAttribute('data-model')); let gModel = pd.FVModels[mKey]; let model = gModel.models[key]; $('input[name="fv-name"]').value = gModel.manufacturer + " " + model.model; $('input[name="eta_ref"]').value = model.atSTC.EFF; $('input[name="gamma"]').value = gModel.TCoPMAX; $('input[name="t_FV"]').value = gModel.NOCT; $('input[name="A_FV_s"]').value = gModel.A; $('.advanced-select.fv-model').classList.add("hidden"); $('.advanced-select.fv-model input[type="search"]').value = ""; $('.advanced-select.fv-model input[type="search"]').trigger("input"); }); $('#calc').on('click', function() { mainCalc(); }); $('select[name="Z"]').on(['input', 'click'], function(event) { let val = this.value; for(let m = 0; m < 12; ++m) { $('input[name="Z-' + (m + 1) + '"]').value = pd.Z[val][m]; } }); $('select[name="albedo"]').on(['input', 'click'], function(event) { let val = this.value; for(let m = 0; m < 12; ++m) { $('input[name="albedo-' + (m + 1) + '"]').value = pd.albedo[val][m]; } }); // $('.city .as--option')[20].trigger('click'); $('.fv-model .as--option')[6].trigger('click'); //$('select[name="Z"]').children[1].children[2].setAttribute('selected', 'selected'); $('select[name="Z"]').children[0].children[3].setAttribute('selected', 'selected'); $('select[name="Z"]').trigger("click"); $('select[name="albedo"]').children[1].children[1].setAttribute('selected', 'selected'); $('select[name="albedo"]').trigger("click"); setTimeout(function() { $('#calc').trigger('click'); }, 100) });