/*
	Типизация окон/дверей
		0 - глухое окно;
		1 - с поворотной створкой;
		2 - с откидной створкой;
		3 - с поворотно-откидной створкой;
		4 - дверь;

		frame	- рама;
		slot	- створка;
*/


function feba_calc( type, e, d ) {

	//
	//
	//	in:
	//		t - тип окна (см. типизацию);
	//		e - елемент, на котрый вешается;
	//		d - хэш данных;
	//
	this.init = function(t,e,d,coefficient) {
		this.maxSlot = 3;										// максимальное кол створок
		this.coefficient = coefficient;

		this.slotType = t;										// строка типа окна
		this._slotType = t.split('.');							// массива типов створок
		


		this._previewSlotWidth = new Array();					// массив input ширин створок
		this._previewSlotHeight = null;							// input высоты окна

		this.previewWin = false;								// флаг отрисовки окна

		this.calcTemplate = document.getElementById('feba-calc-template').innerHTML;
		document.getElementById('feba-calc-template').innerHTML;

		this.previewBox = document.getElementById(e);			// куда показывать
		this.previewBox.innerHTML = this.calcTemplate;

		document.getElementById('calc_win_type').value = t;		// тип окна для серевера

		this.pr = document.getElementById('calc_pr');			// блок производителей
		this.sp = document.getElementById('calc_sp');			// блок стеклопакетов
                this.dp = document.getElementById('calc_dp');			// блок воздушных камер
		this.pd = document.getElementById('calc_pd');			// блок подоконников
		this.otl = document.getElementById('calc_otl');			// блок отливов
		this.otk = document.getElementById('calc_otk');			// блок откосов
		this.ms = document.getElementById('calc_ms');			// блок москитной сетки
		this.fk = document.getElementById('calc_fk');			// блок фиксаторов
		this.mn = document.getElementById('calc_mn');			// блок фиксаторов

		this.win_amount = document.getElementById('calc_win_amount');	// блок колличества

		this.priceBox = document.getElementById('calc_price_box');	// блок для отображения цены
		this.reductionBox = document.getElementById('calc_reduction_box');	// блок для отображения скидки

		if ( d ) this.dataHash = d;								// данные

		// Рисую интерфейс

		// Производители
		var check = 1;
		for ( k in d ) {
		        //alert(k);
			this._add_radiobutton( this.pr, k, 'pr', k, k=='KBE58' ? true : false );
			check = 0;
		}

// ТЕСТ
//this._add_radiobutton( this.pr, 'KBE70', 'pr', 'KBE70', true );



var prx = this._get_radio_value('pr');
		//alert(prx);
                //this._add_radiobutton( this.pr, 'KBE70', 'pr', 'KBE70', true );


// this._get_radio_value('calc_sp') == 2
//( this._get_radio_value('calc_sp') == 2 ? ' !' : ' !' )

		// Стеклопакеты
		check = 1;
		var pr = this._get_radio_value('pr');

		this._create_controls( d[pr] );
		//alert(pr);
	},		// end of method feda_calc.init()



	this._create_controls = function( d ) {
		var msg = '', check, k, k1;



		for ( k in d ) {
			if ( k != 'price' && k != 'add' ) {
				msg += k+"(";
				check = 1;

				if ( d[k].control == 'select' ) {
					// Контейнер
					var c = document.createElement('div');
					c.className = "feba-calc-select";
					var s = document.createElement('select');
					var id = "l_"+k+"_"+name;
					s.setAttribute("name", "calc_"+k);
					s.setAttribute("id", id);

					for ( k1 in d[k] ) {
						if ( k1 != 'control' )
							this._add_option(s, k1, d[k][k1]);
					}

					// Подсаживаю в документ
					c.appendChild(s);
					this[k].appendChild(c);

					// Делаю выбранным, если надо
//					if ( check ) i.setAttribute("checked", true);

					// Вешаю событие
					s.calc = this;
					s.onclick = function(){this.calc.preview(); };
				}
				else if ( d[k].control == 'checkbox' ) {
					for ( k1 in d[k] ) {
						if ( k1 != 'control' )
							this._add_checkbox( this[k], k1, "calc_"+k, d[k][k1], check );
						check=0;
					}
				}

				else {
					for ( k1 in d[k] ) {
						msg += k1+",";
						this._add_radiobutton( this[k], k1, "calc_"+k, d[k][k1], check );
						//alert(d[k][k1]);
                                                //this._add_radiobutton( this.pr, k, 'pr', k, k=='KBE70' ? true : false );
						check=0;
					}
				}

				msg += "), ";
			}
		}
	//	alert ( msg );

	},



	this._add_checkbox = function(el, val, name, lab, check) {

		// Контейнер
		var s = document.createElement('div');
		s.className = "feba-calc-radiobutton";

		var i = document.createElement('input');
		var id = "l_"+val+"_"+name;
		i.setAttribute("type", "checkbox");
		i.setAttribute("name", name+"_"+val );
		i.setAttribute("id", id);
		i.setAttribute("value", val);

		// Метка
		var l = document.createElement('label');
		l.setAttribute("htmlFor", id);
		l.setAttribute("for", id);							// персонально для FireFox
		l.appendChild(document.createTextNode(lab));

		// Подсаживаю в документ
		s.appendChild(i);
		s.appendChild(l);
		el.appendChild(s);

		// Вешаю событие
		i.calc = this;
		i.onclick = function(){this.calc.preview(); };

	},

	this._add_option = function(el, val, txt) {

			var o = document.createElement('option');
			o.setAttribute("value", val);
			o.appendChild(document.createTextNode(txt));
			el.appendChild(o);
	},


	/*
		Делаем радиобатон

		in:	e - нода, к которой прибиваем радиобатон;
			v - radiobutton.value;
			n - radiobutton.name;
			l - текст лабела;
			c - checked ? true | false;
	*/
	this._add_radiobutton = function(el, val, name, lab, check) {

//		alert( el + ", " + name );

		// Контейнер
		var s = document.createElement('div');
		s.className = "feba-calc-radiobutton";

		var i = null;
		try {
			// Для IE, непонимающего input.name
			i = document.createElement('<input name="'+name+'">');
			// Для опер&нетскейпов
//			if ( !i || navigator.appName != "Microsoft Internet Explorer" ) i = document.createElement('input');
		}
		catch (e) {	}
		// Для опер&нетскейпов
		if ( !i || navigator.appName != "Microsoft Internet Explorer" ) i = document.createElement('input');
		var id = "l_"+val+"_"+name;
		i.setAttribute("type", "radio");
		i.setAttribute("name", name);
		i.setAttribute("id", id);
		i.setAttribute("value", val);

		// Метка
		var l = document.createElement('label');
		l.setAttribute("htmlFor", id);
                l.setAttribute("id", 'set'+id);
		l.setAttribute("for", id);							// персонально для FireFox
		l.appendChild(document.createTextNode(lab));

		// Подсаживаю в документ
		s.appendChild(i);
		s.appendChild(l);
		el.appendChild(s);

		// Делаю выбранным, если надо
		if ( check ) i.setAttribute("checked", true);

		// Вешаю событие
		i.calc = this;
		i.onclick = function(){this.calc.preview(); };

	},		// end of method _add_radiobutton();


	/*
		Рисуем окошко
	*/
	this.preview = function() {




		var type, st, slot_type, clot_count;

		slot_type = ( this._slotType.length == 1 ) ? new Array('l','l','l') : new Array('r','l','l');
		slot_count = this._slotType.length;

		// Размеры в название профилей
		var check = this._get_radio_value('pr');
		this.pr.innerHTML = '';
		for ( k in this.dataHash ) {
			//this._add_radiobutton( this.pr, k, 'pr', k + ( this._get_radio_value('calc_sp') == 2 ?  this.dataHash[k].add : '' ),  k==check ? true : false );
			//alert(this._get_radio_value('calc_sp2'));
                        this._add_radiobutton( this.pr, k, 'pr', k,  k==check ? true : false );

		}

		// Делаю таблицу, если она еще не создана
		if ( !this.previewWin ) {
			// Рисую все створки
		
			for ( var c in this._slotType ) {
              
				type = this._slotType[c];
				st = slot_type[c];
             
				// Верх рамы
				setElement( 'top-frame-'+c, c == 0 ? 'preview-frame-left-top' : 'preview-frame-center-top' );
				setElement( 'top-frame-'+c+'a', 'preview-frame-top' );
				// Створки
				setElement( 'top-slot-'+c, c == 0 ? 'preview-frame-left' : 'preview-frame-center' );
				setElement( 'top-slot-'+c+'a', 'preview-slot' );
				// Типизация створок
				
				document.getElementById('type-'+c).src = '/img/calc/type.'+this._slotType[c]+'.'+st+'.gif';

				// Ручки
				if ( slot_count == 1 && type != 0 ) {
					document.getElementById('slot-knob-0').src = '/img/calc/win.knob.gif';
					// Прячу общую ширину окна
					setElement( 'all_width', 'hidden' );
				}
				else if ( c == 1 ){
					if ( this._slotType[0] != 0 && type != 0 ) {
						document.getElementById('slot-knob-1').src = '/img/calc/win.knob.2.gif';
					}
					else if ( this._slotType[0] != 0 && type == 0 ) {
						document.getElementById('slot-knob-1').src = '/img/calc/win.knob.gif';
					}
					else if ( this._slotType[0] == 0 && type != 0 ) {
						document.getElementById('slot-knob-1').src = '/img/calc/win.knob.1.gif';
					}
					document.getElementById('slot-knob-0').src = '/img/calc/spacer.gif';
				}
				else if ( c == 2 ){
					if ( type != 0 ) {
						document.getElementById('slot-knob-2').src = '/img/calc/win.knob.1.gif';
					}
					else {
						document.getElementById('slot-knob-2').src = '/img/calc/spacer.gif';
					}
				}
				else {
					document.getElementById('slot-knob-'+c).src = '/img/calc/spacer.gif';
				}

				// Дверь
				if ( type == 4 ) {
					// Нижняя часть рамы
				
					setElement( 'center-frame-'+c, c == 0 ? 'preview-door-frame-center-center' : 'preview-door-frame-center-center' );
					setElement( 'center-frame-'+c+"a", 'preview-door-frame-center' );
					setElement( 'bottom-slot-'+c, c == 0 ? 'preview-door-slot-left' : 'preview-door-slot-center' );
					setElement( 'bottom-slot-'+c+"a", 'preview-door-slot-center' );
					setElement( 'bottom-frame-'+c, c == 0 ? 'preview-door-frame-left-bottom' : 'preview-door-slot-center' );
					setElement( 'bottom-frame-'+c+"a", 'preview-door-frame-bottom' );
					document.getElementById('type-'+c).src = '/img/calc/spacer.gif';
				}
				// Окна
				else {
					// Нижняя часть рамы
					setElement( 'center-frame-'+c, c == 0 ? 'preview-frame-left-bottom' : 'preview-frame-center-bottom' );
					setElement( 'center-frame-'+c+"a", 'preview-frame-bottom' );
					setElement( 'bottom-slot-'+c, 'hidden' );
					setElement( 'bottom-slot-'+c+"a", 'hidden' );
					setElement( 'bottom-frame-'+c, 'hidden' );
					setElement( 'bottom-frame-'+c+"a", 'hidden' );
				}
				// Инпуты ширины строк
				setElement( 'input-width-'+c, c == 0 ? 'preview-slot-left-input' : 'preview-slot-center-input ' );
				setElement( 'input-width-'+c+'a', 'preview-slot-input' );
			}
			c++;
			// Закрываю верх рамы
			setElement( 'top-frame-'+c, 'preview-frame-right-top' );
			setElement( 'top-slot-'+c, 'preview-frame-right' );

			if ( type == 4 ) {
				setElement( 'center-frame-'+c, 'preview-door-frame-right-center' );
				setElement( 'bottom-slot-'+c, 'preview-door-slot-right' );
				setElement( 'bottom-frame-'+c, 'preview-door-frame-right-bottom' );
				document.getElementById('frame-height').value = 2100;
			}
			else {
				setElement( 'center-frame-'+c, 'preview-frame-right-bottom' );
			}

			// Закрываю инпуты ширин строк
			setElement( 'input-width-'+c, 'preview-slot-right-input' );

			// Вытягиваю ширину *ширины рамы*
			document.getElementById('frame-width-1').colSpan = (c*2)-1;
			// Вытягиваю высоту *высоты рамы*
			document.getElementById('frame-height-input').rowSpan = 1;
			setElement( "frame-height-2", "frame-height-bottom" );
			// Убиваю ручки для дверей
			if ( type == 4 ) {
				setElement( 'slot-knob-0', 'hidden' );
				setElement( 'slot-knob-1', 'hidden' );
				setElement( 'slot-knob-2', 'hidden' );

				document.getElementById('frame-height-input').rowSpan = 3;
				setElement( "frame-height-4", "frame-height-bottom" );

			}
			// Убираю лишнии вертикальные размеры
			else {
				setElement( 'door-type', 'hidden' );
				setElement( 'door-1', 'hidden' );
				setElement( 'door-2', 'hidden' );
			}

			var f=false;

			// Прячу незаюзанные блоки
			for ( c; c <= this.maxSlot; c++ ) {
				if ( f ) {
					setElement( 'top-frame-'+c, 'hidden' );
					setElement( 'top-slot-'+c, 'hidden' );
					setElement( 'center-frame-'+c, 'hidden' );
					setElement( 'input-width-'+c, 'hidden' );
					setElement( 'bottom-slot-'+c, 'hidden' );
					setElement( 'bottom-frame-'+c, 'hidden' );
				}
				if ( c != 3 ) {
					// Верх рамы
					setElement( 'top-frame-'+c+'a', 'hidden' );
					// Створки
					setElement( 'top-slot-'+c+'a', 'hidden' );
					// Ручки
					setElement( 'slot-knob-'+c, 'hidden' );
					// Нижняя часть рамы
					setElement( 'center-frame-'+c+'a', 'hidden' );
					// Высота вертикального размера
					setElement( 'input-width-'+c+'a', 'hidden' );

					setElement( 'bottom-slot-'+c+"a", 'hidden' );

					setElement( 'bottom-frame-'+c+"a", 'hidden' );
				}
				f=true;
			}

	        // Получаю input ширин створок
			for ( c in this._slotType ) {
				this._previewSlotWidth[c] = document.getElementById('slot-'+c+'-width');
				this._previewSlotWidth[c].calc = this;
	        }
	        document.getElementById('frame-height').calc = this;
                if (this._slotType[c] == 4) {;
                document.getElementById('frame-wdv').calc = this;
                document.getElementById('frame-hdv').calc = this;
                document.getElementById('frame-wdv2').calc = this;
                //document.getElementById('frame-hdv2').calc = this;
                }

	        // ИНпут
			// Ставлю дефолтовые ширины створок
			if ( this._slotType.length == 2 ) {
				this._previewSlotWidth[0].value = 500;
				this._previewSlotWidth[1].value = 950;
			}
			else if ( this._slotType.length == 3 ) {
				this._previewSlotWidth[0].value = 500;
				this._previewSlotWidth[1].value = 500;
				this._previewSlotWidth[2].value = 760;
			}

			this.previewWin = true;
		}

		var sum = 0;

		// Resize
		for ( c in this._slotType ) {

			type = this._slotType[c]

			w = this._previewSlotWidth[c].value;
			if (window.RegExp ) {
				if ( !w.match( /^\d*$/ ) ) {
					alert('Введите размеры в миллиметрах использаю цифры');
					this._previewSlotWidth[c].value = 500;
					return;
				}
			}

			// !!! HACK !!!
			// для горизонтальных размеров створок
			if ( this._previewSlotWidth[c].value != 0 ) {
				document.getElementById('top-slot-'+c+'a').style.width = ( this._previewSlotWidth[c].value / 10 )+ 'px';
				document.getElementById('door-type').style.width = ( this._previewSlotWidth[c].value / 10 + 5)+ 'px';
				sum += parseInt(this._previewSlotWidth[c].value);
			}
		}

		// !!! HACK !!!
		// для вертикальных размеров створок
		if ( document.getElementById('frame-height').value != 0 ) {
			if ( type == 4 ) {
				document.getElementById('top-slot-0a').style.height = ( document.getElementById('frame-height').value / 30 * 2 )+ 'px';
				document.getElementById('bottom-slot-0a').style.height = ( document.getElementById('frame-height').value / 30 )+ 'px';
				document.getElementById('door-type').style.height = ( document.getElementById('frame-height').value / 10 + 21 )+ 'px';
			}
			else {
				document.getElementById('top-slot-0a').style.height = ( document.getElementById('frame-height').value / 10 )+ 'px';
				document.getElementById('top-slot-1a').style.height = ( document.getElementById('frame-height').value / 10 )+ 'px';
				document.getElementById('top-slot-2a').style.height = ( document.getElementById('frame-height').value / 10 )+ 'px';
			}
//			sum += parseInt(this._previewSlotWidth[c].value);
		}

		// Выставляю общий размер рамы
		document.getElementById('frame-width').value = sum;

		function setElement( e, c ) {
			var el = document.getElementById(e);
			el.className = c;

		}



		this.calculate();

	},

	//
	//	Считаемся
	//
	this.calculate = function() {

		var slots = new Array();
		var w=0, r=0, h=0, t=0, c=0, tw=0, price, tp = 0, reduction = 0;

		// Производитель
		var pr = this._get_radio_value('pr');

		// Воздушные камеры
		var dp = this._get_radio_value('calc_dp');

		// Убираем пятикамерный крыжик
	        if (pr == 'KBE58')  {
        	document.getElementById('l_2_calc_dp').style.visibility = 'hidden';
		document.getElementById('setl_2_calc_dp').style.visibility = 'hidden';

        	} else {
                document.getElementById('l_2_calc_dp').style.visibility = 'visible';
                document.getElementById('setl_2_calc_dp').style.visibility = 'visible';
        	}

		// Высота створок
		h = parseInt(document.getElementById('frame-height').value);

		var type;

		// Ширины створок
		for ( c in this._slotType ) {
			t = this._previewSlotWidth[c].value;
			w = parseInt(t);
			slots[c] = w;
			tw += w;
			price = 0;

			//alert(this._slotType[c]);
			// Для створки 0-го типа (глухая)
			if ( this._slotType[c] == 0 ) {

		              if (dp == '1') {

				// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame * ( ( h + w ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Шпатик рамы
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame * ( ( h + w - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame * ( ( h + w - 180 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp * ( (  h + w - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;

				// Прокладки под стеклопакет (4)
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp1) + (6 * this.dataHash[pr].price.podkladka_sp2)) * 100 ) / 100;
				} else {
                                price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp1) + (6 * this.dataHash[pr].price.podkladka_sp3)) * 100 ) / 100;
                                }

				// Заглушки
				var er = 0;
				var esum= 1;
				var cx = 1;
				var tw1 = tw;
                                for ( cx; cx < tw1; cx++ ) {
                                if (cx == 1) {
                                er = Math.ceil(tw1 - (300 * cx));
                                } else {
                                er = Math.ceil(tw1 - (300 * 2));
                                }

                                if (er > 150) {
                                esum++;
                                //alert(esum);
                                                                }
                                tw1 = er;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka * esum * 100 ) / 100;

				}


				// Шурупы для армирования (8)
				price += Math.ceil( ((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup) * 100 ) / 100;

				// Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp[1] * ( ( h-96 ) * ( w-96 ) / 1000000 ) * 100 ) / 100;
                                //alert(this.dataHash[pr].price.sp[1]);
                                }

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
					price += Math.ceil( this.dataHash[pr].price.sp[2] * ( ( h-96 ) * ( w-96 ) / 1000000 ) * 100 ) / 100;
                                //alert(this.dataHash[pr].price.sp[2]);
				}
				  } else {
			       // пятикамерный
                              // Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame2 * ( ( h + w ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Шпатик рамы
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame2 * ( ( h + w - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame2 * ( ( h + w - 180 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp2 * ( (  h + w - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;

				// Прокладки под стеклопакет (4)
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp12) + (6 * this.dataHash[pr].price.podkladka_sp2)) * 100 ) / 100;
				} else {
                                price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp12) + (6 * this.dataHash[pr].price.podkladka_sp3)) * 100 ) / 100;
                                }

				// Заглушки
				var er = 0;
				var esum= 1;
				var cx = 1;
				var tw1 = tw;
                                for ( cx; cx < tw1; cx++ ) {
                                if (cx == 1) {
                                er = Math.ceil(tw1 - (300 * cx));
                                } else {
                                er = Math.ceil(tw1 - (300 * 2));
                                }

                                if (er > 150) {
                                esum++;
                                //alert(esum);
                                                                }
                                tw1 = er;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka2 * esum * 100 ) / 100;

				}



				// Шурупы для армирования (8)
				price += Math.ceil( ((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup) * 100 ) / 100;

				// Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp2[1] * ( ( h-96 ) * ( w-96 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( ( h-96 ) * ( w-96 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

			      //
			      }

			}
			// Для 1-го типа створки (поворотной)
			else if ( this._slotType[c] == 1 ) {

                                if (dp == '1') {

				// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame * ( ( h + w ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( h - 70 + w - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot * ( ( h + w - 140) * 2 / 1000 ) * 100 ) / 100;

				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame* ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame * ( ( h + w - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot * ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn * ( ( h + w - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp * ( (  h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp2;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = tw;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup)*2) * 100 ) / 100;
				//price += Math.ceil( this.dataHash[pr].price.armirov_shurup * 16 * 100 ) / 100;
				// Шурупы для фурнитуры (30)
				//price += Math.ceil( this.dataHash[pr].price.furn_shurup * 30 * 100 ) / 100;
				// Фурнитура
				price += this.dataHash[pr].price.furn_komplp;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka;

				// Стеклопакет
				//price += Math.ceil( this.dataHash[pr].price.sp[1] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;

				//price = Math.round(price) * 2;

				//if ( this._get_radio_value('calc_sp') == 2 ) {
				//	price += Math.ceil( this.dataHash[pr].price.sp[2] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;
				//}

                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp[1] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp[2] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

					} else {
// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame2 * ( ( h + w ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( h - 70 + w - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot2 * ( ( h + w - 140) * 2 / 1000 ) * 100 ) / 100;

				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame2* ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame2 * ( ( h + w - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot2 * ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn2 * ( ( h + w - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp2 * ( (  h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp22;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka2 * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = tw;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka2 * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup2)*2) * 100 ) / 100;
				//price += Math.ceil( this.dataHash[pr].price.armirov_shurup2 * 16 * 100 ) / 100;
				// Шурупы для фурнитуры (30)
				//price += Math.ceil( this.dataHash[pr].price.furn_shurup2 * 30 * 100 ) / 100;
				// Фурнитура
				price += this.dataHash[pr].price.furn_komplp2;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka2;

				// Стеклопакет
				//price += Math.ceil( this.dataHash[pr].price.sp2[1] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;

				//price = Math.round(price) * 2;

				//if ( this._get_radio_value('calc_sp') == 2 ) {
				//	price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;
				//}

                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp2[1] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

				}

			}

			// Для 2-го типа створок (откидных)
			else if ( this._slotType[c] == 2 || this._slotType[c] == 3 ) {

                                if (dp == '1') {

				// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame * ( ( h + w ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( h - 70 + w - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot * ( ( h + w - 140) * 2 / 1000 ) * 100 ) / 100;

				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame* ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame * ( ( h + w - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot * ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn * ( ( h + w - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp * ( (  h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp2;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = tw;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup)*2) * 100 ) / 100;
				//price += Math.ceil( this.dataHash[pr].price.armirov_shurup * 16 * 100 ) / 100;
				// Шурупы для фурнитуры (30)
				//price += Math.ceil( this.dataHash[pr].price.furn_shurup * 30 * 100 ) / 100;
				// Фурнитура
				price += this.dataHash[pr].price.furn_kompl;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka;

				// Стеклопакет
				//price += Math.ceil( this.dataHash[pr].price.sp[1] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;

				//price = Math.round(price) * 2;

				//if ( this._get_radio_value('calc_sp') == 2 ) {
				//	price += Math.ceil( this.dataHash[pr].price.sp[2] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;
				//}

                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp[1] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp[2] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

					} else {
// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame2 * ( ( h + w ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( h - 70 + w - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot2 * ( ( h + w - 140) * 2 / 1000 ) * 100 ) / 100;

				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame2* ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame2 * ( ( h + w - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot2 * ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn2 * ( ( h + w - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp2 * ( (  h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp22;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka2 * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = tw;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka2 * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup2)*2) * 100 ) / 100;
				//price += Math.ceil( this.dataHash[pr].price.armirov_shurup2 * 16 * 100 ) / 100;
				// Шурупы для фурнитуры (30)
				//price += Math.ceil( this.dataHash[pr].price.furn_shurup2 * 30 * 100 ) / 100;
				// Фурнитура
				price += this.dataHash[pr].price.furn_kompl2;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka2;

				// Стеклопакет
				//price += Math.ceil( this.dataHash[pr].price.sp2[1] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;

				//price = Math.round(price) * 2;

				//if ( this._get_radio_value('calc_sp') == 2 ) {
				//	price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;
				//}

                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp2[1] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

				}


			}
			else if ( this._slotType[c] == 4 ) {
			// для двери
			  //alert('r');
			  var wdv = parseInt(document.getElementById('frame-wdv').value);
			  var hdv = parseInt(document.getElementById('frame-hdv').value);
                          var wdv2 = parseInt(document.getElementById('frame-wdv2').value);
			  var hdv2 = hdv;
                          document.getElementById('frame-wdv-sum').value = (wdv + wdv2);
                        var type = 4;

		        if (dp == '1') {

				// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame * ( ( h + w ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( h - 70 + w - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot * ( ( h + w - 140) * 2 / 1000 ) * 100 ) / 100;


				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame* ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame * ( ( h + w - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot * ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn * ( ( h + w - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp * ( (  h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp2;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = tw;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup)*2) * 100 ) / 100;
				//price += Math.ceil( this.dataHash[pr].price.armirov_shurup * 16 * 100 ) / 100;
				// Шурупы для фурнитуры (30)
				//price += Math.ceil( this.dataHash[pr].price.furn_shurup * 30 * 100 ) / 100;
				// Фурнитура
				price += this.dataHash[pr].price.furn_komplp;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka;

				// Стеклопакет
				//price += Math.ceil( this.dataHash[pr].price.sp[1] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;

				//price = Math.round(price) * 2;

				//if ( this._get_radio_value('calc_sp') == 2 ) {
				//	price += Math.ceil( this.dataHash[pr].price.sp[2] * ( Math.ceil(((h-190)*( w-190)/1000000)*100)/100 ) * 100 ) / 100;
				//}

                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp[1] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
                                price += price * 0.18;
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp[2] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
                                price += price * 0.15;
				}


				//alert(price);

					} else {
// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame2 * ( ( h + w ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( h - 70 + w - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot2 * ( ( h + w - 140) * 2 / 1000 ) * 100 ) / 100;

				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame2* ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame2 * ( ( h + w - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot2 * ( ( h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn2 * ( ( h + w - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp2 * ( (  h + w - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp22;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka2 * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = tw;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka2 * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((w+h) * 2)/300)*this.dataHash[pr].price.armirov_shurup2)*2) * 100 ) / 100;
                                // Фурнитура для шурупов
				price += this.dataHash[pr].price.furn_komplp2;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka2;
                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp2[1] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
                                price += price * 0.18;
				}
				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( ( h-194 ) * ( w-194 ) / 1000000 ) * 100 ) / 100;
                                price += price * 0.15;
				}
                                  }

                       // Глухая рама
                      if (dp == '1') {

				// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame * ( ( hdv + wdv ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Шпатик рамы
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame * ( ( hdv + wdv - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame * ( ( hdv + wdv - 180 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp * ( (  hdv + wdv - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;

				// Прокладки под стеклопакет (4)
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp1) + (6 * this.dataHash[pr].price.podkladka_sp2)) * 100 ) / 100;
				} else {
                                price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp1) + (6 * this.dataHash[pr].price.podkladka_sp3)) * 100 ) / 100;
                                }

				// Заглушки
				var er = 0;
				var esum= 1;
				var cx = 1;
				var tw1 = wdv;
                                for ( cx; cx < tw1; cx++ ) {
                                if (cx == 1) {
                                er = Math.ceil(tw1 - (300 * cx));
                                } else {
                                er = Math.ceil(tw1 - (300 * 2));
                                }

                                if (er > 150) {
                                esum++;
                                //alert(esum);
                                                                }
                                tw1 = er;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka * esum * 100 ) / 100;

				}


				// Шурупы для армирования (8)
				price += Math.ceil( ((((wdv+hdv) * 2)/300)*this.dataHash[pr].price.armirov_shurup) * 100 ) / 100;

				// Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp[1] * ( ( hdv-96 ) * ( wdv-96 ) / 1000000 ) * 100 ) / 100;
                                //alert(this.dataHash[pr].price.sp[1]);
                                }

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
					price += Math.ceil( this.dataHash[pr].price.sp[2] * ( ( hdv-96 ) * ( wdv-96 ) / 1000000 ) * 100 ) / 100;
                                //alert(this.dataHash[pr].price.sp[2]);
				}
				  } else {
			       // пятикамерный
                              // Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame2 * ( ( hdv + wdv ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Шпатик рамы
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame2 * ( ( hdv + wdv - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame2 * ( ( hdv + wdv - 180 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp2 * ( (  hdv + wdv - 192 ) * 2 / 1000 ) * 1.1 * 100 ) / 100;

				// Прокладки под стеклопакет (4)
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp12) + (6 * this.dataHash[pr].price.podkladka_sp2)) * 100 ) / 100;
				} else {
                                price += Math.ceil( ((6 * this.dataHash[pr].price.podkladka_sp12) + (6 * this.dataHash[pr].price.podkladka_sp3)) * 100 ) / 100;
                                }

				// Заглушки
				var er = 0;
				var esum= 1;
				var cx = 1;
				var tw1 = wdv;
                                for ( cx; cx < tw1; cx++ ) {
                                if (cx == 1) {
                                er = Math.ceil(tw1 - (300 * cx));
                                } else {
                                er = Math.ceil(tw1 - (300 * 2));
                                }

                                if (er > 150) {
                                esum++;
                                //alert(esum);
                                                                }
                                tw1 = er;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka2 * esum * 100 ) / 100;

				}



				// Шурупы для армирования (8)
				price += Math.ceil( ((((wdv+hdv) * 2)/300)*this.dataHash[pr].price.armirov_shurup) * 100 ) / 100;

				// Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp2[1] * ( ( hdv-96 ) * ( wdv-96 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( ( hdv-96 ) * ( wdv-96 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

			      //
			      }
                       // Окончание глухой рамы

                     // Поворотно откидная рама
                                                     if (dp == '1') {

				// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame * ( ( hdv2 + wdv2 ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( hdv2 - 70 + wdv2 - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot * ( ( hdv2 + wdv2 - 140) * 2 / 1000 ) * 100 ) / 100;

				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame* ( ( hdv2 + wdv2 - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame * ( ( hdv2 + wdv2 - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot * ( ( hdv2 + wdv2 - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn * ( ( hdv2 + wdv2 - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp * ( (  hdv2 + wdv2 - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp2;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = wdv2;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((wdv2+hdv2) * 2)/300)*this.dataHash[pr].price.armirov_shurup)*2) * 100 ) / 100;
				//price += Math.ceil( this.dataHash[pr].price.armirov_shurup * 16 * 100 ) / 100;
				// Шурупы для фурнитуры (30)
				//price += Math.ceil( this.dataHash[pr].price.furn_shurup * 30 * 100 ) / 100;
				// Фурнитура
				price += this.dataHash[pr].price.furn_komplotk;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka;


                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp[1] * ( ( hdv2-194 ) * ( wdv2-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp[2] * ( ( hdv2-194 ) * ( wdv2-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

					} else {
// Профиля рамы
				price += Math.ceil( this.dataHash[pr].price.profil_frame2 * ( ( hdv2 + wdv2 ) * 2 / 1000 ) * 100 ) / 100;

				// Профиль створки ( 140 = ( hdv2 - 70 + wdv2 - 70 ) -- размеры, на которые створка меньше рамы)
				price += Math.ceil( this.dataHash[pr].price.profil_slot2 * ( ( hdv2 + wdv2 - 140) * 2 / 1000 ) * 100 ) / 100;

				// Шпатик для створки
				price += Math.ceil( this.dataHash[pr].price.shpatik_frame2* ( ( hdv2 + wdv2 - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Армирование рамы
				price += Math.ceil( this.dataHash[pr].price.armirov_frame2 * ( ( hdv2 + wdv2 - 180 ) * 2 / 1000 ) * 100 ) / 100;
				// Армирование створки
				price += Math.ceil( this.dataHash[pr].price.armirov_slot2 * ( ( hdv2 + wdv2 - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;

				// Уплотнители внешние
				price += Math.ceil( this.dataHash[pr].price.uplotn_vn2 * ( ( hdv2 + wdv2 - 140 ) * 2 / 1000 ) * 100 ) / 100;
				// Уплотнители под стеклопакет
				price += Math.ceil( this.dataHash[pr].price.uplotn_sp2 * ( (  hdv2 + wdv2 - 140 - 114 ) * 2 / 1000 ) * 100 ) / 100;
				// Прокладки под стеклопакет (4)
				price += 4 * this.dataHash[pr].price.podkladka_sp22;

// Заглушки (2)
//				//price += Math.ceil( this.dataHash[pr].price.zaglushka2 * 2 * 100 ) / 100;
				// Заглушки
				var er1 = 0;
				var esum1= 1;
				var cx1 = 1;
				var tw11 = wdv2;

                                for ( cx1; cx1 < tw11; cx1++ ) {
                                if (cx1 == 1) {
                                er1 = Math.ceil(tw11 - (300 * cx1));
                                } else {
                                er1 = Math.ceil(tw11 - (300 * 2));
                                }

                                if (er1 > 150) {
                                esum1++;
                                //alert(esum1);
                                                                }
                                tw11 = er1;

                                price += Math.ceil( this.dataHash[pr].price.zaglushka2 * esum1 * 100 ) / 100;

				}

				// Шурупы для армирования (16)
                                price += Math.ceil( (((((wdv2+hdv2) * 2)/300)*this.dataHash[pr].price.armirov_shurup2)*2) * 100 ) / 100;
				//price += Math.ceil( this.dataHash[pr].price.armirov_shurup2 * 16 * 100 ) / 100;
				// Шурупы для фурнитуры (30)
				//price += Math.ceil( this.dataHash[pr].price.furn_shurup2 * 30 * 100 ) / 100;
				// Фурнитура
				price += this.dataHash[pr].price.furn_komplotk2;
				// Ручка
				price += this.dataHash[pr].price.furn_ruchka2;

                                // Стеклопакет
                                if ( this._get_radio_value('calc_sp') == 1 ) {
				price +=  Math.ceil( this.dataHash[pr].price.sp2[1] * ( ( hdv2-194 ) * ( wdv2-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[1]);
				}

				// Стеклопакет тип 2
				if ( this._get_radio_value('calc_sp') == 2 ) {
				price += Math.ceil( this.dataHash[pr].price.sp2[2] * ( ( hdv2-194 ) * ( wdv2-194 ) / 1000000 ) * 100 ) / 100;
				//alert(this.dataHash[pr].price.sp2[2]);
				}

				}

                      // Окончание поворотно откидной рамы


   			//price *= 2;

	                //

						}
//			this.debug_message( c+" ("+this._slotType[c]+") price: "+Math.ceil(price) );
//			tp += Math.ceil(price);
			tp += price;

		}

		var add = 0;
		price = tp;

                if ( type == 4 ) {
                tw = (tw + wdv + wdv2);
                }

		// Считаем подстановочный профиль (округляя до целого)
		price += Math.ceil(this.dataHash[pr].price.profil_podst * tw / 1000);

                // Поправка 0.08
                // price += (price * 0.08);
                //price += price;


		// Москитная сетка !!!! Уточнить рассчет !!!
                  add_ms = Math.ceil(this._get_radio_value('calc_ms') * 400);

        	// Подоконник
               if ( type == 4 ) {
		add += ((wdv+wdv2+200) * this._get_radio_value('calc_pd') )  / 1000000 * this.dataHash[pr].price.pd ;
		} else {
                add += ((tw+200) * this._get_radio_value('calc_pd') )  / 1000000 * this.dataHash[pr].price.pd ;
	       }
		//
		//alert(type);
		// Отлив
                if ( type == 4 ) {
                } else {
		add += ( ((tw +100) * this._get_radio_value('calc_otl') ) / 1000000 ) * this.dataHash[pr].price.otl;
		}

		// Откос
                if ( type == 4 ) {
		add += ( ((wdv+wdv2+tw +100) + (hdv+hdv2+h +100)) / 1000000 ) * this._get_radio_value('calc_otk') * this.dataHash[pr].price.otk;
		} else {
                add += ( ((tw +100) + (h +100) * 2) / 1000000 ) * this._get_radio_value('calc_otk') * this.dataHash[pr].price.otk;
		}

		price += add;




		//if ( this._get_radio_value('calc_fk_n') )
			price += 5;

		//if ( this._get_radio_value('calc_fk_i') )
			price += 12;


		// Округляем до сотых с пересчетом в рубли
		price = Math.ceil(price *  100)/100;
	
                pricewe = (this.dataHash[pr].price.skidka / 100) * price;
                price = price -  pricewe;
			
				
				

		//учет коэффициента увеличения цены
		//price = price * this.coefficient;

                // Монтаж
		if ( this._get_radio_value('calc_mn_y') )
		price =  price * this.coefficient + ((this.dataHash[pr].price.montaj / 100) * price) + this.dataHash[pr].price.montajdop;
		else price =  price * this.coefficient;

                 price = price * this._get_radio_value('calc_win_amount');


		//if ( type != 4 ) {
		//	reduction = price;
                        //alert(price);
		//	price *= this.dataHash[pr].price.koef;
                        //alert(price);
		//	reduction -= price;
		//}

        price = price + add_ms;
		// Рисую на экран
		if (this.priceBox) this.priceBox.innerHTML = Math.ceil(price) + " руб.";
		if (this.reductionBox) this.reductionBox.innerHTML = Math.ceil(reduction) + " руб.";
		document.getElementById('calc_win_price').value = Math.ceil(price);

//		alert([slots, w, frame_perimeter, price ]);

	},


	this.inteface = function() {

	},

	this.destroy = function() {

	},

	//
	// Получение значения радиобатонов
	//
	// in:		name	- имя контейнера, содежащего радиобатоны;
	// return:	value checked radiobutton;
	//
	this._get_radio_value = function(name) {

		// Просматриваю радиобатоны
		var l = document.getElementsByTagName('input');

		for ( e=0;e<l.length;e++) {
			if ( l[e].name == name && l[e].checked ) return l[e].value;
		}

		// Просматриваю селекты
		var l = document.getElementsByTagName('select');

		for ( e=0;e<l.length;e++) {
			if ( l[e].name == name ) return l[e].value;
		}

	},

	this.debug_message = function(m) {
		if ( d = document.getElementById("debug") ) {
			d.value += m + "\n";
		}
	}

//	this.init(type,e);

}
