var Tickets = {

	php_backend: function()
	{
		return "/ajax/tickets/";
	},

	/**
	 * Функции, вызывающиеся при window.onload
	 */
	onLoadAction: function()
	{
		if ($('contacts')) {
			$('contacts').opened = true;
		}	
		
		if($('clients')) { 
			$('clients').opened = true;
		}	
		
		if ($('addBooking')) {
			$('addBooking').onclick = Tickets.addBooking;
		}
		
		if ($('bookTickets')) {
			$('bookTickets').onclick = function() 
			{
				Tickets.bookTickets($('Ticket_Form'))
			};
		}
	},
	
	addBooking: function()
	{
	
		var newChild = document.createElement('div');
		newChild.setAttribute('class', 'block');

		newChild.innerHTML = $('mainDiv').getElementsByClassName('block')[0].innerHTML;		
		newChild.getElementsByClassName('content')[0].innerHTML = '<img src="/_public/images/ajax-loader.gif" align="absmiddle"> Подождите, идет формирование запроса…';
		
		element = newChild.getElementsByClassName('title')[0];
		element.onclick = function()
		{
			if (newChild.opened) {
				element.removeClassName('opened');
			} else {
				element.addClassName('opened'); 
			}				 
			fx.toggle(newChild, 50, function(){ if (newChild.opened) newChild.style.height = '100%'; });
			return false;
		}
		
		newChild.style.height = '100%';
		newChild.opened = true;
		
		$$("div.block div.title").each(function(element){
			block = element.up();
			block.opened = false;
			block.style.height = '50px';
		});		
		
		$('mainDiv').appendChild(newChild);
		
		JsHttpRequest.query(
			Tickets.php_backend(),
			{
				'action': 			'generateBookingForm', 
				'data[name]': 		$F('name'), 
				'data[surename]': 	$F('surename'), 
				'data[birthDay]': 	$F('birthDay'), 
				'data[birthMonth]':	$F('birthMonth'), 
				'data[birthYear]': 	$F('birthYear'),
				'data[email]':		$F('email'),
				'data[phone]':		$F('phone')  
			},
			function(result, text){
				newChild.getElementsByClassName('content')[0].innerHTML = text;					
			},
			true
		);
		
		return;
	},
	
	chooseDeliveryPlace: function(element)
	{
		if (element.value == 'flat') {
			$('deliveryOffice').hide();
			$('deliveryFlat').show();
		} else if (element.value == 'office') {
			$('deliveryFlat').hide();
			$('deliveryOffice').show();
		}	
	},		
	
	showDeliveryForm: function(element)
	{
		if (element.checked) {
			$('deliveryForm').show();
		} else {
			$('deliveryForm').hide();
		}	
	},
	
	bookTickets: function(form)
	{
		if (!Validate(form.getElements(), true)) {
			$$('.RedBorder').each(function(element)
			{
				element.up('div').up('div').style.height = '100%';
			});
			
		} else {			
			JsHttpRequest.query(
				this.php_backend(),
				{ 'action': 'bookTickets', data: $('Ticket_Form')},
				function(result, errors)
				{
					if (!errors || errors.strip() == '') {
						$('mainDiv').innerHTML =
							'<h2 style="color: green">Ваша заявка успешно принята</h2>' +
							'<del>&nbsp;</del>' +
							'Все данные отправлены вам на электронную почту.  <br/>' +
							'В ближайшее время менеджер свяжеться с вами для уточнения параметров заказа билетов.';
					} else {
						element = document.createElement('div');
						element.innerHTML = errors;
						element.setAttribute('class', 'error');
						$('mainDiv').appendChild(element);
					}
				}
			);
		}
	},
	
	setRailwayClass: function (element)
	{
		if (element.value != '') {
			var destination = $(element).up('fieldset').getElementsByClassName('railwayClass')[0];
			JsHttpRequest.query(
				this.php_backend(),
				{ 'action': 'getClassesByType', 'typeId': $(element).value },
				function(result, errors) {
					$(destination).length = 0;
					if (result.length) {
						result.each(function(element, index)
						{
							$(destination).options[index] = new Option(element.name, element.id);
						});
					}
				}
			);
		}
	},
	
	
	changeFromCountry: function(element)
	{
		destination = $(element).up('fieldset').getElementsByClassName('fromCity')[0];
		$(element).up('fieldset').getElementsByClassName('fromCustomCity')[0].hide();
		
		if ($(element).value != '') {
			JsHttpRequest.query(
				this.php_backend(),
				{ 'action': 'getCitiesByCountry', 'countryId': $(element).value },
				function(result, errors) {
					$(destination).length = 0;
					if (result.length) {
						result.each(function(element, index)
						{
							$(destination).options[index] = new Option(element.name, element.id);
						});
						$(destination).options[$(destination).length] = new Option('Другой город', 0);
						$(destination).enable(); fx.hidden($(destination), 1);
					}
				}
			);
		}		
	},
	
	changeToCountry: function(element)
	{
		destination = $(element).up('fieldset').getElementsByClassName('toCity')[0];
		$(element).up('fieldset').getElementsByClassName('toCustomCity')[0].hide();
		
		if ($(element).value != '') {
			JsHttpRequest.query(
				this.php_backend(),
				{ 'action': 'getCitiesByCountry', 'countryId': $(element).value },
				function(result, errors) {
					$(destination).length = 0;
					if (result.length) {
						result.each(function(element, index)
						{
							$(destination).options[index] = new Option(element.name, element.id);
						});
						$(destination).options[$(destination).length] = new Option('Другой город', 0);
						$(destination).enable(); fx.hidden($(destination), 1);
					}
				}
			);
		}		
	},

	changeToCity: function(element)
	{
		if ($(element).value == 0) {
			$(element).up('fieldset').getElementsByClassName('toCustomCity')[0].show();
		} else {
			$(element).up('fieldset').getElementsByClassName('toCustomCity')[0].hide();
		}	
	},	
	
	changeFromCity: function(element)
	{
		if ($(element).value == 0) {
			$(element).up('fieldset').getElementsByClassName('fromCustomCity')[0].show();
		} else {
			$(element).up('fieldset').getElementsByClassName('fromCustomCity')[0].hide();
		}	
	},	
	
	addTourist: function ()
	{
		var newChild = document.createElement('div');
		newChild.innerHTML = $('tourist').innerHTML;
		$('tourists').appendChild(newChild);		
	},
	
	removeTourist: function (element)
	{
		if ($(element).up('div').id != 'tourist') {
			$(element).up('div').remove();
		}			
	},
	
	setTextLat: function(element)
	{
		for(var i = 0; i < 2; i++) {
			if ($(element).up('fieldset').getElementsByTagName('input')[i] == $(element)) {
				$(element).up('fieldset').getElementsByTagName('input')[i + 2].value = Tools.translit($(element).value);
				break;
			}
		}	
	},
	
	chooseCity: function(element)
	{
        for(var i = 0; i < 10; i++) {
            if ($(element).up('fieldset').getElementsByTagName('div')[i] == $(element).up('div')) {
                var elementDiv = $(element).up('fieldset').getElementsByTagName('div')[i + 1];
                break;
            }
        }           
		
		if ($(element).value == 0) {
			if ($(elementDiv).style.display == 'none') {
				$(elementDiv).show();
			}
		} else {
			if ($(elementDiv).style.display != 'none') {
				$(elementDiv).hide();
			}	
		}
		return;
	},
	
	chooseWhoCreates: function(value)
	{
		
		if (value == 'agency') {
			$('chooseAgencyForm').show();
		}else {
			if ($('chooseAgencyForm').style.display != 'none') {
				$('chooseAgencyForm').hide();
				$('agencies').hide();
			}	
			JsHttpRequest.query(
				this.php_backend(),
				{ 'action': 'getContacts', 'value': value },
				function(result, text) {
					$('contactsData').innerHTML = text;
				}
			);				
		}
		
		if (value == 'manager') {
			$('mastertourCodes').show();
			$('touristsCount').show();
			$('clients').hide();
			$('isLinkedToAnotherOrder').value = 1;
		} else {
			$('mastertourCodes').hide();
			$('touristsCount').hide();
			$('clients').show();
			$('isLinkedToAnotherOrder').value = 0;
			
		}
		
		if (value == 'private') {
			$('iWantDelivery').show();
		} else {
			$('iWantDelivery').hide();
			$('ifDeliveryWanted').checked = false;
			$('deliveryForm').hide();			
		}	
	},
	
	
	
	addMastertourCode: function(element)
	{
		var newChild = document.createElement('div');
		newChild.innerHTML = $(element).up('div', 1).innerHTML;
		$('mastertourCodes').appendChild(newChild);
	},
	
	removeMastertourCode: function(element)
	{
		if ($('mastertourCodes').getElementsByTagName('input')[1]) {
			$(element).up('div', 1).remove();
		} else {
			$('mastertourCodes').getElementsByTagName('input')[0].value = '';
		}	
	},	
	
	chooseAgency: function(agencyId)
	{
		$('contactsData').innerHTML = '<div align="center"><img src="/_public/images/ajax-loader.gif" align="absmiddle"></div>';
		JsHttpRequest.query(
			this.php_backend(),
			{ 'action': 'chooseAgency', 'agencyId': agencyId },
			function(result, text) {
				$('contactsData').innerHTML = text;
				$('comments').style.height = parseInt($('comments').style.height) - 60 + 'px';
			}
		);
	},
	
	findAgency: function(element)
	{
		if (Validate([element], true)) {
			$('agencies').show();
			$('agencies').innerHTML = '<div align="center"><img src="/_public/images/ajax-loader.gif" align="absmiddle"></div>';
			JsHttpRequest.query(
				this.php_backend(),
				{ 'action': 'findAgency', 'value': element.value },
				function(result, text) {
					$('agencies').innerHTML = text;
				}
			);		
		}
	},
	
	setTourists: function(quantity)
	{
		var fieldset = document.createElement('fieldset');
		$(fieldset).addClassName('profile');
		$(fieldset).innerHTML = $('Tourists_Box').getElementsByTagName('fieldset')[0].innerHTML;
		$('Tourists_Box').innerHTML = '';
		$('Tourists_Box').appendChild(fieldset);
		for(var i=2; i<=quantity; i++) {
			var some = document.createElement('fieldset');
			$(some).addClassName('profile');
			$(some).innerHTML = $(fieldset).innerHTML;
			$(some).getElementsByTagName('legend')[0].innerHTML = i + '-й турист';
			$('Tourists_Box').appendChild(some);
		}	
	},
	
	addRoute: function()
	{
		var fieldset = document.createElement('fieldset');
        $(fieldset).addClassName('profile');
		$(fieldset).innerHTML = $($('Routes_Box').getElementsByTagName('fieldset')[0]).innerHTML;
		$('Routes_Box').appendChild(fieldset);
		if ($('Routes_Box').getElementsByTagName('fieldset')[2]) {
			$($('Routes_Box').getElementsByTagName('fieldset')[1].getElementsByTagName('a')[1]).hide();
		}	
		
	},
	
	addBackRoute: function()
	{
		var fieldset = document.createElement('fieldset');
		var template = $('Routes_Box').getElementsByTagName('fieldset')[1];
		$($(template).getElementsByTagName('a')[1]).hide();
		
		$(fieldset).addClassName('profile');
		$(fieldset).innerHTML = $(template).innerHTML;
		$($(fieldset).getElementsByTagName('a')[0]).show();
		
		$(fieldset).getElementsByClassName('ticketType')[0].value 	= $(template).getElementsByClassName('ticketType')[0].value;
		$(fieldset).getElementsByClassName('fromCountry')[0].value 	= $(template).getElementsByClassName('toCountry')[0].value;
		$(fieldset).getElementsByClassName('toCountry')[0].value 	= $(template).getElementsByClassName('fromCountry')[0].value;
		$(fieldset).getElementsByClassName('railwayClass')[0].value	= $(template).getElementsByClassName('railwayClass')[0].value;
		$(fieldset).getElementsByClassName('railwayType')[0].value	= $(template).getElementsByClassName('railwayType')[0].value;
		$(fieldset).getElementsByClassName('goFrom')[0].innerHTML 	= $(template).getElementsByClassName('goTo')[0].innerHTML; 
		$(fieldset).getElementsByClassName('goTo')[0].innerHTML 	= $(template).getElementsByClassName('goFrom')[0].innerHTML;
		$($(fieldset).getElementsByClassName('goFrom')[0].getElementsByTagName('select')[0]).removeClassName('toCity').addClassName('fromCity');
		$($(fieldset).getElementsByClassName('goTo')[0].getElementsByTagName('select')[0]).removeClassName('fromCity').addClassName('toCity');
		$(fieldset).getElementsByClassName('toCity')[0].value		= $(template).getElementsByClassName('fromCity')[0].value;
		$(fieldset).getElementsByClassName('fromCity')[0].value		= $(template).getElementsByClassName('toCity')[0].value;
		
		$('Routes_Box').appendChild(fieldset);
	},	
	
	removeRoute: function(element)
	{
		$(element).up('fieldset').remove();	
		
		if (!$('Routes_Box').getElementsByTagName('fieldset')[2]) {
			$($('Routes_Box').getElementsByTagName('fieldset')[1].getElementsByTagName('a')[1]).show();
		}	
	},
	
	setDirection: function(fromCityId, fromCountryId, toCityId, toCountryId, typeId, classId)
	{
		var fieldset      = $('routes').getElementsByTagName('fieldset')[1];
		var fromCountries = $(fieldset).getElementsByTagName('select')[0];
		var toCountries   = $(fieldset).getElementsByTagName('select')[2];
		var types         = $(fieldset).getElementsByTagName('select')[8];
		
        $(fromCountries).value  = fromCountryId;
        $(toCountries).value    = toCountryId;
        $(types).value          = typeId;
        
        Tickets.setCities($(fromCountries), fromCityId);
		Tickets.setCities($(toCountries), toCityId);
		if (typeId) {
			Tickets.setClasses($(types), classId);
		}
		Effect.toggleOrderBlock('chooseDirection');
	},
	
	changeTicketType: function(element)
	{
		if ($(element).value == 1) {
			$(element).up('fieldset').getElementsByClassName('avia')[0].hide();
			$(element).up('fieldset').getElementsByClassName('railway')[0].show();
		} else {
			$(element).up('fieldset').getElementsByClassName('railway')[0].hide();
			$(element).up('fieldset').getElementsByClassName('avia')[0].show();
		}	
	}	
	
}


var Order = {
	/**
	 * Авторизовались — отобразить контактные данные
	 */
	change_ClientType: function() {
		$('other_login').hide();
		$('agency_login').show();
	}
}

