function makeHttpRequest(url, callback_function, return_xml)
{
    var http_request = false;

    //Пытаемся создать объект всеми доступными способами
    if (window.XMLHttpRequest)
      { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();

        //Для правильного отображения на русском языке
        if (http_request.overrideMimeType)
          {
              //http_request.overrideMimeType('text/xml');
              http_request.overrideMimeType('text/plain;charset=windows-1251');
          }
       }
    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('Unfortunatelly you browser does not support this feature: XMLHttpRequest');
        return false;
    }

    //Ждем изменения состояния на 200 ОК и передаем все вызывающей функции
    http_request.onreadystatechange = function()
     {
        if (http_request.readyState == 4)
        {
            //После || - условие для локальных адресов, там XMLHttpRequest возвращает status=0
            if (http_request.status == 200 || location.href.indexOf('http:')<0&&http_request.status==0)
             {
                if (return_xml)
                {
                    eval(callback_function + 'http_request.responseXML)');					
                }
                else
                {
                    //alert(http_request.responseText);
                    eval(callback_function + 'http_request.responseText);');
                    //eval("setInnerHtml('03101','123');");

                }
             }
            else
             {
                alert('There was a problem with the request.(Status: ' + http_request.status + ')');
             }
        }
     }

    //Открытие запроса
    http_request.open('GET', url, true);
    http_request.send(null);
}

//--------------------------------------------------------------------------------------------------------
//-----------Вызов индексатора (/risearch/spider.php проверяет дату /risearch/last_index.cfg)-------------
//--------------------------------------------------------------------------------------------------------
   //Для вызова нужно в _head.tpl прописать <script language="JavaScript" src="/image/common.js"></script>
   //var out_xml='';
   //makeHttpRequest("/risearch/spider.php", "alert(", out_xml);   
   //makeHttpRequest("/risearch/spider.php", "void(", out_xml);  
//--------------------------------------------------------------------------------------------------------   
//----------/Вызов индексатора (/risearch/spider.php проверяет дату /risearch/last_index.cfg)-------------
//--------------------------------------------------------------------------------------------------------
var summ = 0;
function buyLink(id)
{
	var el = document.getElementById('buy-link-'+id);
	if(el)
	{
		el.checked = true;
	}
	if(el.checked == true)
	{
		//Узнаем баланс
		var capital = document.getElementById('capital') ? document.getElementById('capital').value : 0;
		//Проверяем стоимость
		var el_id = el.id.substring(9, el.id.length);
		var price = document.getElementById('price-'+el_id) ? document.getElementById('price-'+el_id).value : 0;
		summ += price * 1;
		if(summ > capital)
		{
			el.checked = false;
			summ -= price * 1;
			alert('Недостаточно средств на счете!');
			return false;
		}
		else
			return true;
	}
	else
	{
		//Проверяем стоимость
		var el_id = el.id.substring(9, el.id.length);
		var price = document.getElementById('price-'+el_id) ? document.getElementById('price-'+el_id).value : 0;
		summ -= price * 1;
		return true;
	}
}

function checkBuy(obj)
{
	//Если отключили покупку ссылки - убираем галочку у "выбрать все"
	var el = document.getElementById('buy-all');
	if(obj.checked == false && el)
		el.checked = false;
	if(obj.checked == true)
	{
		//Узнаем баланс
		var capital = document.getElementById('capital') ? document.getElementById('capital').value : 0;
		//Проверяем стоимость
		var obj_id = obj.id.substring(9, obj.id.length);
		var price = document.getElementById('price-'+obj_id) ? document.getElementById('price-'+obj_id).value : 0;
		summ += price * 1;
		if(summ > capital)
		{
			obj.checked = false;
			summ -= price * 1;
			alert('Недостаточно средств на счете!');
			return false;
		}
	}
	else
	{
		//Проверяем стоимость
		var obj_id = obj.id.substring(9, obj.id.length);
		var price = document.getElementById('price-'+obj_id) ? document.getElementById('price-'+obj_id).value : 0;
		summ -= price * 1;
	}
}

function clickRow(id)
{
	var el = document.getElementById('pages-'+id);
	if(el.style.display == 'none')
		el.style.display = 'block';
	else
		el.style.display = 'none';
}

function buyAll()
{
	var table = document.getElementById('search-results');
	var el = document.getElementById('buy-all');
	activateBuyR(table, el.checked);
}

function checkAll(id)
{
	var obj = document.getElementById(id);
	var el = document.getElementById('check-all');
	checkR(obj, el.checked);
}

