function AjaxGet(cgi,id,date) {
// met1^type1^text1|met2^type2^text2|met3^type3^text3... - структура серверного ответа для нескольких меток
	var cgi; 
	var id; 
	var date;
	var url=cgi+'?'+'id='+id+'&'+date;
	//alert('AjaxGet: '+url);
	//return;
	if (window.XMLHttpRequest) {
	req = new XMLHttpRequest();
	req.onreadystatechange = function(){
	  if (req.readyState == 4) {
		  var text=req.responseText;
//alert(text);
		  var Arr=text.split('|');
		  var len=Arr.length;
		  for (var i = 0; i < len; i++){
			var text=Arr[i];
			var Loc=text.split('^',3);
			var id=Loc[0];
			var type=Loc[1];
			var txt=Loc[2];
			txt=unescape(txt);
			//alert(text+'\n'+id);
			if(!id){
				id='error';
				alert('метка с ошибкой id='+id0+'\n двоеточие в серверном срипте указал?'+'\ntext='+text);
			}
			if(text.indexOf('Software error')>=0){
				alert(text);
			}
      
			if(!type){
				document.getElementById(id).innerHTML=txt;
			}else{
				//alert(txt);
				var a=document[type];
				if(a){
					a[id].value=txt;
				}else{
					alert('error: '+type);
				}	
					
			}
		  }
							  
	  }
	};
		req.open("GET", url, true);
		req.send(null);
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = ReqChange;
			req.open("GET", url, true);
			req.send();
		}
	}
}


