CitySearch = function(el, type, endeval)
{
	CitySearch.element = (document.getElementById(el)) ? document.getElementById(el) : el;
	CitySearch.element.select();
	CitySearch.endeval = endeval;
	
	var src = CitySearch.frame.src.substr(CitySearch.frame.src.lastIndexOf('.'));
	src = src.substr(src.indexOf('/'));
	if (src == '') src = CitySearch.frame.src;
	if (src != '/lib/citysearch/?'+((type == 'avia') ? 'avia' : 'railway'))
		CitySearch.frame.src = '/lib/citysearch/?'+((type == 'avia') ? 'avia' : 'railway');
	
	//setTimeout("frames['"+CitySearch.frame.name+"'].Do()", 100);
	frames[CitySearch.frame.name].Do();
	
	return false;
}

// глобальные
CitySearch.element = false; // элемент, куда вписываем город
CitySearch.frame = document.getElementById('CitySearchFrame'); // фрейм, в котором находится календарь

CitySearch.hideFrame = function()
{
	Animation(CitySearch.frame, 'fadeOut')
}

CitySearch.showFrame = function()
{
	Animation(CitySearch.frame, 'fadeIn')
}

CitySearch.getScrollTop = function()
{
	if (document.documentElement.scrollTop) return document.documentElement.scrollTop;
	if (document.body.scrollTop) return document.body.scrollTop;
	if (window.pageYOffset) return window.pageYOffset;
	return 0;
}

CitySearch.getWinHeight = function()
{
	if (window.innerHeight) return window.innerHeight;
	if (document.documentElement.clientHeight) return document.documentElement.clientHeight;
	if (document.body.clientHeight) return document.body.clientHeight;
	return 0;
}

CitySearch.setFrameSize = function()
{
	var el = frames[CitySearch.frame.name].document.getElementById('Frame');
	CitySearch.frame.style.width = parseInt(frames[CitySearch.frame.name].getElementComputedStyle(el, 'width'))
		+ parseInt(frames[CitySearch.frame.name].getElementComputedStyle(el, 'border-left-width'))
		+ parseInt(frames[CitySearch.frame.name].getElementComputedStyle(el, 'border-right-width')) + 'px';
	CitySearch.frame.style.height = parseInt(frames[CitySearch.frame.name].getElementComputedStyle(el, 'height'))
		+ parseInt(frames[CitySearch.frame.name].getElementComputedStyle(el, 'border-top-width'))
		+ parseInt(frames[CitySearch.frame.name].getElementComputedStyle(el, 'border-bottom-width')) + 'px';		
}

// позиционирование фрейма
CitySearch.posFrame = function()
{
	var cP = CitySearch.element;
	var dB = document.body; var eL=0; var eT=0;

	for (var p=cP;p&&p.tagName!='BODY';p=p.offsetParent){eL+=p.offsetLeft;eT+=p.offsetTop;}
	var eH = cP.offsetHeight;
	
	// подгоняем размеры
	CitySearch.setFrameSize();
		
	var dH = parseInt(CitySearch.frame.style.height);
	var sT = CitySearch.getScrollTop();
	
	var right = true;
	
	if (right) // позиционирование справа от того, по чему мы кликнули
	{
	    if (eT-dH>=sT&&eT+dH>CitySearch.getWinHeight()+sT)eT-=(dH-eH);
	    CitySearch.frame.style.left=eL+30+cP.offsetWidth+'px';CitySearch.frame.style.top=eT+'px'; 
	}
	else
	{
	    if(eT-dH>=sT&&eT+eH+dH>CitySearch.getWinHeight()+sT)eT-=dH;else eT+=eH;
	    CitySearch.frame.style.left=eL+'px';CitySearch.frame.style.top=eT+'px';
	}
}

// установка значения при окончательном выборе
CitySearch.setValue = function(str)
{
	CitySearch.element.value = str;
	if (CitySearch.endeval) eval(CitySearch.endeval);
}

addEvent(window, 'load', function() {addEvent(document, 'click', CitySearch.hideFrame)});
