function binarySearch(arr, val)
{
	var s, e, p;

	s = 0;
	e = arr.length - 1;

	while (s <= e) {
		p = Math.floor((e + s) / 2);
		if (arr[p] > val) {
			e = p - 1;
		} else if (arr[p] < val) {
			s = p + 1;
		} else {
			return p;
		}
	}

	return -1;
}

function fillLcc() {

	if (document._sf.dep.tagName == 'SELECT' && !document._sf.dep.options.length) {
		alert('Пожалуйста, обновите страницу сочетанием клавиш "Ctrl"+"F5"');
		return;
	}


	var dep = (document._sf.dep.tagName == 'SELECT' ? document._sf.dep[document._sf.dep.selectedIndex].value : document._sf.dep.value);
	var ctrlOpts = document._sf.lcc.options;
	var ctrl = document._sf.lcc;

	var prsValArr = new Array();

	for (var i = 0; i < ctrlOpts.length; i++) {
		if (ctrlOpts[i].selected) {
			prsValArr[prsValArr.length] = ctrlOpts[i].value;
		}
	}


	for (var i = ctrlOpts.length - 1; i >= 1; i--) {
		ctrlOpts[i] = null;
	}


	var k = 1;
	for (var i = 0; i < r[dep].length; i++) {
		if (r[dep][i] && l2[i]) {
			if (!ctrlOpts.length || ctrlOpts[ctrlOpts.length - 1].value != l2[i][0]) {
				// the following code snippet can be easily optimized, right now have no time for it
				for (var j = 0; j < l1.length; j++) {
					if (l1[j][0] == l2[i][0]) {

						ctrl[k++] = new Option(l1[j][1], l1[j][0]);

						for (var m = 0; m < prsValArr.length; m++) {
							if (l1[j][0] == prsValArr[m]) {
								ctrl[k-1].selected = true;
								break;
							}
						}
					}
				}
			}
		}
	}

	ctrl[0].text = 'выберите страну';

}

function fillLcr() {

	if (document._sf.dep.tagName == 'SELECT' && !document._sf.dep.options.length) return;

	var dep = (document._sf.dep.tagName == 'SELECT' ? document._sf.dep[document._sf.dep.selectedIndex].value : document._sf.dep.value);
	var cn = document._sf.lcc[document._sf.lcc.selectedIndex].value;
	var cntext = document._sf.lcc[document._sf.lcc.selectedIndex].text;
	var ctrl = document._sf['lcr[]'];

	if (ctrl.options.length) var prsVal = ctrl[ctrl.selectedIndex].value;

	for (var i = ctrl.length - 1; i >= 0; i--) {
		ctrl[i] = null;
	}


	document._sf.dayst.disabled = false;

	if (!cn) return;

	ctrl[0] = new Option('все', cn);

	var k = 1;
	for (var i = 0; i < r[dep].length; i++) {
		if (r[dep][i]) {
			if (l2[i][0] == cn) {
				ctrl[k++] = new Option(l2[i][2] + (r[dep][i][2] ? ' (' + r[dep][i][2].toString() + ')' : ''), l2[i][1]);
				if (l2[i][1] == prsVal) {
					ctrl[k-1].selected = true;
				}
			}
		}
	}
}



function fillLcrM() {
	var f = document._sf;

	if (f.dep.tagName == 'SELECT' && !f.dep.options.length)
		return;

	var dep    = (f.dep.tagName == 'SELECT' ? f.dep[f.dep.selectedIndex].value : f.dep.value);
	var cnOpts = f.lcc.options;
	var ctrl   = f['lcr[]'];

	var prsValArr = new Array();

	for (var i = 0; i < ctrl.options.length; i++) {
		if (ctrl.options[i].selected) {
			prsValArr[prsValArr.length] = ctrl.options[i].value;
		}
	}



	for (var i = ctrl.length - 1; i >= 0; i--) {
		ctrl[i] = null;
	}

	f.dayst.disabled = false;

	if (f.lcc.selectedIndex < 1)
		return;


	var k = 0;
	flag1 = false;

	for (var j = 0; j < cnOpts.length; j++) {
		if (cnOpts[j].selected) {
			var qty = 0;
			for (var i = 0; i < r[dep].length; i++) {
				if (r[dep][i] && l2[i] && l2[i][0] == cnOpts[j].value && r[dep][i][2]) {
					qty += r[dep][i][2];
				}
			}

			ctrl[k++] = new Option(cnOpts[j].text + ', все курорты', cnOpts[j].value);

			if (prsValArr[0] == cnOpts[j].value) {
				ctrl[k-1].selected = true;
				flag1 = true;
			}


			for (var i = 0; i < r[dep].length; i++) {
				if (!r[dep][i] || !l2[i])
					continue;
				if (l2[i][0] != cnOpts[j].value)
					continue;

				ctrl[k++] = new Option(l2[i][2] + (r[dep][i][2] ? ' (' + r[dep][i][2].toString() + ')' : ''), l2[i][1]);
				for (var m = 0; m < prsValArr.length; m++) {
					if (l2[i][1] == prsValArr[m]) {
						ctrl[k-1].selected = true;
						flag1 = true;
						break;
					}
				}
			}
		}
	}

	if (!flag1) {
		ctrl[0].selected = true;
	}
}




