// heelow, medved!
function $(n){return document.getElementById(n)}
function $c(n){return document.createElement(n)}
function ae(o,e,f) {
	o.addEventListener?o.addEventListener(e,f,false):o.attachEvent("on"+e,f);
}
function getTransport(){
	var req=null;
	if(window.XMLHttpRequest){
		try {
			req=new XMLHttpRequest();
		}catch (e){}
	} else if (window.ActiveXObject){
		try {
			req=new ActiveXObject('Msxml2.XMLHTTP');
		} catch(e){
			try {
				req=new ActiveXObject('Microsoft.XMLHTTP');
			}catch(e){}
		}
	}
	return req;
}


function ajax_request(url, callback,dt) {
		var req=getTransport();
		req.onreadystatechange = function() {
			if(req.readyState==4) {
				var status='';
				try {
					status = req.status;
				}
				catch(e) {
					status="сервер не доступен";
				}
				if(status == 403) {
					alert('Время сессии истекло');
					window.location = '/';
				}
				else
				callback(status == 200?req.responseText:"<div style='font-size:1.3em;color:red;margin:3em 0'>Ошибка при исполнии запроса ("+status+")</div>");
				req.abort();
				req=null;
			}
		}
		req.open(dt?'POST':'GET', url, true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=windows-1251");
		req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
		req.send(dt?dt:null);
}
/*

	Работа с куками
	del - bool. если не null, то удаляем куку
*/
function setCookie(c_name,value, del) {
	var dt = new Date();
	dt.setFullYear(dt.getFullYear()+(del?-1:1));// храним куку 1 год :)
	document.cookie = c_name+ "=" +escape(value)+";path=/;expires="+dt.toGMTString();
}

function getCookie(c_name) {
	var dc = document.cookie;
	var c_start=dc.indexOf(c_name + "=");
	if (c_start!=-1) { 
		c_start += c_name.length+1; 
		var c_end = dc.indexOf(";",c_start);
		if (c_end == -1) c_end = dc.length;
		return unescape(dc.substring(c_start,c_end));
	}
	return null;
}