var vobj, _curid="", vh="hidden", vv="visible";

function makeRequest(oper, _param, _newid) {
	var http_request=false, _obj1, _obj2, url="", vl=document.getElementById('loader');
	switch (oper) {
		// Поиск по коду детали
		case "scode": {
			_obj1=document.getElementsByName('mcode')[0]; if (!(_obj1.value) && !(_param)) break;
			_curid=""; document.getElementById('vauto').innerHTML=""; document.getElementById('vcross').innerHTML=""; document.getElementById('vuseauto').innerHTML="";
			document.getElementById('wcross').style.width="30%";
			vobj=document.getElementById('vcode');
			if (_param) _obj1.value=_param; url="?query="+oper+"&code="+_obj1.value;
			break;
		}
		case "scross": {
			if (!_param) break;
			vobj=document.getElementById('vcross');
			if (_curid!=_newid) document.getElementById('vuseauto').innerHTML=""; else if (vobj.innerHTML!="") break;
			lineSelected(_newid); _curid=_newid; url="?query="+oper+"&"+_param;
			break;
		}
		case "suseauto": {
			if (!_param) break;
			vobj=document.getElementById('vuseauto');
			if (_curid!=_newid) document.getElementById('vcross').innerHTML=""; else if (vobj.innerHTML!="") break;
			lineSelected(_newid); _curid=_newid; url="?query="+oper+"&"+_param;
			break;
		}
		case "sautoinfo": {
			if (!_param) break;
			vobj=document.getElementById('vFrame');
			url="?query="+oper+"&idtyp="+_param;
			break;
		}
		// Поиск по модели
		case "smodel": {
			_curid=""; document.getElementById('vauto').innerHTML=""; document.getElementById('vcode').innerHTML=""; document.getElementById('vcross').innerHTML=""; document.getElementById('vuseauto').innerHTML="";
			_obj1=document.getElementsByName("mbrand")[0]; _obj2=document.getElementsByName("myear")[0];
			if (_obj1.options[_obj1.selectedIndex].value==0) break;
			vobj=document.getElementById('vmodel');
			url="?query="+oper+"&brand="+_obj1.options[_obj1.selectedIndex].value+"&year="+_obj2.options[_obj2.selectedIndex].value;
			break;
		}
		case "sauto": {
			document.getElementById('vcode').innerHTML=""; document.getElementById('vcross').innerHTML=""; document.getElementById('vuseauto').innerHTML="";
			_obj1=document.getElementsByName("mmodel")[0]; _obj2=document.getElementsByName("myear")[0];
			if (_obj1.options[_obj1.selectedIndex].value==0) break;
			document.getElementById('wcross').style.width="50%";
			vobj=document.getElementById('vauto');
			url="?query="+oper+"&idmod="+_obj1.options[_obj1.selectedIndex].value+"&year="+_obj2.options[_obj2.selectedIndex].value;
			break;
		}
		case "streespare": {
			vobj=document.getElementById('vcode');
			if (_curid!=_newid) document.getElementById('vcross').innerHTML=""; else if (vobj.innerHTML!="") break;
			lineSelected(_newid); _curid=_newid; url="?query="+oper;
			break;
		}
		case "sspare": {
			if (!_param) break;
			vobj=document.getElementById('vcross');
			url="?query="+oper+"&idtyp="+_param+"&idauto="+_curid;
			break;
		}
	}
	if (url) {
		if (window.XMLHttpRequest) { // Mozilla, Safari, ...
			vl.style.visibility=vv;
			http_request=new XMLHttpRequest();
			if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
		} else if (window.ActiveXObject) { // IE
			try {http_request = new ActiveXObject("Msxml2.XMLHTTP");}
			catch (e) {try {http_request = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {} }
		}
		if (!http_request) {alert('Ошибка создания класса XMLHTTP !'); vl.style.visibility=vh; return false;}
		http_request.onreadystatechange=function() {ShowContents(http_request);};
		http_request.open('GET', "query.php"+url, true);
		http_request.send(null);
	}
}

function ShowContents(http_request) {
	if (http_request.readyState==4) if (http_request.status==200) {vobj.innerHTML=http_request.responseText; document.getElementById('loader').style.visibility=vh;} else {alert('С запросом возникла проблема.'); document.getElementById('loader').style.visibility=vh;};
	
}

function lineSelected(_nobj) {
	var _obj=null;
	if (_curid) {_obj=document.getElementById(_curid); if (_obj) _obj.style.background="#78808f";}
	_obj=document.getElementById(_nobj); if (_obj) _obj.style.background="#89A893";
}

function ShowAutoInfo(_tid) {
	makeRequest('sautoinfo', _tid, '');
	var py, px, ppy, ppx, _upFrame=document.getElementById('upFrame'), _vFrame=document.getElementById('vFrame');
	ppx=(window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth))+document.body.scrollLeft;
	ppy=(window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight))+document.body.scrollTop; //-_vImg.offsetHeight-4
	px=document.body.scrollLeft+(ppx-_upFrame.offsetWidth)/2; py=document.body.scrollTop+parseInt(ppy-document.body.scrollTop-(_upFrame.offsetHeight+48))/2;
	if (py>ppy) py=(ppy>0)?ppy:py; if (px>ppx) px=(ppx>0)?ppx:px;
	py=((py-document.body.scrollTop)<0)?0:py; px=((px-document.body.scrollLeft)<0)?0:px;
	_upFrame.style.top=py+'px'; _upFrame.style.left=px+'px';
	_upFrame.style.visibility='visible';
}

function TreeShow(pb, nb) {
	var vt, elu=document.getElementById(pb), el=document.getElementById(nb);
	if (el.style.display=='none') {vt='block'; elu.innerHTML='[–]';} else {vt='none'; elu.innerHTML='[+]';};
	el.style.display=vt;
}

function SpareShow(_code) {
	makeRequest('sspare', _code, '');
}

function UlShow(eul) {
	var el=document.getElementById(eul);
	if (el.id!='n0') {
		TreeShow(el.parentNode.childNodes[0].id, eul);
		UlShow(el.parentNode.parentNode.id);
	}
}

function SelectShow(pb) {
	var el=document.getElementById(pb);
	el.style.fontWeight="bold";
	UlShow(el.parentNode.id);
}

function GetEmail() {
	document.write('a'+'l'+'t'+'e'+'c'+'@'+'a'+'s'+'p'+'a'+'r'+'e'+'.'+'r'+'u');
}

function calcTop(x_ele) {
	var x_ret=0; var oParent=x_ele.offsetParent;
	if (oParent==null) return 0; else x_ret=x_ele.offsetTop+calcTop(oParent);
	return x_ret;
}

function calcLeft(x_ele) {
	var x_ret=0; var oParent=x_ele.offsetParent;
	if (oParent==null) return 0; else x_ret=x_ele.offsetLeft+calcLeft(oParent);
	return x_ret;
}