function activateBuyR(obj, checked)
{
	var children = obj.childNodes;
	var result = true;
	for (var i=0; i<children.length; i++)
	{
		if(children.item(i).tagName=='INPUT' && children.item(i).getAttribute('type')=='checkbox')
		{
			if(children.item(i).id != 'buy-all')
			{
				var obj_id = children.item(i).id.substring(9, children.item(i).id.length);
				if(!buyLink(obj_id))
				{
					document.getElementById('buy-all').checked = document.getElementById('buy-all').checked ? false : true;
					return false;
				}
			}
		}
		if(children.item(i).hasChildNodes)
		{
			result = activateBuyR(children.item(i), checked);
			if(result == false)
				return result;
		}
	}
	return result;
}

function checkR(obj, checked)
{
	var children = obj.childNodes;
	var result = true;
	for (var i=0; i<children.length; i++)
	{
		if(children.item(i).tagName=='INPUT' && children.item(i).getAttribute('type')=='checkbox')
		{
			if(children.item(i).id != 'check-all')
			{
				children.item(i).checked = document.getElementById('check-all').checked;
			}
		}
		if(children.item(i).hasChildNodes)
		{
			result = checkR(children.item(i), checked);
			if(result == false)
				return result;
		}
	}
	return result;
}

function confirmDelete($m) {
	
    var result = prompt($m + "\nЧтобы продолжить, введите слово \"delete\".", "");
	
	if (result != "delete") {
		if (result > "") {
			alert("Неверное слово! Нужно: \"delete\" (без кавычек).");
		}
	} else
		return true;
	
	return false;
}

function deleteLink(a, link) {
	
    var result = prompt("Введите причину удаления(отказа от размещения) ссылки", "");
	
	if(result)
	{
		a.href = link + '&delete_reason=' + result;
		return true;
	}
	else
		a.href = 'javascript:return false;';
}

var visible = 1;
var old = 0;
function changeScheme()
{
		var myEffect = new Fx.Morph('buy', {duration: 2000, transition: Fx.Transitions.linear.easeOut});
	if(visible == 1){
		myEffect.start({
			'opacity': 0
		});
		visible = 0;
	}
	else
	{
		myEffect.start({
			'opacity': 1
		});
		visible = 1;
	}

	setTimeout('changeScheme()', 7000);
}

