var xmlHttp = false;
var pleloader_id = 'preloader';
var current_url;
var timeout_flag = false;
var loader_frame_flag=false;
// Проверка текущей ссылки
var first_url= location.hash?(location.hash.substr(1)):'null';
if (first_url!='null')
{
	if (first_url != location.pathname)
	{
		location.href = first_url;
	}
}

// Список всех якорей данного шаблона
// Данную часть можно автоматизировать и генерировать в ядре ************************

var anchors_list = new Array();
anchors_list[0] = 'center_place';
anchors_list[1] = 'polls_place';
anchors_list[2] = 'main_menu';
anchors_list[3] = 'top_center_place';
anchors_list[4] = 'left_place';
anchors_list[5] = 'bottom_menu';

var anchor_divider = '|';

var get_params = '?ajax_parameters=';
// **********************************************************************************

for (i=0;i<anchors_list.length;i++)
{
	if (i!=(anchors_list.length-1))
		get_params = get_params + anchors_list[i] + anchor_divider;
	else
		get_params = get_params + anchors_list[i];
}
var current_anchor = location.pathname;
var timer_var;

function a() {;}
window.onmousemove = a;
window.onmousedown = a;
window.onblur = a;
window.onbeforeunload = a;
window.onload = a;
window.onkeypress = a;
window.onkeydown = a;
window.onactivate = a;
window.onbeforecut = a;
window.onbeforedeactivate = a;
window.onbeforeeditfocus = a;
window.onbeforepast = a;
window.onclick = a;
window.oncontextmenu = a;
window.oncontrolselect = a;
window.oncut = a;
window.ondblclick = a;
window.ondrag = a;
window.ondragend = a;
window.ondragenter = a;
window.ondragleave = a;
window.ondragover = a;
window.ondragstart = a;
window.ondrop = a;
window.onkeyup = a;
window.onmouseout = a;
window.onmouseover = a;
window.onmouseup = a;
window.onpaste = a;
window.onreadystatechange = a;
window.onresizeend = a;
window.onresizestart = a;
window.onselectionchange = a;
window.onstop = a;
window.onfocus = a;
window.onunload = a;
window.onresize = a;

if (navigator.appName=='Microsoft Internet Explorer')
    document.write('<iframe name="back_frame_name" id="back_frame" width="0" height="0" style="display:none" src="/hollow.php?param='+current_anchor+'#'+current_anchor+'"></iframe>');

function checkUserBack()
{
	if (timer_var) clearTimeout(timer_var);
	var hash_val = location.hash?(location.hash.substr(1)):location.pathname;
	if (navigator.appName=='Microsoft Internet Explorer')
	{
		hash_val = parent.back_frame_name.location.hash?(parent.back_frame_name.location.hash.substr(1)):parent.back_frame_name.location.pathname;
		//alert(hash_val);
	}
	back_enter_flag = false;
	if (navigator.appName=='Microsoft Internet Explorer')
	{
		if (parent.back_frame_name.document.getElementById('hidden_frame_loaded') && parent.back_frame_name.document.getElementById('hidden_frame_loaded').value=='ok')
		{
			back_enter_flag = true;
			parent.back_frame_name.document.getElementById('hidden_frame_loaded').value='none';
		}
	}
	else
	{
		back_enter_flag = true;
	}
	if (current_anchor != hash_val && back_enter_flag)
	{
		
		if (navigator.appName=='Microsoft Internet Explorer')
		{
			location.hash = hash_val;
		}
		current_anchor = hash_val;
		create_xmlhttp();
		xmlHttp.onreadystatechange = updateContent;
		xmlHttp.open("GET", hash_val+get_params, true);
		document.getElementById(pleloader_id).style.left=(document.body.clientWidth/2)-(75)+'px';
		document.getElementById(pleloader_id).style.display='block';
		xmlHttp.send(null);
		
	}
	timer_var = setTimeout ("checkUserBack()", 400);
}

