﻿var current_product_id = 0;
var sum1 = 0;
var sum2 = 0;
var timer = null;
var timer_sub_add = null;

function TableFill(users)
{
	for(var i in products)
	{	
		if(products[i].users == users)
		{
			if($("#edu_lic").val() != products[i].kind)
				continue;
			
			if(products[i].license == "year")
			{
				$(".calc tr:eq(1) td:eq(2)").text(moneyFormat(products[i].basic,lang));
				for(var j=0; j<products[i].packs.length; j++)
				{
					$(".calc tr:eq("+(2*j+3)+") td:eq(2)").text("+"+moneyFormat(products[i].packs[j],lang));
					$(".calc tr:eq("+(2*j+3)+")").css("background-color", products[i].packs[j]==0 ? "#FFFACD":"#FFFFFF");
				}
				$(".calc tr:last th:eq(1)").text(moneyFormat(products[i].basic,lang));
			}
			else if(products[i].license == "unlim")
			{
				$(".calc tr:eq(1) td:eq(3)").text(moneyFormat(products[i].basic,lang));
				for(var j=0; j<products[i].packs.length; j++)
					$(".calc tr:eq("+(j*2+3)+") td:eq(3)").text("+"+moneyFormat(products[i].packs[j],lang));
			  	$(".calc tr:last th:eq(2)").text(moneyFormat(products[i].basic,lang));
			}
		}
	}
	totalSum();
}


function GetUserNumber(num)
{
	var x = 0;
	var max = 0;
	for(var i in products)
	{
		if(products[i].users > max)
			max = products[i].users;
			
		if(products[i].users == num*1)
		{
			x = num*1;
			current_product_id = products[i].id;
		}
		else if(products[i].users > num*1)
			if(!x || products[i].users < x)
			{
				x = products[i].users;
				current_product_id = products[i].id;
			}
	}
	return x ? x : max;
}


function totalSum(spn)
{
	sum1 = $(".calc tr.base td:eq(2)").text().replace(/[\s,р\.\$]/g, "")*1;
	sum2 = $(".calc tr.base td:eq(3)").text().replace(/[\s,р\.\$]/g, "")*1;

	$("ul.options li").replaceWith("");
	$("ul.options").append("<li><a href='http://"+service+"/video-conferencing-modes/videocall.html' target='_blank'>"+videocall+"</a></li>");
	var items = properties[1];
	for(var j in items)
		if(items[j][1])
			$("ul.options").append("<li><a href='http://"+service+items[j][1]+"' target='_blank'>"+items[j][0].replace(/(:\s*?)(\d+)$/, "$1<b>$2</b>")+"</a></li>");
		else
			$("ul.options").append("<li>"+items[j][0].replace(/(:\s*?)(\d+)$/, "$1<b>$2</b>")+"</li>");
	
	var selectedIndex = "";
	var rows = $(".calc tr.select");
	for(var i=0; i<rows.length; i++)
		selectedIndex += rows[i].rowIndex + ",";
	
	if(selectedIndex.match(/5,7,9/))
	{
		$(".calc tr:not(:lt(5),:gt(10)) td").unbind("click").parent().removeClass("select").addClass("lock-dis");
		$(".calc tr.allincluded").addClass("select");
	}
	
	var rows = $(".calc tr.select");
	for(var i=0; i<rows.length; i++)
	{
		sum1 += rows[i].cells[2].innerHTML.replace(/[\s,р\.\$]/g, "")*1;
		sum2 += rows[i].cells[3].innerHTML.replace(/[\s,р\.\$]/g, "")*1;
		var items = properties[rows[i].id.substr(1)];
		for(var j in items)
			if(items[j][1])
			$("ul.options").append("<li><a href='http://"+service+items[j][1]+"' target='_blank'>"+items[j][0].replace(/(:\s*?)(\d+)$/, "$1<b>$2</b>")+"</a></li>");
		else
			$("ul.options").append("<li>"+items[j][0].replace(/(:\s*?)(\d+)$/, "$1<b>$2</b>")+"</li>");
	}
	
	$(".users").text( parseInt($(".users_count div").text())>16 ? 16 : $(".users_count div").text());
	
	var selector_size = parseInt($(".users_count div").text());
	$(".selector_users").text(selector_size > 100 ? 100 : selector_size);
	
	if(spn)
	{
		$(".calc tr:last th:gt(0)").html(spinner);
		setTimeout('$(".calc tr:last th:eq(1)").text(moneyFormat(sum1,lang));', 500);
		setTimeout('$(".calc tr:last th:eq(2)").text(moneyFormat(sum2,lang));', 500);
	}
	else
	{
		$(".calc tr:last th:eq(1)").text(moneyFormat(sum1, lang));
		$(".calc tr:last th:eq(2)").text(moneyFormat(sum2, lang));
	}
	
}


