programCurrency = new Array(); $(document).ready(function(){ $("#bonus-info").click(function(){ $(".bns .about").css('z-index', 1001); $(".info").hide(); $(this).siblings('.info').toggle(); return false; }); $("a").attr('target', '_blank'); $(".header a").attr('target', '_self'); $("#calc-price").attr('disabled', false); $("#calc-price").click(function(){ if ($("#calc-form").valid()) { calcTotalPrice(); } }) function getPrice(program_id, num_program) { var price = 0; var null_price = 0; if (isArray(programArr[program_id])) { for (var i = 0; i < programArr[program_id].length; i++) { if ((programArr[program_id][i]['bottom_limit'] <= num_program) && (programArr[program_id][i]['top_limit'] >= num_program)) { price = programArr[program_id][i]['price']; } else if (programArr[program_id][i]['bottom_limit'] == programArr[program_id][i]['top_limit'] && programArr[program_id][i]['top_limit'] == 0) { null_price = programArr[program_id][i]['price']; } } } if (price == 0) { price = null_price; } return price; }; $(".close").click(function() { $(".bns .about").css('z-index', 999); $(this).parent().parent().toggle(); return false; }); $("#close-spec").click(function() { $(".opacity-bg").hide(); $("#email").rules("remove"); return false; }); function officeCalc(){ $("#cf-office").val($("#cf-stations").val()); $("#cf-office").change(); $("#cf-terminal").val($("#cf-stations").val()); $("#cf-client").val($("#cf-stations").val()); } $("#cf-office").change(function(){ // if (parseInt($("#cf-office").val()) > parseInt($("#cf-post").val())) { $($("#cf-post").val($("#cf-office").val())) // } }); officeCalc(); $("#cf-server").blur(officeCalc); $("#cf-client").blur(refreshCourses); $("#cf-stations").blur(officeCalc); function showDesc(category) { $("#showdesc-" + category).click(function(){ //$(".info :not(#description" + $("#select-" + category).val() + ")").hide(); $('#select-client__customSelect-select').show(); $(".info").hide(); $("#description" + $("#select-" + category).val()).toggle(); return false; }); } showDesc("server"); showDesc("stations"); showDesc("office"); //showDesc("firewall"); showDesc("terminal"); showDesc("client"); showDesc("av"); showDesc("sec-post"); showDesc("post"); showDesc("sql"); showDesc("search"); $("#select-search").change(function(){ if (parseInt($(this).val())) { $("#cf-search").rules("add", { min: 1, max: 300000 }); } else { $("#cf-search").rules("remove", "min max"); } }); $("#select-post").change(function(){ if (parseInt($(this).val())) { $("#cf-post").rules("add", { min: parseInt($("#cf-stations").val()) }); } else { $("#cf-post").rules("remove", "min"); } }); $(".expand").click(function(){ $(this).toggleClass("plus").parent().parent().find(".as-inner").toggle(); refreshCourses(); return false; }); $("div h3 span.toggle").click(function(){ $(this).parent().find("a").toggleClass("plus").parent().parent().find(".as-inner").toggle(); refreshCourses(); return false; }); function isArray(test) { return ( test instanceof Array ); } function getAdditionalPrice(program_id) { return parseFloat(window.additionalPrices[program_id]); } function getCurrency(program) { if (window.programCurrency[program]) { return window.programCurrency[program]; } else { return window.cbrf_currency; } } function calcProgramPrice(category) { if (($("#select-"+ category).parents(".row").css('display') != 'none') && ($("#select-"+ category).val() != 0)) { return /*getCurrency(parseInt($("#select-"+ category).val())) * */(parseInt($("#cf-" + category).val()) * getPrice(parseInt($("#select-"+ category).val()), parseInt($("#cf-" + category).val())) + getAdditionalPrice(parseInt($("#select-" + category).val()))); } else { return 0; } } function calcAdditionalProgramPrice(category) { if (parseInt($("#select-" + category).val())) { return /*getCurrency(parseInt($("#select-"+ category).val())) **/ (parseInt($("#cf-" + category).val()) * getPrice(parseInt($("#select-"+ category).val()), parseInt($("#cf-" + category).val())) + getAdditionalPrice(parseInt($("#select-" + category).val()))); } else { return 0; } } function calcSecPostPrice() { if (!parseInt($("#select-sec-post").val())) return 0; var count = 0; if (parseInt($("#select-post").val())) { count = parseInt($("#cf-post").val()); } else { count = parseInt($("#cf-stations").val()); } $("#cf-sec-post").val(count); return /*getCurrency(parseInt($("#select-sec-post").val())) * */count * getPrice(parseInt($("#select-sec-post").val()), count); } function calcSearchProgramPrice(category) { if (parseInt($("#select-" + category).val())) { return /*getCurrency(parseInt($("#select-"+ category).val())) * */(getPrice(parseInt($("#select-"+ category).val()), parseInt($("#cf-" + category).val())) + getAdditionalPrice(parseInt($("#select-" + category).val()))); } else { return 0; } } function calcCoursesPrice() { var price = 0; var count = parseInt($('#qnt').val()); $('.study li:visible input[type="checkbox"]:checked').each(function(){ var id = $(this).parent().attr('id'); id = parseInt(id.substring(2)); price += coursesPrices[id]; }); return count * price; } function calcCheckState() { var price = 0; if ($('#cf-check-state').attr('checked')) { price = 9000; } return price; } function calcTotalPrice() { var total_price = 0; total_price += calcProgramPrice('server'); total_price += calcProgramPrice('stations'); total_price += calcProgramPrice('office'); total_price += calcProgramPrice('terminal'); total_price += calcProgramPrice('client'); total_price += calcCheckState(); sql_price = calcAdditionalProgramPrice('sql') total_price += isNaN(sql_price) ? 0 : sql_price; post_price = calcAdditionalProgramPrice('post'); if ($("#select-post :selected").text() == $("#select-office :selected").text()) { if ($("#cf-post").val()> $("#cf-office").val()) { total_price -= calcProgramPrice('office'); } else { post_price = 0; } } total_price += isNaN(post_price) ? 0 : post_price; //firewall_price = calcAdditionalProgramPrice('firewall'); //total_price += isNaN(firewall_price) ? 0 : firewall_price; av_price = calcAdditionalProgramPrice('av'); total_price += isNaN(av_price) ? 0 : av_price; search_price = calcSearchProgramPrice('search') total_price += isNaN(search_price) ? 0 : search_price; sec_post_price = calcSecPostPrice(); total_price += isNaN(sec_post_price) ? 0 : sec_post_price; courses_price = calcCoursesPrice(); total_price += isNaN(courses_price) ? 0 : courses_price; var price = new Number(total_price); $("#total_price").text(price.toFixed(2)); return false; } function testKey(e) { // Make sure to use event.charCode if available var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode); // Ignore special keys if (e.ctrlKey || e.altKey || key < 32) return true; key = String.fromCharCode(key); return /[\d]/.test(key); } $("#download").click(function(){ refreshCourses(); if ($("#calc-form").valid()) { calcTotalPrice(); $(".spec").show(); $(".opacity-bg").show(); $(".study li:hidden input[type='checkbox']").attr('checked', false); $(".row:hidden input[type='text']").val(0); $("#email").rules("add", { required: true, email: true, messages: { required: 'Это поле обязательно для заполнения', email: 'Введите верный e-mail' } }); } return false; }) $("input.text").keypress(testKey); $("input").blur(function(){ $("#cf-office").rules("remove", "max"); $("#cf-post").rules("remove", "min"); $("#cf-office").rules("add", { max: parseInt($("#cf-server").val()) + parseInt($("#cf-stations").val()) }); if (parseInt($("#select-post").val())) { $("#cf-post").rules("add", { min: parseInt($("#cf-stations").val()) }); } }); $('input[type="text"]').blur(function(){ refreshCourses(); }); function searchString(fullString, subString) { if (fullString.indexOf(subString) == -1) { return false; } else { return true; } } function showCourses(program_id) { program_id = parseInt(program_id); if (program_id) { if (isArray(coursesArr[program_id])) { for (var i = 0; i < coursesArr[program_id].length; i++) { $("#st" + coursesArr[program_id][i]).show(); $("#courses").show(); } } } } function refreshCourses() { // hide all courses $(".study li").hide(); $("#courses").hide(); $("select").each(function(){ // show courses for current program showCourses($(this).val()); }); $(".google").hide(); if (searchString($("#select-server :selected").text().toLowerCase(), 'windows')) { $("#row-client_terminal").show(); $("#row-sql").show(); $("#row-sec-post").show(); //$("#row-sec").find(".expand").removeClass("plus").parent().parent().find(".as-inner").show(); if ($("#select-client").val() != 0) { $("#cf-client").rules("add", { max: 250 }); } else { $("#cf-client").rules("remove", "max") } if ($("#select-terminal").val() != 0) { $("#cf-terminal").rules("add", { max: $("#cf-client").val() }); } else { $("#cf-terminal").rules("remove", "max"); } if ($("#row-sec .as-inner").css('display') == 'block') { /*$("#select-firewall").rules("add", { min: 1 });*/ $("#select-av").rules("add", { min: 1 }); /* $("#cf-firewall").rules("add", { required: true, min: 1 });*/ $("#cf-av").rules("add", { required: true, min: 1 }); } else { //$("#select-firewall").rules("remove", 'min'); $("#select-av").rules("remove", 'min'); //$("#cf-firewall").rules("remove", 'min required'); } if ($("#select-sql").val() != 0) { $("#cf-sql").rules("add", { max: $("#cf-client").val() }) } } else { $("#cf-client").rules("remove", 'max'); $("#cf-terminal").rules("remove", 'max'); $("#row-client_terminal").hide(); $("#row-sql").hide(); // fix opera bug $("#row-post").hide().show(); $("#select-sql").val(0); //$("#select-firewall").rules("remove", 'min'); $("#select-av").rules("remove", 'min'); //$("#cf-firewall").rules("remove", 'min required'); $("#cf-sql").rules("remove", 'max'); $("#cf-av").rules("remove", 'min required'); $(".add-soft.sec .s-inner .err").hide(); } $("select :selected").each(function(){ if (searchString($(this).text().toLowerCase(), 'google')) { $(".google").show(); } }); } $("select").each(function(){ if ($(this).val() != 0) { $(this).siblings('div.about').show(); } else { $(this).siblings('div.about').hide(); } }); $("select").change(function(){ if ($(this).val() != 0) { $(this).siblings('div.about').show(); } else { $(this).siblings('div.about').hide(); } refreshCourses(); }); $("#calc-form").validate({ /*submitHandler: function(form) { calcTotalPrice(); },*/ scrollY : 110, focusInvalid: true, focusCleanup: false, rules: { "cf-server": { required: true, min: 1, max: 5 }, "cf-stations": { required: true, min: 5, max: 250 }, "cf-terminal": { required: true }, "cf-office": { required: true, max: parseInt($("#cf-server").val()) + parseInt($("#cf-stations").val()) }, "cf-post": { required: true, min: parseInt($("#cf-stations").val()) }, "cf-search": { required: true, min: 1, max: 300000 }/*, "select-firewall": { required: true, min: 1 }*/ }, messages: { "cf-server": { required: "Это поле обязательно для заполнения", min: "Вы не можете ввести меньше 1 сервера", max: "При количестве серверов большем пяти, обратитесь,
пожалуйста, за индивидуальным расчетом" }, "cf-stations": { required: "Это поле обязательно для заполнения", min: "Вы не можете ввести меньше 5 рабочих станций", max: "При количестве серверов большем 250, обратитесь,
пожалуйста, за индивидуальным расчетом" }, "cf-terminal": { required: "Это поле обязательно для заполнения" }, "cf-office": { required: "Это поле обязательно для заполнения", max: "Число офисных продуктов не может превышать
суммарное число серверов и рабочих станций" }, "cf-post": { required: "Это поле обязательно для заполнения", min: "Число почтовых ящиков не может быть
меньше числа рабочих станций" }, "cf-search": { required: "Это поле обязательно для заполнения", min: "Вы не можете ввести меньше 1 документа", max: 'При количестве документов большем 300000,
обратитесь, пожалуйста, за индивидуальным расчетом' }, /*"select-firewall": { required: "Это поле обязательно для заполнения", min: "Выберите, какое средство обеспечения безопасности планируете использовать" },*/ "select-av": { required: "Это поле обязательно для заполнения", min: "Выберите, какое средство обеспечения безопасности планируете использовать" }, /* "cf-firewall": { required: "Это поле обязательно для заполнения", min: "Вы не можете выбрать меньше 1" },*/ "cf-av": { required: "Это поле обязательно для заполнения", min: "Вы не можете выбрать меньше 1" }, "cf-sql": { max: "Количество лицензий на доступ к MS SQL серверу
не может быть больше чем количество клиентских лицензий" }, "cf-terminal": { required: "Это поле обязательно для заполнения", max: "Количество терминальных клиентских лицензий
не может быть больше чем количество клиентских лицензий." }, "cf-client": { required: "Это поле обязательно для заполнения", max: 'При количестве лицензий большем 250,
обратитесь, пожалуйста, за индивидуальным расчетом' } }, errorPlacement: function(error, element) { var er = element.attr("name"); $(element).parent() .find("div.err") .show() .find("div") .html(error.html()); /*$.scrollTo('-=50px');*/ }, unhighlight: function(element, errorClass) { $(element).parent() .find("div.err") .hide(); } }); $("#row-add-soft .as-inner").hide(); refreshCourses(); });