function gebi(id)
{
	var elm = document.getElementById(id);
	if (elm)	return elm;
}

////////////////////
function doAjax(action, param) 
{
	if(param['isloading'] != false)IsLoading(true);
	param['action'] = action;
	if (param['backend_url']) var backend_url = param['backend_url'];
	else var backend_url = "/ajax.php";
	jQuery.ajax({
		type: "POST",
		url: backend_url,
		data: param,
		dataType: "json",
		success: function(response) 
		{
			if (response) 
			{
				if(param['isloading'] != false)IsLoading(false);
				
				if (!response.js.action) 
					debug_message('Invalid response');
				else 
				{
					if(response.text) 
						debug_message(response.text);
					var func = response.js['response_func'] || 'action_response';
					eval(func+'(response.js)');
				}
			}
		}
	});
}
function debug_message(message) 
{
	if (!message) return;
	alert(message);
}
function action_response(response) 
{
	var obj = jQuery('#'+response.dest_obj_id).html(response.text);
}
function action_eval_response(response) 
{
	eval(response.text);
}




////////////////////
function IsLoading(is_visible)
{
	var elm = gebi('loading');
	if(!elm)return;
	if(!is_visible)
	{
		elm.style.display = "none";
		return;
	}
	
   var top = window.screen.availHeight / 3;
   var width = window.screen.availWidth;
	top += window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop;
   width += window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft;
   elm.style.top = top + 'px';
   elm.style.left = width / 3 + 'px';
   elm.style.display = "block";
}
function ErrorCheck()
{
	var allert_message = "";
	var elm = document.forms['message'];
 	if(elm.elements['form[login]'])
 	{
 		if(!elm.elements['form[login]'].value)
  			allert_message += "<li>Нужно написать имя.</li>";
  		if(elm.elements['form[login]'].length > 25)
  			allert_message += "<li>Слишком длинное имя. Не больше 25 символов</li>";
  	}
 	if(elm.elements['form[text]'])
 	{
 		if(!elm.elements['form[text]'].value)
  			allert_message += "<li>Нужно написать текст сообщения.</li>";
  		if(elm.elements['form[text]'].length >= 255)
  			allert_message += "<li>Слишком длинный текст. Не больше 1000 символов</li>";
  	}
  	if(elm.elements['form[code]'] && !elm.elements['form[code]'].value)
  		allert_message += "<li>Нужно ввести код.</li>";


	if(!allert_message)elm.submit();
	else
	{
		var error = gebi('error');
		if(error)
		{
			error.style.display = 'block';
			error.innerHTML = '<ul>'+allert_message+'</ul>';
		} 
		
	}
}

function GetSearch()
{
	if(document.forms['search'].elements['q'].value.length < 2)
   {
   	alert("Нужно ввести текст для поиска больше 2 символов");
      return;
   }

   document.forms['search'].submit();
}

function pr(text, elm)
{
	var input;
	if(typeof(elm) == "undefined" || elm == null)
 		return '';

 	elm.focus();

 	if(elm.createTextRange)
 	{
  		document.selection.createRange().text += text;
 	}
 	else if(elm.setSelectionRange)
 	{
  		var len = elm.selectionEnd;
  		elm.value = elm.value.substr(0, len) + text + elm.value.substr(len);
  		elm.setSelectionRange(len + text.length, len + text.length);
 	}
 	else
 	{
  		elm.value += text;
 	}
}
function AnswerComment(id)
{
	var form = document.forms['message'];
	
	$('a[name=comment'+id+']').next().after($('#addcomment'));
	$('#close_addcomment').show('slow');
	
	form.elements['form[parent_id]'].value = id;
	form.elements['form[text]'].focus();
	
	$('#close_addcomment > a').click(function () {
		$('a[name=addcomment]').after($('#addcomment'));
		$('#close_addcomment').hide('slow');
		form.elements['form[text]'].focus();
		return false;
	});
}
// ограничение на ввод для поля по количеству символов
function max_length_elm(node, length)
{
	if(!node)return false;
	var elm = jQuery("[name='"+jQuery(node).attr('name')+"']");
	if(elm.val().length > length)
	{
		elm.val(elm.val().substring(0, length));
	}
}
// максимальное среди входных параметров
function max()
{
	var max = 0;
	for(var i = 0; i < arguments.length; i++)
		if(arguments[i] > max)
			max = arguments[i];
	return max;
}

// строка на ограничение поля на количество символов
function symbol_left(obj, name)
{
	var cobj = $('#'+name);
	if(!cobj)return;
	var l = obj.maxLength - obj.value.length;
	var s = 'символов';
	var o = l % 10;
	if(l < 10 || l > 20) 
	{
		if(o == 1)s = 'символ';
		else if(o >= 2 && o <= 4)s = 'символа';
	}
	cobj.text(l+' '+s);
}
// добавление варианта ответа в голосовании
function addVote()
{
	var l = $('input[name="form[vote_answer][]"]').length + 1;
	if (l > 15) return alert('Можно максимум 15 вариантов ответов');
	var node = $('input[name="form[vote_answer][]"]:last').parent();
	var elm = node.clone();
	$('input[name="form[vote_answer][]"]',elm).val('');
	if (l == 3) elm.append(' <input type="button" value="-" onclick="delVote(this)" class="button ui-corner-all" title="Удалить этот вариант" maxlength="50" />');
	elm.wrap('<span>');
	$('b',elm).html($('b',elm).html().replace('#'+(l - 1), '#'+l));
	node.after(elm);
}
// удаление варианта ответа в голосовании
function delVote(node)
{
	$(node).parent().remove();
	$('input[name="form[vote_answer][]"]').parent().each(function(index) {
		$('b',this).html('#'+(index + 1));
	});
}

jQuery('.blog img, #article img').ready(function(){

	// ресайз больших изображений
	var maxsize = (window.innerWidth != undefined ? window.innerWidth : document.body.clientWidth) / 1.85;
	jQuery('.blog img, #article img').each(function(){ 
		$img = jQuery(this);
		width = $img.attr('width');
		height = $img.attr('height');
		if (width > maxsize)
		{
			divisor = width / maxsize;
			width = width / divisor;
			height = height / divisor; 
			$img.attr('width', width);
			$img.attr('height', height);
			$img.wrap('<a href="'+$img.attr('src')+'" target="_blank"></a>');
		}
	}); 
});
