(function($){ $.fn.setOnlyNumber = function( withNegative ){ withNegative = withNegative || false; var keysArray = [48,49,50,51, 52, 53, 54, 55, 56, 57, // base numbers 96,97,98,99,100,101,102,103,104,105, // NumPad numbers 37,39, // <- and -> 8,9,13,35,36,45,46, // Backspace, Tab, Enter, End, Home, Insert, Delete 110, 188, 190]; // NumPad '.' , ',' , '.' if( withNegative ){ keysArray.push(109); // add minus key, if withNegative is true } return this.each(function(){ $(this).keydown(function(e){ if( $.inArray( e.keyCode, keysArray ) >= 0 || ( $.inArray( e.keyCode, [ 67,86,88,90 ] ) >= 0 && e.ctrlKey ) ) return true else if( e.keyCode == 38 || e.keyCode == 40 ) { var shift = e.ctrlKey ? 10 : 1; var value = parseInt($(this).val()) || 0; if( !withNegative && value <= 0 ) value = -value; if( e.keyCode == 40 ){ if( !withNegative && value == 0 ){ shift = 0; } else { shift = -shift; } } $(this).val( value + shift ); } return false; }); }); } })(jQuery) $(function(){ $('#calc_form input.only_num').setOnlyNumber(); }); function switchMethod(top_element) { top_element.find(".only_num").css( 'border-color', '' ); } var outer_ger_cost = 88.2; // Цена килограмма внешнего герметика var inner_ger_cost = 77; // Цена килограмма внутреннего герметика var density1 = 1450, // Удельный расход внешнего герметика, кг ( плотность ) density2 = 1400, // Удельный расход внутреннего герметика, кг ( плотность ) thickness = 3.5, // Толщина слоя герметика, мм k3 = 6, // Какой-то поправочный коэффициент в документах не обозначен k4 = 0.1, // допуск под нахлест для диффузионной ленты k5 = 0.06; // допуск под нахлест для пароизоляционной ленты на каждый угол function calc( e ){ var dialog_no = (e.target.id == 'btn_ok1' ? '1' : '2'); var err = false, err1 = false; var height = toFloat( $("#height"+dialog_no).val() ); var width = toFloat( $("#width"+dialog_no).val() ); if (dialog_no == '1') { var frontalnii_clearance = toFloat( $("#frontalnii").val() ); var torcevoi_clearance = toFloat( $("#torcevoi").val() ); var cost01 = toFloat( $("#cost01").val() ); var cost02 = toFloat( $("#cost02").val() ); var cost03 = toFloat( $("#cost03").val() ); } else { var clearance = toFloat( $("#clearance").val() ); var cost1 = toFloat( $("#cost1").val() ); var cost2 = toFloat( $("#cost2").val() ); var cost3 = toFloat( $("#cost3").val() ); } if( height == false ){ $("#height"+dialog_no).css( 'borderColor', 'red' ); err = true; } else { $("#height"+dialog_no).css( 'borderColor', '' ); } if( width == false ){ $("#width"+dialog_no).css( 'borderColor', 'red' ); err = true; } else { $("#width"+dialog_no).css( 'borderColor', '' ); } if (dialog_no == '1') { if( frontalnii_clearance == false ){ $("#frontalnii").css( 'borderColor', 'red' ); err1 = true; } else { $("#frontalnii").css( 'borderColor', '' ); } if( torcevoi_clearance == false ){ $("#torcevoi").css( 'borderColor', 'red' ); err1 = true; } else { $("#torcevoi").css( 'borderColor', '' ); } } else { if( clearance == false ){ $("#clearance").css( 'borderColor', 'red' ); err = true; } else { $("#clearance").css( 'borderColor', '' ); } if( cost01 == false ){ $("#cost01").css( 'borderColor', 'red' ); err1 = true; } else { $("#cost01").css( 'borderColor', '' ); } if( cost2 == false ){ $("#cost02").css( 'borderColor', 'red' ); err1 = true; } else { $("#cost02").css( 'borderColor', '' ); } if( cost3 == false ){ $("#cost03").css( 'borderColor', 'red' ); err1 = true; } else { $("#cost03").css( 'borderColor', '' ); } } if( !err ){ if (dialog_no == '1') { var outer_ger = ( density1*thickness/1000 ) * ( frontalnii_clearance/1000 + k3/1000 ) * ( 2*height/1000 + 2*width/1000 ); var outer_ger_full_cost = outer_ger_cost * outer_ger; var inner_ger = ( density2*thickness/1000 ) * ( torcevoi_clearance/1000 + k3/1000 ) * ( 2*height/1000 + 2*width/1000 ); var inner_ger_full_cost = inner_ger_cost * inner_ger; var ger_full_flow = outer_ger + inner_ger; var ger_full_cost = outer_ger_full_cost + inner_ger_full_cost; $( "#outer_flow"+dialog_no ).html( outer_ger.toFixed( 3 ) + " кг." ); $( "#outer_cost"+dialog_no ).html( outer_ger_full_cost.toFixed( 2 ) + " руб." ); $( "#inner_flow"+dialog_no ).html( inner_ger.toFixed( 3 ) + " кг." ); $( "#inner_cost"+dialog_no ).html( inner_ger_full_cost.toFixed( 2 ) + " руб." ); $( "#full_cost1_"+dialog_no ).html( "" + ger_full_cost.toFixed( 2 ) + " руб." ); if( frontalnii_clearance > 15 || torcevoi_clearance > 15 ){ $( "#out-range" ).show(); } else { $( "#out-range" ).hide(); } } else { var outer_ger = ( density1*thickness/1000 ) * ( clearance/1000 + k3/1000 ) * ( 2*height/1000 + 2*width/1000 ); var outer_ger_full_cost = outer_ger_cost * outer_ger; var inner_ger = ( density2*thickness/1000 ) * ( clearance/1000 + k3/1000 ) * ( 2*height/1000 + 2*width/1000 ); var inner_ger_full_cost = inner_ger_cost * inner_ger; var ger_full_flow = outer_ger + inner_ger; var ger_full_cost = outer_ger_full_cost + inner_ger_full_cost; $( "#outer_flow"+dialog_no ).html( outer_ger.toFixed( 3 ) + " кг." ); $( "#outer_cost"+dialog_no ).html( outer_ger_full_cost.toFixed( 2 ) + " руб." ); $( "#inner_flow"+dialog_no ).html( inner_ger.toFixed( 3 ) + " кг." ); $( "#inner_cost"+dialog_no ).html( inner_ger_full_cost.toFixed( 2 ) + " руб." ); $( "#full_cost1_"+dialog_no ).html( "" + ger_full_cost.toFixed( 2 ) + " руб." ); if( clearance > 15 ){ $( "#out-range" ).show(); } else { $( "#out-range" ).hide(); } } var flow01 = 2*height/1000 + width/1000; var flow02 = width/1000 + k4; var flow03 = ( 2*height + 2*width )/1000 + 4*k5; $( "#flow01" ).html( flow01.toFixed( 3 ) ); $( "#flow02" ).html( flow02.toFixed( 3 ) ); $( "#flow03" ).html( flow03.toFixed( 3 ) ); if( !err1 ) { var tape_full_cost01 = flow01*cost01 + flow02*cost02 + flow03*cost03; $( "#full_cost2_"+dialog_no ).html( "" + tape_full_cost01.toFixed( 2 ) + " руб." ); } else { $( '#calc_form td.warn' ).show(); } if (dialog_no == '2') { var flow1 = 2*height/1000 + width/1000; var flow2 = width/1000 + k4; var flow3 = ( 2*height + 2*width )/1000 + 4*k5; $( "#flow1" ).html( flow1.toFixed( 3 ) ); $( "#flow2" ).html( flow2.toFixed( 3 ) ); $( "#flow3" ).html( flow3.toFixed( 3 ) ); if( !err1 ) { var tape_full_cost = flow1*cost1 + flow2*cost2 + flow3*cost3; $( "#full_cost2_"+dialog_no ).html( "" + tape_full_cost.toFixed( 2 ) + " руб." ); } } if( !err1 ){ $( '#calc_form td.warn' ).hide(); } else { $( '#calc_form td.warn' ).show(); } } e.preventDefault(); e.stopPropagation(); return false; } function toFloat( val ){ var val = parseFloat( val.replace( /,/g, '.' ) ); val = !isNaN(val) ? val : false; return val; } $(function(){ $('#btn_ok1').bind("click", calc ); $('#btn_ok2').bind("click", calc ); });