var
	d = document,
	enlarged = 0,
	fchecked = 0,
	l = navigator.userAgent.toLowerCase(),
	i = l.indexOf('msie'),
	ie4u = i >= 0 && l.indexOf('opera') < 0 && d.all && d.all.item && parseFloat(l.substr(i + 5)) >= 4;

function und(o)
{
	return typeof(o) == 'undefined' || o === '' || o == null;
}

function gl(i, p)
{
	var l = und(p) ? document : p.document;
	if (und(l[i])) {
		var j, e, c = l.layers.length;
		if (c == 0) return;
		else
			for (j = 0; j < c; j++) {
				e = gl(i, l.layers[j]);
				if (!und(e))
					return e;
			}
	}
	else
		return l[i];
}

function ge(i)
{
	return typeof(i) == 'string' ? d.getElementById ? d.getElementById(i) : d.all ? d.all[i] : d.layers ? gl(i) : null : i;
}

function ges(i)
{
	var l = ge(i);
	return und(l) ? null : d.layers ? l : l.style;
}

function setvis(e, v)
{
	var s = ges(e);
	if (und(s)) return;
	s.visibility = v ? 'visible' : 'hidden';
	s.display = v ? 'inline' : 'none';
}

function setcss(e, c)
{
	e = ge(e);
	if (ie4u) 
		e.className = c;
	else
		e.setAttribute('class', c);
}

function turing_enlarge()
{
	if (enlarged)
		alert('Изображение не может быть больше увеличено');
	else
	{
		var
			e = ge('turing_img'),
			s = ges(e),
			w = e.offsetWidth,
			h = e.offsetHeight;
		if (!(und(w) || und(h) || und(w = parseInt(w)) || und(h = parseInt(h))))
		{
			var nw = Math.round(w * 1.5), nh = Math.round(h * 1.5);
			s.height = nh + 'px';
			s.width = nw + 'px'
		}
		++enlarged;
	}
	d.forms.m_form.turing.focus();
	return false;
}

function chMsgAdd(x)
{
	var
		f = d.forms.m_form,
		v, j, k,
		s = ge('validate'),
		i = !und(s.innerHTML),
		a = und(f.email.value),
		e = !a && window.RegExp && !(/^[\w\-\.]+\@[\w\-]+\.[\w\-\.]+$/.test(f.email.value)),
		m = und(f.speciality.value),
		c = f.chapter.selectedIndex != 'undefined' && f.chapter.options[f.chapter.selectedIndex].value == '0',
		n = und(f.name.value),
		t = und(f.turing.value);
	v = a || e || m || c || t;
	if (fchecked)
	{
		if (m)
		{
			setcss(f.speciality, 'error');
			if (i)
				s.innerHTML = 'Пожалуйста, укажите должность!';
		}
		else
			setcss(f.speciality, 'text');
		if (!m && c && i)
		{
			s.innerHTML = 'Пожалуйста, укажите раздел!';
		}
		if (!(m || c) && n)
		{
			setcss(f.name, 'error');
			if (i)
				s.innerHTML = 'Пожалуйста, укажите Ваше имя!';
		}
		else
			setcss(f.name, 'text');
		if (!(m || c || n) && (a || e))
		{
			setcss(f.email, 'error');
			if (i)
				s.innerHTML = a ? 'Пожалуйста, укажите Ваш email!' : 'Неверно указан email!';
		}
		else
		{
			setcss(f.email, 'text');
		}
		if (!(m || c || n || a || e) && t)
		{
			setcss(f.turing, 'error');
			if (i)
				s.innerHTML = 'Пожалуйста, введите номер, изображенный на рисунке!';
		}
		else
			setcss(f.turing, 'text');
		for (j in x)
		{
			k = f[x[j][0]];
			if (k.value.length > x[j][1])
				k.value = k.value.substr(0, x[j][1]);
			if (i)
				ge(x[j][0] + 'chr').innerHTML = k.value.length;
		}
	}
	else
		fchecked = 1;
	setvis(s, v);
	setvis('submit', !v);
	f.send.disabled = v;
	return !v;
}

function chResAdd()
{
	return chMsgAdd([['educationdescr', 400], ['experiencedescr', 800], ['descr', 800]]);
}

function chVacAdd()
{
	return chMsgAdd([['requirements', 800], ['assumptions', 800], ['conditions', 400]]);
}

function valMsgAdd(v)
{
	if (v)
	{
		var s = ge('send');
		if (!und(s))
		{
			s.value = 'Пожалуйста, подождите...';
			s.disabled = true;
		}
		return true;
	}
	else
		return false;
}

function valResAdd()
{
	return valMsgAdd(chResAdd());
}

function valVacAdd()
{
	return valMsgAdd(chVacAdd());
}

function iBlocks(t, c, a)
{
	var i, v, e, l;
	for (i in a)
	{
		v = a[i];
		e = ge(c + v);
		l = sHome + t + '/' + v + '/';
		e.onclick = new Function('d.location.href = "' + l + '";');
		e.onmouseover = new Function('setcss("' + c + v + '","block-over");window.status="' + l + '";');
		e.onmouseout = new Function('setcss("' + c + v + '","block-out");window.status="";');
	}
}

function initBlocks()
{
	iBlocks('resume', 'r', resIDs);
	iBlocks('vacancies', 'v', vacIDs);
}

