var VoyageContainer = document.getElementById('VoyageSearch');

if (VoyageContainer) {
	if (encoding == undefined) var encoding = 'cp1251';
	if (country_id == undefined) var country_id = 0;
	if (city_from_id == undefined) var city_from_id = 3959;
	var ua = navigator.userAgent.toLowerCase();
	var calendar_encoding = encoding;
	isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1);
	if (!isIE) encoding = 'cp1251';
	loadSearchForm(encoding, agency_id);
}

function loadSearchForm(encoding) {
	VoyageContainer.innerHTML = '<center><span style="color:#999999; font-family:verdana, tahoma; font-size: 10px;">Подождите, идет загрузка...</span></center>';
	document.write('<sc'+'ript language="JavaScript" src="http://www.voyage.kiev.ua/js/search/jshttprequest5.js"><'+'/sc'+'ript>');
	document.write('<sc'+'ript language="JavaScript" src="http://www.voyage.kiev.ua/js/search/ajax.js"><'+'/sc'+'ript>');
	document.write('<sc'+'ript language="JavaScript" src="http://www.voyage.kiev.ua/tools/externalsearch/load_form3.php?encoding='+encoding+'&agency_id='+agency_id+'&city_from_id='+city_from_id+'&country_id='+country_id+'"><'+'/sc'+'ript>');
	if (calendar_encoding == 'cp1251') {
		document.write('<sc'+'ript language="JavaScript" src="http://www.voyage.kiev.ua/js/search/scw.js"><'+'/sc'+'ript>');
	} else {
		document.write('<sc'+'ript language="JavaScript" src="http://www.voyage.kiev.ua/js/search/scw.utf8.js"><'+'/sc'+'ript>');
	}
}

function loadFormData(caller) {
	showLoad();
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	hideLoad();
        	if (req.responseJS.country) document.getElementById('voyage_country').innerHTML = req.responseJS.country;
        	if (req.responseJS.resort) document.getElementById('voyage_resort').innerHTML = req.responseJS.resort;
        	if (req.responseJS.hotel) document.getElementById('voyage_hotel').innerHTML = req.responseJS.hotel;
        	if (req.responseJS.duration) document.getElementById('voyage_duration').innerHTML = req.responseJS.duration;
        	if (req.responseJS.date_extremum) document.getElementById('voyage_date_extremum').innerHTML = req.responseJS.date_extremum;
        }
    }
    req.open(null, 'http://www.voyage.kiev.ua/tools/externalsearch/load_data.php', true);
    req.send( {
    		'agency_id' : agency_id,
    		'encoding' : encoding,
    		'caller' : caller,
    		'city_from_id': document.getElementById('city_from_id').value,
    		'country_id': document.getElementById('country_id').value,
    		'resort_id' : getAllParam('resort'),
    		'hotel_id' : getAllParam('hotel'),
    		'duration' : getAllParam('duration'),
    		'category_id' : getAllParam('category')
	} );
}
function show_age(child) {
	document.getElementById("show_age_0").style.display = "none";
	document.getElementById("show_age_1").style.display = "none";
	document.getElementById("show_age_2").style.display = "none";
	document.getElementById("show_age_3").style.display = "none";
	document.getElementById("show_age_4").style.display = "none";
	if (child == 0) document.getElementById("show_age_0").style.display = "inline";
	if (child >= 1) document.getElementById("show_age_1").style.display = "inline";
	if (child >= 2) document.getElementById("show_age_2").style.display = "inline";
	if (child >= 3) document.getElementById("show_age_3").style.display = "inline";
	if (child >= 4) document.getElementById("show_age_4").style.display = "inline";
}
function tourSearch(page) {
	showLoad();
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	hideLoad();
        	document.getElementById('voyage_result').innerHTML = req.responseText;
        }
    }
    req.open(null, 'http://www.voyage.kiev.ua/tools/externalsearch/load_result.php', true);
    req.send( {
    		'city_from_id': document.getElementById('city_from_id').value,
    		'date_from': document.getElementById('date_from').value,
    		'date_to': document.getElementById('date_to').value,
    		'adults': document.getElementById('adults').value,
    		'childs': document.getElementById('childs').value,
    		'age_1': document.getElementById('age_1').value,
    		'age_2': document.getElementById('age_2').value,
    		'age_3': document.getElementById('age_3').value,
    		'age_4': document.getElementById('age_4').value,
    		'board_id': document.getElementById('board_id').value,
    		'is_actual': document.getElementById('is_actual').checked,
    		'price_min': document.getElementById('price_min').value,
    		'price_max': document.getElementById('price_max').value,
    		'country_id': document.getElementById('country_id').value,
    		'resort_id' : getAllParam('resort'),
    		'hotel_id' : getAllParam('hotel'),
    		'duration' : getAllParam('duration'),
    		'category_id' : getAllParam('category'),
    		'encoding' : encoding,
    		'agency_id' : agency_id,
    		'_start' : page,
    		'encoding' : encoding,
    		'url' : document.location.href
	} );
}

