function $() {    
  var elements = new Array();    
  for (var i = 0; i < arguments.length; i++) {    
    var element = arguments[i];    
    if (typeof element == 'string')    
      element = document.getElementById(element);    

    if (arguments.length == 1)    
      return element;    

    elements.push(element);    
  }    

  return elements;    
} 

MyUserFunction = function () {}

repairTroubleWithJS = function () {
		var fontsize;
		fontsize = 68 + Math.random()/6 + 0.75;
		document.body.style.fontSize = fontsize + '%';
}

function swapimage(locationName)
{
	$('region_map').src="templates/common_templates/images/map/map-"+locationName+'.jpg';
	

	$('region_name').innerHTML = regionNames[locationName];
	$('region_text').innerHTML = regionTexts[locationName];
}

printit = function ()
{
	var browser_name = navigator.appName;
	if(window.print) 
	{
		window.print();
	} 
	else 
	{
		var WebBrowser = '<object id="WebBrowser1" width="0" height="0" classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
		document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
		WebBrowser1.ExecWB(6, 2);
	}
}

setCookie = function (name, value)
{
	var exp = new Date();
	var e = exp.getTime()+(24*60*60*30*1000);
	exp.setTime(e);
	var newCookie = name + "=" + escape(value) + ";path=/;expires="+exp.toUTCString();
	document.cookie = newCookie;
}

getCookie = function (name)
{
	var prefix = name + "=";
	var start = document.cookie.indexOf(prefix);
	if (start == -1) return false;
	var end = document.cookie.indexOf(";", start + prefix.length)
	if (end == -1)	end = document.cookie.length;
	return unescape(document.cookie.substring(start + prefix.length, end));
}

function MailWindow(url, width, height)
{
	 var left = Math.round((screen.width/2)-(width/2));
	 var top = Math.round((screen.height/2)-(height/2));
	 FormWin = window.open(url, '', "width="+width+", height="+height+", menubar=no, resizable=no, scrollbars=no, status=no, border=no, toolbar=no, left="+left+", top="+top);
}

checkmail = function (email) 
{ 
	if (email.indexOf(".") == -1)
	{ 
		return false; 
	} 
	dog = email.indexOf("@"); 
	if (dog == -1)
	{ 
		return false; 
	} 
	if ((dog < 1) || (dog > email.length - 5))
	{ 
		return false; 
	} 
	if ((email.charAt(dog - 1) == '.') || (email.charAt(dog + 1) == '.'))
	{ 
		return false; 
	} 
	return true;
} 

/* Modules */
	LoadModules = function ()
	{
		for(var i = 0; i < document.getElementsByTagName('div').length; i++)
			if (document.getElementsByTagName('div')[i].id == 'submenu-content' ||
				document.getElementsByTagName('div')[i].id == 'auth-content' ||
				document.getElementsByTagName('div')[i].id == 'fav-content' ||
				document.getElementsByTagName('div')[i].id == 'subs-content')
				document.getElementsByTagName('div')[i].style.display = 'none';
			else if 
				(document.getElementsByTagName('div')[i].id == 'submenu-header')
				 document.getElementsByTagName('div')[i].className = 'submenu';
			else if 
				(document.getElementsByTagName('div')[i].id == 'auth-header')
				{document.getElementsByTagName('div')[i].className = 'auth';if ($('reg-label')) $('reg-label').style.display = 'none';}
			else if 
				(document.getElementsByTagName('div')[i].id == 'fav-header')
				 document.getElementsByTagName('div')[i].className = 'fav';
			else if 
				(document.getElementsByTagName('div')[i].id == 'subs-header')
				 document.getElementsByTagName('div')[i].className = 'subs';
		
		if (!$('submenu-content') && $('auth-show')) $('auth-show').style.display = 'none';
		if (!$('submenu-content') && !$('auth-content') && $('subs-show')) $('subs-show').style.display = 'none';
		if (!$('submenu-content')  && !$('auth-content')  && !$('subs-content') && $('fav-show')) $('fav-show').style.display = 'none';
		
		var ModuleCookie = getCookie('modules');
		
		if (ModuleCookie == '')
		{
			ModuleCookie = ($('submenu-content')) ? 'submenu' : 'submenu';
			setCookie('modules', ModuleCookie);
		}

		var ModuleArray = new Array();
		ModuleArray = ModuleCookie.split('[delim]');

		for (var i = 0; i < ModuleArray.length; i++)
		if ($(ModuleArray[i]+'-content')) 
		{
			$(ModuleArray[i]+'-content').style.display = '';
			$(ModuleArray[i]+'-header').className = ModuleArray[i]+'-hover';
			if (ModuleArray[i] == 'auth' && $('reg-label')) $('reg-label').style.display = '';
		}

		OpenModule('submenu','open');
	
	}

	// Сохраняет текущее изменение меню при каждом изменении
	OpenModule = function (module, openIt)
	{
		var ModuleCookie = getCookie('modules');
		var ModuleArray = new Array()
	
		if (ModuleCookie) ModuleArray = ModuleCookie.split('[delim]');
		if ($(module + '-content'))
		{
			if ($(module + '-content').style.display == 'none')
			{
				$(module + '-content').style.display = '';
				$(module + '-header').className = module+'-hover';
				if (module == 'auth' && $('reg-label')) $('reg-label').style.display = '';

				ModuleArray[ModuleArray.length] =  module;
			}
			else if (openIt != 'open')
			{
				$(module + '-content').style.display = 'none';
				$(module + '-header').className = module;
				if (module == 'auth' && $('reg-label')) $('reg-label').style.display = 'none';

				var i = 0; while ((ModuleArray[i] != module)&&(i <  ModuleArray.length)) i++; 

				while (i <  ModuleArray.length)	{ModuleArray[i] = ModuleArray[i+1];	i++;}

				ModuleArray.length--; 
			}
		}

		ModuleString = ModuleArray.join ('[delim]');
		setCookie('modules', ModuleString);
		
		repairTroubleWithJS();
	}	
