function roundto(fl,n){
	x=Math.pow(10,n);
	return Math.round(fl*x)/x;
}

var PowerModels = new Array();
var PowerPowers = new Array();
PowerPowers[3] = 0.4;
PowerPowers[2] = 0.6;
PowerPowers[1] = 1.0;
PowerPowers[0] = 1.3;
PowerModels[3] = "ПИОН 04 (0.4кВт)";
PowerModels[2] = "ПИОН 06 (0.6кВт)";
PowerModels[1] = "ПИОН 10 (1.0кВт)";
PowerModels[0] = "ПИОН 13 (1.3кВт)";
var maxnum = 3;
var Chosen = new Array();

var sBut1 = 'Добавить рекомендованное в корзину';
function choose_model(power, hasthermo){
	var nHeaters = 0;
	for(var i=0;i<=maxnum;i++){
		Chosen[i]=0;
	}
	var ret = "<br><span class=mark_dotted>Рекомендуемые обогреватели:</span><br>";
	if(power<=0.38){
		ret = ret+"<br>"+PowerModels[3]+" - 1 шт.";
		Chosen[3]=1;
	}else if(power<=0.58){
		ret = ret+"<br>"+PowerModels[2]+" - 1 шт.";
		Chosen[2]=1;
	}else if(power<=0.96){
		ret = ret+"<br>"+PowerModels[1]+" - 1 шт.";
		Chosen[1]=1;
	}else if(power<=1.25){
		ret = ret+"<br>"+PowerModels[0]+" - 1 шт.";
		Chosen[0]=1;
	}else if(power<=1.5){
		ret = ret+"<br>"+PowerModels[1]+" - 1 шт.";
		ret = ret+"<br>"+PowerModels[2]+" - 1 шт.";
		Chosen[1]=1;
		Chosen[2]=1;
	}else if(power<=1.9){
		ret = ret+"<br>"+PowerModels[1]+" - 2 шт.";
		 Chosen[1]=2;
	}else if(power<=2.5){
		ret = ret+"<br>"+PowerModels[0]+" - 2 шт.";
		Chosen[0]=2;
	}else if(power<=2.9){
		ret = ret+"<br>"+PowerModels[1]+" - 3 шт.";
		Chosen[1]=3;
	}else if(power<=3.2){
		ret = ret+"<br>"+PowerModels[1]+" - 2 шт.";
		ret = ret+"<br>"+PowerModels[0]+" - 1 шт.";
		Chosen[1]=2;
		Chosen[0]=1;
	}else if(power<=3.5){
		ret = ret+"<br>"+PowerModels[1]+" - 1 шт.";
		ret = ret+"<br>"+PowerModels[0]+" - 2 шт.";
		Chosen[1]=1;
		Chosen[0]=2;
	}else{
		var heated = 0;
		var x_13 = Math.ceil(power/PowerPowers[0]);
		var overheat = new Array();
		var x_10 = new Array();
		var overheat_min = power;
		var overheat_jmin = 0;
		for(var j=x_13;j>=0;j--){
			x_10[j] = (j!=x_13)?Math.ceil((power-j*PowerPowers[0])/PowerPowers[1]):0;
			overheat[j] = x_10[j]*PowerPowers[1]+j*PowerPowers[0]-power;
			if(overheat[j]<overheat_min){
				overheat_min = overheat[j];
				overheat_jmin = j;
			}
		}
		Chosen[0] = overheat_jmin;
		Chosen[1] = x_10[overheat_jmin];
		if(Chosen[0]) ret = ret+"<br>"+PowerModels[0]+" - "+Chosen[0]+" шт.";
		if(Chosen[1]) ret = ret+"<br>"+PowerModels[1]+" - "+Chosen[1]+" шт.";
		/*for(var i=0;i<=maxnum;i++){
			if(i==maxnum)
				var nHeaters = Math.ceil((power-heated)/PowerPowers[i]);
			else
				var nHeaters = Math.floor((power-heated)/PowerPowers[i]);
			if(nHeaters){
				Chosen[i] = nHeaters;
				ret = ret+"<br>"+PowerModels[i]+" - "+nHeaters+" шт.";
				heated+=PowerModels[i]*nHeaters;
			}
		}*/
	}
	for(x in Chosen){
		if(document.getElementById("dst_model["+x+"]"))
			document.getElementById("dst_model["+x+"]").value = Chosen[x]?Chosen[x]:0;
	}
	if(hasthermo){
		var smodels = "";
		for(var x in Chosen){
			smodels = smodels+"<input type=hidden name='model["+x+"]' value='"+Chosen[x]+"'>";
		}
		ret=ret+"<form action='' method=post onsubmit='return sendcalcform();'>"+choose_reg(power)+"<input type=submit name=tocalc value='"+sBut1+"' id=but4 class=n_buttons><input type=hidden name=mode value=mini><input type=hidden name=script value=addcalc>"+smodels+"</form><div id=dst_addcalc></div><a href='http://vamteplo.ru/article.334.html' onclick='clear_calc();return false;' class=nb_choose><B>Обсчитать следующую комнату</B></a> <br><br>";
	}
	return ret;
}
function sendcalcform(){
	calc_addcalc();
	return false;
}

