var FlashHelper =
{
	movieIsLoaded : function (theMovie)
	{
		if (typeof(theMovie) != "undefined") return theMovie.PercentLoaded() == 100;
		else return false;
	},

	getMovie : function (movieName)
	{
		if (navigator.appName.indexOf ("Microsoft") !=-1) return window[movieName];
		else return document[movieName];
	}
};

function mplayer(name)
{
	this.obj = FlashHelper.getMovie(name);

	if (!FlashHelper.movieIsLoaded(this.obj)) return;

	this.play = function () {
		this.obj.TCallLabel('/','play');
	};

	this.stop = function () {
		this.obj.TCallLabel('/','stop');
	};

	this.pause = function () {
		this.obj.TCallLabel('/','pause');
	};

	this.playToggle = function () {
		this.obj.TCallLabel('/','playToggle');
	};

	this.reset = function () {
		this.obj.TCallLabel('/','reset');
	};

	this.load = function (url) {
		this.obj.SetVariable('currentSong', url);
		this.obj.TCallLabel('/','load');
	};

	this.loadAndPlay = function (url) {
		this.load(url);
		this.play();
	};

	this.getState = function () {
		var ps = this.obj.GetVariable('playingState');
		var ls = this.obj.GetVariable('loadingState');

		// returns
		//   'empty' if no file is loaded
		//   'loading' if file is loading
		//   'playing' if user has pressed play AND file has loaded
		//   'stopped' if not empty and file is stopped
		//   'paused' if file is paused
		//   'finished' if file has finished playing
		//   'error' if an error occurred
		if (ps == 'playing')
			if (ls == 'loaded') return ps;
			else return ls;

		if (ps == 'stopped')
			if (ls == 'empty') return ls;
			if (ls == 'error') return ls;
			else return ps;

		return ps;

	};

	this.getPlayingState = function () {
		// returns 'playing', 'paused', 'stopped' or 'finished'
		return this.obj.GetVariable('playingState');
	};

	this.getLoadingState = function () {
		// returns 'empty', 'loading', 'loaded' or 'error'
		return this.obj.GetVariable('loadingState');
	};

	this.registerEvent = function (eventName, action) {
		// eventName is a string with one of the following values: onPlay, onStop, onPause, onError, onSongOver, onBufferingComplete, onBufferingStarted
		// action is a string with the javascript code to run.
		//
		// example: mplayer('mplayer').registerEvent('onPlay', 'alert("playing!")');

		this.obj.SetVariable(eventName, action);
	};

	return this;
}


var animate_active = false;

	function playerState() {
		var embed = $("#mplayer1");
		if (embed.size()) {
			if (mplayer("mplayer1").getState() == "finished") {
				var next = embed.parents("li").next("li").find("a.player_button");
				if (next.size()) {
					next.click(); }
			}
			
			return false;
		}
	}

$.fn.anti_slideup_select = function() {
	sel_mass = $(this);
	
	for (i = 0; i < sel_mass.length; i++) {
		element = $(sel_mass[i]);
		clone = element.clone();
		container = element.parents(".replacer_select");
		clone.insertBefore(container);
		container.remove();
		clone.show();
	}
	
	return clone;
};

