var isie6, photos_arr = [];
var mail_filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var digit_filter = /^(\d{4})$/;

// функция удаления группы полей
function delFieldset(c) {
	$(c).parents('div:eq(1)').remove();
}

// функция добавления группы полей
function addFieldset(c) {
	var l = $(c).parents('fieldset').children('div').length;
	var cf = $(c).parents('fieldset').children('div:first').clone(true);
	var dlnk = $('<a class="delLink" href="#">Удалить</a>');
	dlnk.bind('click',
		function() {
			delFieldset($(this));
			return !1;
		}
	);
	cf.children('a.addLink').click(
		function() {
			addFieldset($(this));
			return !1;
		}
	);
	
	// обнуление значений полей клонированной группы полей
	cf.find('input').attr('value', '').attr('class', 'textfld');
	cf.find('select').attr('selectedIndex', 0).removeClass();
	cf.find('textarea').attr('value', '').removeClass();
	cf.children('div:eq(0)').append(dlnk);
	cf.insertAfter($(c).parents('div:eq(1)'));
	
}
function checkSimpleForm(pform) {
	form = pform.get(0);
	var felems = form.elements;
	pform.submit(
		function() {
			var error = 0;
			$.each(felems, function(i,f){
				if(f.getAttribute('type') != 'SUBMIT') {
					switch(f.getAttribute('name')) {
						case 'f_uname':
							if(f.value == '') {
								error++;
								$(f).addClass('error');
							}
							break;
						case 'f_uemail':
							if(f.value == '') {
								error++;
								$(f).addClass('error');
							} else if(!mail_filter.test(f.value)) {
								error++;
								$(f).addClass('error');
							}
							break;
						case 'f_umessage':
							if(f.value == '') {
								error++;
								$(f).addClass('error');
							}
							else if(f.value.length > 300) {
								error++;
								$(f).addClass('error');
							}
							break;
						case 'f_captcha':
							if(f.value == '') {
								error++;
								$(f).addClass('error');
							} else if(!digit_filter.test(f.value)) {
								error++;
								$(f).addClass('error');
							}
							break
					}
				}
			});
			if(error != 0) {
				if(!pform.parent('div').children('p.error').length)
					pform.parent('div').prepend($('<p class="error">Проверьте правильность заполнения полей.</p>'));
				return false;
			}
		}
	);
}