function getAllParam(name) {
	var elem = document.getElementsByTagName('INPUT');
	var sel = new Array();
	for(var i=0;i<elem.length;i++) {
		if (elem[i].id.substr(0, name.length) == name && elem[i].checked == true && elem[i].value!='') {
			sel[i] = elem[i].value;
		}
	}
	return sel;
}



function loadInfo(price_id, encoding) {
	if (document.getElementById('info_'+price_id).innerHTML.length > 10) {
		document.getElementById('info_'+price_id).innerHTML = '';
		return;
	}
	showLoad();
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	hideLoad();
        	eval(req.responseJS.run)
        }
    }
    req.open(null, 'http://www.voyage.kiev.ua/tools/externalsearch/load_info.php', true);
    req.send( {'price_id':price_id, 'encoding':encoding} );
}
function showInfo(price_id, info) {
	document.getElementById('info_'+price_id).innerHTML=info;
}
function showLoad() {
	document.getElementById('loading').style.display = 'block';
	document.getElementById('loading').style.top = (getBodyScrollTop() + screen.height/2 - 100) + 'px';
	document.getElementById('loading').style.width = "300px";
	document.getElementById('loading').style.left = ((document.getElementById('loading').offsetParent.offsetWidth - document.getElementById('loading').offsetWidth) / 2 ) + 'px';
}
function hideLoad() {
	document.getElementById('loading').style.display='none';
}


/* История изменения цены */
function getBodyScrollTop() {
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}
function show_tendency(x, y, param_1, param_2) {
	var obj = document.getElementById('price_history');
	obj.style.top = y + getBodyScrollTop();
	obj.style.left = x - 550;
	obj.innerHTML = 'Loading, please wait...';
	
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	document.getElementById('price_history').innerHTML = req.responseText;
			document.getElementById('price_history').style.display='block';
        }
    }
    req.open(null, 'http://www.voyage.kiev.ua/tools/externalsearch/load_tendency.php', true);
    req.send( {
    	'param_1' : param_1,
    	'param_2' : param_2
	} );
}
function hide_history() {
	document.getElementById('price_history').style.display='none';
}




/* Бронирование */

var order_price_id = 0;
function tourOrder(price_id, adult_count, child_count) {
	if (booking == false) {
		loadInfo(price_id);
		return;
	}
	if (document.getElementById('order_form').style.display == 'block') {
		if (!confirm('Форма бронирования уже открыта. Отменить текущий заказ и создать новый?')) {
			return;
		}
	}
	
	hideForms();
	document.getElementById('order_form').style.display = 'block';
	document.getElementById('order_form').style.position = 'absolute';
	document.getElementById('order_form').style.width = "600px";
	document.getElementById('order_form').style.top = (getBodyScrollTop() + screen.height/2 - 300) + 'px';
	document.getElementById('order_form').style.left = ((document.getElementById('order_form').offsetParent.offsetWidth - document.getElementById('order_form').offsetWidth) / 2 ) + 'px';
	order_price_id = price_id;
	var i = 0;
	/**
	 * Показываем необходимое количество полей для ввода информации о туристах
	 */
	for (i=1;i<=4;i++) {
		document.getElementById('adult_'+i).style.display = 'none';
		document.getElementById('child_'+i).style.display = 'none';
	}
	for (i=1;i<=adult_count;i++) {
		document.getElementById('adult_'+i).style.display = 'block';
	}
	for (i=1;i<=child_count;i++) {
		document.getElementById('child_'+i).style.display = 'block';
	}
}