function fillDepDate(ctrl) {

	if (!ctrl) return;

	if (document._sf.dep.tagName == 'SELECT' && !document._sf.dep.options.length) return;

	var dep = (document._sf.dep.tagName == 'SELECT' ? document._sf.dep[document._sf.dep.selectedIndex].value : document._sf.dep.value);
	var lcrObj = document._sf['lcr[]'];
	if (ctrl.options.length) var prsVal = ctrl[ctrl.selectedIndex].value;

	for (var i = ctrl.length - 1; i >= 0; i--) {
		ctrl[i] = null;
	}

	if (lcrObj.selectedIndex == -1) {
		return;
	}

	ctrl[0] = new Option('все', '');

	k = 1;
	oneday = 1000 * 3600 * 24;
	d0.setHours(4);

	var ddstr = getString6(0);

	for (var j = 0; j < ddstr.length; j++) {
		symb = ddstr.charCodeAt(j) - 63;
		if (symb) {
			for (var l = 1; l < 7; l++) {
				if (Math.pow(2, l - 1) & symb) {
					tmpDate = d0.getTime() + oneday * (j * 6 + l);
					ctrl[k++] = new Option(getNiceDate(tmpDate), getDateFormatted(tmpDate));

					if (getDateFormatted(tmpDate) == prsVal) {
						ctrl[k-1].selected = true;
					}
				}
			}
		}
	}
}



function fillDays(ctrl) {

	if (!ctrl) return;

	if (document._sf.dep.tagName == 'SELECT' && !document._sf.dep.options.length) return;

	var dep = (document._sf.dep.tagName == 'SELECT' ? document._sf.dep[document._sf.dep.selectedIndex].value : document._sf.dep.value);
	var lcrObj = document._sf['lcr[]'];

	if (ctrl.options.length) var prsVal = ctrl[ctrl.selectedIndex].value;

	for (var i = ctrl.length - 1; i >= 0; i--) {
		ctrl[i] = null;
	}

	if (lcrObj.selectedIndex == -1) {
		return;
	}
	ctrl[0] = new Option('', '');


	var lcrVal = lcrObj.options[lcrObj.selectedIndex].value;
	k = 1;
	var ddstr = getString6(1);

	var sel = false;
	for (var j = 0; j < ddstr.length; j++) {
		symb = ddstr.charCodeAt(j) - 63;
		if (symb) {
			for (var m = 1; m < 7; m++) {
				if (Math.pow(2, m - 1) & symb) {
					val = (j * 6 + m);
					if (val == 1)
					{
						ctrl[k++] = new Option('сутки', val);
					}
					else
					{
						ctrl[k++] = new Option(val, val);
					}

					if (val == prsVal) {
						ctrl[k-1].selected = true;
						sel = true;
					}
				}
			}
		}
	}

	if ((ctrl.length > 1) && (ctrl[1].value > 1))
	{
		ctrl[0] = new Option('все', '');
	}
	else
	{
		ctrl[0] = new Option('более суток', '');
	}

	if (!sel || !prsVal)
	{
		ctrl[0].selected = true;
	}
}




