var timeout         = 200;
var closetimer		= 0;
var ddmenuitem      = 0;
// open hidden layer
function mopen(id, prefix)
{
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	 x_p=$('img_'+id).getPosition().x-6;
	 y_p=$('img_'+id).getPosition().y-6;

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	 $(id).setPosition({x: x_p, y: y_p});
	ddmenuitem.style.visibility = 'visible';

	

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}
function login_f()
{
	//	alert ('login');
	document.getElementById('login_form').submit();
	return false;
}
// close layer when click-out
document.onclick = mclose;

function StartSearch(form_id)
{
	forma=document.getElementById(form_id);
	forma.submit();
	return false;
}
function ChAreas(area)
{
	area_list=document.getElementById('s_area');
	area_list.length = 1;
	if (area!='' && areas[area])
	{
		for(i=0; i<areas[area].length; i++)
		area_list.options[i+1] = new Option(areas[area][i], areas[area][i], false, false);
	}
}
function  strip_tags(str, allowed_tags) {
	var key = '', allowed = false;
	var matches = [];
	var allowed_array = [];
	var allowed_tag = '';
	var i = 0;
	var k = '';
	var html = '';

	var replacer = function(search, replace, str) {
		return str.split(search).join(replace);
	};

	// Build allowes tags associative array
	if (allowed_tags) {
		allowed_array = allowed_tags.match(/([a-zA-Z]+)/gi);
	}

	str += '';

	// Match tags
	matches = str.match(/(<\/?[\S][^>]*>)/gi);

	// Go through all HTML tags
	for (key in matches) {
		if (isNaN(key)) {
			// IE7 Hack
			continue;
		}

		// Save HTML tag
		html = matches[key].toString();

		// Is tag not in allowed list? Remove from str!
		allowed = false;

		// Go through all allowed tags
		for (k in allowed_array) {
			// Init
			allowed_tag = allowed_array[k];
			i = -1;

			if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}
			if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
			if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}

			// Determine
			if (i == 0) {
				allowed = true;
				break;
			}
		}

		if (!allowed) {
			str = replacer(html, "", str); // Custom replace. No regexing
		}
	}

	return str;
}
function PosrtResponse()
{
	t_response=document.getElementById('response');
	f_response=document.getElementById('response_form');
	if (t_response && f_response)
	{
		if (strip_tags(t_response.value).replace(/\s/g,'').length>3) f_response.submit();
		else alert('Отзыв пуст, либо слишком короткий.');
	}
	return false;
}
function IsValidDate(Day,Mn,Yr){
	var DateVal = Mn + "/" + Day + "/" + Yr;
	var dt = new Date(DateVal);
	var dt1 = new Date();

	if(dt.getDate()!=Day){
		return(false);
	}
	else if(dt.getMonth()!=Mn-1){
		//this is for the purpose JavaScript starts the month from 0

		return(false);
	}
	else if(dt.getFullYear()!=Yr){
		return(false);
	}
	// else if (dt>dt1) {return(false);}

	return(true);
}
function CalendarSubmit(fDay, fMn, fYr, form_id)
{
	Day=document.getElementById(fDay).value;
	Mn=document.getElementById(fMn).value;
	Yr=document.getElementById(fYr).value;
	if (IsValidDate(Day,Mn,Yr)) StartSearch(form_id);
	else alert('Дата указана неверно');
	return false;
}
function CheckRadio(buttons)
{
	if ( buttons == null ) return false;
	for ( var i = 0; i < buttons.length; i++ ){
		if ( buttons[i].checked === true ) return buttons[i].value;
	}
	return false;
}
function CheckConsult()
{
	var msg='';
	forma=document.getElementById('consult_form');
	var str_feilds = {
	'subject':'Не указана тема вопроса.',
	'quest':'Текст вопроса пуст.'
	}
	if (isNaN(parseInt(forma['user_logged'].value)) || parseInt(forma['user_logged'].value)==0)
	{
		msg += '\nТолько зарагистрированные пользователи могут задавать вопросы.';
	}
	doc_id_val=CheckRadio(forma['doc_id']);
	if (isNaN(parseInt(doc_id_val)) || parseInt(doc_id_val)==0)
	{
		msg += '\nНе выбран специалист.';
	}
	for ( testKey in str_feilds )
	{
		if (strip_tags(forma[testKey].value).replace(/\s/g,'').length==0)
		{
			msg += '\n'+str_feilds[testKey];

		}
	}
	if (msg!='')
	{
		alert('Обнаружены ошибки:\n'+msg);
		return false;
	} else return StartSearch('consult_form');
}
function OCalendarSubmit()
{
	var msg='';
	var reg=/(\d{2})\/(\d{2})\/(\d{4})/
	b_m=document.getElementById('date_m').value;
	ml=document.getElementById('m_days').value;
	mml=document.getElementById('mm_days').value;
	var arr=reg.exec(b_m);
	if (arr==null || !IsValidDate(arr[1],arr[2],arr[3])) msg+='\nДата указана неверно';
	if (isNaN(parseInt(ml)) || parseInt(ml)<15 || parseInt(ml)>45)
	{
		msg += '\nПродолжительность менструального цикла указана неверно.';
	}
	if (isNaN(parseInt(mml)) || parseInt(mml)<1 || parseInt(mml)>10)
	{
		msg += '\nПродолжительность менструации указана неверно.';
	}
	if (msg!='')
	{
		alert('Обнаружены ошибки:\n'+msg);
	} else	StartSearch('ocalendar');
	return false;
}