function changeSearch(visible, obj)
{
	obj.className = 'simple-span';
	if(old)
		old.className = 'simple-link';
	old = obj;
	if(visible == 1){
		var myEffect = new Fx.Morph('simple-search', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
		myEffect.start({
			'height': 0,
			'width': 0
		});
		var myEffect1 = new Fx.Morph('ext-search', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
		myEffect1.start({
			'height': 400,
			'width': 840
		});
		var myEffect2 = new Fx.Morph('filters-list', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
		myEffect2.start({
			'height': 0,
			'width': 0
		});
	}
	else
	{
		if(visible == 2)
		{
			var myEffect = new Fx.Morph('simple-search', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			myEffect.start({
				'height': 0,
				'width': 0
			});
			var myEffect1 = new Fx.Morph('ext-search', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			myEffect1.start({
				'height': 0,
				'width': 0
			});
			var myEffect2 = new Fx.Morph('filters-list', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			myEffect2.start({
				'height': $('filters').getSize().y,
				'width': 840
			});
		}
		else
		{
			var myEffect = new Fx.Morph('simple-search', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			myEffect.start({
				'height': 180,
				'width': 840
			});
			var myEffect1 = new Fx.Morph('ext-search', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			myEffect1.start({
				'height': 0,
				'width': 0
			});
			var myEffect2 = new Fx.Morph('filters-list', {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			myEffect2.start({
				'height': 0,
				'width': 0
			});
		}
	}
}

function showInfo(type)
{
	if($('files-'+type).getSize().y == 0)
	{
		var myEffect1 = new Fx.Morph('files-'+type, {duration: 1000, transition: Fx.Transitions.Sine.easeOut});
		myEffect1.start({
			'height': [0, $('files-'+type+'-content').getSize().y]
		});
		var myEffect = new Fx.Morph('files-'+type, {duration: 1000, transition: Fx.Transitions.Sine.easeOut});
		myEffect.start({
			'opacity': 1
		});
	}
	else
	{
		var myEffect1 = new Fx.Morph('files-'+type, {duration: 1000, transition: Fx.Transitions.Sine.easeOut});
		myEffect1.start({
			'height': 0
		});
		var myEffect = new Fx.Morph('files-'+type, {duration: 1000, transition: Fx.Transitions.Sine.easeOut});
		myEffect.start({
			'opacity': 0
		});
	}
}

function showDetails(id)
{
	if($(id).getStyle('height').toInt() == 0)
	{
		var myEffect1 = new Fx.Morph(id, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
		myEffect1.start({
			'height': [0, $('details-'+id).getSize().y]
		});
	}
	else
	{
		var myEffect1 = new Fx.Morph(id, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
		myEffect1.start({
			'height': [$(id).getSize().y, 0]
		});
	}
}

var links = 1;
function addRows()
{
	var url_list = document.getElementById('project-url-list');
	var textb_list = document.getElementById('project-text-before-list');
	var text_list = document.getElementById('project-text-list');
	var texta_list = document.getElementById('project-text-after-list');
	if(url_list)
	{
		url_list.innerHTML = url_list.innerHTML + '<input type="text" name="project-url-' + (links + 1) + '" value=""><br>';
	}
	if(textb_list)
	{
		textb_list.innerHTML = textb_list.innerHTML + '<input type="text" name="project-text-before-' + (links + 1) + '" value=""><br>';
	}
	if(text_list)
	{
		text_list.innerHTML = text_list.innerHTML + '<input type="text" name="project-text-' + (links + 1) + '" value=""><br>';
	}
	if(texta_list)
	{
		texta_list.innerHTML = texta_list.innerHTML + '<input type="text" name="project-text-after-' + (links + 1) + '" value=""><br>';
	}
	links++;
}
/*
	За основу взят объект, написанный автором Sardar <Sardar@vingrad.ru>
*/
// Массив экземпляров объекта
var textAreaSelectionObjects = new Array();
// Получаем экземпляр объекта
function getTextAreaSelection(id) { // Получаем объект synhe
	if (typeof(textAreaSelectionObjects[id]) == "undefined") {
		textAreaSelectionObjects[id] = new textAreaSelectionHelper(id);
	}
	return textAreaSelectionObjects[id];
}
// Собственно объект, принимающий в качестве аргумента ID текстового поля
function textAreaSelectionHelper(id) {
	var obj = document.getElementById(id);
	this.target = obj;
	// Создаем свойства carretHandler для доступа к объекту в контексте узла
	// из обработчиков событий
	this.target.carretHandler = this;
	// Добавляем обработчик событий
	this.target.onchange = _textareaSaver;
	this.target.onclick = _textareaSaver;
	this.target.onkeyup = _textareaSaver;
	this.target.onfocus = _textareaSaver;
	if(!document.selection) this.target.onSelect = _textareaSaver;
	// Свойства для запоминания позиции выделения
	this.start=-1;
	this.end=-1;
	this.scroll=-1;
	this.iesel=null;
}
// В прототип записываем методы
textAreaSelectionHelper.prototype = {
	// Получим вделение
	getSelectedText : function() {
		return this.iesel? this.iesel.text: (this.start>=0&&this.end>this.start)? this.target.value.substring(this.start,this.end): "";
	},
	// Установим текстовые фрагменты до выделения - text
	// и после него, если нужно - secondtag
	setSelectedText : function(text, secondtag) {
		if (this.iesel) {
			if (typeof(secondtag) == "string") {
				var l = this.iesel.text.length;
				this.iesel.text = text + this.iesel.text + secondtag;
				this.iesel.moveEnd("character", -secondtag.length);
				this.iesel.moveStart("character", -l);   
			} else {
				this.iesel.text = text;
			}
			this.iesel.select();
		} else if (this.start >= 0 && this.end >= this.start) {
			var left = this.target.value.substring(0, this.start);
			var right = this.target.value.substr(this.end);
			var scont = this.target.value.substring(this.start, this.end);
			if (typeof(secondtag) == "string") {
				this.target.value = left + text + scont + secondtag + right;
				this.end = this.target.selectionEnd=this.start+text.length+scont.length;
				this.start = this.target.selectionStart = this.start + text.length;    
			} else {
				this.target.value = left + text + right;
				this.end = this.target.selectionEnd = this.start + text.length;
				this.start = this.target.selectionStart = this.start + text.length;
			}
			this.target.scrollTop = this.scroll;
			this.target.focus();
		} else {
			this.target.value += text + ((typeof(secondtag) == "string") ? secondtag: "");
			if (this.scroll >= 0) this.target.scrollTop = this.scroll;
		}
	},
	getText : function() {
		return this.target.value;
	},
	setText : function(text) {
		this.target.value = text;
	}
}
function _textareaSaver() {
	if(document.selection) {
		this.carretHandler.iesel = document.selection.createRange().duplicate();
	} else if(typeof(this.selectionStart) != "undefined") {
		this.carretHandler.start = this.selectionStart;
		this.carretHandler.end = this.selectionEnd;
		this.carretHandler.scroll = this.scrollTop;
	} else {
		this.carretHandler.start = this.carretHandler.end = -1;
	}
}

// Клиентские функции, хотя можно обойтись и без них
function setAnc(id) {
	getTextAreaSelection(id).setSelectedText('#a#', '#/a#\r\n');
}

function addText(id, text) {
	getTextAreaSelection(id).setSelectedText('', text+",");
}