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();
});