function addItem(id, sender) {
	sender.disabled = true;
	jx.load('add_item/' + id, function(response){					
		sender.disabled = false;
		if (!response || !response.success || !response.item) {			
			alert("Произошла ошибка про добавлении в корзину.\nПожалуйста, повторите попытку или воспользуйтесь одним из альтернативных способов сделать заказ в разделе «Как заказать».");
		} else if (response.total) {
			var el = document.getElementById('sc');
			if (el) el.innerHTML = 'Корзина (' + response.total + ')';			
			alert("Добавлено в корзину: " + response.item.category + " «" + response.item.name + "».");
		} else {
			alert(response.item.category + " «" + response.item.name + "» уже есть в корзине.");
		}			
	}, 'json');		
}

function removeItem(id, sender) {			
	if (!sender.checked) return;		
	var tbl = document.getElementById('sc_tbl');
	if (!tbl) return;			
	tbl.disabled = true;
	jx.load('remove_item/' + id + '?format=json', function(response){			
		tbl.disabled = false;					
		if (response && response.success) {
			var el = sender.parentNode.parentNode.rowIndex;				
			if (el) {
				tbl.deleteRow(el);
				if (tbl.rows.length <= 1) {
					el = document.getElementById('sc_wrap');					
					if (el) el.innerHTML = '<center>Ваша корзина пуста.</center>';
				}
			}
			var el = document.getElementById('sc');
			if (!el) return;
			if (response.total > 0) el.innerHTML = 'Корзина (' + response.total + ')';
			else el.innerHTML = 'Корзина';		
		} else {
			alert("Произошла ошибка про удалении из корзины.\nПожалуйста, повторите попытку или воспользуйтесь одним из альтернативных способов сделать заказ в разделе «Как заказать».");
		}
	}, 'json');			
}	

function checkNum(e) {	
	if (window.event) var keynum = e.keyCode;
	else if(e.which) var keynum = e.which;	
	var keychar = String.fromCharCode(keynum);
	var numcheck = /\d/;
	return numcheck.test(keychar);
}

function checkEmail(str) {	
	var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return re.test(str);
}

function checkPhone(str) {
	var re = /^[0-9\-\ \s]*$/;	
	return re.test(str);
}

function checkEl(el) {
	if (el.getAttribute('req') && !el.value) {
		el.className = 'req';	
		return false;
	} 	
	if ((el.name == 'email') && !checkEmail(el.value)) {
		el.className = 'req';
		return false;
	}	
	if ((el.name == 'phone') && !checkPhone(el.value)) {
		el.className = 'req';
		return false;
	}
	el.className = 'input';
	return true;	
}

function validate(fm) {	
	var isValid = true;
	for (var i = 0; i < fm.elements.length; i++) {
		var el = fm.elements[i];		
		if (el.type == 'submit') continue;
		if (!checkEl(el)) isValid = false;			
	}
	var el = document.getElementById('o_valid');
	if (isValid === false) {
		if (el) el.style.display = 'block';
		return false;
	} 
	if (el) el.style.display = 'none';	
	return true;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function zoomImage(el) {
	var src = el.getAttribute('src').split('?');
	//var pos = findPos(el);
	var img = document.images['zoom'];
	img.src = src[0];			
	img.style.display = 'block';	
	
	//img.style.left = pos[0]; //add px
	//img.style.top = pos[1]; //add px	
	
	var center_x = Math.floor(screen.width/2);
	var center_y = Math.floor(screen.height/2);
	
	var x = center_x - Math.floor(img.width/2);
	var y = center_y - Math.floor(img.height/2);
	
	img.style.left = x + 'px';
	img.style.top = y + 'px';
	
}

function showImage(el) {				
	hideImage(document.images['zoom']);
	
	var src = el.getAttribute('src').split('?');	
	document.images['photo'].src = src[0];	
	
	/*
	var NS = navigator.appName == 'Netscape' ? true : false; 
	var height = NS ? window.innerHeight : document.body.clientHeight; 	
	var width = NS ? window.innerWidth : document.body.clientWidth;
	
	document.images['bigest'].src = src[0];			
	document.images['bigest'].style.display = 'block';	
	document.images['bigest'].style.top = (height - document.images['bigest'].height)/2 + 'px';
	document.images['bigest'].style.left = (width - document.images['bigest'].width)/2 + 'px';	
	*/	
}

function hideImage(el) {			
	el.style.display = 'none';
	el.src = '';
}

function printTableCell(n, td, w, cnt, rows) {										
	var cols = Math.floor(screen.width/w);
	
	//hack for single cells
	//for (var i = cols; i > 1; i--) { 		
	//	if (cnt%i == 0) {			
	//		cols = i;
	//		break;
	//	}
	//}
	
	if (!rows) rows = Math.ceil(cnt/cols);
		
	var col = (n - 1)%cols + 1;	
	var row = Math.ceil(n/cols);
		
	if (row <= rows) { 
		if (col == 1) document.write('<tr>');	
		document.write(td);	
		if (col == cols) document.write('</tr>');		
	}	
}
