/* Products calculator */
// validating input
aikenOnKeyPress = function(evt){
	var keynum;
	var keychar;
	var numcheck;

	if(window.event){	// IE
		keynum = window.event.keyCode;
	}else if(evt.which){	// Netscape/Firefox/Opera
		keynum = evt.which;
	}
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	if(numcheck.test(keychar) || '08'==keynum || typeof(keynum)=='undefined'){
		return true;
	}
	return false;
}
// building calculator
aikenMakeCalc = function(){
	var id_calc = $('calc');
	var id_wall = $('wall');
	var id_table= $('table');
	var walls = id_wall.value;
	var bool = false;

	if(id_wall && id_calc &&  walls > 0){
		if(walls>9){
			walls = id_wall.value = 9;
		}
		var inject = $('inject');
		TRs = document.getElementsByTagName('tr');
		regexp = /^id_wall_(\d+)$/;
		var parentNode = inject.parentNode;
		var i = TRs.length-1;
		var j = 0;
		// Обходим все TR
		for(i; i>=0; i--){
			// Если совпадает id
			if(regexp.test(TRs[i].id)){
				if(RegExp.$1>walls){
					parentNode.removeChild(TRs[i]);
				}else{
					j++;
				}
			}
		}
		for(var i=j; i<walls;i++){
			if(i>0){
				inject = $('id_wall_' + i);
			}
			var tr = document.createElement('tr');
			tr.id = 'id_wall_' + (i+1);
			// 1st td
			var td = document.createElement('td');
			td.align="right";
			td.appendChild(document.createElement('strong').appendChild(document.createTextNode('Стена ' + (i+1) + ', мм')));
			tr.appendChild(td);
			// 2nd td
			input = document.createElement('input');
			input.type="text";
			input.className="number";
			input.name='wall_' + (i+1);
			/*
			input.setAttribute('onkeypress', 'javascript:return aikenOnKeyPress(event);');
			input.setAttribute('onkeyup', 'javascript:aikenCheckCalc();');
			*/
			input.onkeypress = function(event){
				aikenOnKeyPress(event);
			}
			input.onkeyup = function(event){
				aikenCheckCalc();
			}
			td = document.createElement('td');
			td.appendChild(input);
			tr.appendChild(td);
			insertAfter(inject.parentNode, tr, inject);
		}
	}
	aikenCheckCalc();
}

aikenCheckCalc = function(){
	var INPUTs = document.getElementsByTagName('input');
	var hasErrors = false;
	var total = 0;
	var calc_sum = $('calc_sum');
	var calc_cnt = $('calc_cnt');
	var calc_elm = $('calc_elm');
	
	re1 = /^wall_(\d+)$/;
	re2 = /^(\d+)$/;
	for(var i = 0; i<INPUTs.length; i++){
		if(re1.test(INPUTs[i].name)){
			if(re2.test(INPUTs[i].value)){
				INPUTs[i].value = INPUTs[i].value;
				total = total + (INPUTs[i].value - 0);
			}else{
				hasErrors = true;
				INPUTs[i].className = INPUTs[i].className + ' error';
			}
		}
	}
	calc_cnt.value = total;
	if(!hasErrors){
		var length = $('calc_len').value;
		var placeToBasket = $('PlaceToBasket');
		var totalElements = Math.ceil(total/length);
		calc_sum.style.display = 'block';
		calc_elm.innerHTML = totalElements;
		if(placeToBasket){
			placeToBasket.value = totalElements
		}
	}else{
		calc_sum.style.display = 'none';
		calc_elm.innerHTML = 0;
	}	
}
/* ------------------------------------ */
function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}
/* Programming by alpaxo@jabber.kiev.ua */