// доделываем функцию escape
// Инициализируем таблицу перевода
var trans = [];
for (var i = 0x410; i <= 0x44F; i++)
trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё

// Сохраняем стандартную функцию escape()
var escapeOrig = window.escape;

// Переопределяем функцию escape()
window.escape = function(str){
	var ret = [];
	// Составляем массив кодов символов, попутно переводим кириллицу
	for(var i = 0; i < str.length; i++){
		var n = str.charCodeAt(i);
		if(typeof trans[n] != 'undefined')
			n = trans[n];
		if (n <= 0xFF)
			ret.push(n);
	}
	return escapeOrig(String.fromCharCode.apply(null, ret));
}



// ajax
function get_http(){
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5) try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch (e){
		try {
			xmlhttp = new
			ActiveXObject("Microsoft.XMLHTTP");
		}catch (E){
			xmlhttp = false;
		}
	}@else
		xmlhttp = false;
	@end @*/
	if(!xmlhttp && typeof XMLHttpRequest != 'undefined'){
		try{
			xmlhttp = new XMLHttpRequest();
		}catch (e){
			xmlhttp = false;
		}
	}
	return xmlhttp;
}


var http_num=0;
this.http=new Array();

function ajax_lookup(url, result_function){
	// Получаем объект XMLHTTPRequest
	http_num++;
	if(!this.http[http_num]) this.http[http_num] = get_http();

	// Запрос
	if (this.http[http_num]){
		var http = this.http[http_num];
		url = url + '&hash=' + Math.random();

		this.http[http_num].open("GET", url, true);
		this.http[http_num].onreadystatechange = function(){
                         if(http.readyState == 4){
				//process_result(http.responseText);
				result_function(http.responseText);
			}
		}
		this.http[http_num].send(null);
	}
	if(!this.http[http_num]) alert('Error creating XMLHTTP object!');
}

//end ajax

//------------------------------------------------------------------------------

// аналог in_array() из PHP
function in_array(needle, haystack){
	var res = false;
	var nn;
	for(nn in haystack) if(haystack[nn] == needle) res = true;
	return res;
}

// добавляет обработчик события для объекта
function add_handler(object, event, handler, useCapture){
	if (object.addEventListener)
		object.addEventListener(event, handler, useCapture ? useCapture : false);
	else if (object.attachEvent)
		object.attachEvent('on' + event, handler);
	else object['on' + event] = handler;
}

// обновляется капча на странице с формой
function recapcha(){
	document.getElementById('capcha_pic').src = '/capcha.php?' + Math.random();
}




// Для логин-блока
//------------------------------------------------------------------------------

var login_block;

function set_pos_login_block(){
	w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
	left = Math.round((w - 221) / 2);
	login_block.style.left = left + 'px';
}

function show_login_block(){
	login_block.style.display = 'block';
}

function hide_login_block(){
	login_block.style.display = 'none';
}





// Для блока капчи
//------------------------------------------------------------------------------

var capcha_block;

function capcha_show(){
	capcha_block.style.display = 'block';
}




// Для блока выбора аватара
//------------------------------------------------------------------------------

var avatar_block;

function avatar_show(){
	avatar_block.style.display = 'block';
}

function avatar_close(){
	avatar_block.style.display = 'none';
}

function select_av(num){
	for(var i = 1; i <= 10; i++)
    	document.getElementById('av' + i).className = i == num ? 'sel' : '';

	document.getElementById('basic_avatar').value = num;
	avatar_close();
}




// ------ DRAG AND DROP ---------
var dnd_flag = false;
var dnd_shift_x;
var dnd_shift_y;

function dnd_start_drag(itemToMove, e){
	if(!e) e = window.event;
	dnd_flag = true;
         dnd_shift_x = e.clientX - parseInt(itemToMove.offsetLeft);
	dnd_shift_y = e.clientY - parseInt(itemToMove.offsetTop);

	if(e.stopPropagation) e.stopPropagation();
	else e.cancelBubble = true;
	if(e.preventDefault) e.preventDefault();
	else e.returnValue = false;
}

function dnd_end_drag(){dnd_flag=false;}

function dnd_drag_it(itemToMove, e){
	if(!dnd_flag) return;
	if(!e) e = window.event;
	itemToMove.style.left = (e.clientX - dnd_shift_x) + 'px';
	itemToMove.style.top = (e.clientY - dnd_shift_y) + 'px';

	if(e.stopPropagation) e.stopPropagation();
	else e.cancelBubble = true;
	if(e.preventDefault) e.preventDefault();
	else e.returnValue = false;
}












//------------------
// плавно увеливает высоту блока
var slow_show_step		= 30;		// шаг увеличени я
var slow_show_interval	= 20;	// задержка между шагами
function slow_show(obj, cur_h, max_h){
	var new_h = cur_h + slow_show_step;
	var stop = false;
	if(new_h > max_h){new_h = max_h; stop = true;}

	obj.style.height = new_h + 'px';

	if(!stop) setTimeout(function(){slow_show(obj, new_h, max_h)}, slow_show_interval);
}



function updateBanners($id)
 {

 var url = '/ajax.php?type=update&id=' + $id + '&r='+Math.random();
   if (window.XMLHttpRequest)
 {
  request = new XMLHttpRequest();
  request.open("GET", url, true);
  request.onreadystatechange = updatePage;
  request.send(''); //request.send(null);
 }
 else if (window.ActiveXObject)
 {
  request = new ActiveXObject("Microsoft.XMLHTTP");
  if (request)
  {
   request.onreadystatechange = updatePage;
   request.open("GET", url, true);
   request.send();
  }
 }
}


function clickBanner($id)
 {
 var url = '/ajax.php?type=click&id=' + $id + '&r='+Math.random();
   if (window.XMLHttpRequest)
 {
  request = new XMLHttpRequest();
  request.open("GET", url, true);
  request.onreadystatechange = updatePage;
  request.send(''); //request.send(null);
 }
 else if (window.ActiveXObject)
 {
  request = new ActiveXObject("Microsoft.XMLHTTP");
  if (request)
  {
   request.onreadystatechange = updatePage;
   request.open("GET", url, true);
   request.send();
  }
 }
}

function updatePage() {
     if (request.readyState == 4)
       if (request.status == 200)
  {
   return true;
  }
       else if (request.status == 404)
     $vir=0
       else $x=1;
   }