function getString6(indx) {
	var lcrObj = document._sf['lcr[]'];

	if (document._sf.dep.tagName == 'SELECT' && !document._sf.dep.options.length) return;

	var dep = (document._sf.dep.tagName == 'SELECT' ? document._sf.dep[document._sf.dep.selectedIndex].value : document._sf.dep.value);
	if (lcrObj.selectedIndex == -1) {
		return;
	}

	for (var i = 0; i < r[dep].length; i++) {
		if (r[dep][i]) {
			resLen = r[dep][i][indx].length;
			break;
		}
	}

	var res = '';
	for (var i = 0; i < resLen; i++) {
		res += '?';
	}

	for (var m = 0; m < lcrObj.options.length; m++) {
		if (lcrObj.options[m].selected) {
			if (/*lcrObj.options[m].text.indexOf('все курорты') != -1*/ m == 0) {
				for (var i = 0; i < r[dep].length; i++) {
					if (r[dep][i] && l2[i]) {
						if (l2[i][0] == lcrObj.options[m].value) {
							buffer = '';
							for (var j = 0; j < r[dep][i][indx].length; j++) {
								buffer += String.fromCharCode(((r[dep][i][indx].charCodeAt(j) - 63) | (res.charCodeAt(j) - 63)) + 63);
							}
							res = buffer;
						}
					}
				}
			}
			else {
				for (var i = 0; i < r[dep].length; i++) {
					if (r[dep][i] && l2[i]) {
						if (l2[i][1] == lcrObj.options[m].value) {
							buffer = '';
							for (var j = 0; j < r[dep][i][indx].length; j++) {
								buffer += String.fromCharCode(((r[dep][i][indx].charCodeAt(j) - 63) | (res.charCodeAt(j) - 63)) + 63);
							}
							res = buffer;
						}
					}
				}
			}
		}
	}
	return res;
}


function getNiceDate(dateObj) {
	dateObj = new Date(dateObj);

	var daysOfWeek = new Array('вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб');
	var months = new Array('янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек');
	var day = dateObj.getDate();
	return daysOfWeek[dateObj.getDay()] + ' ' + (day < 10 ? '0' : '') + day.toString() + ' ' + months[dateObj.getMonth()];
}


function getDateFormatted(dateObj) {
	dateObj = new Date(dateObj);

	var day = dateObj.getDate();
	var mon = dateObj.getMonth() + 1;
	var year = dateObj.getFullYear();
	return (day < 10 ? '0' : '') + day.toString() + '.' + (mon < 10 ? '0' : '') + mon.toString() + '.' + year.toString();
}

function fillAcc()
{
	var ctrl = document._sf['accmdp'];
	if (!ctrl || typeof(am) == 'undefined')
	{
		return;
	}

	var cVal = null;
	if (ctrl.options.length)
		cVal = ctrl[ctrl.selectedIndex].value;

	for (var i = ctrl.length - 1; i >= 0; i--)
	{
		ctrl[i] = null;
	}

	var dep = (document._sf.dep.tagName == 'SELECT' ?
		document._sf.dep[document._sf.dep.selectedIndex].value :
		document._sf.dep.value);

	var lcrObj = document._sf['lcr[]'].options;
	if (lcrObj.selectedIndex == -1) {
		return;
	}

	var mask = 0;
	for (var m = 0; m < lcrObj.length; m++)
	{
		if (!lcrObj[m].selected)
		{
			continue;
		}

		for (var i = 0; i < am[dep].length; i++)
		{
			if (!am[dep][i] || !l2[i])
			{
				continue;
			}

			if (l2[i][m == 0 ? 0 : 1] == lcrObj[m].value) {
				mask |= am[dep][i];
			}
		}
	}

	var k = 0;
	var s = false;
	var v;

	if (mask & 0x7)
	{
		ctrl[k++] = new Option('1 / 2 / 3 взр.', '');
	}

	for (var i = 0; i < 15; i++)
	{
		if (mask & (1 << i))
		{
			v       = (i + 1) + '_0';
			ctrl[k] = new Option((i + 1) + ' взр.', v);

			if (v == cVal)
			{
				ctrl[k].selected = true;
				s = true;
			}

			k++;
		}
	}

	if (mask & (1 << 15))
	{
		v       = '16_0';
		ctrl[k] = new Option('16 и более взр.', v);

		if (v == cVal)
		{
			ctrl[k].selected = true;
			s = true;
		}

		k++;
	}

	for (var i = 0; i < 3; i++)
	{
		for (var j = 0; j < 3; j++)
		{
			if (mask & (1 << (16 + i * 4 + j)))
			{
				v       = (i + 1) + '_' + (j + 1);
				ctrl[k] = new Option((i + 1) + ' взр. + ' + (j + 1) + ' реб.', v);

				if (v == cVal)
				{
					ctrl[k].selected = true;
					s = true;
				}

				k++;
			}
		}

		if (mask & (1 << (16 + i * 4 + 3)))
		{
			v       = (i + 1) + '_4';
			ctrl[k] = new Option((i + 1) + ' взр. + 4 и более дет.', v);

			if (v == cVal)
			{
				ctrl[k].selected = true;
				s = true;
			}

			k++;
		}
	}

	if (mask & (1 << 31))
	{
		v       = '4_4';
		ctrl[k] = new Option('4 и более взр. + 4 и более дет.', v);

		if (v == cVal)
		{
			ctrl[k].selected = true;
			s = true;
		}

		k++;
	}

	if (!s || !cVal)
	{
		ctrl[0].selected = true;
	}
}

