function site_search() {
	var x;
	if (document.getElementById('sstr')) {
		x=trim(document.getElementById('sstr').value);
		if (x.length<3) {
			alert('Поисковый запрос не может содержать меньше трёх символов');
		} else {
			window.location.href='/search/?'+x;
		}
	}
}

function trim(s) { return s.replace(/(^\s+)|(\s+$)/g,''); }

function drop_from_compare(good_id) {
	var x,pids;
	x=getCookie('solbe_compare');
	pids=x.split(',');
	for (var i=0;i<pids.length;i++) {
		if (pids[i]==good_id) { pids.splice(i,1); }
	}
	sc('solbe_compare',pids.join(','),1);
}

function add_to_compare(good_id,good_title) {
	var x,alr;
	num_pos=0;alr=0;
	x=getCookie('solbe_compare');
	if (x==null) {
		sc('solbe_compare',good_id,0);
		alert('Наименование \''+good_title+'\' успешно добавлено в сравнение');
	} else {
		var pids=x.split(',');
		if (pids.length>20) {
			alert('В сравнение нельзя добавлять более 20 позиций одновременно');
		} else {
			for (var i=0;i<pids.length;i++) {
				if (pids[i]==good_id) {
					alert('Наименование \''+good_title+'\' уже есть в сравнении'); alr=1; break;
				}
			}
			if (alr==0) {
				sc('solbe_compare',x+','+good_id,0);
				alert('Наименование \''+good_title+'\' успешно добавлено в сравнение');
			}
		}
	}
	fill_compare_block();
}

function add_to_basket(good_id,good_title,good_cost) {
	var x,alr;
	num_pos=0;alr=0;
	x=getCookie('solbe_basket');
	if (x==null) {
		sc('solbe_basket',good_id+'x'+good_cost+'x1',0);
		alert('Наименование \''+good_title+'\' успешно добавлено в корзину');
	} else {
		var pids=x.split('x');
		for (var i=0;i<pids.length;i+=3) {
			if (pids[i]==good_id) {
				alert('Наименование \''+good_title+'\' уже есть в корзине. Изменить количество можно при оформлении заказа'); alr=1; break;
			}
		}
		if (alr==0) {
			sc('solbe_basket',x+'x'+good_id+'x'+good_cost+'x1',0);
			alert('Наименование \''+good_title+'\' успешно добавлено в корзину');
		}
	}
	fill_basket_block();
}

function fill_blocks() {
	fill_basket_block();
	fill_compare_block();
}

function fill_compare_block() {
	var x,nf,txt;
	x=getCookie('solbe_compare');
	if (x==null) {
		num_pos=0;
	} else {
		var pids=x.split(','); num_pos=pids.length;
	}
	if (num_pos==0) {
		txt='В сравнении ничего нет';
	} else {
		txt='Товаров в сравнении: '+num_pos+'<br><a href=/compare/><b>Сравнить</b></a><br>'+
		'<a onclick=clear_compare();>Очистить сравнение</a>';
	}
	if (document.getElementById('compare_block')) {
		document.getElementById('compare_block').innerHTML=txt;
	}
}

function fill_basket_block() {
	var x,nf,txt,cst;
	var cst=0;
	x=getCookie('solbe_basket');
	if (x==null) {
		num_pos=0;
	} else {
		var pids=x.split('x'); num_pos=pids.length/3;
		for (var i=0;i<pids.length;i+=3) {
			cst=cst+pids[i+1]*pids[i+2];
		}
	}
	if (num_pos==0) {
		txt='Корзина пуста';
	} else {
		txt='Наименований:&nbsp; <b class=q>'+num_pos+'</b><br>На сумму: <b class=s>'+number_format(cst,2,'.',' ')+' р.</b>';
	}
	if (document.getElementById('basket')) {
		if (document.getElementById('basket_ids')) {
			/*document.getElementById('basket').innerHTML='<span style=font-size:36pt;>&larr;</span>';*/
			document.getElementById('basket_block').style.display='none';
		} else {
			document.getElementById('basket').innerHTML=txt;
		}
	}
}