$.fn.rightleft_select = function() {
	var element = $(this);
	element.wrap("<div class='rightleft_select'></div>");
	var container = element.parents(".rightleft_select");
	var el_width = element.outerWidth();
	var el_height = element.outerHeight();
	container.css({	'width':el_width,
					'height':el_height,
					'display':'block'});
	container.prepend("	<table class='select_buttons_div'>"+
							"<tr>"+
								"<td class='left_button'><a href='#'>&nbsp;</a></td>"+
								"<td class='val_container option_num_0'>&nbsp;</td>"+
								"<td class='right_button'><a href='#'>&nbsp;</a></td>"+
							"</tr>"+
						"</table>");
	var val_container = container.find("td.val_container");
	
	
	var options = container.find("option");
	var is_selected = false;
	for (i = 0; i < options.size(); i++) {
		option = $(options[i]);
		if (option.attr('selected') == 'selected') {
			val_container.html(option.html());
			val_container.removeClass(val_container.attr('class').split(' ')[1]).addClass('option_num_'+i);
			is_selected = true;
		}
	}
	if (!is_selected) {
		val_container.html(options.html());}
	
	$(".rightleft_select .left_button a").click(function(){
		var button = $(this);
		var container = button.parents(".rightleft_select");
		var val_container = container.find(".val_container");
		var options = container.find("option");
		
		var num_class = val_container.attr('class').split(' ')[1];
		var num_option = num_class.split('_')[2];
		
		if (num_option <= 0) {
			return false;}
		else {
			num_option--;
			options = container.find('option');
			options.removeAttr('selected');
			val_container.removeClass(num_class);
			var new_option = $(options[num_option]);
			new_option.attr({'selected':'selected'});
			val_container.html(new_option.html());
			val_container.addClass('option_num_'+num_option);
			return false;
		}
	});
	
	$(".rightleft_select .right_button a").click(function(){
		var button = $(this);
		var container = button.parents(".rightleft_select");
		var val_container = container.find(".val_container");
		
		var num_class = val_container.attr('class').split(' ')[1];
		var num_option = num_class.split('_')[2];
		var options = container.find("option");
		
		if (num_option >= options.size()-1) {
			return false;}
		else {
			num_option++;
			options = container.find('option');
			options = container.find('option');
			options.removeAttr('selected');
			val_container.removeClass(num_class);
			var new_option = $(options[num_option]);
			new_option.attr({'selected':'selected'});
			val_container.html(new_option.html());
			val_container.addClass('option_num_'+num_option);
			
			return false;
		}
	});
	
	
	element.css({'position':'absolute'}).hide();
};

$.fn.slideupper = function (slideup, speed) {
	elements = $(this);
	elements.each(function(){
		element = $(this);
		element.addClass('slideupper_replace');
		button = element.find(".slideupbutton");
		hidediv = element.find(".hide_me");
		
		if (slideup == 'slidedown') {
			button.addClass('slidedown');}			
		else if (slideup == 'slideup') {
			button.addClass('slideup');
			hidediv.hide();}
		else {
			speed = slideup;}
		
		button.click(function(){
			button = $(this);
			container = button.parents(".slideupper_replace");
			hidediv = container.find(".hide_me");
			
			if (button.hasClass('slideup')) {
				button.removeClass('slideup').addClass('slidedown');
				hidediv.slideToggle(speed);
				
				$(".slideupbutton.slidedown").not(button).removeClass('slidedown').addClass('slideup').parents(".slideupper_replace").find(".hide_me").slideToggle(speed);
			}
			else if (button.hasClass('slidedown')) {
				button.removeClass('slidedown').addClass('slideup');
				hidediv.slideToggle(speed);
				
				$(".slideupbutton.slidedown").not(button).removeClass('slidedown').addClass('slideup').parents(".slideupper_replace").find(".hide_me").slideToggle(speed);
			}
			
			return false;
		});
	});
};

$.fn.important_input = function(text) {
	var elements = $(this);
	elements.addClass('important');
	elements.each(function(){
		if (!text) {
			text = 'Empty!!!'; }
			
		element = $(this);
		form = element.parents("form");
		
		if (!form.hasClass('important_input_replaced')) {
			submit = form.find("input[type='submit'], button[type='submit']");
			inputs = form.find("input.important, textarea.important").not("input[type='radio']");
			
			form.submit(function(){
				all_ok = true;
				form = $(this);
				inputs = form.find("input.important, textarea.important").not("input[type='radio']");
				for (i = 0; i < inputs.size(); i++) {
					if ((!inputs[i].value)||(inputs[i].value == text)) {
						all_ok = false;
						input = $(inputs[i]);
						inputs[i].value = text;
						input.addClass('alert_message');
					}
				}

				inputs.click(function(){
					input = $(this);
					if ((!input[0].value)||(input[0].value == text)) {
						cantainer = $(".ballon_message_container");
						input[0].value = '';
						input.removeClass('alert_message');
					}
				});

				if (!all_ok) {
					return false;}
			
			});
		
			form.addClass('important_input_replaced');
		}
	});
};

$.fn.hover_img = function(mask) {
	images = $(this);
	
	images.each(function(){
		img = $(this);
		src = img.attr('src').split('/');
		new_src = '';
		for (i = 0; i < src.length; i++) {
			if (i < src.length - 1) {
				new_src += (src[i] + '/');}
			else {
				new_src += (mask + src[i]);}
		}
		img.attr({'src':new_src});
	});
	
	images.mouseover(function(){
		img = $(this);
		src = img.attr('src').split(mask);
		new_src = src[0] + src[1];
		img.attr({'src':new_src});
	});
	
	images.mouseout(function(){
		img = $(this);
		src = img.attr('src').split('/');
		new_src = '';
		for (i = 0; i < src.length; i++) {
			if (i < src.length - 1) {
				new_src += (src[i] + '/');}
			else {
				new_src += (mask + src[i]);}
		}
		img.attr({'src':new_src});
	});
};

