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;    
} 

function openWindow(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);
	}

getElementsByClassName = function(classNameStr)
{
	try
	{
		var objectCollection = document.getElementsByTagName('*');
	}
	catch (e)
	{
		var objectCollection = document.all;
	}
	
	elements = new Array();
	for(i=0; objectCollection[i]; i++)
	{
		if(objectCollection[i].className == classNameStr)
			elements.push(objectCollection[i]);
	}
	return elements;
}

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;
} 

// Выставляет cookie: имя=значение
	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;
	}

// Забирает значение cookie с данным именем
	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));
	}


// Menu Popup 
	
	var hideTimeOut = 0;
	var hideTimeOutValue = 180;

	hideAllPopups = function ()
	{
		for (var i = 0; i < document.getElementsByTagName('ul').length; i++)
			if (document.getElementsByTagName('ul')[i].className == 'sub-menu')
			{
				document.getElementsByTagName('ul')[i].style.display = 'none';
				document.getElementsByTagName('ul')[i].style.position = 'absolute';
			}
	}
	
	hidePopup = function (id)
	{
		if (hideTimeOut == 0 && $(id)) 
			hideTimeOut = setTimeout('$("'+id+'").style.display = "none";', hideTimeOutValue);
	}
	
	refreshTimeOut = function ()
	{
		if(hideTimeOut != 0)
		{
			clearTimeout(hideTimeOut);
			hideTimeOut = 0;
		}
	}
	
	showPopup = function (id)
	{
		refreshTimeOut();
		hideAllPopups ();
		if ($(id)) $(id).style.display = 'block';
	}

	
	
// Menu Expand
	hideAllExpands = function ()
	{
		for(var i = 0; i < document.getElementsByTagName('ul').length; i++)
			if (document.getElementsByTagName('ul')[i].className == 'sub-menu')
			{
				document.getElementsByTagName('ul')[i].style.display = 'none';
				document.getElementsByTagName('ul')[i].style.position = 'relative';
				document.getElementsByTagName('ul')[i].style.left = '0';
				document.getElementsByTagName('ul')[i].style.top = '0';
			}
	}
	
	
	prepareExpands = function ()
	{
		hideAllExpands();
		
		var menu_cookie = getCookie('sitemenu');

		if (menu_cookie != '')
		{
			var menu_array = new Array();
			menu_array = menu_cookie.split('[delim]');
			for (var i = 0; i < menu_array.length; i++)
				if ($('sub-menu-'+menu_array[i]))
					$('sub-menu-'+menu_array[i]).style.display = '';
		}
	}

	// Сохраняет текущее изменение меню при каждом изменении
	expandMenu = function (block_name)
	{
		var menu_cookie = getCookie('sitemenu');
		var menu_array = new Array()
		if (menu_cookie) menu_array = menu_cookie.split('[delim]');
		block_name = block_name.replace('sub-menu-','');
	
		if ($('sub-menu-' + block_name))
		{
			if ($('sub-menu-' + block_name).style.display == 'none')
			{
				hideAllExpands();
				setCookie('sitemenu', '');
				var menu_array = new Array()
				menu_array[menu_array.length] =  block_name;
				$('sub-menu-' + block_name).style.display = '';
			}
			else
			{
				$('sub-menu-' + block_name).style.display = 'none';
				var i = 0;
				while ((menu_array[i] != block_name)&&(i <  menu_array.length)) i++;
				menu_array[i] = '';
			}
		}
		
		menu_string = menu_array.join ('[delim]');
		setCookie('sitemenu', menu_string);
	}	
	
	
/* Check guestbook form */

	guestSubmitForm = function()
	{
		var error = 0;

		$('faqNameSpan').innerHTML = '&nbsp;';
		$('faqEmailSpan').innerHTML = '&nbsp;';
		$('faqSiteSpan').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)
		{
			return true;
		}
		else
		{
			return false;
		}
	}

/* Check order form */

	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;
		}
	
	}

/* Check poll forms */

	function send_form(begin_msg, fields) // если нет ошибок -- отправляет форму, иначе нет
	{
		var f_error = "";
		for (var i = 0; i < fields.length; i++)
		{
			f_error += (field_check(fields[i][0], fields[i][1]) != true) ? fields[i][2] : '';
		}
	
		if (f_error)
		{
			alert(begin_msg + f_error);
			return false;
		}
	
		else
		{
			return true;
		}
	}
	function field_check(f_type, f_id) // проверка полей формы перед отправкой
	{
		if (f_type == 'f_blank' && document.getElementById(f_id)) // для проверки на заполнение поля
		{
			return (document.getElementById(f_id).value != '') ? true : false;
		}
	
		if (f_type == 'f_email' && document.getElementById(f_id)) // для проверки email на валидность
		{
			var regexp = /[\w-]{1,255}@[\w-\.]{1,255}\.[a-zA-Z]{2,4}/;
			return regexp.test(document.getElementById(f_id).value);
		}
	
		if (f_type == 'f_radio') // для радиокнопок, передаем name, а не id
		{
			for (var i = 0; i < document.getElementsByName(f_id).length; i++)
			{
				if (document.getElementsByName(f_id)[i] && document.getElementsByName(f_id)[i].checked == true)
				{
					
					return true;
				}
			}
		return false;
		}
	
		if (f_type == 'f_password') // для сравнения пароля и подтверждания пароля, вместо id передаем массив из 2-х id
		{
			return (document.getElementById(f_id[0]).value == document.getElementById(f_id[1]).value) ? true : false;
		}
	
		if (f_type.indexOf('f_length') != -1) // для проверки длины строки. Значение передается как "f_length:число", где "число" необходимая длина строки
		{
			return (document.getElementById(f_id).value.length >= f_type.substr(9)) ? true : false;
		}
	
		return false;
	}

