﻿$(document).ready(function(){

	/* События */
	$( '#Events .Tab span.Events' )
		.click(function(){
			$( '#Events .List.Events' ).fadeIn();
			$( '#Events .List.Workdays' ).hide();
			$( '#Events .Tab span.Events' ).html( '<a href="' + $( '#Events' ).attr( 'lang' ) + 'theatre/events/">' + $( this ).html() + '</a>' );
			$( '#Events .Tab span.Workdays' ).html( $( '#Events .Tab span.Workdays' ).children( 'a' ).html() );
		});
	$( '#Events .Tab span.Workdays' )
		.click(function(){
			$( '#Events .List.Workdays' ).fadeIn();
			$( '#Events .List.Events' ).hide();
			$( '#Events .Tab span.Workdays' ).html( '<a href="' + $( '#Events' ).attr( 'lang' ) + 'theatre/events/workdays/">' + $( this ).html() + '</a>' );
			$( '#Events .Tab span.Events' ).html( $( '#Events .Tab span.Events' ).children( 'a' ).html() );
		});



	/* Текстовые анонсы */
	if( $( '#TextTeaser' ).length ){
		var iTextTeaserTotal = $( '#TextTeaser p' ).length;
		var iTextTeaserCounter = 0;
		var TextTeaserWrapper = $( '#TextTeaser .Wrapper .Data' );
		var iTextTeaserPause = 5000;
		var iTextTeaserSpeed = 1300;
		setTimeout(function(){
			changeTextTeaser( iTextTeaserCounter );
		}, iTextTeaserPause);

		function changeTextTeaser( iTextTeaserCounter ){
			TextTeaserWrapper.animate({
				'marginTop': TextTeaserWrapper.height() * -1
			}, iTextTeaserSpeed, 'easeInExpo', function(){

				iTextTeaserCounter++;
				if( iTextTeaserCounter == iTextTeaserTotal - 1){
					iTextTeaserCounter = 0;
				}
				TextTeaserWrapper.html( '<p>' + $( '#TextTeaser > .Data p:eq(' + iTextTeaserCounter + ')' ).html() + '</p>' ).css('margin-left',0).animate({
					'marginTop': 0
				}, iTextTeaserSpeed, 'easeOutExpo', function(){
					if( $.browser.msie ){
						$( this ).css('margin-left',60);
					}
					setTimeout(function(){
						changeTextTeaser( iTextTeaserCounter );
					}, iTextTeaserPause );
				});
				$( '#TextTeaser .Wrapper' ).animate({
					height: TextTeaserWrapper.height()
				}, iTextTeaserSpeed)
			});
		}
	}



	/* Анонсы */
	$(window).load(function(){
		var iTeaserTotal = $( '#Teaser .Wrapper a' ).length;
		var iTeaserCounter = 0;
		var TeaserWrapper = $( '#Teaser .Wrapper' );
		changeTeaser( iTeaserCounter );

		function changeTeaser( iTeaserCounter ){
			var iTeaserHeight = TeaserWrapper.height();
			TeaserWrapper.animate({
				'marginTop': iTeaserHeight / iTeaserTotal * iTeaserCounter * -1
			}, 1300, 'easeInOutExpo', function(){
				var Current = $( '#Teaser .Wrapper a:eq(' + iTeaserCounter + ')' );
				iTeaserCounter++;
				if( iTeaserCounter == iTeaserTotal ){
					$( '#Teaser .Wrapper a' ).not( Current ).appendTo( TeaserWrapper );
					$( this ).css( 'margin-top', 0 );
					iTeaserCounter = 1;
				}
				setTimeout(function(){
					changeTeaser( iTeaserCounter );
				}, 5000);
			});
		}

		var iAdTotal = $( '#Ad .Wrapper a' ).length;
		var iAdCounter = 0;
		var AdWrapper = $( '#Ad .Wrapper' );
		changeAd( iAdCounter );
		function changeAd( iAdCounter ){
			var iAdHeight = AdWrapper.height();
			AdWrapper.animate({
				'marginTop': iAdHeight / iAdTotal * iAdCounter * -1
			}, 1300, 'easeInOutExpo', function(){
				var Current = $( '#Ad .Wrapper a:eq(' + iAdCounter + ')' );
				iAdCounter++;
				if( iAdCounter == iAdTotal ){
					$( '#Ad .Wrapper a' ).not( Current ).appendTo( AdWrapper );
					$( this ).css( 'margin-top', 0 );
					iAdCounter = 1;
				}
				setTimeout(function(){
					changeAd( iAdCounter );
				}, 5000);
			});
		}
	});

	/* Афиша */
	var Playbill = {

		Load: function( hParams, jCallback ){
			if( typeof( jCallback ) == 'undefined' ){
				jCallback = hParams;
				hParams = null;
			}

			$( '#PlaybillData' )
				.addClass( 'Loading' )
				.animate({
					opacity: 0.1
					, height: 'hide'
				}, 500, function(){
					$.getJSON( $( '#PlaybillData' ).attr( 'lang' ) + 'gateway/playbill/', hParams, function( hResult ){
						jCallback.call( this, hResult );
						$( '#PlaybillData' )
							.removeClass( 'Loading' )
							.animate({
								opacity: 1
								, height: 'show'
							}, 500);
					});
				});
		},

		Render: function( hData ){
			var ePlaybill = $( '<table />' );
			var eDummy = $( '<span />' );
			var sDate;
			var aData = hData.playbill;
			var aMonth = hData.month;
			var hText = hData.data;

			/* Вывод месяцев */
			if( aMonth ){
				var ePrint = $( '#Playbill .Print' ).show().html( '' );//.html( hText.print );
				var eMonths = $( '#Playbill .Month' ).html( '' );
				var bMonthSelected = false;

				/* Для прокрутки */
				for( Month in aMonth ){
//					$.alert( aMonth[ Month ] );
					var eMonth = $( '<span class="Tool" rel="' + aMonth[Month].year + '-' + aMonth[Month].id + '"><u>' + aMonth[Month].name + '</u></span>' )
						.makeHover()
						.click(function(){
							Playbill.Load({
								month: $( this ).attr( 'rel' ).substr( 5, 2 )
								, year: $( this ).attr( 'rel' ).substr( 0, 4 )
							}, Playbill.Render )
						})
					if( aMonth[Month].selected ){
						bMonthSelected = true;
						eMonth
							.addClass( 'Selected' )
							.html( eMonth.text() )
							.unbind()
							.css( 'cursor', 'default' );
					}
					eMonth.appendTo( eMonths );
				}

				/* Для печати */
				for( Month in aMonth ){
					ePrint.append( '<a href="' + $( '#PlaybillData' ).attr( 'lang' ) + 'playbill/?year=' + aMonth[Month].year + '&month=' + aMonth[Month].id + '" target="_blank">' + aMonth[Month].name + '</a>, ' );
				}

				ePrint.html( ePrint.html().substring( 0, ePrint.html().length - 2 ) );


				/* Сегодня */
				if( bMonthSelected ){
					$( '<span class="Tool"><u>' + hText.today + '</u></span>' )
						.makeHover()
						.click(function(){
							Playbill.Load( Playbill.Render )
						})
						.appendTo( eMonths );
				}
			}


			/* Вывод афишы */
			if( aData ){
				// Если в ближайшую неделю есть спектакли
				for( Row in aData ){
					PrintRow( aData[Row] );
				}

				$( '#PlaybillData' ).html( '' ).append( ePlaybill );
				$( 'tr', ePlaybill ).not( '.Free' ).hover(function(){
					var Row = $( this ).addClass( 'Hover' );
//					$( 'h2', Row ).append( '<span class="Order"> &rarr; <span class="Tool">' + hText.order + '</span></span>' );
//					$( '.Tool', Row ).makeHover().click(function(){
//						Order.Show( $( '[@name=id]', Row ).val() );
//					});
				}, function(){
					$( this ).removeClass( 'Hover' );
//					$( '.Order', this ).remove();
				})

			} else {
				// Если спектаклей нет
				$( '#PlaybillData' ).html( '<center><i>В указанный период спектаклей нет</i></center>' );
			}


			/* Вывод одной строки афишы */
			function PrintRow( aData ){
				var aData = $.extend({
					bIsToday: false,
					bIsWeekend: false,
					bIsFree: false
				}, aData);
				var eRow = $( '<tr rel="' + aData.dt + '"><td class="First"></td><td class="Second"></td><td></td></tr>' );
				if( aData.bIsToday ) eRow.addClass( 'Today' );
				if( aData.bIsWeekend ) eRow.addClass( 'Weekend' );
				if( aData.bIsFree ) eRow.addClass( 'Free' );
				if( aData.bIsPremiere ) eRow.addClass( 'Premiere' );
				ePlaybill.append( eRow );
				var eRow = $( 'td', eRow );

				if( aData.date != sDate ){
					if( aData.weekday ) $( '<span class="Weekday">' + aData.weekday + '</span>' ).appendTo( eRow[0] );
					if( aData.date ) $( '<span class="Date">' + aData.date + '</span>' ).appendTo( eRow[0] );
					sDate = aData.date;
				}
		
				if( !aData.bIsFree ){
					if( aData.time ){
						var eTime = $( '<span class="Time">' + aData.time + '</span>' )
						eTime.appendTo( eRow[1] );
/*
						var eTime = $( '<span class="Time"></span>' )
						if( aData['ticket-order-url'] ){
							eTime.append( '<a href="' + aData['ticket-order-url'] + '">' + aData.time + '</a>' )
						} else {
							eTime.append( aData.time )
						}
						eTime.appendTo( eRow[1] );
*/
					}
					if( aData.hall ) $( '<span class="Hall">' + aData.hall + '</span>' ).appendTo( eRow[1] );
					if( aData.price ) $( '<span class="Price">' + aData.price + '</span>' ).appendTo( eRow[1] );
		
					var sTitle = ( aData.href ) ? '<a href="' + aData.href + '">' + aData.title + '</a>' : aData.title;
					if( aData.bIsPremiere ){
						sTitle += '<sup class="Premiere">' + hText.premiere + '</sup>';
					}
					$( '<h2>' + sTitle + '</h2>' ).appendTo( eRow[2] );
					if( aData.bCanBuyTicket ){
//						$( '<span class="Order">&nbsp;&rarr;&nbsp;<span class="Tool">' + hText.order + '</span></span>' ).appendTo( $( 'h2', eRow[2] ) );
						var eOrder = $( '<span class="Order">&nbsp;&rarr;&nbsp;</span>' ).appendTo( $( 'h2', eRow[2] ) );
//						alert( aData.bTestMode );
//						if( aData.bTestMode ){
//							var eLink = $( '<a href="/ticket/?performance=' + aData.id + '&mode=test" target="_blank">Тест: ' + hText.order + '</a>' );
//						} else {
						var eLink = $( '<a href="/ticket/?performance=' + aData.id + '" target="_blank">' + hText.order + '</a>' );
//						}
						eLink.click(function(){
							Popup( 'Ticket', eLink.attr( 'href' ), 830, 850 );
							return false;
						});
						eLink.appendTo( eOrder );
					}
					if( aData.author ) $( '<span class="Author">' + aData.author + '</span>' ).appendTo( eRow[2] );
//					if( aData['ticket-order-url'] ) $( '<a class="OrderLink" href="' + aData['ticket-order-url'] + '">' + hText.order + '</a>' ).appendTo( eRow[2] )
				} else {
					$( '<h2>' + aData.title + '</h2>' ).appendTo( eRow[2] );
				}

				$( '<input type="hidden" name="id" value="' + aData.id + '" />' ).appendTo( eRow[0] );
			}

		}

	};


	/* Афиша */
	Playbill.Load( Playbill.Render );

	$( '#Playbill .Earlier' ).click(function(){
		Playbill.Load({
			dt: $( '#PlaybillData tr:first-child' ).attr( 'rel' )
			, direction: -1
		}, Playbill.Render )
	});

	$( '#Playbill .Later' ).click(function(){
		Playbill.Load({
			dt: $( '#PlaybillData tr:last-child' ).attr( 'rel' )
			, direction: 1
		}, Playbill.Render )
	});


});