function ZoomIn(obj)
{	
	document.getElementById(obj).width = 209;
	document.getElementById(obj).height = 60;
	return false;
}
function ZoomOut(obj)
{	
	document.getElementById(obj).width = 203;
	document.getElementById(obj).height = 58;
	return false;
}
function check(str)
{
	var val;  
	val = parseInt(str);
	return !((isNaN(val)) || (val != str) || (val <= 0));
}

function GoToQuestion(q_edit_name)
{
	if (q_edit_name == "") { q_edit_name = "go_to_qid"; }
	var qid = new String(document.getElementById(q_edit_name).value);
	if (qid == "")
		window.alert("Пожалуйста, введите номер вопроса.");
	else
	{
		var qid_ok = new Boolean(true);
		qid_ok = check(qid);
		if (qid_ok)
			document.location.href = 'http://expert.delphi.int.ru/question/'+qid+'/';
		else
			window.alert("Номер вопроса может содержать только цифры.");
	}
	return false;
}
function NewWindow(url,width,height,left,top)
{
	newWnd = window.open(url, 'NewWindow', 'height='+height+',width='+width+',left='+left+',top='+top+',resizable=yes,scrollbars=yes,status=yes');
	newWnd.focus();
	return false;
}
function QuestionAddFlash(state,elem_id)
{
	if (state == 0) { document.getElementById(elem_id).style.border = "dashed 1px #C00"; }
	else if (state == 1) { document.getElementById(elem_id).style.border = "dotted 1px #D00"; }
	if (state == 0) { var new_state = 1; } else { var new_state = 0; }
	if (document.getElementById(elem_id).lang == 99) setTimeout("QuestionAddFlash("+new_state+",'"+elem_id+"')",600);
	else document.getElementById(elem_id).style.border = "";
}
function QuestionTextChange(text_elem_id,hint_elem_id,hint_elem_id_2,add_elem_id)
{
	var text = new String(document.getElementById(text_elem_id).value);
	var rus_str = new String("абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ");
	var eng_str = new String("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
	var len = text.length;
	var rus = 0;
	var eng = 0;
	var hint = new String;
	if (len < 1024)
	{
		for (i = 0; i < len; i++)
		{
			if (eng_str.indexOf(text[i]) >= 0) { eng++; }
			else if (rus_str.indexOf(text[i]) >= 0) { rus++; }
		}
	}
	
	if (len >= 1024) { hint = '<strong>Совет:</strong> текст вопроса довольно большой. Если он содержит фрагменты кода, их лучше перенести в приложение.'; }
	else if ((eng*2 >= len) && (len >= 25)) { hint = '<strong>Совет:</strong> в тексте вопроса соотношение русских и латинских букв довольно ощутимо.<br />Если вопрос содержит фрагменты кода, их лучше перенести в приложение.'; }
	else { hint = ''; }
	if (hint != '')
	{
		document.getElementById(hint_elem_id_2).style.display = "";
		document.getElementById(hint_elem_id).innerHTML = hint;
		if (document.getElementById(add_elem_id).lang != 99)
		{
			document.getElementById(add_elem_id).lang = 99;
			QuestionAddFlash(0,add_elem_id);
		}
	}
	else
	{
		document.getElementById(hint_elem_id_2).style.display = "none";
		document.getElementById(add_elem_id).lang = 0;
	}
	return false;
}
function GoToURL(url)
{
	this.location.href = url;
	return false;
}
function ToggleBlock(id)
{
	var el = document.getElementById(id);
	if (el.style.display == "none")
		el.style.display = "";
	else
		el.style.display = "none";
}


// ****************** Operative Info Block ******************
var layer_image_offset_x = -8;
var layer_image_offset_y = -4;
var ie = document.all;
var maxIndex = 99;
var dragInfo = new drag();
var operative_info_block_loaded = false;
function drag()
{
	this.id = false;
	this.oldIndex = 0;
	this.kx = 0;
	this.ky = 0;
}
function setDrag(obj)
{
	obj.onmousedown = mouseDown;
	obj.style.position = 'absolute';
	obj.style.zIndex = maxIndex++;
}
function mouseDown(e)
{
	if (dragInfo.id) document.getElementById(dragInfo.id).style.zIndex=dragInfo.oldIndex;
	dragInfo.id=ie?window.event.srcElement.id:e.target.id;
	dragInfo.kx=parseInt(document.getElementById(dragInfo.id).style.left)-(ie?event.clientX:e.clientX);
	dragInfo.ky=parseInt(document.getElementById(dragInfo.id).style.top)-(ie?event.clientY:e.clientY);
	dragInfo.oldIndex=document.getElementById(dragInfo.id).style.zIndex;
	document.getElementById(dragInfo.id).style.zIndex=maxIndex;
	document.onmousemove=mouseMove;
	document.onmouseup=mouseUp;
	return false;
}
function mouseMove(e)
{
	var x = dragInfo.kx + (ie?event.clientX:e.clientX);
	var y = dragInfo.ky + (ie?event.clientY:e.clientY);
	if (x < 0) x=0;
	if (y < 0) y=0;
	document.getElementById(dragInfo.id).style.left = x;
	document.getElementById(dragInfo.id).style.top = y;
    
	var t1 = (document.getElementById("operative_info_block_move_image").style.left).toString();
	var t2 = (document.getElementById("operative_info_block_move_image").style.top).toString();
	var t3 = t1.slice(0,t1.length-2);
	var t4 = t2.slice(0,t2.length-2);

	document.getElementById("OperativeInfoBlock").style.left = (Number(t3) + layer_image_offset_x) + "px";
	document.getElementById("OperativeInfoBlock").style.top = (Number(t4) + layer_image_offset_y) + "px";
	return false;
}
function mouseUp(e)
{
	document.onmousemove=null;
	document.onmouseup=null;
	return false;
}
function SwitchOperativeInfoPage(new_page)
{
	var for_questions = 'none';
	var for_answers = 'none';
	var for_miniforums = 'none';
	if (new_page == 'questions') for_questions = '';
	if (new_page == 'answers') for_answers = '';
	if (new_page == 'miniforums') for_miniforums = '';
	var buttons_ids = new Array("questions","answers","miniforums");
	document.getElementById("operative_info_questions_1").style.display = for_questions;
	document.getElementById("operative_info_questions_2").style.display = for_questions;
	document.getElementById("operative_info_answers_1").style.display = for_answers;
	document.getElementById("operative_info_answers_2").style.display = for_answers;
	document.getElementById("operative_info_miniforums_1").style.display = for_miniforums;
	document.getElementById("operative_info_miniforums_2").style.display = for_miniforums;
	for (var i = 0; i < buttons_ids.length; i++)
	{
		var elem = document.getElementById("operative_info_page_button_"+buttons_ids[i]);
		elem.style.cursor = "pointer";
		elem.style.backgroundColor = "#D6E8FC";
		elem.style.fontWeight = "normal";
		elem.style.height = "22px";
	}
	document.getElementById("operative_info_page_button_"+new_page).style.fontWeight = "bold";
	document.getElementById("operative_info_page_button_"+new_page).style.cursor = "default";
	document.getElementById("operative_info_page_button_"+new_page).style.backgroundColor = "#ADD0F8";
	return false;
}
function getBodyScrollTop()
{
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
	return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}
function getBounds(element)
{
	var left = element.offsetLeft;
	var top = element.offsetTop;
	for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
	{
		left += parent.offsetLeft - parent.scrollLeft;
		top += parent.offsetTop - parent.scrollTop
	}
	return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}
function LoadOperativeInfoBlock()
{
	document.getElementById("glob_waiting_block").style.display = "";
	JsHttpRequest.query('http://expert.delphi.int.ru/pages/template/operative_info_block.php?ptb=2&ajax',{},
	function(responseJS, responseText)
	{
		document.getElementById('operative_info_block_element').innerHTML = responseJS.data;
		document.getElementById("glob_waiting_block").style.display = "none";
		operative_info_block_loaded = true;
		ShowOperativeInfoBlock();
		SwitchOperativeInfoPage('questions');
	}
	,false);
	return false;
}
function ShowOperativeInfoBlock()
{
	if (!operative_info_block_loaded)
	{
		LoadOperativeInfoBlock();
		return false;
	}
	var element = document.getElementById('operative_info_block_link');
	var bounds = getBounds(element);
	
	var move_image_elem = document.getElementById("operative_info_block_move_image");
	move_image_elem.style.left = (getBodyScrollLeft()+bounds.left+bounds.width+10)+"px";
	move_image_elem.style.top = (getBodyScrollTop()+bounds.top)+"px";
	move_image_elem.style.display = "";
	var t1 = (move_image_elem.style.left).toString();
	var t2 = (move_image_elem.style.top).toString();
	var t3 = t1.slice(0,t1.length-2);
	var t4 = t2.slice(0,t2.length-2);
	var layer_elem = document.getElementById("OperativeInfoBlock");
	layer_elem.style.left = (Number(t3) + layer_image_offset_x) + "px";
	layer_elem.style.top = (Number(t4) + layer_image_offset_y) + "px";
	layer_elem.style.display = "";
	return false;
}
function HideOperationInfoBlock()
{
	document.getElementById("OperativeInfoBlock").style.display = "none";
	document.getElementById("operative_info_block_move_image").style.display = "none";
	return false;
}