﻿// JavaScript Document

var HeightTimer=0;

function sendEvent(movieName,typ,prm) { thisMovie(movieName).sendEvent(typ,prm); };

function thisMovie(movieName) {
	    if(navigator.appName.indexOf("Microsoft") != -1) {
			return window[movieName];
		} else {
			return document[movieName];
		}
	};

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getBodyScrollTop()
{
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getDocumentHeight()
{
	return (document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
}

function ShowLayer(layerID, buttonID)
{
	layer = document.getElementById(layerID);
	button_div = document.getElementById(buttonID);
	if (button_div)
		button_div.style.display = layer.style.display;
	if (layer.style.display == 'none')
		layer.style.display = 'block';
	else
		layer.style.display = 'none';
	return false;
};

// закрывает открытую страницу, обновляет заголовок браузера на old_title
function ClosePage()
{
	resetHistory();
	shadow_div = document.getElementById('shadow');
	shadow_div.style.visibility = 'hidden';
	shadow_div.style.height = getDocumentHeight()+'px';
	document.getElementById('page').style.visibility = 'hidden';
	if (getBodyScrollTop()>document.getElementById('main').offsetHeight)
		window.scrollTo(0,0);
	var banner_obj = thisMovie('banner_swf');
	if (banner_obj)
		banner_obj.Play();
};

function resetHistory() {
	var hRequest = createRequest();
	if (!hRequest)
		return false;
	hRequest.open('GET','index.php?ajax=1&res=1',true);
	hRequest.setRequestHeader('User-agent', 'AJAX');
	hRequest.send(null);
}
// открывает страницу на чистом листе
function LoadPage(url)
{
	var tv_obj = thisMovie('tv_swf');
	var banner_obj = thisMovie('banner_swf');
	
	if (tv_obj && tv_obj.sendEvent)
		tv_obj.sendEvent('stop');
		
	if (banner_obj)
		banner_obj.StopPlay();
		
	// показываем тень
	shadow_div = document.getElementById('shadow');
	shadow_div.style.height = getDocumentHeight()+'px';
	shadow_div.style.visibility = 'visible';
	
	window.scrollTo(0,0);
	// загрузка текста
	page_div = document.getElementById('page');
	page_content_div = document.getElementById('page_content');
	loading_div = document.getElementById('loading');

	page_content_div.innerHTML = '';
	loading_div.style.display = 'block';
	page_div.style.height = 'auto';
	page_div.style.visibility = 'visible';

	var hRequest = createRequest();
	if (!hRequest)
		return false;
	hRequest.onreadystatechange = function () {
		ShowPage(hRequest);
	};

	hRequest.open('GET',url+'&ajax=1',true);
	hRequest.setRequestHeader('User-agent', 'AJAX');
	hRequest.send(null);
};

function ShowPage(hRequest)
{
	if (hRequest && hRequest.readyState == 4)
	{
		if (hRequest.status == 200)
		{
			// текст загружен
			page_content_div = $('page_content');
			page_div = $('page');
			loading_div = $('loading');
			
			
			page_content_div.innerHTML = hRequest.responseText;
			div=page_content_div;
			height = div.offsetHeight;
			text = page_content_div.innerHTML;

			page_content_div.style.height = '0px';
			page_content_div.innerHTML = '';

			//анимация
			var HeightTween = new Tween(div, 'height', Math.linearTween, div.offsetHeight, height, Math.abs(height-div.offsetHeight)/300, 'px');
			HeightTween.onMotionFinished = function ()
			{
				loading_div.style.display = 'none';
				div = $('page_content');
				div.innerHTML = text;
				var scripts = div.getElementsByTagName('script');
				if (scripts[0])
					eval(scripts[0].innerHTML);
				div.style.height = 'auto';
				if (HeightTimer==0) 
					HeightTimer = setInterval('CheckBackHeight()', 2000);
			}
		}
	}
};

function displayAnswer(hRequest, elementId)
{
	if (hRequest && hRequest.readyState == 4)
		if (hRequest.status == 200)
			if (hRequest.responseText!='reloadpage')
				$(elementId).innerHTML = hRequest.responseText;
};

function sendForm(form, elementId)
{
	if (!form)
		return false;

	var params = collectFormParams(form);

	var hRequest = createRequest();
	if (!hRequest)
		return false;

	hRequest.onreadystatechange = function ()
	{
		displayAnswer(hRequest, elementId);
	};

	hRequest.open('POST', 'index.php', true);
	hRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	hRequest.setRequestHeader("Content-length", params.length);
	hRequest.setRequestHeader('User-agent', 'AJAX');
	hRequest.setRequestHeader("Connection", "close");
	hRequest.send(params);
};

function collectFormParams(form)
{
	if (!form)
		return false;

	var readyParams = '';


	var inputs = form.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++)
	{
		if ((inputs[i].type!='radio') || inputs[i].checked)
		{
			readyParams += (readyParams.length > 0 ? '&' : '') + inputs[i].name + '=' + encodeURIComponent(inputs[i].value);
			if (inputs[i].type!='submit') inputs[i].value='';
		}
	}
	var textareas = form.getElementsByTagName('textarea');

	for (var i=0; i<textareas.length; i++)
	{
		readyParams += (readyParams.length > 0 ? '&' : '') + textareas[i].name + '=' + encodeURIComponent(textareas[i].value);
		textareas[i].value='';
	}
	return readyParams;
};

function CheckBackHeight()
{
	back_div = $("main");
	page_div = $("border");
	
	if ((page_div.offsetHeight+100) > back_div.offsetHeight)
	{
		document.getElementById('shadow').style.height = (page_div.offsetHeight+100)+'px';
	} else
	{
		document.getElementById('shadow').style.height = (back_div.offsetHeight)+'px';
	}
};

function ajaxLinks() {
	links = document.getElementsByTagName('a');
	for (i in links) {
		if (links[i].target == "_ajax") {
			links[i].onclick = function () {LoadPage(this.href);return false;}
		}
	}
}