(function(undefined) { /* local var and method */ var addDecimalSeparator = function (nStr, comma, separator) { nStr += ''; if (nStr.indexOf(comma)==-1) return nStr; x = nStr.split(comma); x1 = x[0]; x2 = x[1]; return x1 + separator + x2; } var addThousandSeparator = function (nStr, comma, separator) { nStr += ''; x = nStr.split(comma); x1 = x[0]; x2 = x.length > 1 ? comma + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + separator + '$2'); } return x1 + x2; } var removeThousandSeparator = function (nStr, separator) { nStr += ''; x = nStr; if(separator == '.' ) { rx = /\./g } else { rx = /\,/g } x = x.replace(rx, ''); return x; } var filterNumber = function (number) { var cont=number; var len = cont.length; var count=0; var newnumber = ''; var i; // ciclo su tutti i caratteri e verifico for( count=0; count '9') { if(cont.charAt( count ) == '.' || cont.charAt( count ) == ',' || cont.charAt( count ) == '-') newnumber = newnumber + cont.charAt( count ); } else newnumber = newnumber + cont.charAt( count ); } // tolgo punti e virgole in testa count=0; number = newnumber; if(newnumber.length>0) { number = ''; while(newnumber.charAt(count)=='.' || newnumber.charAt(count)==',') count++; for(i=count; i= 4) isNANval = filterReal.arguments[3]; else isNANval = 0; if (direction=='IN') { // numero proveniente dal DB, da trasformare nel formato del FE // devo sostituire il separatore decimale usato sul db con quello usato dal FE // e aggiungere il separatore delle migliaia usato dal FE // inoltre eseguire il round delle cifre decimali if(isNaN(number)) number = isNANval; //if(!number) number = isNANval; number = parseFloat(number) if (filterReal.arguments.length >= 3) precision = filterReal.arguments[2]; else precision = 5; if (precision < 0) { var n = number.toString(); var pos = n.indexOf("."); if (pos != -1) { var dec = n.substr(pos+1, 5) if (dec == 0) precision = 0; } else precision = 0; } precision = Math.abs(precision); number1 = number.toFixed(precision) number2 = addDecimalSeparator(number1, '.', ',') number3 = addThousandSeparator(number2, ',', '.'); return number3 } if (direction=='OUT') { // numero proveniente dal FE, da trasformare nel formato del DB number = filterNumber(number); val = number.replace(/\./g , ''); // tolgo i punti val = number.replace(/\,/g , ''); // tolgo le virgole if(val=='') number = '' + isNANval; number = removeThousandSeparator(number, '.'); number1 = addDecimalSeparator(number, ',', '.'); number2 = parseFloat(number1); if (filterReal.arguments.length >= 3) precision = filterReal.arguments[2]; else precision = 5; precision = Math.abs(precision); number3 = number2.toFixed(precision); return number3 } } /* object prototype */ /* public method and attribute */ /** * funzioni la visualizzazione delle news */ $$.dispersione = {}; $$.dispersione.calcola = function() { $(".modal_disp__result").html('').css('display', 'none'); $("#modal_disp__compute_err").html('').css('display', 'none'); $("#modal_disp__install_err").html('').css('display', 'none'); $(".modal_disp__real").removeClass('modal_disp__errfield'); // deve essere selezionato il posizionamento if(!$("input[name='superficie_esposta']").is(':checked')) { var msg = 'Selezionate la tipologia di Installazione !'; $("#modal_disp__install_err").html(msg).css('display', 'block'); return; } var kf = 3.2; // coefficente scambio aria var superficie = 0; var tempA = $("#modal_disp__tempamb").val().trim(); var tempI = $("#modal_disp__tempint").val().trim(); var potenzaInstallata = $("#modal_disp__caricoint").val().trim(); if(tempA == '' || tempI == '' || potenzaInstallata == '') { var msg = 'Impostate i dati richiesti !'; $("#modal_disp__compute_err").html(msg).css('display', 'block'); $(".modal_disp__real").addClass('modal_disp__errfield'); return; } tempA = filterReal('OUT', tempA, 2, '0.00'); tempI = filterReal('OUT', tempI, 2, '0.00'); potenzaInstallata = filterReal('OUT', potenzaInstallata, 2, '0.00'); tempA = parseFloat(tempA); tempI = parseFloat(tempI); var deltaT = tempA - tempI; // esterna - interna var superficie = $("input[name='superficie_esposta']:checked").val(); deltaT = Math.abs(deltaT); var potDissipata = superficie * 5.5 * deltaT; potenzaInstallata = parseFloat(potenzaInstallata); var potenzaresidua = potDissipata - potenzaInstallata; var potDissipataFE = filterReal('IN', potDissipata, 2, '0.00'); var potenzaresiduaFE = filterReal('IN', potenzaresidua, 2, '0.00'); if(potenzaresidua < 0) { htmlStr = 'Massima potenza termica dissipabile: '+potDissipataFE+' W'+'
'; htmlStr += 'Potenza termica residua: '+potenzaresiduaFE+' W (RISCALDAMENTO NECESSARIO)'+'

'; htmlStr += ''; $(".modal_disp__result").html(htmlStr).css('display', 'block'); } else { var portataAria = (potenzaresidua/deltaT)*kf; var portataAriaFE = filterReal('IN', portataAria, 2, '0.00'); htmlStr = 'Massima potenza termica dissipabile: '+potDissipataFE+' W'+'
'; htmlStr += 'Potenza termica residua: '+potenzaresiduaFE+' W (RAFFREDDAMENTO NECESSARIO)'+'
'; htmlStr += 'Flusso d\'aria ausiliario necessario: '+portataAriaFE+' m3/h'+'

'; htmlStr += ''; $(".modal_disp__result").html(htmlStr).css('display', 'block'); } } var init = function() { $('#dissipazioneModal').on('show.bs.modal', function (e) { // do something... var btn$ = $(e.relatedTarget); $("#disp_prodotto").html(btn$.data('articolo')); $("#disp_prodotto_larghezza").html(btn$.data('larghezza')); $("#disp_prodotto_altezza").html(btn$.data('altezza')); $("#disp_prodotto_profondita").html(btn$.data('profondita')); $("#disp_prodotto_area").html(btn$.data('area_localized')); $("#superficie_esposta_A").val(''); $("#modal_disp__tempamb").val(''); $("#modal_disp__tempint").val(''); $("#modal_disp__caricoint").val(''); $("#superficie_esposta_A").val(btn$.data('superficie_esposta_a')); $("#superficie_esposta_B").val(btn$.data('superficie_esposta_b')); $("#superficie_esposta_C").val(btn$.data('superficie_esposta_c')); $("#superficie_esposta_D").val(btn$.data('superficie_esposta_d')); $("#superficie_esposta_E").val(btn$.data('superficie_esposta_e')); $("#superficie_esposta_F").val(btn$.data('superficie_esposta_f')); $("#superficie_esposta_G").val(btn$.data('superficie_esposta_g')); $("#superficie_esposta_H").val(btn$.data('superficie_esposta_h')); }); $(".modal_disp__compute").click(function() { $$.dispersione.calcola(); }); // change sui dati del progetto $("#modal_disp__tempamb").change(function() { $(".modal_disp__result").html('').css('display', 'none'); $("#modal_disp__compute_err").html('').css('display', 'none'); $("#modal_disp__install_err").html('').css('display', 'none'); $(".modal_disp__real").removeClass('modal_disp__errfield'); var val = $(this).val().trim(); val = filterReal('OUT', val, 5, ''); if(isNaN(val)) { $(this).val(''); return; } val = filterReal('IN', val, 2, '0,00'); $(this).val(val); }); $("#modal_disp__tempint").change(function() { $(".modal_disp__result").html('').css('display', 'none'); $("#modal_disp__compute_err").html('').css('display', 'none'); $("#modal_disp__install_err").html('').css('display', 'none'); $(".modal_disp__real").removeClass('modal_disp__errfield'); var val = $(this).val().trim(); val = filterReal('OUT', val, 2, ''); if(isNaN(val)) { $(this).val(''); return; } val = filterReal('IN', val, 2, '0,00'); $(this).val(val); }); $("#modal_disp__caricoint").change(function() { $(".modal_disp__result").html('').css('display', 'none'); $("#modal_disp__compute_err").html('').css('display', 'none'); $("#modal_disp__install_err").html('').css('display', 'none'); $(".modal_disp__real").removeClass('modal_disp__errfield'); var val = $(this).val().trim(); val = filterReal('OUT', val, 2, ''); if(isNaN(val)) { $(this).val(''); return; } val = filterReal('IN', val, 2, '0,00'); $(this).val(val); }); // click sui radio input per cancellare l'output $(".superficie_esposta").click(function() { $(".modal_disp__result").html('').css('display', 'none'); $("#modal_disp__compute_err").html('').css('display', 'none'); $("#modal_disp__install_err").html('').css('display', 'none'); $(".modal_disp__real").removeClass('modal_disp__errfield'); }); } init(); }) ();