$(document).ready(function() {

	$("a.player_button").click(function(){
		
		var player_string = '<span class="sound_player">'+
			'<object id="mplayer1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="490" height="16">'+
			'<param name=movie value="/system/templates/everjazz_home/img/mplayer.swf?file=sound.mp3&as=1">'+
			'<param name=quality value=high>'+
			'<param name=bgcolor value=#FFFFFF>'+
			'<embed src="/system/templates/everjazz_home/img/mplayer.swf?file=sound.mp3&as=1" quality=high bgcolor=#FFFFFF width="490" height="16" name="mplayer1" align="" type="application/x-shockwave-flash" swLiveConnect="true" pluginspage="http://www.macromedia.com/go/getflashplayer">'+
			'</embed>'+
			'</object>'+
		    '</span>';
		  
        var button = $(this);
        button.addClass('replaced');
        $(".player_button").show();
        $(".sound_player").remove();
        var container = button.parents(".player_place");
        container.prepend(player_string.replace('sound.mp3', button.attr('rel')).replace('sound.mp3', button.attr('rel')).replace('sound.mp3', button.attr('rel')));
        button = container.find("a.player_button");
        button.hide();
          
        return false;
    });

	$("a.player_button_home").click(function(){
		
		var player_string = '<span class="sound_player">'+
			'<object id="mplayer1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="210" height="16">'+
			'<param name=movie value="/system/templates/everjazz_home/img/mplayer.swf?file=sound.mp3&as=1">'+
			'<param name=quality value=high>'+
			'<param name=bgcolor value=#FFFFFF>'+
			'<embed src="/system/templates/everjazz_home/img/mplayer.swf?file=sound.mp3&as=1" quality=high bgcolor=#FFFFFF width="210" height="16" name="mplayer1" align="" type="application/x-shockwave-flash" swLiveConnect="true" pluginspage="http://www.macromedia.com/go/getflashplayer">'+
			'</embed>'+
			'</object>'+
		    '</span>';
		  
        var button = $(this);
        button.addClass('replaced');
        $(".player_button_home").show();
        $(".sound_player").remove();
        var container = button.parents(".player_place_home");
        container.prepend(player_string.replace('sound.mp3', button.attr('rel')).replace('sound.mp3', button.attr('rel')).replace('sound.mp3', button.attr('rel')));
        button = container.find("a.player_button_home");
        button.hide();
          
        return false;
    });
	
	animate_active = false;
	
	ticketCostForm = $("select#ticket_cost_form");
	formTable = $($(".form_table")[1]);
	submitForm = $("#submit_form");
	aboutCost = $("#about_cost");
	
	function getCostSelect(replacerSelect_data) {
		var item = replacerSelect_data.replacerSelect_activeItem.find("a");
			var about_index = item.attr('rel');
			formTable.css({'display':'block'});
			submitForm.show();
			var costclass = item.attr('class');
			var cost_select = ticketCostForm;
			
			if (cost_select.hasClass(costclass) == false){
				cost_select.attr({'class':costclass});
				costclass = costclass.split('_');
				var newoptions = '';

				while(costclass[costclass.length-1] == ''){
					costclass.pop()}

				for (i = 1; i < costclass.length-1; i++) {
					newoptions += "<option value='"+ costclass[i] +"'>"+ costclass[i] +"</option>";}
				cost_select = replacerSelect_data.rollback(cost_select.data('replacerSelect_data'));
				ticketCostForm = cost_select;
				cost_select.html(newoptions);
				cost_select.replacerSelect();
				$("#about_cost").html(about_cost[about_index] + "<br /><br /><br />" + "* Билеты за " + costclass[costclass.length-1] + " не бронируются");
				
			}
	
		
		return false;
	}
	/*function getCostSelect(replacerSelect_data) {
		
		item = replacerSelect_data.replacerSelect_activeItem.find("a");
																		
		//Если указано, что нужно скрывать стоимость
		
			$(".form_table").show();
			var costclass = item.attr('class');
			var about_index = item.attr('rel');
			var cost_select = ticketCostForm;
			
			//Если у выпадающего списка стоимостей не тот же самый класс
			if (cost_select.hasClass(costclass) == false){
				cost_select.attr({'class':costclass});
				costclass = costclass.split('_');
				
				var newoptions = '';
				for (i = 1; i < costclass.length; i++) {
					newoptions += "<option value='"+ costclass[i] +"'>"+ costclass[i] +"</option>";}
				cost_select = replacerSelect_data.rollback(cost_select.data('replacerSelect_data'));
				ticketCostForm = cost_select;
				cost_select.html(newoptions);
				cost_select.replacerSelect();
				//about_index = $('replacerSelect replacerSelect_text').class.attr('index');
				$("#about_cost").html(about_cost[about_index]);
				//window.alert(about_index);
				//$("#about_cost").html("Билет&nbsp;за&nbsp;VIP-столик&nbsp;—&nbsp;"+ costclass[1] +"р.<br/>Билет&nbsp;за&nbsp;обычный&nbsp;столик&nbsp;—&nbsp;"+ costclass[2] +"р.<br/>Места&nbsp;у&nbsp;бара,&nbsp;стоячие&nbsp;места&nbsp;—&nbsp;"+ costclass[3] +"р.*<br/><br/>*Билеты&nbsp;за&nbsp;"+ costclass[3] +"р не&nbsp;бронируются. Всегда есть в&nbsp;наличии.");
				}
			

		return false;

	}	*/
	

	ticketCostForm.replacerSelect();
	$("select#event_form").replacerSelect(	{	'ulMouseOutDelay':	100,
												'textMouseOutDelay':100},
	
											{	'readyBuild':		function(replacerSelect_data) {
																		if (ticketCostForm.hasClass('hidecost')) {
																			formTable.hide();	
																			aboutCost.html("Р‘РёР»РµС‚С‹ РЅР°&nbsp;СЌС‚РѕС‚ РІРµС‡РµСЂ РІСЂРµРјРµРЅРЅРѕ РЅРµ&nbsp;Р±СЂРѕРЅРёСЂСѓСЋС‚СЃСЏ");
																		}
																	},
												'item_selectAfter':	function(replacerSelect_data) {
																		getCostSelect(replacerSelect_data);
																		return false;
																	}
											}
										);
	
	$("select#galery_navigator_month, select#galery_navigator_year, select#galery_navigator_residents, select#press_navigator_month, select#press_navigator_year").replacerSelect({	'action':	'submit'});
	$("select#sound_navigator").replacerSelect({	'action':	'goto'});
	$("select#ticket_num_form").rightleft_select();
	$("input.important").important_input("Обязательное поле!");
	$("#footer img").hover_img('blackandwhite/');
	$("#vkont img").hover_img('blackandwhite/');
	$("#leftBanerPlace img").hover_img('blackandwhite/');
	
	$("#video_galery_list a").each(function(){
		var href = $(this);
		
		href.attr({'href':'#'+href.attr('class')});
		href.fancybox({	'frameWidth':			450,
						'frameHeight':			338});
	});
	
	$("a[rel='fancybox']").fancybox({	'frameWidth':			450,
										'frameHeight':			338,
										'hideOnOverlayClick': 	true,
										'hideOnContentClick':	false,
										'overlayShow':			true,
										'callbackOnStart':		function(){
																	var body = $("body");
																	body.css({'overflow':'hidden'});
																	$("#fancy_overlay").height(body.outerHeight());},
										'callbackOnClose':		function(){
																	$("body").removeAttr('style');}
									});
	
	nameForm = $("#ticket_form");
	
	$("p#orderTicket a").click(function(){
		var hrefText = $(".affiche_head h1").attr('title');
		$("#replacerSelect_event_form a[href*="+ hrefText +"]").click();
		$("#name_form").focus();
		interval = setInterval(	function(){
									nameForm.animate(	{'opacity':'0.1'},
														200,
														function(){
															nameForm.animate(	{'opacity':'1'},
																				200);
														});
								},
								400);
		setTimeout(	function(){
					clearInterval(interval);}, 1600);
		//return false;
	});
	
	for (i = 0; i < $("li.resident").size(); i++) {
		if (i < $("li.resident").size() - 1) {
			$($("li.resident")[i]).slideupper('slideup', 'slow');}
		else {
			$($("li.resident")[i]).slideupper('slidedown', 'slow');}
	}
	
	$("#karuselGalery").karuselGalery({	'autoStyles':	true,
										'blockSize': 	680,
										'event':		'hover',
										'speed':		500,
										'step':			130
									},
									
									{	'goForward_mouseOverBefore':	function(karuselGalery_data){
																			var button = karuselGalery_data.karusel_forward;
																			button.css({'opacity':	'0.5'});
																								
																			return 0;
																		},
																		
										'goForward_mouseOutBefore':		function(karuselGalery_data){			
																			var button = karuselGalery_data.karusel_forward;
																			button.css({'opacity':	'0'});
																			return 0;
																		},
																		
										'goBackward_mouseOverBefore':	function(karuselGalery_data){			
																			var button = karuselGalery_data.karusel_backward;
																			button.css({'opacity':			'0.5'});
																								
																			return 0;
																		},
																		
										'goBackward_mouseOutBefore':	function(karuselGalery_data){
																			var button = karuselGalery_data.karusel_backward;
																			button.css({'opacity':	'0'});
																			return 0;
																		},
																		
										'readyBuild':					function(karuselGalery_data){
																			karuselGalery_data.karusel_backward.css({'opacity':'0'});
																			karuselGalery_data.karusel_forward.css({'opacity':'0'});
																		}
									});

	$("#replacerSelect_event_form").find("a.replacerSelect_text, .replacerSelect_li a").each(function(){
		var element = $(this);
		var text = element.text().split('||');
		element.text('');
		for (i = 0; i < text.length; i++) {
			element.append("<div class='span"+i+"'>"+text[i]+"</div>");
		}
	});
	
	forum_tr = $(".top_forum").find("tr");
	for (i = 0; i < forum_tr.size(); i++) {
		if (i%2 == 0) {
			$(forum_tr[i]).addClass('gray');}
		else  {
			$(forum_tr[i]).addClass('white');}
	}
	
	$("#karuselGalery a").click(function(){
		var min_picture = $(this).find("img");
		var src = min_picture.attr('src').split('/');
		var new_src = '';
		for (i = 0; i < src.length; i++) {
			if (i != src.length-2) {
				new_src += src[i];}
			else {
				new_src += '5';}
			if (i < src.length-1) {
				new_src += '/';}
		}
		
		var tempImg = new Image();
		tempImg.src = new_src;
		
		var photoContainer = $("#photo_navigator_place .photo_place");
		var photo = photoContainer.find("img");
		photo.attr({'src': new_src});
		photo.css({'marginTop':(photoContainer.height()-photo.height())/2+'px'});
		return false;
	});

	$(".photo_navigator_left").click(function(){
		var picturePlace = $("#photo_navigator_place");
		var pictuteName = picturePlace.css('backgroundImage').split('(')[1].split(')')[0].split('/');
		pictuteName = pictuteName[pictuteName.length-1].replace('"', '');
		
		var inGaleryImg = $($("#karuselGalery img[src*="+pictuteName+"]")[0]);
		var inGaleryLi 	= inGaleryImg.parents("li");
		
		var prevLi = inGaleryLi.prev("li");
		if (prevLi.size() == 0) {
			prevLi = prevLi.parent("ul").find("li");
			prevLi = $(prevLi[prevLi.size() - 1]);}
		
		prevLi.find("a").click();
		$("#photo_navigator_place").click();
		
		return false;
	});

	$(".photo_navigator_right").click(function(){
		var picturePlace = $("#photo_navigator_place");
		var pictuteName = picturePlace.css('backgroundImage').split('(')[1].split(')')[0].split('/');
		pictuteName = pictuteName[pictuteName.length-1].replace('"', '');
		
		var inGaleryImg = $($("#karuselGalery img[src*="+pictuteName+"]")[0]);
		var inGaleryLi = inGaleryImg.parents("li");
		
		var nextLi = inGaleryLi.next("li");
		if (nextLi.size() == 0) {
			nextLi = $(nextLi.parent("ul").find("li")[0]);}
		
		nextLi.find("a").click();
		$("#photo_navigator_place").click();
		
		return false;
	});	
	
	setInterval("playerState()", 1000);
	
	$("#leftBannerPlace").text("").flash({	'swf':		urlConst + '/everjazz_home/img/jam_session.swf',
											'width':	220,
											'height':	100,
											'flashvars':{	'quality':	'high'}
										});
					
	$("#mainTopBannerPlace").text("").flash({	'swf':		urlConst + '/everjazz_home/img/JazzFestBanner.swf',
												'width':	680,
												'height':	80,
												'flashvars':{	'quality':	'high'}
											});
	
});