/* End Modules */


/* Begin side news */
	var ajaxUrlsSideNews = 'sidenews';
	var ajaxWaitingSideNews = '<div class="news-tabs"><div class="news-tabs-bg-right"><div class="news-tabs-bg-left"><div class="news-bg-corner-bottom"><!----></div><div style="font-size: 1.2em; color: #406586; font-weight: bold; padding: 12px 0 0 45px;">Загрузка новостей...</div></div></div><div class="clear"><!----></div></div>';
	
	ShowNewsFromCategory  = function (CatId)
	{
		MyUserFunction = repairTroubleWithJS;

		var data;
		data = 'ajax=1';
		data +='&catid='+CatId;
		ExecuteXMLCall(ajaxUrlsSideNews, 'side-news-content','post',data,false,'',ajaxWaitingSideNews);
	}

	var ajaxUrlArchive = 'archive';
	var ajaxUrlWaiting = '<div style="font-size: 1.1em; color: #BD9C5D; font-weight: bold; padding: 15px 0 0 0;">Загрузка новостей...</span>';
	
	ShowNews = function ()
	{
		MyUserFunction = repairTroubleWithJS;
		
		var data;
		data = 'ajax=1';
		//data += '&year='  + $('year').value;
		//data += '&month=' + $('month').value;
		data += '&type=' + $('type').value;
		ExecuteXMLCall(ajaxUrlArchive, 'archivecont', 'post', data, false, '', ajaxUrlWaiting);
	}

	ShowNewsInTitle = function ()
	{
		MyUserFunction = function () {
			if ($('archive-nav-button')) $('archive-nav-button').style.display = 'none';
		}
				
		var data;
		data = 'ajax=1';
		data += '&place=title';
		ExecuteXMLCall(ajaxUrlArchive, 'side-news-content', 'post', data, false, '', ajaxWaitingSideNews);
		
	}

	var ajaxUrlNewsView = 'newsitem/';

	ShowNewsItem = function (id)
	{
		MyUserFunction = repairTroubleWithJS;

		if ($('side-news-content'))
		{
			var data;
			data = 'ajax=1';
			ExecuteXMLCall(ajaxUrlNewsView+id, 'side-news-content', 'post', data, false, '', ajaxWaitingSideNews);
		}
	}
/* End side news */

/* Begin ICQ */

	var ajaxUrlIcq = 'icq';
	var ajaxWaitingIcq = ' ';
	
	ShowICQ = function ()
	{
		if ($('icq-content').innerHTML == '' || $('icq-content').innerHTML == '<!---->')
		{
			var data;
			data = 'ajax=1';
			ExecuteXMLCall(ajaxUrlIcq, 'icq-content', 'post', data, true, '', ajaxWaitingIcq);
		}
		else
		{
			$('icq-content').innerHTML = '';
		}
	}

/* End ICQ */