/* Check vacancy form */

	function CheckVacancyForm()
	{
		var error = 0;
		$('lastNameError').innerHTML = '';
		$('firstNameError').innerHTML = '';
		$('otchestvoError').innerHTML = '';
		$('resumeError').innerHTML = '';
		
		// проверка корректности введнного имени и текста
		var regexprus = new RegExp('[^А-Яа-яA-Za-z0-9_]','g');
		var space = new RegExp(' ','g');
		
		var lastname = String($('lastName').value);
		lastname = lastname.replace(space,'');
				
		var firstname = String($('firstName').value);
		firstname = firstname.replace(space,'');
		var otchestvo = String($('otchestvo').value);
		otchestvo = otchestvo.replace(space,'');
		
		if (lastname.match(regexprus))
		{
			$('lastNameError').innerHTML = 'Некорректная фамилия'; 
			error = 1;
		}
		if (firstname.match(regexprus))
		{
			$('firstNameError').innerHTML = 'Некорректное имя'; 
			error = 1;
		}
		if (otchestvo.match(regexprus))
		{
			$('otchestvoError').innerHTML = 'Некорректное отчество'; 
			error = 1;
		}
		
		if ($('lastName').value == '')
		{
			$('lastNameError').innerHTML = 'заполните данное поле';
			error = 1;
		}
		if ($('firstName').value == '')
		{
			$('firstNameError').innerHTML = 'заполните данное поле';
			error = 1;
		}
		if ($('otchestvo').value == '')
		{
			$('otchestvoError').innerHTML = 'заполните данное поле';
			error = 1;
		}
		if ($('resume').value == '')
		{
			$('resumeError').innerHTML = 'заполните данное поле';
			error = 1;
		}
		
		
		if (error == 0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}



/* Gallery */
	function galleryImageHide(img)
	{
		if(img)
			imageBlock.removeChild(img);
		if(imageBlock)
			allBlock.removeChild(imageBlock);
	}
	function galleryExit()
	{
		for(i=0; i<allBlock.childNodes.length; i++)
			if(allBlock.childNodes[i].style && (allBlock.childNodes[i].id != 'view_picture_block'))
				allBlock.childNodes[i].style.display = '';
	}

	function galleryCarusel(iThis)
	{
		var imageHrefCollection = getElementsByClassName('imagesHref');
		allBlock.removeChild(imageBlock);

		if(caruselStart >= (imageHrefCollection.length-1)){
			galleryExit();
			caruselStart = 0;
			return false;
		}

		if(imageHrefCollection[iThis+1])
			imageHrefCollection[iThis+1].onclick();
		else
			imageHrefCollection[0].onclick();

		caruselStart++;
	}
	
	var caruselStart = 0;
	var caruselThis;
	function galleryImageView(url)
	{
		imageBlock					= document.createElement('div');
		allBlock					= document.getElementsByTagName('body');
		allBlock					= allBlock[0];
		allBlock.appendChild(imageBlock);
		imageBlock.id				= 'view_picture_block';
		imageBlock.className		= 'viewPictureBlock';
	
		img = new Image;
		img.src = url;
		img.id = 'gallery_img_view';
		img.alt = '';

		imageHrefCollection = getElementsByClassName('imagesHref');

		for(i=0; i<imageHrefCollection.length; i++){
			if((imageHrefCollection[i]+'').search(img.src) != -1) {
				caruselThis = i;
			}
		}

		img.onclick = function(){
			galleryCarusel(caruselThis);
		}
	
		imageBlock.appendChild(img);
	
		windowWidth					= allBlock.clientWidth;
		windowHeight				= allBlock.clientHeight;
	
		for(i=0; i<allBlock.childNodes.length; i++)
			if(allBlock.childNodes[i].style && (allBlock.childNodes[i].id != 'view_picture_block'))
				allBlock.childNodes[i].style.display = 'none';
	
		imageMenu					= document.createElement('div');
		imageMenu.innerHTML			= $('galleryJavaMenu').innerHTML;
		imageBlock.appendChild(imageMenu);
		imageMenu.style.display		= 'block';
		imageMenu.id				= 'galleryJavaMenu';
		galleryNotation				= document.createElement('p');
		galleryNotation.innerHTML	= $('galleryJavaNotation').innerHTML;
		imageBlock.appendChild(galleryNotation);
		galleryNotation.id			= 'galleryJavaNotation';
	
		galleryNotation.style.display = 'none';
		galleryNotation.onclick = function(){
			this.style.display = 'none';
		}
	
		return false;
	}

jQuery(document).ready(function(){
	jQuery('#menu ul li').hover(
		function(event) {
			jQuery(this).addClass("active");
			jQuery(this).find('.test').show();
		},
		function(event) {
			jQuery(this).removeClass("active");
			jQuery(this).find('.test').hide();
		}
	);
});