function clear_basket() {
	if (confirm('Вы уверены, что хотите удалить все товары из корзины?')) {
		sc('solbe_basket','',0);
		if (document.getElementById('basket')) {
			document.getElementById('basket').innerHTML='Корзина пуста';
		}
	}
}

function clear_compare() {
	if (confirm('Вы уверены, что хотите удалить все товары из сравнения?')) {
		sc('solbe_compare','',0);fill_compare_block();
	}
}

function drop_basket_pid(pid) {
	var x,nc;
	nc='';
	x=getCookie('solbe_basket');
	if (x!=null && confirm('Вы уверены, что хотите убрать данную позицию из своей корзины?')) {
		var pids=x.split('x');
		for (var i=0;i<pids.length;i+=3) {
			if (pids[i]!=pid) {
				if (nc!='') { nc=nc+'x'; }
				nc=nc+pids[i]+'x'+pids[i+1]+'x'+pids[i+2];
			}
		}
		sc('solbe_basket',nc,1);
	} else {
		return false;
	}
}

function basket_change_quant(pid,quant) {
	var x,nc;
	quant=quant.replace(',','.');
	if (document.getElementById('quant_'+pid)) {
		document.getElementById('quant_'+pid).value=quant;
	}
	if (isNaN(quant) || quant<=0) { 
		if (drop_basket_pid(pid)==false) {
			x=getCookie('solbe_basket');
			var pids=x.split('x');
			for (var i=0;i<pids.length;i+=3) {
				if (pids[i]==pid) {
					document.getElementById('quant_'+pid).value=number_format(pids[i+2],2,'.','');	
					break;					
				}
			}
		}
	} else {
		x=getCookie('solbe_basket');nc='';
		var pids=x.split('x');
		for (var i=0;i<pids.length;i+=3) {
			if (pids[i]==pid) {	
				pids[i+2]=number_format(quant,2,'.','');
			}
			if (nc!='') { nc=nc+'x'; }
			nc=nc+pids[i]+'x'+pids[i+1]+'x'+pids[i+2];
		}
		sc('solbe_basket',nc,0);
	}
	basket_sum();
}

function basket_sum() {
	var ids,sum,sm_temp;
	if (document.getElementById('basket_ids')) {
		sum=0;
		ids=document.getElementById('basket_ids').value;
		var id=ids.split(',');
		for (var i=0;i<id.length;i++) {
			sm_temp=document.getElementById('cost_'+id[i]).innerHTML*document.getElementById('quant_'+id[i]).value;
			document.getElementById('sum_'+id[i]).innerHTML=number_format(sm_temp,2,'.','');
			sum+=sm_temp;
		}
		document.getElementById('total_sum').innerHTML=number_format(sum,2,'.','');
	}
}

function check_reg_form() {
	err=new Array();cnt=0;
	if (document.getElementById('n').value.length==0) {
		err[cnt++]=' - Не указано имя пользователя';
	}
	if (document.getElementById('p').value.length<10) {
		err[cnt++]=' - Не введён либо неверно введён номер телефона';
	}
	if (document.getElementById('e').value.length<6) {
		err[cnt++]=' - Не указан либо неверно указан адрес электронной почты';
	}
	if (err.length!=0) {
		alert('Форма не может быть отправлена, т.к. обнаружены следующие ошибки:\n'+err.join('\n'));
		return false;
	} else {
		return true;
	}
}

function setCookie(name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function sc(cookie_name,cookie_value,is_page_refresh) {
	if (cookie_value=='') {
		setCookie(cookie_name,"","Mon, 01-Jan-2005 12:00:00 GMT","/");
	} else {
		setCookie(cookie_name,cookie_value,"Mon, 01-Jan-2020 12:00:00 GMT","/");
	}
	if (is_page_refresh && is_page_refresh==1) { window.location.reload(true); }
}

function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;

    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}