function choose_reg(power){
	var ret="<br>";
	ret = ret+"<span class=mark_dotted>Для поддержания постоянной температуры рекомендуем:</span><br><input type=radio name=cc_thermo id=cc_m value=m checked=yes>Механический терморегулятор Eberle (эконом. вариант)<br><input type=radio name=cc_thermo id=cc_d value=d>Цифровой терморегулятор Frontier (точность и гибкость)<br><input type=radio name=cc_thermo  id=cc_n value=n>Без терморегулятора<br>";
	if(power>3.5) ret=ret+"Терморегулятор необходим с магнитным пускателем. <br>Обратитесь к менеджерам.";
	return ret;
}
function clickMoscow(){
	if(document.getElementById("from_msk").checked){
		document.getElementById("tr_index").style.visibility="hidden";
		document.getElementById("dst_index").disabled=true;
	}
	else{
		document.getElementById("tr_index").style.visibility="visible";
		document.getElementById("dst_index").disabled=false;
	}
}

function clear_calc(){
	if(document.getElementById("losses"))
		document.getElementById("losses").innerHTML = "<i>Нажмите на кнопку подсчёта</i>";
	if(document.getElementById("dst_price"))
		document.getElementById("dst_price").innerHTML = "<i>Вначале выберите обогреватели</i>";
	if(document.getElementById("dst_index"))
		document.getElementById("dst_index").value="";
	for(x in PowerModels){
		if(document.getElementById("dst_model["+x+"]"))
			document.getElementById("dst_model["+x+"]").value = 0;
	}
}
function calc_ttsimple(){
	var zseason=document.getElementById("season").value;
	var zarea=document.getElementById("area2").value;
	var power = 0;
	if(zseason==2)
		power=roundto(zarea*0.120,2);
	if(zseason==1)
		power=roundto(zarea*0.100,2);
	if(zseason==0)
		power=roundto(zarea*0.050,2);
	
	var txt = "<b>"+power+" кВт</b>";
	document.getElementById("losses").innerHTML = txt+choose_model(power, 0);
}
/*----------- скрипт интерактивности калькулятора */
 var calcType="tt";
function calc_tt(){
	calcType = "tt";
	calc_done = false;
	document.getElementById("but1").disabled=true;
	document.getElementById("but1").value="Подождите, идёт подсчёт...";
	var zwindows=document.getElementById("windows").value;
	var zisolation=document.getElementById("isolation").value;
	var zwinarea=document.getElementById("winarea").value;
	var ztemperature=document.getElementById("temperature").value;
	var zwalls_out=document.getElementById("walls_out").value;
	var zabove=document.getElementById("above").value;
	var zheight=document.getElementById("height").value;
	var zarea=document.getElementById("area").value;
	var url = '/extscripts/calc.php?mode=tt&windows='+zwindows+'&isolation='+zisolation+'&winarea='+zwinarea+'&temperature='+ztemperature+'&walls_out='+zwalls_out+'&above='+zabove+'&height='+zheight+'&area='+zarea;
//	document.getElementById("losses").innerHTML = url;
	iojax_send(url, calc_handler, calc_handler_err);
}

function calc_connectiontrouble_tt(){
	alert("Извините, проблема связи с сервером. Попробуйте позже.");
	document.getElementById("losses").innerHTML = "";
	document.getElementById("but1").disabled=false;
	document.getElementById("but1").value="Подобрать обогреватели";
	calc_done = true;
}

function check_calc_tt(){
	if(!calc_done){
		if(iojax_get_check()){
			var power = iojax_get();
			var txt = "<b>"+power+" кВт</b>";
			document.getElementById("losses").innerHTML = txt+choose_model(power,1);
			document.getElementById("but1").disabled=false;
			document.getElementById("but1").value="Подобрать обогреватели";
			calc_done = true;
		}else{
			calc_connectiontrouble_tt();
		}
	}
}

/* -------доставка ------ */
function calc_dst(){
	calcType = "dst";
	calc_done = false;
	document.getElementById("but2").disabled=true;
	document.getElementById("but2").value="Подождите, идёт подсчёт...";
	var zindex=document.getElementById("dst_index").value;
	var zthermo=document.getElementById("dst_thermo")?document.getElementById("dst_thermo").value:"m";
	var zfrom_msk=document.getElementById("from_msk").checked?1:0;
	var models="";
	for(var x in PowerModels){
		models = models+"&model["+x+"]="+document.getElementById("dst_model["+x+"]").value;
	}
	var url = '/extscripts/calc.php?mode=dst&from_msk='+zfrom_msk+'&thermo='+zthermo+'&index='+zindex+models;
//	document.getElementById("losses").innerHTML = url;
	iojax_send(url, calc_handler, calc_handler_err);
}

