//--------------------------------// Browsers
opera = (window.opera) ? true : false;
ie = (document.all && !opera) ? true : false;

var version = 6;
var flash = false;
if (navigator.plugins) {
	if(navigator.plugins["Shockwave Flash"]) {
		plugin = navigator.plugins["Shockwave Flash"].description;
		flash = parseInt(plugin.charAt(plugin.indexOf('.') - 1)) >= version;
	} else {
		if ((navigator.userAgent.indexOf('MSIE') != -1)&&(navigator.userAgent.indexOf('Win') != -1)) {
		  	var vb = '<script language="vbscript">\n'
			+ ' on error resume next\n'
			+ ' flash = IsObject(CreateObject('
			+ ' "ShockwaveFlash.ShockwaveFlash.' + version + '"))\n'
			+ '<' + '/script>';
			document.write(vb);
		}
	}
}

function ShowPhoto(url, width, height) {
	var scroll = (screen.width < 1000) ? "yes" : "no";
	var left = (self.screen.width >> 1) - (width >> 1);
	var top = (self.screen.height >> 1) - (height >> 1);
	var param = 'left='+left+',top='+top+',width='+width+',height='+height+',';
	window.open(url, '_blank', param+'menubar=no,scrollbars=' + scroll + ',status=no');
}

function GetObj(objId) {
	if (ie)
		return document.getElementById(objId);
	else
		return document.all[objId];
}

function GetAbsoluteTop(obj_id) {
   var obj;
   var result = 0;
   obj = GetObj(obj_id);
   while( obj.tagName != 'BODY' ) {
     result += obj.offsetTop;
     obj = obj.offsetParent;
   }
   return result;
}

function GetAbsoluteLeft(obj_id) {
   var obj;
   var result = 0;
   obj = GetObj(obj_id);
   while( obj.tagName != 'BODY' ) {
     result += obj.offsetLeft;
     obj = obj.offsetParent;
   }
   return result;
}
		
function SetFavorites(url, value) {
	window.external.AddFavorite(url, value)
}
//--------------------------------// Menu Functions
function hide_menu(id) {
	if(id_menu!='' ) {
		timer=window.setTimeout("GetObj('div"+id+"').style.visibility='hidden';id_menu='';",1000);			
	}		
}

var id_menu = 0;
var id_div = 0;
var id_submenu = 0;
var timer = '';

function menu_on (id,is_parent) {
	 var div;
	if(id_menu!=0){
		id_menu = 0;
	}
	if(id_div!=0){
		GetObj("div"+id_div).style.display="none";
		id_div = 0;
	}
	if(id_submenu!=0){
		id_submenu = 0;
	}
	id_menu = id;
	if(is_parent == 1){
		div = GetObj("div"+id);
		div.style.left = GetAbsoluteLeft("menu"+id) + 102 + 'px';
		div.style.top = GetAbsoluteTop("menu"+id) + 'px';
		div.style.display="block";
		id_div=id;
	}
	clearTimeout(timer);
}

function menu_off(id,is_parent) {
	if(is_parent == 1){
		timer = window.setTimeout(" GetObj('div"+id+"').style.display='none'; id_div = 0; id_menu = 0",1000);
	}
}

function submenu_off (id,id_parent) {	
	timer = window.setTimeout("GetObj('div"+id_div+"').style.display='none';id_div=0;id_menu = 0;",1000);
}

function submenu_on (id,id_parent) {
	if(id_menu!=0){
	}
	if(id_div!=0){
		GetObj("div"+id_div).style.display = 'block';
	}
	if(id_submenu!=0){
		id_submenu = 0;
	}
	id_submenu = id;
	clearTimeout(timer);
}

//--------------------------------// Check Mail Form
function CheckMail(form){	
	return (CheckField(form, "email", "Вы не ввели 'e-mail'", 3, 3, 200));
}