function setDeparture() {
	fillLcc();
	if (document._sf['lcr[]']) {
		if (document._sf['lcr[]'].multiple) {
			fillLcrM();
		}
		else {
			fillLcr();
		}
		setLc();
	}
}

function setLc()
{
	if (document._sf['lcr[]'].options.length && document._sf['lcr[]'].options[0].selected && document._sf.resortfilter && document._sf.resortfilter.checked) {
		document._sf.resortfilter.checked = false;
	}

	flag1 = false;
	if (typeof(priceChanged) != 'undefined') {
		if (!priceChanged) {flag1 = true;}
	}

	var si = document._sf.lcc.selectedIndex;
	if (document._sf.currtype) {
		var currObj = document._sf.currtype.options;
		if (si > 0 && flag1) {
			var val = document._sf.lcc.options[si].value;
			for (i = 0; i < l1.length; i++) {
				if (l1[i][0] == val) {
					if (l1[i].length == 3) {
						for (l = 0; l <  currObj.length; l++) {
							if (currObj[l].value == l1[i][2]) {
								currObj[l].selected = true;
								break;
							}
						}
					}
					break;
				}
			}
		}
	}

	fillDepDate(document._sf.df);
	fillDepDate(document._sf.dt);
	fillDays(document._sf.daysf);
	fillDays(document._sf.dayst);
	fillHotels();
	fillTo();
	fillAcc();
}



function initPage()
{
	setDeparture();

	if (typeof(setInitValues) == 'function')
	{
		setInitValues();
	}
}

function trgLayer(lname)
{
	var obj = document.getElementById(lname);
	var img = document.images[lname + '_img'];

	if (obj.style.display == 'none')
	{
		obj.style.display = 'block';
		img.src = '/touronline/img/b3.gif';
	}
	else
	{
		obj.style.display = 'none';
		img.src = '/touronline/img/b3a.gif';
	}
}

function checkControls() {
	if (document._sf.lcc && document._sf.lcc.selectedIndex == 0) {
		alert('Выберите cтрану');
		return false;
	}

	if (document._sf['lcr[]'] && document._sf['lcr[]'].selectedIndex == -1) {
		alert('Выберите курорт');
		return false;
	}


	if (document._sf.df && document._sf.df && checkDate(document._sf.df) && checkDate(document._sf.dt) && checkDate(document._sf.df) > checkDate(document._sf.dt)) {
		alert('Задан некорректный временной диапазон');
		return false;
	}


	if (document._sf.daysf && document._sf.dayst && document._sf.daysf.value && document._sf.dayst.value && parseInt(document._sf.daysf.value) > parseInt(document._sf.dayst.value)) {
		alert('Задан некорректный диапазон количества дней');
		return false;
	}

	return true;
}

function checkSubmit(){
	checkSubmitHost('exat.ru');
}
function checkSubmitHost(host) {
	if(!host)
		host='exat.ru';
	if (!checkControls())
		return false;

	document._sf.action = 'http://'+host+'/touronline/result-v2.php';

	exat_wndname = 'result_' + genRandomStr(10);
	var wnd = window.open('', exat_wndname, 'resizable=yes, scrollbars=yes');

	wnd.document.write('Пожалуйста, подождите. Идет поиск туров...');

	wnd.focus();
	document._sf.target = exat_wndname;
	document._sf.submit();
}

