//----- для ajax
function getHTTPObject() {
	var isDOM = document.getElementById;
	var isO   = isO5 = window.opera && isDOM;
	var isIE  = document.all && document.all.item && !isO;
	var isIE5 = isIE && isDOM;
	try {
		var control = (isIE5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
		xmlhttp = new ActiveXObject(control);
	} catch (e) {
		xmlhttp = false;
	}
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp = null;
		}
	}
	return xmlhttp;
}

//----- скрытие элементов
function mdn(oEvent){
	//var node = window.event ? window.event.srcElement : oEvent.currentTarget; � FF �� �����
	var node = window.event ? window.event.srcElement : oEvent.target;
	if(node){
		var closeArray = new Array ('catalogOptions');
		for (var item in closeArray){
			var closeElement = document.getElementById(closeArray[item]);
			if(closeElement && closeElement.style.display == 'block'){
				var el = node;
				for (; el != null && el != closeElement; el = el.parentNode);
				if (el == null) {
					closeElement.style.display = 'none';
				}
			}
		}
	}
}

//----- псевдоселект каталога
function showOptions(){
	_loadCatalogOptions();
	var ss = document.getElementById('catalogOptions');
	if(ss.style.display == 'none'){
		ss.style.display = 'block';
	}else{
		ss.style.display = 'none';
	}
}

function _loadCatalogOptions(){
	var ss = document.getElementById('catalogOptions');
	if(ss.innerHTML == ''){
		var xmlhttp = getHTTPObject();
		var mydate = new Date();
		xmlhttp.open("GET", "/menu.p3?uniq=" + mydate.valueOf(), false); // синхронно, чтобы 100% подгрузилось
		xmlhttp.send(null);
		ss.innerHTML = xmlhttp.responseText;
	}
}

//----- переход
function goto(adr){
	document.location.href = '/catalog/' + adr + '/';
}

//----- загрузка корзины при входе на сайт
function getbasket(){
	var xmlhttp = getHTTPObject();
	var mydate = new Date();
	xmlhttp.open("GET", "/basket/get.p3?uniq=" + mydate.valueOf(), true);
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
				var bc = document.getElementById('basketContent');
				if(bc){
					bc.innerHTML = xmlhttp.responseText;
				}
			}
		}
	}
	xmlhttp.send(null);
}

//----- покупка товара
function buy(id){
	document.location.href = '/order/?id=' + id;
}

//----- положение в корзину
function put(id,rel){
	act(id,rel,'add');
}

//----- вынимание из корзины
function sub(id){
	act(id,true,'sub');
}

//----- удаление из корзины
function del(id){
	act(id,true,'del');
}

function act(id,rel,typ){
	var xmlhttp = getHTTPObject();
	var mydate = new Date();
	var addr = "/basket/action.p3?uniq=" + mydate.valueOf() + "&id=" + id;
	var quantity = 1;
	var q = document.getElementById('amount_' + id);
	if(q && parseInt(q.value) > 0){
		quantity = q.value;
	}
	if(typ == 'sub'){
		quantity = quantity * -1;
	}
	if(typ == 'del'){
		quantity = 0;
	}
	//alert(addr + "&q=" + quantity);
	xmlhttp.open("GET", addr + "&q=" + quantity, true);
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
				if(rel){
					document.location.reload();
				}else{
					alert(xmlhttp.responseText);
					window.setTimeout(getbasket, 300);
				}
			}
		}
	}
	xmlhttp.send(null);
}

//----- пересчет суммы заказа одного товара при изменении количества (пока не нужен)
function recalcSumm(o){
	var q = parseInt(o.value);
	if(!(q > 0)){
		q = 1;
		o.value = '1';
	}
	var priceTd = document.getElementById('priceTd');
	var sumTd = document.getElementById('sumTd');
	if(q > 1){
		var moneys = q * parseFloat(priceTd.innerHTML);
		if (moneys.toFixed){
			moneys = moneys.toFixed(2);
		}else{
			moneys = Math.ceil(moneys * 100)/100;
		}
		sumTd.innerHTML = addCommas(moneys);
	}else{
		sumTd.innerHTML = priceTd.innerHTML;
	}
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

//----- вывод текущего пункта в комбобоксе разделов слева
var currentSec = ''; // переопределяется в шаблоне разбора пути к разделу
function cursect(){
	_loadCatalogOptions();
	var a = document.getElementById('s' + currentSec);
	if(a){
		a.style.color = 'black';
		var txt = a.innerHTML.replace(/^\s?-\s?/g,'');
		var s = document.getElementById('defsel');
		if(txt.length > 30){
			txt = txt.substr(0,25);
			txt = txt + "...";
		}
		s.innerHTML = txt;
	}
}

//----- ставим куки сортировки и обновляем страницу
function setSort(sortName,sortOrder){
	setDocumentCookie(document, 'sort', sortName);
	setDocumentCookie(document, 'order', sortOrder);
	document.location.reload();
}

function setDocumentCookie(oDoc, sName, sValue, toMs){
	if ( sName.length < 1 )
		return;
	if ( sValue.length > 0 ){
		var expDate = new Date();
		if(!toMs) var toMs = 365*24*60*60*1000;
		expDate.setTime(expDate.getTime() + toMs);
		oDoc.cookie = sName + "=" + escape(sValue) + "; expires=" + expDate.toGMTString() + "; path=/;";
	} else {
		oDoc.cookie = sName + "=";
	}
}

//----- очистка первоначального значения
function clearInput(inp, txt){
	if(inp.value == txt){
		inp.value = '';
	}
}
function setDefVal(inp, txt){
	if(inp.value == ''){
		inp.value = txt;
	}
}
