
function prepareRequest() {
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	http_request = new XMLHttpRequest();
	if (http_request.overrideMimeType) {
		// See note below about this line
	}
	} 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'); return false;
	}
	return http_request;
}


function decToHex(dec){
	var hexStr = "0123456789ABCDEF";
	var low = dec % 16;
	var high = (dec - low)/16;
	hex = "" + hexStr.charAt(high) + hexStr.charAt(low);
	return hex;
}
function kotUrlEncode(s) {
	n=s.length;
	tmpst='';
	for(i=0;i<n;i++){
		if((s.charCodeAt(i)>=1040)&&(s.charCodeAt(i)<=1103)){
			tmpst+='%'+decToHex(s.charCodeAt(i)-1040+192);
		}else if(s.charCodeAt(i)==1025){
			tmpst+='%'+decToHex(168);
		}else if(s.charCodeAt(i)==1105){
			tmpst+='%'+decToHex(184);
		}else if((s.charAt(i)=='%')||(s.charAt(i)=='&')||(s.charAt(i)=='+')||(s.charAt(i)=='?')){
			tmpst+='%'+decToHex(s.charCodeAt(i));
		}else{
			tmpst+=s.charAt(i);
		}
	}
	return tmpst;
}

var loadedtext='';
var time=0;
var lasttm=0;
var ua = navigator.userAgent;
isMSIE = (navigator.appName == "Microsoft Internet Explorer");
isMSIE5 = isMSIE && (ua.indexOf('MSIE 5') != -1);
isMSIE5_0 = isMSIE && (ua.indexOf('MSIE 5.0') != -1);
isGecko = ua.indexOf('Gecko') != -1;
isSafari = ua.indexOf('Safari') != -1;
isOpera = ua.indexOf('Opera') != -1;
isMac = ua.indexOf('Mac') != -1;
isNS7 = ua.indexOf('Netscape/7') != -1;
isNS71 = ua.indexOf('Netscape/7.1') != -1;
if(isMSIE){
	sp='<BR>';
}else{
	sp='<br>';
}
function changestate(http_request, prevDiv){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			prevDiv.innerHTML = http_request.responseText;
		} else {
			prevDiv.innerHTML = 'There was a problem with the request.';
		}
		//prevDiv.innerHTML=loadedtext;
	}
}

function myrequest(url, vars, req_values, htmlhref){
	var http_request = prepareRequest();
	prevDiv = document.getElementById(htmlhref);
	prevDiv.innerHTML = "...Идёт загрузка...";
	http_request.onreadystatechange = function() { changestate(http_request, prevDiv); }
	http_request.open('POST', url)
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=windows-1251');
	myreq='';
	for(i in vars){
		if(i>0){
			myreq+='&';
		}
		myreq+=vars[i]+'='+kotUrlEncode(req_values[i]);

	}
	http_request.send(myreq);
}

function changestate2(http_request, func){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			func(http_request.responseText);
		} else {
			func('not loaded');
		}
	}
}

function myrequest2(url, vars, req_values, func){
	var http_req = prepareRequest();
	http_req.onreadystatechange = function() { changestate2(http_req, func); }
	http_req.open('POST', url)
	http_req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
	myreq='';
	for(i in vars){
		if(i>0){
			myreq+='&';
		}
		myreq+=vars[i]+'='+kotUrlEncode(req_values[i]);

	}
	http_req.send(myreq);

}

function addEvent(o,ev,h){
	if(o.attachEvent){
		o.attachEvent('on'+ev,h);
	}else{
		o.addEventListener(ev,h,false);
	}
}

function addTime(){
	time++;
	document.getElementById('timeout').innerHTML=time+' '+lasttm;
}

function inners(str,subst){
	k=subst.length;
	n=str.length;
	tmpst='';
	rez=0;
	for(i=0;i<n;i++){

		if(i>k-1){
			tmpst=tmpst.substring(1,k);
		}
		tmpst=tmpst+str.charAt(i);
		//document.write(tmpst+' ')
		if(tmpst==subst){
			rez++;
		}
	}
	return rez;
}
