//Возможные размеры поп-апов
var popup_size = {
					'_big' :    		{'w' : 820, 'h' : 740},
					'_normal' : 		{'w' : 640, 'h' : 480},
					'_small'  :			{'w' : 320, 'h' : 240},
//					'_normal_square' : 	{'w' : 640, 'h' : 640}
//				изменено vld по причене неохоты меняния 
//				_normal_square на что-то свое в других файлах :)
					'_normal_square' : 	{'w' : 820, 'h' : 700}
				 };

//Замена функции document.getElementById
function $(id)
{
	return document.getElementById(id);
}

// client position
function $position(element)
{
	var x = 0; var y = 0;
	while (element.offsetParent)
	{
		x += element.offsetLeft;
		y += element.offsetTop;
		element = element.offsetParent;
	}
	return {'x': x, 'y': y};
}

//Ширина окна
function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

//Высота окна
function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

//Открывает поп-ап окно
function launch_popup(url, size, posx, posy)
{
	if (!size) size = '_normal';
	if (!posx) posx = '_center';
	if (!posy) posy = '_middle';
	var x = 0;
	var y = 0;
	var w = popup_size[size]['w'];
	var h = popup_size[size]['h'];
	var dw = getClientWidth();
	var dh = getClientHeight();
	
	switch (posx)
	{
		case '_center': x = (dw - w) / 2; break;
		case '_right':  x = (dw - w); 	  break;
	}
	
	switch (posy)
	{
		case '_middle': y = (dh - h) / 2; break;
		case '_bottom':  y = (dh - h); 	  break;
	}
	
	return window.open(url, '_blank', 'height=' + h + ',width=' + w + ',top=' + y + ',left=' + x + ',resizable=yes,scrollbars=yes,status=yes');
}

//Делает элемент elem_id видимым, кнопку exp_id невидимой, а кнопку col_id - видимой
function expand(elem_id, exp_id, col_id)
{
	$(elem_id).style.display = '';
	if (exp_id) $(exp_id).style.display = 'none';
	if (col_id) $(col_id).style.display = '';
}

//Делает элемент elem_id невидимым, кнопку exp_id видимой, а кнопку col_id - невидимой
function collapse(elem_id, exp_id, col_id)
{
	$(elem_id).style.display = 'none';
	if (exp_id)
	{
		$(exp_id).style.display = '';
	}
	if (col_id) $(col_id).style.display = 'none';
}

//******************* Antispam ********************

//Decode e-mail address
function emaildecode(code)
{
	var email = '';
	for (var i = 0; i < code.length - 1 ; i += 2)
	{
		var c = code.charAt(i) + code.charAt(i + 1);
		email += unescape ('%' + c);
	}
	return email;
}

//Open e-mail agent for compose the latter
function emailclick(code)
{
	window.location = 'mailto:' + emaildecode(code);
}

//******************* Валидация форм ********************

//Проверяет, не пустая ли строка. Пробелы игнорируются
function is_empty(str)
{
   for (var i = 0; i < str.length; i++) if (" " != str.charAt(i)) return false;
   return true;
}

//Проверяет корректность имени или фамилии
function is_name(str)
{
	var reg = /^[A-Za-zА-Яа-я\-]+$/;
	return reg.test(str);
}

//Проверяет корректность доктора
function is_doctor(str)
{
	var reg = /^[A-Za-zА-Яа-я\-\s]+$/;
	return reg.test(str);
}

//Проверяет, является ли строка e-mail'ом
function is_email(str)
{
	var reg = /^[0-9a-z_\.\-]+@[0-9a-z_\-\.]+\.[a-z]{2,3}$/i;
	return reg.test(str);
}

//Проверяет, является ли это типичным телефоном. Проверки на все пробелы нет.
function is_phone(str)
{
	var reg = /^[0-9\+\-\s]{7,16}$/;
	return reg.test(str);
}

//Проверяет, является ли строка датой
function is_date(str)
{
	var reg = /^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}$/;
	return reg.test(str);
}

//Проверяет, является ли строка датой
function is_age(str)
{
	var reg = /^\d{1,2}$/;
	return reg.test(str);
}