function create_xmlhttp()
{
	try
	{
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e2)
		{
			xmlHttp = false;
		}
	}
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
	{
		xmlHttp = new XMLHttpRequest();
	}
}
// Функция для извлечения полученных с сервера данных
function get_content(content)
{
	var all_headers = new Array();
	var all_content = new Array();
	i=0;
	var begin_header;
	var end_header;
	var begin_content;
	var end_content;
	for (j=0;;j++)
	{
		begin_header = content.indexOf("<header>",i);
		end_header = content.indexOf("</header>",i);
		begin_content = content.indexOf("<content>",end_header);
		end_content = content.indexOf("</content>",end_header);
		if (begin_header!=-1 && end_header!=-1)
		{
			all_headers[j] = content.slice(begin_header+8, end_header);
		}
		else
		{
			break;
		}
		if (begin_content!=-1 && end_content!=-1)
		{
			all_content[j] = content.slice(begin_content+9, end_content);
		}
		else
		{
			break;
		}
		i = end_content;
	}
	var all_data = new Array(all_headers, all_content);
	return all_data;
}
// Функция для извлечения полученного с сервера заголовка окна браузера
function get_title(content)
{
	begin_title = content.indexOf("<windowtitle>");
	end_title = content.indexOf("</windowtitle>");
	if (begin_title!=-1 && end_title!=-1)
	{
		win_title = content.slice(begin_title+13, end_title);
		return win_title;
	}
	else
	{
		return "";
	}
}
function updateContent()
{
	if (xmlHttp.readyState == 4)
	{
		document.getElementById(pleloader_id).style.display='none';
		if (xmlHttp.status == 200)
		{
			var server_data = xmlHttp.responseText;
			if (xmlHttp.getResponseHeader("content-type").indexOf("text/javascript")==-1)
			{
				location.href = current_url;
			}
			if (get_title(server_data)!="")
			{
				document.title = get_title(server_data);
			}
			var headers_and_content = new Array();
			headers_and_content = get_content(server_data);
			try
			{
				for (i=0; i<headers_and_content[1].length; i++)
				{
					document.getElementById(headers_and_content[0][i]).removeChild(document.getElementById(headers_and_content[0][i]).firstChild);
					document.getElementById(headers_and_content[0][i]).innerHTML =headers_and_content[1][i];
				}
			}
			catch(e)
			{
				location.href = current_url;
			}
		}
		if (xmlHttp.status == 404)
		{
			alert("Указанная вами страница не найдена.");
		}
		if (xmlHttp.status == 500)
		{
			alert("По техническим причинам данная информация временно недоступна.");
		}
		if (xmlHttp.status == 403)
		{
			alert("У вас нет доступа к данному ресурсу.");
		}
	}
}
function get_data(url_data)
{
//	if (url_data == '/forum/)
//	{	
//  		location.replace("http://forum.teko-com.ru");
//	}
	current_url = (url_data.indexOf("?")!=-1)?(url_data.slice(0, url_data.indexOf("?"))):(url_data);
	if (navigator.appName=='Microsoft Internet Explorer')
		{
		parent.back_frame_name.document.getElementById('hidden_frame_loaded').value='none';
		document.getElementById('back_frame').src='/hollow.php?param='+current_url+'#'+current_url;
		}
	location.hash = current_url;
	//alert(parent.back_frame_name.location.hash);
	//alert(location.hash);
	current_anchor = current_url;
	
	create_xmlhttp();
	if (xmlHttp === false)
	{
		return true;
	}
	xmlHttp.onreadystatechange = updateContent;
	xmlHttp.open("GET",url_data, true);
	document.getElementById(pleloader_id).style.left=(document.body.clientWidth/2)-(75)+'px';
	//document.getElementById(pleloader_id).style.top="55px";
	document.getElementById(pleloader_id).style.display='block';
	xmlHttp.send(null);
	if (!timeout_flag)
	{
		setTimeout ("checkUserBack()", 400);
		timeout_flag = true;
	}
	return false;
}