/* Begin Favorites */

	var ajaxUrlFav = 'addfav';
	var ajaxWaitingFav = 'сохранение...';
	var ajaxWaitingDeleteFav = 'удаление...';
	var ajaxWaitingDeleteShow = 'удаление...';
	var ajaxUrlFavShow = 'showfav';

	refreshFav = function () 
	{
		MyUserFunction = function(){};
		var data;
		data = 'ajax=1';
		ExecuteXMLCall(ajaxUrlFavShow, 'fav-content', 'post', data, true, '', ajaxWaitingFav);
	}
	
	AddFav = function ()
	{
		var data;
		MyUserFunction = refreshFav;
		data = 'ajax=1';
		data += '&location='+document.location;
		data += '&title='+document.title;
		ExecuteXMLCall(ajaxUrlFav, 'favorites', 'post', data, true, '', ajaxWaitingFav);
	}



	deleteFav = function (id)
	{
			
		var data;
		data = 'ajax=1';
		data += '&delete='+id;
		data += '&location='+document.location;
		ExecuteXMLCall(ajaxUrlFav, 'fav-'+id, 'post', data, true, '', ajaxWaitingDeleteFav);
	}

/* End Favorites */

/* Begin Vacancy */

	function CheckVacancyForm()
	{

		var error = 0;
		$('vacNameError').innerHTML = '';
		$('vacEmailError').innerHTML = '';
		$('vacPhoneError').innerHTML = '';
		$('vacCityError').innerHTML = '';
		$('vacBirthError').innerHTML = '';

		var regexprus = new RegExp('[^А-Яа-яA-Za-z0-9_]','g');
		var space = new RegExp(' ','g');
		
		var fullname = String($('vacName').value);
		fullname = fullname.replace(space,'');

		if (fullname.match(regexprus))
		{
			$('vacNameError').innerHTML = 'некоректное имя.'; 
			error = 1;
		}
		
		if ($('vacName').value == '')
		{
			$('vacNameError').innerHTML = 'заполните данное поле'; 

			error = 1;
		}

		if ($('vacPhone').value == '')
		{
			$('vacPhoneError').innerHTML = 'заполните данное поле'; 

			error = 1;
		}

		if ($('vacCity').value == '')
		{
			$('vacCityError').innerHTML = 'заполните данное поле'; 

			error = 1;
		}

			if ($('vacBirth').value == '')
		{
			$('vacBirthError').innerHTML = 'заполните данное поле'; 

			error = 1;
		}

		if ($('vacEmail').value != '')
		{

			var email = String($('vacEmail').value);
		
			if (!checkmail(email))
			{
				$('vacEmailError').innerHTML = 'Неккоректный email'; 
				error = 1;
			}
		}

		if (error == 0)
		{
			return true;
		}
		else
		{
			return false;
		}

	}

/* End Vacancy */


/* Begin Search */
	var ajaxUrlSearch = 'search';
	var ajaxUrlSearchW = '<div style="font-size: 1.1em; color: #406586; font-weight: bold; padding: 15px 0 0 0;">Поиск...</span>';
	
	Search = function ()
	{
		MyUserFunction = repairTroubleWithJS;
		
		var data;
		data = 'ajax=1';
		data += '&searchSiteInner='  + $('searchSiteInner').value;
		data += '&search_in_results=' + $('search_in_results').checked;
		data += '&results_query=' + $('results_query').value;

		
		data += '&search_site='  + $('search_site').value;
		data += '&search_group=' + $('search_group').value;


		ExecuteXMLCall(ajaxUrlSearch, 'searchResult', 'post', data, true, '', ajaxUrlSearchW);
	}


/* End Search */

/* Begin Reg */
CheckRegForm = function()
{
	var error = 0;

	$('error_login').innerHTML = '';
	$('error_password').innerHTML = '';
	$('error_password_rep').innerHTML = '';

	for (var i=0; i<FieldArray.length; i++ )
	{
		$('error_'+FieldArray[i]).innerHTML = '';
	}
	
	var regexp = new RegExp('[^A-Za-z0-9_]','g');
	var regexprus = new RegExp('[^А-Яа-яA-Za-z0-9_]','g');
	var space = new RegExp(' ','g');
	var str = String($('login').value);
	
	if ($('login').value == '')
	{
		$('error_login').innerHTML = 'заполните данное поле'; 
		error = 1;
	}
	else
	{
		var email = String($('login').value);

		if (!checkmail(email))
		{
			$('error_login').innerHTML = 'Неккоректный email'; 
			error = 1;
		}
	}

	var pass = String($('passwordInner').value);
	if (pass.match (regexp))
	{
		$('error_password').innerHTML = 'некоректный пароль. Внимательно прочитайте пояснение.'; 
		error = 1;
	}
	if (pass.length < 6)
	{
		$('error_password').innerHTML = 'пароль слишком маленький (должен состоять из более чем 7 символов).'; 
		error = 1;
	}
	if ($('passwordInner').value == '')
	{
		$('error_password').innerHTML = 'заполните данное поле'; 
		error = 1;
	}

	var pass2 = String($('password_rep').value);
	if ($('password_rep').value == '')
	{
		$('error_password_rep').innerHTML = 'заполните данное поле'; 
		error = 1;
	}
	if (pass != pass2)
	{
		$('error_password_rep').innerHTML = 'значение данного поля должно совпадать со значение поля "пароль"'; 
		error = 1;
	}


	
	


	for (var i=0; i<FieldArray.length; i++ )
	{
		if ($('addfield_'+FieldArray[i]))
		{
			if ($('addfield_'+FieldArray[i]).value == '')
			{
				$('error_'+FieldArray[i]).innerHTML = 'заполните данное поле'; 
				error = 1;
			}
		}
	}

	if (error == 0)
	{
		return true;
	}
	else
	{
		return false;
	}

}