function checkDate(dateControl) {

	if (dateControl && dateControl.value.length) {
		var d = dateControl.value.split(".")
		if (d.length != 3) {
			dateControl.focus();
			return false;

	    }
		if ( d[0] > 31 || d[1] > 12 || d[2].length !== 4 ) {

			dateControl.focus();
			return false;
	    }

		res = new Date(d[2], d[1] - 1, d[0])
		return res.getTime();
	}

	else {
		return 0;
	}
}

function genRandomStr(strlen) {
	str = '';
	for (i = 0; i < strlen; i++) {
		str += String.fromCharCode(Math.random()*25 + 97);
	}
	return str;
}

function w(url, width, height) {
	size = '';

	if(width && height)
		size = ',width=' + width + ',height=' + height;

	var strInitParam='directories=no,status=yes,scrollbars=yes,resizable=yes,menubar=no,toolbar=no';


	exat_wndname    = genRandomStr(10);
	var description = window.open('', exat_wndname, strInitParam+size);

	description.document.write('Пожалуйста, подождите. Идет загрузка...');

	if (url) {
		description.document.location=url;
	}
	description.focus();

	return description;
}


function submitTpids(param) {

	if (param == 0) {
		flag1 = false;
		if (document._sf.action1) {
			if (document._sf.action1.checked) {
				flag1 = true;
			}
		}

		if (document._sf.action3) {
			if (document._sf.action3.checked) {
				flag1 = true;
			}
		}

		if (!flag1) {
			alert('Не выбрано ни одного действия');
			return false;
		}
	}

	if (param == 3) {
		if (document._sf.tc_folder && document._sf.new_folder) {
			if (document._sf.tc_folder[document._sf.tc_folder.selectedIndex].value == -1 && !document._sf.new_folder.value.length) {
				alert('Укажите название новой папки');
				document._sf.new_folder.focus();
				return false;
			}
		}
	}

	var tpids = document._sf['tpid[]'];

	flag1 = false;


	if (tpids.length) {
		for (var i = 0; i < tpids.length; i++) {
			if (tpids[i].type == 'hidden' || (tpids[i].type == 'checkbox' && tpids[i].checked)) {
				flag1 = true;
				break;
			}
		}
	}
	else {
		if (tpids.type == 'hidden' || (tpids.type == 'checkbox' && tpids.checked)) {
			flag1 = true;
		}
	}


	if (!flag1) {
		alert('Не выбрано ни одного тура');
		return false;
	}


	var wndname = 'myoffer';
	var wnd = window.open('', wndname, 'resizable=yes, scrollbars=yes');

	wnd.document.write('Пожалуйста, подождите. Идет загрузка...');

	wnd.focus();

	formTarget = document._sf.target;
	formAction = document._sf.action;

	document._sf.target = wndname;
	if (param == 2) {
		document._sf.action = 'to/tours.php';
	}
	else if (param == 3) {
	//Voronin Kirill add2cart.php -> add2cart2.php
		document._sf.action = 'tourcart/add2cart2.php';
	}
	else {

		qstr = '';
		if (document._sf.action1 && document._sf.action1.checked) {
			qstr += '&target[]=www';
		}
		if (document._sf.action2 && !document._sf.action2.checked) {
			qstr += '&forcepublish=1';
		}

		if (document._sf.action3 && document._sf.action3.checked) {
			qstr += '&target[]=yandexmarket';
		}

		qstr = '?' + qstr.substr(1);
		document._sf.action = '../myaccount/myoffer.php' + qstr;
	}


	document._sf.submit();

	document._sf.target = formTarget;
	document._sf.action = formAction;
}


function submitHotels() {

	var hotels = document._sf['hotel[]'];

	flag1 = false;
	if (hotels.length) {
		for (var i = 0; i < hotels.length; i++) {
			if (hotels[i].checked) {
				flag1 = true;
				break;
			}
		}
	}
	else if (hotels) {
		if (hotels.checked) {
			flag1 = true;
		}
	}

	if (!flag1) {
		alert('Не отмечено ни одного отеля');
		return false;
	}

	if (document._sf.hidehotels) {
		document._sf.hidehotels.value = 1;
	}

	document._sf.submit();
}



function clearHotelFilter() {
	var hotels = document._sf['hotel[]'];

	if (hotels.length) {
		for (var i = 0; i < hotels.length; i++) {
			hotels[i].value = '';
		}
	}
	else if (hotels) {
		hotels.value = '';
	}

	document._sf.submit();
}