function TableSet(num)
{
	if(timer)
		clearTimeout(timer);

	var n = GetUserNumber(num);
	
	for(var i in products)
		if(products[i].id == current_product_id)
			$(".calc tr.base td.name span.name").text(products[i].name);
	
	$(".currency").text(currency[1]);
	
	$(".calc tr:not(:first,:last, .desc) td:not(.tick, .name, .question)").html(spinner);
	$(".calc tr:last th:gt(0)").html(spinner);
	
	$(".users").text( parseInt($(".users_count div").text())>16 ? 16 : $(".users_count div").text());

	var selector_size = parseInt($(".users_count div").text());
	$(".selector_users").text(selector_size > 100 ? 100 : selector_size);
	
	if( parseInt($(".users_count div").text()) >= 20)
		$(".calc tr:eq(3) td").unbind("click").parent().addClass("lock-en").addClass("select");
	else if( parseInt($(".users_count div").text()) == 16)
		$(".calc tr:eq(3) td").unbind("click").parent().addClass("lock-dis");
	
	
	timer = setTimeout("TableFill("+n+");", 500);
}

function MakeOrder(license_type)
{
	$("input#sum").val($(".calc tr:last th:eq("+(license_type=="year"?1:2)+")").text().replace(/\D/g, ""));
	$("input#prd_id").val(current_product_id);
	$("input#users").val($(".users_count div").text());
	
	var packs = "1~#";
	var rows = $(".calc tr.select");
	for(var i=0; i<rows.length; i++)
		packs += rows[i].id.substr(1) + "~#";
	$("input#packs").val(packs.replace(/~#$/, ""));
	$("input#license_type").val(license_type);
	$("input#currency").val(currency[0]);
	$("#form_calc")[0].submit();
}



$(document).ready(function()
{
	$("tr.desc").hide();
	$("tr.desc div").hide();
	$(".users_count ul").hide();
	
	$(".calc td.name img").click(function(){
		if($(this).parent().parent().next().is(':visible'))
			$(this).parent().parent().next().find("div").slideToggle("slow", function(){
					$(this).parent().parent().hide();
				});
		else
			$(this).parent().parent().next().show(0, function(){
					$(this).find("div").slideToggle()
				});
	});
	
	//$(".calc tr.allincluded").click(function(){
	$(".calc tr:not(:first,:last,.base,.desc) td:not(.question)").click(function(){
		$(this).parent().toggleClass("select");
		if($(this).parent().hasClass("allincluded"))
		{
			if($(".calc tr.allincluded").hasClass("select"))
				$(".calc tr:not(.allincluded,.desc,:lt(5)) td").unbind("click").parent().removeClass("select").addClass("lock-dis");
			else
				SelectItem();
		}
		totalSum(true);
	});
	
  	/*$(".calc tr:not(:first,:last,.base) td:not(.question)").click(function(){
		$(this).parent().toggleClass("select");
		totalSum(true);
		//$(".users_count ul").hide();
	});*/
	
	$(".edu tr").click(function(){
		$(".edu td.tick").toggleClass("select");
		$("#edu_lic").val( $("#edu_lic").val()=="edu"?"common":"edu" );
		TableSet($(".users_count div").text());
	});
	
	$(".calc tr:not(:first,:last) td:not(.question) img").click(function(event){
		event.stopPropagation();
	});
	
	$(".users_count *:not(ul)").click(function(){
		$(".users_count ul").toggle();
	});
	
	$(".users_count ul li").click(function(){
		$(".users_count div").text($(this).text());
		$(".users_count ul").hide();
		$(".calc tr:eq(3) td").unbind("click").click(function(){$(this).parent().toggleClass("select");totalSum(true);}).parent().removeClass("lock-en").removeClass("lock-dis").removeClass("select");
		TableSet($(this).text());
	});
	
	
	
});

function SelectItem()
{
	$(".calc tr:not(.allincluded,:lt(5)) td:not(.question)").parent().removeClass("lock-dis");
	$(".calc tr:not(.allincluded,:lt(5),.desc) td:not(.question)").click(function(){
		$(this).parent().toggleClass("select");
		totalSum(true);
		$(".users_count ul").hide();
	});
}

function users_change(step)
{
	if(!step || ($("input#users_cnt").val()*1 < 13 && step<0) || ($("input#users_cnt").val()*1 > 149 && step>0))
		return;
	$("input#users_cnt").val($("input#users_cnt").val() <12 ? 12 : $("input#users_cnt").val()*1 + step);
	timer_sub_add = setTimeout("users_change("+step+")", 100);
}

function Print()
{
	$("input#prd_id").val(current_product_id);
	$("input#users").val($(".users_count div").text());
	var packs = "1~#";
	var rows = $(".calc tr.select");
	for(var i=0; i<rows.length; i++)
		packs += rows[i].id.substr(1) + "~#";
	$("input#packs").val(packs.replace(/~#$/, ""));
	$("input#currency").val(currency[0]);
	var action_old = $("#form_calc")[0].action;
	$("#form_calc")[0].action = server_url + "/print";
	$("#form_calc")[0].target = "_blank";
	$("#form_calc")[0].submit();
	$("#form_calc")[0].action = action_old;
	$("#form_calc")[0].target = "_self";
}

function moneyFormat(str, lang)
{
	var spacer1 = lang!="en" ? " " : ",";
	var spacer2 = lang!="en" ? "\\s" : ",";
	var txt = new String(str);
	var match;
	var i = 0;
	while(match = txt.match("^([^"+spacer2+"]+?)([\\d]{3})($|(?="+spacer2+").*)"))
	{
		txt = match[1]+spacer1+match[2]+match[3];
		i++;
		if(i>20)
			break;
	}
	return lang!="en" ? txt+"р." : "$"+txt;
}