function cancelBooking() {
	document.getElementById('order_form').style.display = 'none';
}

var data;
function makeBooking() {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	eval(req.responseJS);
        }
    }
    req.open(null, 'http://www.voyage.kiev.ua/tools/externalsearch/load_booking.php', true);
    
	data = {
		'price_id': order_price_id,	
		'fio': document.getElementById('fio').value, 	
		'phone': document.getElementById('phone').value, 
		'email': document.getElementById('email').value, 
		'agency_id': agency_id,
    	'url' : document.location.href
	};
	for (var i=1; i<=4; i++) {
		data['adult_'+i] = {
			'firstname': document.getElementById('adult_'+i+'_firstname').value,
			'lastname': document.getElementById('adult_'+i+'_lastname').value,
			'passport': document.getElementById('adult_'+i+'_passport').value,
			'b_day': document.getElementById('adult_'+i+'__birthday__day').value,
			'b_month': document.getElementById('adult_'+i+'__birthday__month').value,
			'b_year': document.getElementById('adult_'+i+'__birthday__year').value
		};
		data['child_'+i] = {
			'firstname': document.getElementById('child_'+i+'_firstname').value,
			'lastname': document.getElementById('child_'+i+'_lastname').value,
			'passport': document.getElementById('child_'+i+'_passport').value,
			'b_day': document.getElementById('child_'+i+'__birthday__day').value,
			'b_month': document.getElementById('child_'+i+'__birthday__month').value,
			'b_year': document.getElementById('child_'+i+'__birthday__year').value
		};
	}
    req.send(data);
}

function showThxForm() {
	document.getElementById('order_form').style.display = 'none';
	document.getElementById('thx_form').style.display = 'block';
	document.getElementById('thx_form').style.top = (getBodyScrollTop() + screen.height/2 - 300) + 'px';
	document.getElementById('thx_form').style.left = ((document.getElementById('thx_form').offsetParent.offsetWidth - document.getElementById('thx_form').offsetWidth) / 2 ) + 'px';
}
function hideForms() {
	document.getElementById('order_form').style.display = 'none';
	document.getElementById('thx_form').style.display = 'none';
}


var win = null;
/**
* Открывает окно в центре экрана или по левому/правому краю
* @param string myurl
* @param string myname
* @param int w
* @param int h
* @param int scroll
* @param enum('left', 'right') position
*/
function CenterWindow(myurl, myname, w, h, scroll, status) {
	if(win) {
		win.close();
	}
	
	if (screen.width <= w + 20) {
		// размер выдаваемого окна больше чем размер экрана пользователя
		scroll = 1;
		w = screen.width - 20;
	}
	
	if (screen.height <= h + 50) {
		// размер выдаваемого окна больше чем размер экрана пользователя
		scroll = 1;
		h = screen.height - 50;
	}
	
	// -10 и -50 - поправка для скроллинга и для нижней полосы с меню "Старт"
	LeftPosition = (screen.width) ? (screen.width-w - 10)/2: 0;
	TopPosition = (screen.height) ? (screen.height-h - 50)/2 : 0;
	settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',toolbar=0,locationbar=0,resizeable=0,menubar=0,directories=0,dependent=1,status='+status;
	win = window.open(myurl,myname,settings)
}

function cleanList(name, status, limit) {
	var elem = document.getElementsByTagName('INPUT');
	var sel = new Array();
	for(var i=0;i<elem.length;i++) {
		if (elem[i].id.substr(0, name.length) == name) {
			elem[i].checked = status;
			if (limit && sel.length >= limit) {
				break;
			}
		}
	}
}
function add_date(obj) {
	var d = obj.value.split('.');
	var d2 = new Date(d[2], d[1], Math.ceil(d[0]) + 2);
	var dday = d2.getDate();
	var dmonth = d2.getMonth();
	var dyear = d2.getFullYear();
	if (dday < 10) dday = '0'+dday;
	if (dmonth == 0) {
		dmonth = 12;
		dyear--;
	}
	if (dmonth < 10) dmonth = '0'+dmonth;
	document.getElementById('date_to').value = dday+'.'+dmonth+'.'+dyear;
}