function clearSumHotels() {
	var hotels = document._sf['hotel[]'];

	if (hotels.length) {
		for (var i = 0; i < hotels.length; i++) {
			if (hotels[i].type == 'checkbox') {
				hotels[i].checked = false;
			}
		}
	}
	else if (hotels) {
		if (hotels.type == 'checkbox') {
			hotels.checked = false;
		}
	}
}




function formatTourCode(code) {
	var res = '';

	code = code.toString();
	if (code.indexOf('_')){
		i=code.indexOf('_');
		dayGroup = new String( code.substr(i+1));
		if(dayGroup.length < 2)
			dayGroup='0'+dayGroup;
		res='-'+ dayGroup;

		code=code.substr(0,i);
	}
	for (var i = 0; i < code.length; i++) {
		res = code.substr(code.length - 1 - i, 1) + (i && !(i % 3) && i < (code.length - 1) ? '-' : '') + res;
	}

	return res;
}






function fillHotels() {
	if (document._sf.dep.tagName == 'SELECT' && !document._sf.dep.options.length) return;

	var dep = (document._sf.dep.tagName == 'SELECT' ? document._sf.dep[document._sf.dep.selectedIndex].value : document._sf.dep.value);

	var hctrl = document._sf['hotel[]'];
	var rctrl = document._sf['lcr[]'];
	var cctrl = document._sf['hcat[]'];


	if (hctrl && hctrl.tagName == 'SELECT') {

		prsValArr = new Array();
		for (var i = 0; i < hctrl.options.length; i++) {
			if (hctrl.options[i].selected) {
				prsValArr[prsValArr.length] = hctrl.options[i].value;
			}
		}

		for (var i = hctrl.options.length - 1; i >= 0; i--) {
			hctrl.options[i] = null;
		}
	}

	if (!hctrl || hctrl.tagName != 'SELECT' || !rctrl.options.length || rctrl.selectedIndex == -1) return;

	cats = 0;
	for (var i = 0; i < cctrl.options.length; i++) {
		if (cctrl.options[i].selected && !isNaN(parseInt(cctrl.options[i].value))) {
			cats += Math.pow(2, cctrl.options[i].value - 1);
		}
	}

	fortune = false;
	lcrArr = new Array();
	if (rctrl.options[0].selected) {
		for (var i = 1; i < rctrl.options.length; i++) {
			lcrArr[rctrl.options[i].value] = true;
		}
	}
	else {
		for (var i = 1; i < rctrl.options.length; i++) {
			if (rctrl.options[i].selected)
			{
				if (rctrl.options[i].value == 'FORTUNE')
				{
					fortune = true;
				}
				else if (!isNaN(parseInt(rctrl.options[i].value)))
				{
					lcrArr[rctrl.options[i].value] = true;
				}
			}
		}
	}

	k = 0;
	hctrl[k++] = new Option('все', '');

	markedItems = false;
	for (var i = 0; i < hA.length; i++)	 {
		var cmp =
			(lcrArr.length ? lcrArr[hA[i][3]] : false ) &&
			(cats ? ((cats & hA[i][1]) || (cats & Math.pow(2, 10) && !hA[i][1])) : true)

		if (cmp) {
			hctrl[k++] = new Option(hA[i][2], hA[i][0]);

			for (var m = 0; m < prsValArr.length; m++) {
				if (hA[i][0] == prsValArr[m]) {
					hctrl[k-1].selected = true;
					markedItems = true;
					break;
				}
			}
		}
	}

	if (hctrl.length == 1) {
		hctrl.options[0] = null;
	}


	if (!markedItems && hctrl.length) {
		hctrl[0].selected = true;
	}

}