function getPageDimentions() {
	var doc_html = document.documentElement;
	var w = window.innerWidth || (doc_html&&doc_html.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || (doc_html&&doc_html.clientHeight) || document.body.clientHeight;
	var page_dimensions = [w, h];
	
	return page_dimensions;
}

// функция  изменения размера картинки, если её размеры больше окна браузера
function resizeImg(pw, ph) {
	var pd = getPageDimentions();
	var x = pd[0] - 120;
	var y = pd[1] - 120;
	var nw = pw;
	var nh = ph;
	if (nw > x) {
		nh = nh * (x / nw); 
		nw = x; 
		if (nh > y) { 
			nw = nw * (y / nh); 
			nh = y; 
		}
	} else if (nh > y) {
		nw = nw * (y / nh); 
		nh = y; 
		if (nw > x) { 
			nh = nh * (x / nw); 
			nw = x;
		}
	}
	var new_dimensions = [Math.round(nw), Math.round(nh)];
	
	return new_dimensions;
}

function hideImg() {
	$('#overlay').remove();
	$('#preloader').remove();
	$('#photoCont').remove();
	
	if(isie6) document.documentElement.style.overflow = 'auto';

	return !1;
}

function showPhoto(idx) {
	var prev_link = ''; var next_link = '';
	if(photos_arr.length > 1) {
		//alert(idx);
		var prev_img_idx = (idx-1 < 0) ? photos_arr.length-1 : idx-1;
		var next_img_idx = (idx+1 > photos_arr.length-1) ? 0 : idx+1;
		
		prev_link = $('<a class="arrow prev" href="#'+prev_img_idx+'"></a>');
		next_link = $('<a class="arrow next" href="#'+next_img_idx+'"></a>');
		
		//alert(prev_img_idx+','+next_img_idx);
	}
	
	if(!$('#overlay').length) {
		if(isie6) document.documentElement.style.overflow = 'hidden';
		$('#container').append($('<div id="overlay"></div>'));
	}
	if(!$('#preloader').length) { $('#container').append($('<div id="preloader"></div>'))}
	if(!$('#photoCont').length) {
	
		// table creation
		var tbl = $('<table></table>');
		// table rows creation
		for(var i=0; i<3; i++) {
			var temp_tr = $('<tr></tr>');
			switch(i){
				case 0: temp_tr.addClass('frow');
						break;
				case 1: temp_tr.addClass('srow');
						break;
				case 2: temp_tr.addClass('trow');
						break;
			}
			
			// table cells creation
			for(var j=0; j<3; j++) {
				var temp_td = $('<td></td>');
				switch(j){
					case 0: temp_td.addClass('lcell');
							break;
					case 1: temp_td.addClass('ccell');
							break;
					case 2: temp_td.addClass('rcell');
							break;
				}
				temp_tr.append(temp_td);
			}
			
			tbl.append(temp_tr);
		}
	
		$('#container').append($('<div id="photoCont"><div><a class="close" href="#"></a></div></div>'));
		$('#photoCont div').append(tbl, prev_link, next_link);
	} else {
		$('#photoCont').hide();
		$('#photoCont img').remove();
		$('#photoCont a.arrow').remove();
		$('#photoCont div').append(prev_link, next_link);
	}
	
	var preloadImg = new Image();
	preloadImg.onload = function() {
		preloadImg.onload = null;		
		var w = preloadImg.width;
		var h = preloadImg.height;
		var pd = getPageDimentions();
		var new_img_dimentions = resizeImg(w,h);
		var nw = new_img_dimentions[0];
		var nh = new_img_dimentions[1];
		
		$('#photoCont tr:eq(1) td:eq(1)').append('<img src="'+photos_arr[idx]+'" width="'+nw+'" height="'+nh+'">').parents('div:eq(1)').css(
			{
				top: Math.round((pd[1] - nh)/2)+'px',
				left: Math.round((pd[0] - nw)/2)+'px',
				display: 'block'
			}
		);
		$('#preloader').hide();
		
	};
	preloadImg.src = photos_arr[idx];
	$('#photoCont a.close').click( hideImg);
	
	if($('#photoCont a.arrow').length) {
		$('#photoCont a.prev').bind('click',
			function() {
				showPhoto(prev_img_idx);
				return !1;
			}
		);
		$('#photoCont a.next').bind('click',
			function() {
				showPhoto(next_img_idx);
				return !1;
			}
		);
	}
	
	$('#overlay').click( hideImg);
	
}

$(
	function() {
	
		isie6 = ($('#container').css('minWidth') == 'undefined') ? true : false;
		
		// добавление стрелки к текущей вкладке групп услуг в шапке
		if($('#addServMenu').length) {
			$('#addServMenu li.current').append($('<i></i>'));
		}


		// показ списка услуг на главной странице
		if($('#groupLinks').length) {
			$('#groupLinks a').click(
				function() {
					if(!$(this).hasClass('active')) {
						$('#groupLinks a').each(
							function(i) {
								this.idx = i+1;
								$(this).parent().removeClass('active');
								$('#csl'+this.idx).removeClass('active');
							}
						);
						$(this).parent().addClass('active');
						$('#csl'+this.idx).addClass('active');
					}
					return !1;
				}
			);
		}
		
		// переход по ссылке на филиал на главной странице
		if($('#ourBranches').length) {
			$('#ourBranches select').change(
				function() {
					if($(this).attr('value') !== 0) {
						location.href = $(this).attr('value');
					}
				}
			);
		}
		
		// добавление иконки внешней ссылки на главной странице
		if($('#govDepsLinks').length) {
			$('#govDepsLinks li a').each(
				function() {
					$(this).append($('<i></i>'));
				}
			);
		}
		
		// раскрывающийся список месяцев в архиве новостей в правой колонке
		if($('#newsCalendar').length) {
			$('#newsCalendar > li > a').click(
				function() {
					if($(this).parent('li').hasClass('open')) {
						$(this).next('ul').slideUp(400);
						$(this).parent('li').removeClass('open');
					} else {
						$('#newsCalendar').children('li').each(
							function() {
								if($(this).hasClass('open')) {
									$(this).children('ul').slideUp(400);
									$(this).removeClass('open');
								}
							}
						);
						$(this).next('ul').slideDown(400).parent('li').addClass('open');
					}
					return !1;
				}
			);
		}
		
		// раскрывающийся список ЧАВО
		if($('#faqList').length) {
			$('#faqList dt').each(
				function() {
					var dt = $(this);
					dt.append($('<i></i>')).next('dd').append($('<i></i>'));
					dt.find('a:first').click(
						function() {
							var idx = $(this).parent('dt').attr('id').substring(4);
							$('#tfla'+idx).slideToggle(400,
								function() { dt.toggleClass('expd');}
							);
							return !1;
						}
					);
				}
			);
		}
		
		if($('div.dataForm').length) {
			$('.dataForm a.addLink').click(
				function() {
					addFieldset($(this));
					return !1;
				}
			);
		}
		
		// проверка форм
		if($('.feedback').length) {
			var fform = $('.feedback form');
			checkSimpleForm(fform);
		}
		if($('.faqform').length) {
			var fform = $('.faqform form');
			checkSimpleForm(fform);
		}
		if($('.vacancyForm').length) {
			var vform = $('.vacancyForm form');
			vform.submit(
				function() {
					var felems = vform.get(0).elements
					var error = 0;
					$.each(felems, function(i, f) {
						if (f.getAttribute('type') != 'SUBMIT') {
							switch (f.getAttribute('name')) {
								case 'f_position':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_uname':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_ubday':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_ubyear':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_uphone':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_uemail':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else if (!mail_filter.test(f.value)) {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_education[]':
									if (f.selectedIndex == 0) {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_institutions[]':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_special_subjects[]':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_company[]':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_uduties[]':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_upost[]':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_languages':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_pcskills':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break;
								case 'f_captcha':
									if (f.value == '') {
										error++;
										$(f).addClass('error');
									} else if (!digit_filter.test(f.value)) {
										error++;
										$(f).addClass('error');
									} else { $(f).removeClass('error');}
									break
							}
						}
					});
				if(error != 0) {
					if(!vform.parent('div').children('p.error').length)
						vform.parent('div').prepend($('<p class="error">Проверьте правильность заполнения полей.</p>'));
					return false;
				}
			});
		}
		
		if($('#opinionsForm').length) {
			$('#opinionsForm .rating a').click(
				function() {
					var prnt = $(this).parents('ul:eq(0)');
					prnt.find('li').removeClass('voted');
					$(this).parents('div:eq(0)').find('input:hidden').attr('value', $(this).attr('class').substring(2));
					$(this).parent('li').addClass('voted');
					return !1
				}
			);
		}
		
		if($('#inAlbum').length) {
			$('#inAlbum li > a').each(
				function(i) {
					this.pid = i;
					$(this).append($('<i></i>'));
					photos_arr.push($(this).attr('href'));
				}
			);
			if(photos_arr.length != 0) {
				$('#inAlbum li > a').click(
					function() {
						showPhoto(this.pid);
						return !1;
					}
				);
			}
			
		}

	}
);