function calc_connectiontrouble_dst(){
	alert("Извините, проблема связи с сервером. Попробуйте позже.");
	document.getElementById("dst_price").innerHTML = "";
	document.getElementById("but2").disabled=false;
	document.getElementById("but2").value="Подсчитать стоимость доставки";
	calc_done = true;
}

function check_calc_dst(){
	if(!calc_done){
		if(iojax_get_check()){
			var power = iojax_get();
			document.getElementById("dst_price").innerHTML = power;
			document.getElementById("but2").disabled=false;
			document.getElementById("but2").value="Подсчитать стоимость доставки";
			calc_done = true;
		}else{
			calc_connectiontrouble_dst();
		}
	}
}

/* -------сохранение в калькуляторе ------ */
function calc_addcalc(){
	calcType = "addcalc";
	calc_done = false;
	document.getElementById("but4").disabled=true;
	document.getElementById("but4").value="Подождите, идёт добавление в корзину...";
	var zthermo=document.getElementById("cc_m").checked?"m":(document.getElementById("cc_d").checked?"d":"n");
	var models="";
	for(var x in Chosen){
		models = models+"&model["+x+"]="+Chosen[x];
	}
	var url = '/?mode=mini&script=addcalc&cc_thermo='+zthermo+models+'&rnd='+Math.random();
//	document.getElementById("losses").innerHTML = url;
	iojax_send(url, calc_handler, calc_handler_err);
}

function calc_connectiontrouble_addcalc(){
	alert("Извините, проблема связи с сервером. Попробуйте позже.");
	document.getElementById("dst_addcalc").innerHTML = "";
	document.getElementById("but4").disabled=false;
	document.getElementById("but4").value=sBut1;
	calc_done = true;
}

function check_calc_addcalc(){
	if(!calc_done){
		if(iojax_get_check()){
			var txt = iojax_get();
			document.getElementById("dst_addcalc").innerHTML = txt;
			document.getElementById("but4").disabled=false;
			document.getElementById("but4").value=sBut1;
			calc_done = true;
		}else{
			calc_connectiontrouble_addcalc();
		}
	}
}


/* ----- пристыковка ------*/
 function check_calc(){
	if(calcType =="tt"){
		return check_calc_tt();
	}
	if(calcType == "dst"){
		return check_calc_dst();
	}
	if(calcType == "addcalc"){
		return check_calc_addcalc();
	}
}
function calc_connectiontrouble(){
	if(calcType =="tt"){
		return calc_connectiontrouble_tt();
	}
	if(calcType == "dst"){
		return calc_connectiontrouble_dst();
	}
	if(calcType == "addcalc"){
		return calc_connectiontrouble_addcalc();
	}
}
/* ------------------------- iojax start ----------------------- */
var calc_done = false;
var iojax_id = "calc";

var calc_handler=function(){
	iframe_obj = document.getElementById(iojax_id);
	if(iframe_obj.contentWindow.location.href!='about:blank'){
		check_calc();
	}
}
var calc_handler_err=function(){
	if(!calc_done)
		calc_connectiontrouble();
}

function iojax_send(url, handler, handler_err){
	/* create element and make it hidden */
	iojax_id = "iojax_"+Math.random();
	var iframe_obj = document.createElement("iframe");
	iframe_obj.setAttribute("id", iojax_id);
	iframe_obj.className = 'elemHidden';
	document.body.appendChild(iframe_obj);

	/* добавим обработчик */
	if (iframe_obj.addEventListener)
		iframe_obj.addEventListener('load', handler, false);
	else if (iframe_obj.attachEvent)
		iframe_obj.attachEvent('onload', handler);
	else
		iframe_obj.onload=handler;
	iframe_obj.setAttribute("src", url);
	//window.setTimeout(function() {handler_err(iojax_id)}, 10000); // if onload isnt hurry - show error
	return false;
}
function iojax_get_check(){
	var t = document.getElementById(iojax_id);
	if(t.contentWindow && t.contentWindow.document && t.contentWindow.document.body && t.contentWindow.document.body.innerHTML!=''){
		return true;
	}
	return false
}
function iojax_get(){
	var t = document.getElementById(iojax_id);
	if(iojax_get_check()){
		var ret = t.contentWindow.document.body.innerHTML;
		document.body.removeChild(document.body.lastChild);
		return ret;
	}
	else return false;
}
/* iojax end */