CheckDataForm = function()
{

	var error = 0;

	$('error_password').innerHTML = '';
	$('error_password_rep').innerHTML = '';

	for (var i=0; i<FieldArray.length; i++ )
	{
		$('error_'+FieldArray[i]).innerHTML = '';
	}
	
	var regexp = new RegExp('[^A-Za-z0-9_]','g');
	var regexprus = new RegExp('[^А-Яа-яA-Za-z0-9_]','g');
	var space = new RegExp(' ','g');
	
	if ($('password').value != '')
	{
	
		var pass = String($('password').value);
		if (pass.match (regexp))
		{
			$('error_password').innerHTML = 'некоректный пароль. Внимательно прочитайте пояснение.'; 
			error = 1;
		}
		if (pass.length < 6)
		{
			$('error_password').innerHTML = 'пароль слишком маленький (должен состоять из более чем 7 символов).'; 
			error = 1;
		}


		var pass2 = String($('password_rep').value);
		if ($('password_rep').value == '')
		{
			$('error_password_rep').innerHTML = 'заполните данное поле'; 
			error = 1;
		}
		if (pass != pass2)
		{
			$('error_password_rep').innerHTML = 'значение данного поля должно совпадать со значение поля "пароль"'; 
			error = 1;
		}
	}
	
	for (var i=0; i<FieldArray.length; i++ )
	{
		if ($('addfield_'+FieldArray[i]))
		{
			if ($('addfield_'+FieldArray[i]).value == '')
			{
				$('error_'+FieldArray[i]).innerHTML = 'заполните данное поле'; 
				error = 1;
			}
		}
	}

	if (error == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}


var ajaxUrlAuth = 'auth';
var ajaxUrlWaitingAuth = '<div style="font-size: 1.1em; color: #987C45; font-weight: bold; padding: 15px 0 70px 15px;">Авторизация...</span>';
	

function check()
{
	
	
	
	var error = 0;

	$('regPassSpan').innerHTML = '&nbsp;';
	$('regLoginSpan').innerHTML = '&nbsp;';

	var regexp = new RegExp('[^A-Za-z0-9_]','g');

	var str = String($('username').value);

	if ($('username').value == '')
	{
		$('regLoginSpan').innerHTML = 'наберите логин'; 
		error = 1;
	}
	else
	{
		var email = String($('username').value);

		if (!checkmail(email))
		{
			$('regLoginSpan').innerHTML = 'Неккоректный email'; 
			error = 1;
		}
	}

	var pass = String($('password').value);

	if (pass.match (regexp))
	{
		$('regPassSpan').innerHTML = 'некоректный пароль'; 
		error = 1;
	}
	if ($('password').value == '')
	{
		$('regPassSpan').innerHTML = 'наберите пароль'; 
		error = 1;
	}

	if (error == 0)
	{		
		
		var data;
	
			data = 'username=' + $('username').value;
			data = data + '&password=' + $('password').value;
			data = data + '&ajax=1';
			ExecuteXMLCall(ajaxUrlAuth, 'auth-content','post', data, true,'',ajaxUrlWaitingAuth);


		return true;		
	}
	else
	{
		return false;
	}
	
}
function checkLogin()
{
	var error = 0;

	$('regLoginSpan').innerHTML = '&nbsp;';

	var regexp = new RegExp('[^A-Za-z0-9_]','g');

	var str = String($('username').value);

	if ($('username').value == '')
	{
		$('regLoginSpan').innerHTML = 'наберите логин'; 
		error = 1;
	}
	else
	{
		var email = String($('username').value);

		if (!checkmail(email))
		{
			$('regLoginSpan').innerHTML = 'Неккоректный email'; 
			error = 1;
		}
	}

	if (error == 0)
	{
		data = 'username=' + $('username').value;
		data = data + '&password=' + $('password').value;
		data = data + '&ajax=1';
		data = data + '&regForget=1';
		ExecuteXMLCall(ajaxUrlAuth, 'auth-content','post', data,true,'',ajaxUrlWaitingAuth);
	}
	else
	{
		return false;
	}
}
/* End Reg */

/* Begin Subs */

var ajaxUrlSubs = 'subs';
var ajaxUrlWaitingSubs = '<div style="font-size: 1.1em; color: #406586; font-weight: bold; padding: 15px 0 0 0;">Подписка...</span>';



function checkSubs()
{
	var error = 0;

	$('subsNicknameSpan').innerHTML = '&nbsp;';
	$('subsEmailsSpan').innerHTML = '&nbsp;';

	var regexprus = new RegExp('[^А-Яа-яA-Za-z0-9_]','g');

	var str = String($('nickname').value);

	if (str.match (regexprus))
	{
		$('subsNicknameSpan').innerHTML = 'некоректное имя'; 
		error = 1;
	}
	if ($('nickname').value == '')
	{
		$('subsNicknameSpan').innerHTML = 'наберите своё имя'; 
		error = 1;
	}

	if ($('emails').value == '')
	{
		$('subsEmailsSpan').innerHTML = 'заполните данное поле'; 
		error = 1;
	}
	else
	{
	
		var email = String($('emails').value);

		if (!checkmail(email))
		{
			$('subsEmailsSpan').innerHTML = 'Неккоректный email'; 
			error = 1;
		}
	}

	if (error == 0)
	{
		data = 'nickname=' + $('nickname').value;
		data = data + '&emails=' + $('emails').value;
		data = data + '&subsimage=' + $('subsimage').value;
		data = data + '&ajax=1';
		ExecuteXMLCall(ajaxUrlSubs, 'subs-content','post', data,true,'',ajaxUrlWaitingSubs);
	}
	else
	{
		return false;
	}
}
/* End Subs */


/* Faq */
	faqSubmitForm = function()
	{
		var error = 0;

		$('faqNameSpan').innerHTML = '&nbsp;';
		$('faqEmailSpan').innerHTML = '&nbsp;';
		$('faqQuestionSpan').innerHTML = '&nbsp;';

		if ($('faqName').value =='')
		{
			$('faqNameSpan').innerHTML = 'Введите свое имя'; 
			error = 1;
		}
		if ($('faqEmail').value != '')
		{

			var email = String($('faqEmail').value);

			if (!checkmail(email))
			{
				$('faqEmailSpan').innerHTML = 'Неккоректный email'; 
				error = 1;
			}
		}

		if ($('faqQuestion').value =='')
		{
			$('faqQuestionSpan').innerHTML = 'Введите вопрос'; 
			error = 1;
		}

		if (error == 0)
		{
			var data;
		
			data = 'faqName=' + $('faqName').value;
			data = data + '&faqEmail=' + $('faqEmail').value;
			data = data + '&faqQuestion=' + $('faqQuestion').value;
			data = data + '&faqImage=' + $('faqImage').value;
			data = data + '&ajax=1';
			ExecuteXMLCall(URL_FAQ, 'faqForm','post',data,true,'',DATA_WAITING_FAQ);
		}
		else
		{
			return false;
		}
	}

	faqNewForm = function()
	{
		data = 'ajax=1';
		ExecuteXMLCall(URL_FAQ, 'faqForm','post',data,true,'',DATA_WAITING_FAQ);
	}


refreshCode = function ()
{
	$('codeimage').src= 'codeimage-erase';
	$('codeimage').src= 'codeimage/'+Math.random();
}

reloadMiniBasket = function ()
{
	MyUserFunction = function () {};
	data = 'ajax=1';
	ExecuteXMLCall('minibasket', 'basket', 'post', data, true,'','<img src="templates/common_templates/images/plugins/loading.gif" alt="..." />');

}

function CheckAskForm()
{

	var error = 0;

	for (var i=0; i<FieldArray.length; i++ )
	{
		$('error_'+FieldArray[i]).innerHTML = '';
	}

	for (var i=0; i<FieldArray.length; i++ )
	{
		if ($('addfield_'+FieldArray[i]))
		{
			if ($('addfield_'+FieldArray[i]).value == '')
			{
				$('error_'+FieldArray[i]).innerHTML = 'заполните данное поле'; 
				error = 1;
			}
		}
	}
	

	if (error == 0)
	{
		return true;
	}
	else
	{
		return false;
	}

}