//--------------------------------// Print Flash
function PrintFlash(path, wid, heg, pic, lnk, paramz, fid) {
	if(flash){
		document.open();
		document.write ('<object id="'+fid+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="6,0,0,0" width="' + wid + '" height="' + heg + '">');
		document.write ('<param name=movie value="' + path + '">');
		document.write ('<param name="quality" value="high">');
		document.write ('<param name="menu" value="false">');
		document.write ('<param name="FlashVars" value="' + paramz + '">');
		document.write ('<embed name="'+fid+'" src="' + path + '" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + wid + '" height="' + heg +'" FlashVars="' + paramz + '" menu="false"></embed>');
  		document.write ('</object>');
		document.close();
	} else {
		document.open();
		if(lnk != '') document.write ('<a href="'+ lnk +'">');
		document.write('<img src="'+ pic +'" width="'+ wid +'" height="'+ heg +'">')
		if(lnk != '') document.write ('</a>');
		document.close();
	}
}

//--------------------------------// Get Splitted Link
function GetLink(splited_link,target) {
	newlink = unescape(splited_link).replace(/\|/g,"");
	if(!target || target == 1) {
		newwin = window.open(newlink,"_blank","toolbar=1,scrollbars=1,status=1,location=1,menubar=1,resizable=1,personalbar=1");
		if (newwin) {
			newwin.focus();
		}
	} else {
		window.location = newlink;
	}
}

//--------------------------------// Slide
function Slide(id) {
	if(!(obj = document.getElementById(id)))
		return;

	if(!obj.style.display || obj.style.display == 'none')
		obj.style.display = 'block';
	else
		obj.style.display = 'none';
}

/*--------------------------------------------------------------------------------------------------------*/
/*--------------------------------------Меню с документацией----------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------*/
//	Назначение:
//		Код предназначен прежде всего для создания двухуровневых меню, но может быть использован
//		и в других целях. Например, для создания всплывающих подсказок.

/*--------------------------------------------------------------------------------------------------------*/
//	Зарезервированные имена:
//		function showMenu()
//		function hidemenu()
//		variable cid

/*--------------------------------------------------------------------------------------------------------*/
//	Описание:
//		- Функция showMenu принимает идентификатор узла и отображает этот узел путем установки display в block.
//		- Функция hideMenu не принимает ничего. Она стартует таймаут на скрывание текущего отображенного узла путем 
//		установки display в none.
//		- При вызове функции showMenu с идентификатором узла, для которого установлен таймаут на скрытие, 
//		этот таймаут снимается.
/*--------------------------------------------------------------------------------------------------------*/
//	Пример:
/*

<div
	onmouseover = "showMenu('sub1')" // При наведении мыши открыть ассоциированное подменю с идентификатором 'sub1'
	onmouseout  = "hideMenu()"       // При убирании мыши установить таймаут на скрытие открытого сейчас подменю
	>Пункт меню 1 верхнего уровня</div>

<div onmouseover="showMenu('sub2')" onmouseout="hideMenu()">Пункт меню 2 верхнего уровня</div>

<div id="sub1" style="position: absolute"
        onmouseover = "showMenu(this.id)" // При наведении мыши сбросить таймаут на скрытие этого подменю
	onmouseout  = "hideMenu()"        // При убирании мыши установить таймаут на скрытие этого подменю
	>
	<a href="#">Ссылка из выпадающего меню номер 1</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 1</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 1</a>
</div>

<div id="sub2" style="position: absolute" onmouseover = "showMenu(this.id)" onmouseout  = "hideMenu()">
	<a href="#">Ссылка из выпадающего меню номер 2</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 2</a>
</div>
/*--------------------------------------------------------------------------------------------------------*/
//	Тот же пример без комментариев:
/*

<div onmouseover="showMenu('sub1')" onmouseout="hideMenu()">Пункт меню 1 верхнего уровня</div>
<div onmouseover="showMenu('sub2')" onmouseout="hideMenu()">Пункт меню 2 верхнего уровня</div>

<div id="sub1" style="position: absolute" onmouseover="showMenu(this.id)" onmouseout="hideMenu()">
	<a href="#">Ссылка из выпадающего меню номер 1</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 1</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 1</a>
</div>

<div id="sub2" style="position: absolute" onmouseover="showMenu(this.id)" onmouseout="hideMenu()">
	<a href="#">Ссылка из выпадающего меню номер 2</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 2</a>
</div>
*/
/*--------------------------------------------------------------------------------------------------------*/
//	Более сложный пример c перемещением слоев и использованием z-index:
/*
<div 
	onmouseover="
showMenu('sub1');                  //Отображаем меню. Но для пользователя оно не видно, поскольку слою с подменю установлен
                                   //z-index равный -1 и он "прячется" за другими элементами

if ( !document.getElementById('sub1').moved )
{
	off = document.getElementById('sub1').offsetLeft;           //Получаем положение левого края слоя с подменю
	document.getElementById('sub1').style.left = off + 40;      //Передвигаем слой с подменю на 40 пикселей влево
	document.getElementById('sub1').style.zIndex = 1;           //Устанавливаем z-index. Теперь наш слой виден пользователю
	document.getElementById('sub1').moved = 1;                  //Устанавливаем слою флаг, чтобы больше этот слой не двигать
}
	" 
	onmouseout="hideMenu()"                        // При убирании мыши установить таймаут на скрытие активного подменю
	>Пункт меню 1 верхнего уровня</div>

<div id="sub1" style="position: absolute; z-index: -1" 
	onmouseover = "showMenu(this.id)"              // При наведении мыши сбросить таймаут на скрытие этого подменю
	onmouseout  = "hideMenu()"                     // При убирании мыши установить таймаут на скрытие этого подменю
	>
	<a href="#">Ссылка из выпадающего меню номер 1</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 1</a><br/>
	<a href="#">Ссылка из выпадающего меню номер 1</a>
</div>
*/

var cid = '';

function showMenu(id)
{
	if ( obj = document.getElementById(id) )
	{

		if ( cid && document.getElementById(cid).timeout )
			window.clearTimeout(document.getElementById(cid).timeout);

		if(cid != id)
		{
			if (cid) document.getElementById(cid).style.display = 'none';
			obj.style.display = 'block';
			cid = id;
		} else 
			if(document.getElementById(cid).style.display != 'block')
				document.getElementById(cid).style.display = 'block';
			else
				document.getElementById(cid).style.display = 'none';
		return true;
	}
}

function hideMenu()
{
        if ( document.getElementById(cid) )
	{
		if ( document.getElementById(cid).timeout ) window.clearTimeout(document.getElementById(cid).timeout);
		document.getElementById(cid).timeout = window.setTimeout("if (document.getElementById('"+cid+"')) document.getElementById('"+cid+"').style.display = 'none'; cid = ''", 200);
		if ( document.getElementById(cid) )
			return document.getElementById(cid).timeout;
	}
}

function showlegend() {
	if(GetObj('legend').style.display != 'block')
		GetObj('legend').style.display = 'block';
	else 
		GetObj('legend').style.display = 'none';

}

function GetForm(id) {
	var width=338;
	var height=394;
	var scroll = (screen.width < 1000) ? "yes" : "no";
	var left = (self.screen.width >> 1) - (width >> 1);
	var top = (self.screen.height >> 1) - (height >> 1);
	var param = 'left='+left+',top='+top+',width='+width+',height='+height+',';
	var win = window.open('form/'+id, '_blank', param+'menubar=no,scrollbars=' + scroll + ',status=no');
	
}

function checkBrowser (str) {
    var app = navigator.appName.toLowerCase();
    var nav = navigator.userAgent.toLowerCase();
    return (app.indexOf(str) != -1 || nav.indexOf(str) != -1);
}

var opera = Boolean(window["opera"]);
var MSIE = checkBrowser("microsoft") && !opera;

function getFlashElement (id) {
    return MSIE ? window[id] : document[id];
}

function Set(param, value) {
	var flash_element = getFlashElement("flash_plan");
	flash_element.SetVariable(param, value);
}