function fillTo() {

	if (document._sf.dep.tagName == 'SELECT' && !document._sf.dep.options.length) return;

	var dep = (document._sf.dep.tagName == 'SELECT' ? document._sf.dep[document._sf.dep.selectedIndex].value : document._sf.dep.value);
	var lcc = (document._sf.lcc.tagName == 'SELECT' ? document._sf.lcc[document._sf.lcc.selectedIndex].value : document._sf.lcc.value);

	var ctrl = document._sf['touroperator[]'];

	if (!ctrl || ctrl.tagName == 'INPUT') return;


	prsValArr = new Array();
	for (var i = 0; i < ctrl.options.length; i++) {
		if (ctrl.options[i].selected) {
			prsValArr[prsValArr.length] = ctrl.options[i].value;
		}
	}

	for (var i = ctrl.options.length - 1; i >= 0; i--) {
		ctrl.options[i] = null;
	}


	var lcrObj = document._sf['lcr[]'].options;

	var cnSelected = false;
	if (lcrObj.length && lcrObj[0].selected)
		cnSelected = true;

	var lcrArr = new Array();
	for (i = 0; i < lcrObj.length; i++) {
		if (lcrObj[i].selected || cnSelected) {
			lcrArr[lcrObj[i].value] = 1;
		}
	}

	var tmpArr = new Array();
	for (i = 0; i < r[dep].length; i++) {
		if (r[dep][i] && l2[i] && lcrArr[l2[i][1]] && r[dep][i][3] && lcc == l2[i][0])
		{
			for (j = 0; j < r[dep][i][3].length; j++)
			{
				tmpArr[r[dep][i][3][j]] = 1;
			}
		}
	}

	k = 0;
	ctrl[k++] = new Option('все', '');
	markedItems = false;
	for (var i = 0; i < toA.length; i++) {

		if (!toA[i]) continue;

		if (tmpArr[toA[i][0]]) {

			ctrl[k++] = new Option(toA[i][1], toA[i][0]);

			for (var m = 0; m < prsValArr.length; m++) {
				if (toA[i][0] == prsValArr[m]) {
					ctrl[k-1].selected = true;
					markedItems = true;
					break;
				}
			}
		}
	}

	if (ctrl.length == 1) {
		ctrl.options[0] = null;
	}

	if (ctrl.length) {
		if (arrPrefTo.length) {
			var i, c, t;

			t = new Array();
			for (c = 0, i = 1; i < ctrl.length; i++) {
				if (binarySearch(arrPrefTo, ctrl[i].value) >= 0) {
					t[t.length] = i;
					c++;
				}
			}

			if (!c || t.length == ctrl.length - 1)
			{
				ctrl[0].selected = true;
			}
			else
			{
				for (i = 0; i < t.length; i++)
				{
					ctrl[t[i]].selected = true;
				}
			}
		} else {
			ctrl[0].selected = true;
		}
	}
}




function submitPortal() {

	if (!checkControls())
		return false;

	var hotels = document._sf['hotel[]'];

	if (hotels) {
		if (hotels.length) {
			for (var i = 0; i < hotels.length; i++) {
				if (hotels[i].type == 'hidden') {
					hotels[i].disabled = true;
				}
			}
		}
		else if (hotels) {
			if (hotels.type == 'hidden') {
				hotels.disabled = true;
			}
		}
	}

	document._sf.action += '?lcc=' + document._sf.lcc[document._sf.lcc.selectedIndex].value.toString();
	document._sf.submit();
	return true;
}



function setDates(dateObj) {
	if (dateObj.name == "df") {
		var dateObj2 = dateObj.form.dt;
	}
	else if (dateObj.name == "dt") {
		var dateObj2 = dateObj.form.df;
	}

	if (!dateObj2) return;

	if (!dateObj2.selectedIndex) {
		dateObj2.selectedIndex = dateObj.selectedIndex;
	}

}


function getHCatStr(val) {
	res = '';
	if (val & 1) {
		res += ', 1*';
	}
	if (val & 2) {
		res += ', 2*';
	}
	if (val & 4) {
		res += ', 3*';
	}
	if (val & 8) {
		res += ', 4*';
	}
	if (val & 16) {
		res += ', 5*';
	}
	if (val & 64) {
		res += ', HV-2';
	}
	if (val & 128) {
		res += ', HV-1';
	}
	if (res.length) {
		return res.substr(2);
	}
	else {
		return 'без категории';
	}
}


function checkTpids(val) {
	var obj = document._sf.elements;

	for (i = 0; i < obj.length; i++) {
		if (obj[i].name == 'tpid[]' && obj[i].tagName == 'INPUT' && obj[i].type == 'checkbox' && (!val || obj[i].className == '_c' + val.toString())) {
			obj[i].checked = val;
		}
	}
}

function onDaysChange(obj)
{
	var v = obj.value;
	var f = document._sf;

	if (v == 1)
	{
		f.daysf.value = v;
		f.dayst.value = v;
		f.dayst.disabled = true;
	}
	else
	{
		if (f.dayst.disabled)
		{
			f.dayst.value    = '';
			f.dayst.disabled = false;
		}
	}
}
