function preload() {
	if ( IsIE6OrLow() ) {
		var url = '/updatebrowser/index.html';
		window.location = url;
	}
}

function afterload() {
	InitPage();
}

function ajaxload() {
	InitPage();
	return false;
}

function InitPage() {	
	ResetPage();
	
	AdjustResize();
	
	var ajaxReloadHandler = function() {
			var url = $(this).attr('href');
			ReloadPage(url, null);
			return false;
		};
		
	var ajaxReloadEventHandler = function() {
			var url = $(this).attr('href');
			ReloadEvent(url);
			return false;
		};
		
	$("#copyright a").unbind('click', ajaxReloadHandler);
	$("#copyright a").click(ajaxReloadHandler);
	$("#menu a").unbind('click', ajaxReloadHandler);
	$("#menu a").click(ajaxReloadHandler);
	$("#house a").unbind('click', ajaxReloadHandler);
	$("#house a").click(ajaxReloadHandler);
	
	$("#events .event .name a").unbind('click', ajaxReloadEventHandler);
	$("#events .event .name a").click(ajaxReloadEventHandler);
	$("#events .event a.more").unbind('click', ajaxReloadEventHandler);
	$("#events .event a.more").click(ajaxReloadEventHandler);
	
	$("#eventcontent .back a").unbind('click', ajaxReloadHandler);
	$("#eventcontent .back a").click(ajaxReloadHandler);
	
	$("#mp3player a").click(ajaxReloadHandler);
	
	//Проигрыватель
	var flashvars = {};
	flashvars.image = "preview.jpg";
	flashvars.streamscript = '';
	flashvars.file = 'domsolncafilm.flv';
	flashvars.skin = 'bekle.swf';
	flashvars.controlbar = 'over';
	
	var params = {};
	params.quality = "high";
	params.scale = "noscale";
	params.allowfullscreen = "true";
	params.wmode = "transparent";
	params.bgcolor = "#ffffff";
	
	var attributes = {};
	attributes.id = "broadcasterSWF";
	attributes.align = "center";
	attributes.wmode = "transparent";
	attributes.bgcolor = "#ffffff";
	
	swfobject.embedSWF("player/player.swf", "playerplace", "100%", "100%", "9.0.0", false, flashvars, params, attributes);
	
	//Стекло
	var playerUp = function() { $('#player').css('z-index', '5000');};
	var playerDown = function() { $('#player').css('z-index', '10');};
	
	$('#glass').mouseover(playerUp);
	$('#glass-top').mouseover(playerDown);
	$('#glass-left').mouseover(playerDown);
	$('#glass-right').mouseover(playerDown);
	$('#glass-bottom').mouseover(playerDown);
	$('#house').mouseover(playerDown);
	/*$('#player').mouseout(playerDown);*/
	
	//Кадры
	$('#gallery .shadow').click(OnShowFrame);
	ShowFilmFrames();
	
	$('#filmframes a').click(ShowFilmFrames);
	$('#filmmaking a').click(ShowFilmMaking);
	
	$('#gallery .prevbutton').click(ShowPrevFrame);
	$('#gallery .nextbutton').click(ShowNextFrame);
	
	//Всплывающее окно контактов
	ResetPopup();
	
	var popupHandler = function()
		{
			var src = $(this).attr("bigsrc");
			if ( src == undefined )
				return;
			ResetPopup();
			SetPopupContent("<img src=" + src + ">");
			ShowPopup();
		};
	$(".actor .photo img").unbind('click');
	$(".actor .photo img").click(popupHandler);
	$(".participant .photo img").unbind('click');
	$(".participant .photo img").click(popupHandler);
	$(".event .photo img").unbind('click');
	$(".event .photo img").click(popupHandler);
	$("#event .photo img").unbind('click');
	$("#event .photos img").click(popupHandler);
	
	AdjustScrolling();
	
	//Для SEO
	HideSeo();
	$('a.switchDesc').unbind('click');
	$('a.switchDesc').click(SwitchSeo);
}

function HideSeo() {
	//$('body').scrollTop(0);
	//$('body').css('overflow-x', 'hidden');
	//$('body').css('overflow', 'hidden');
	if ( $('#desc').text() == "" )
		$('a.switchDesc').css('display', 'none');
	else
		$('a.switchDesc').css('display', 'block');
	$('#desc').css('display', 'none');
	$("a[href*='liveinternet']").css('display', 'none');
}

function SwitchSeo() {
	/*if ( $('body').css('overflow') == 'hidden' ) {
		$('body').css('overflow', 'scroll');
		$('body').css('overflow-x', 'auto');		
	}
	else {
		$('body').scrollTop(0);
		$('body').css('overflow-x', 'hidden');
		$('body').css('overflow', 'hidden');
	}*/
	if ( $('#desc').css('display') == 'none' && $('#desc').text() != "" ) {
		$('#desc').css('display', 'block');
	}
	else {
		$('#desc').css('display', 'none');
	}
}

function ResetPage() {
	ResetFrame();
	ResetPopup();
}

function ReloadPage(url, params) {
	if ( url != undefined ) {
		
		var currentTime = new Date();
		if ( params == null )
			params = new Object();
		params['time'] = currentTime.getTime();
		$.post(url, params, function(responseText, textStatus, XMLHttpRequest) {
			var result = $(responseText);
			
			var replace = function(selector) {
				var obj = $(selector);
				obj.html(result.find(selector).html());
			}
			
			replace('#menu');
			replace('#content');
			replace('#desc');
			
			var res = responseText.match(new RegExp("<title>(.*?)</title>"));
			if ( res != null ) {
				//Почему-то IE8 не позволяет заменять титул...
				if (!$.browser.msie) {
					$('title').text(res[1]);
				}
			}
			
			//$('#eventcontent .back').css('display', 'none');
			
			ajaxload();
		});
	}
}

function ReloadEvent(url) {
	if ( url != undefined ) {

		var currentTime = new Date();
		var params = new Object();
		params['time'] = currentTime.getTime();
		$.post(url, params, function(responseText, textStatus, XMLHttpRequest) {
			var result = $(responseText);
			
			var replace = function(selector) {
				var obj = $(selector);
				obj.html(result.find(selector).html());
			}
			replace('#events');
			
			$('#eventcontent .back').css('display', 'block');
			
			WaitForObject($('#events'), ajaxload, 0);
		});
	}
}


/**********************************************************************************************************/


function AdjustResize() {
	var onResize = function() {
		ChooseSize();
	}
	
	$(window).unbind("resize");
	$(window).bind("resize", onResize);
	onResize();
}

function ChooseSize() {
	var w = GetScreenWidth();
	var h = GetScreenHeight();
	/*var r = w < 1000 || h < 729;*/
	var r = w < 1000 || h < 761;
	SetSmall(r);
}

function SetSmall(value) {
	var screen = $('#screen');
	if ( value ) {
		if ( !screen.hasClass('small') ) {
			screen.addClass('small');
			ShowCurrentFrame();
			AdjustScrolling();
		}
	}
	else if ( screen.hasClass('small') ) {
		screen.removeClass('small');
		ShowCurrentFrame();
		AdjustScrolling();
	}
}

var showingFrame = null;
var showedFrame = null;

function OnShowFrame() {
	var frame = $(this).parent();
	ShowFrame(frame);
}

function ResetFrame() {
	$("#gallery .ribbon").stop();
	$("#gallery .shadow").stop();
	$("#gallery .shadow").css("opacity", 1.0);
	showingFrame = null;
	SetShowedFrame(null);
	$("#gallery .ribbon").css('left', 0);
	$("#gallery .shadow").css('display', "block");
}

function IsFirstFrame(frame) {
	var first = $("#gallery .frame.showed:first");
	return frame.length != 0 && frame[0] == first[0];
}

function IsLastFrame(frame) {
	var last = $("#gallery .frame.showed:last");
	return frame.length != 0 && frame[0] == last[0];
}

function IsHidden(frame) {
	return $('.img', frame).length != 0;
}

function ShowPrevFrame() {
	if ( showedFrame == null )
		return;
	if ( IsHidden(showedFrame) )
		return;
	ShowFrame(showedFrame.prev());
}

function ShowNextFrame() {
	if ( showedFrame == null )
		return;
	if ( IsHidden(showedFrame) )
		return;
	ShowFrame(showedFrame.next());
}

function ShowFrame(frame) {
	if ( showingFrame != null && frame.length != 0 && showingFrame.length != 0 && frame[0] == showingFrame[0] )
		return;
	
	if ( !frame.hasClass("showed") )
		return;
	
	if ( IsHidden(showedFrame) )
		return;
	
	var last = $("#gallery .frame:last");
	
	var container = $("#gallery .container");
	var maxPos = last.position().left + last.width() - container.width(); 
	var newPos = frame.position().left - (container.width() - frame.width())/2
	if ( newPos > maxPos )
		newPos = maxPos;
	if ( newPos < 0 )
		newPos = 0;
	
	showingFrame = frame;
	SetShowedFrame(frame);
	
	$("#gallery .shadow").fadeIn(1000);
	$(".shadow", frame).fadeOut(1000);

	$("#gallery .ribbon").animate({
	    left: -newPos
	  }, 1000, "swing", function() {
		  showingFrame = null;
	  });
}

function ShowCurrentFrame() {
	if ( showedFrame == null )
		return;
	
	var frame = showedFrame; 
	
	if ( !frame.hasClass("showed") )
		return;
	
	var last = $("#gallery .frame:last");
	
	var container = $("#gallery .container");
	var maxPos = last.position().left + last.width() - container.width(); 
	var newPos = frame.position().left - (container.width() - frame.width())/2
	if ( newPos > maxPos )
		newPos = maxPos;
	if ( newPos < 0 )
		newPos = 0;
	
	$("#gallery .ribbon").css('left', -newPos);
}

function ShowFilmFrames() {
	ResetFrame();
	
	$('#filmframes').addClass("selected");
	$('#filmmaking').removeClass("selected");
	
	$('.filmmaking').css('display', 'none');
	
	$('.filmmaking').removeClass('showed');
	$('.filmframe').addClass('showed');
	
	var frame =  $("#gallery .frame.filmframe:first");
	if ( frame.length != 0 ) {
		SetShowedFrame(frame);
		$(".shadow", frame).hide();
	}
	else {
		SetShowedFrame(null);
	}
}

function ShowFilmMaking() {
	ResetFrame();
	
	$('#filmmaking').addClass("selected");
	$('#filmframes').removeClass("selected");
	
	$('.filmframe').css('display', 'none');
	
	$('.filmframe').removeClass('showed');
	$('.filmmaking').addClass('showed');
	
	var frame =  $("#gallery .frame.filmmaking:first");
	if ( frame.length != 0 ) {
		SetShowedFrame(frame);
		$(".shadow", frame).hide();
	}
	else {
		SetShowedFrame(null);
	}
}

function SetShowedFrame(frame) {
	showedFrame = frame;
	if ( frame == null ) {
		$('#gallery .prevbutton').css('display', 'none');
		$('#gallery .nextbutton').css('display', 'none');
		$("#gallery .frame").css('display', 'none');
		$("#gallery .frame:first").css('display', 'block');
		$("#gallery .frame:last").css('display', 'block');
		return;
	}
	var prev = frame.prev();
	if ( IsFirstFrame(frame) )
		$('#gallery .prevbutton').fadeOut(1000);
	else
		$('#gallery .prevbutton').fadeIn();
	var next = frame.next();
	if ( IsLastFrame(frame) )
		$('#gallery .nextbutton').fadeOut(1000);
	else
		$('#gallery .nextbutton').fadeIn();
	
	var prevPrev = prev.prev(); 
	var nextNext = next.next();
	var nextNext2 = nextNext;
	var nextNext3 = nextNext2;
	
	var img = null;
	if ( prevPrev.hasClass("showed") ) {
		img = $('.img', prevPrev);
		if ( img.length != 0 )
			img.replaceWith('<img src="' + img.attr("src") + '">');
		prevPrev.css('display', 'block');
	}
	if ( prev.hasClass("showed") ) {
		img = $('.img', prev);
		if ( img.length != 0 )
			img.replaceWith('<img src="' + img.attr("src") + '">');
		prev.css('display', 'block');
	}
	if ( showedFrame.hasClass("showed") ) {
		img = $('.img', showedFrame);
		if ( img.length != 0 )
			img.replaceWith('<img src="' + img.attr("src") + '">');
		showedFrame.css('display', 'block');
	}
	if ( next.hasClass("showed") ) {
		img = $('.img', next);
		if ( img.length != 0 )
			img.replaceWith('<img src="' + img.attr("src") + '">');
		next.css('display', 'block');
	}
	if ( nextNext.hasClass("showed") ) {
		img = $('.img', nextNext);
		if ( img.length != 0 )
			img.replaceWith('<img src="' + img.attr("src") + '">');
		nextNext.css('display', 'block');
	}
	if ( nextNext2.hasClass("showed") ) {
		img = $('.img', nextNext2);
		if ( img.length != 0 )
			img.replaceWith('<img src="' + img.attr("src") + '">');
	}
	if ( nextNext3.hasClass("showed") ) {
		img = $('.img', nextNext3);
		if ( img.length != 0 )
			img.replaceWith('<img src="' + img.attr("src") + '">');
	}
}

function ResetPopup() {
	var popup = $('#popup');
	var shadow = $('#popupshadow');
	
	popup.stop();
	shadow.stop();
	popup.css('display', 'none');
	popup.css('visibility', 'visible');
	popup.css('opacity', '1.0');
	popup.css('-moz-opacity', '1.0');
	popup.css('-khtml-opacity', '1.0');
	popup.css('filter', 'alpha(opacity=100)');
	shadow.css('display', 'none');
	shadow.css('visibility', 'visible');
	shadow.css('opacity', '1.0');
	shadow.css('-moz-opacity', '1.0');
	shadow.css('-khtml-opacity', '1.0');
	shadow.css('filter', 'alpha(opacity=100)');
	
	$('#popup .content').html('');
	
	shadow.unbind("click");
	shadow.click(HidePopup);
	
	popup.unbind("click");
	popup.click(HidePopup);
}

function ShowPopup() {
	//$('#popup').css('visibility', 'hidden');
	$('#popup').css('display', 'none');
	$('#popupshadow').fadeIn('slow');
	$('#popup img').unbind('load');
	$('#popup img').load(function()
		{
			var popup = $('#popup');
			var screenWidth = GetScreenWidth();

			var pr = popup.css("padding-right");
			var pl = popup.css("padding-left");
			var width = popup.width() + parseInt(pl) + parseInt(pr);
			var left = (screenWidth - width)/2;
			popup.css("left", left);
			
			//popup.css('display', 'none');
			//popup.css('visibility', 'visible');
			popup.fadeIn('medium');
		});
}

function HidePopup() {
	//$('#popup img').unbind('load');
	$('#popup').fadeOut('medium');
	$('#popupshadow').fadeOut('medium');
}

function SetPopupContent(content) {
	$('#popup .content').html(content);
}


/**********************************************************************************************************/


function AdjustScrolling() {
	var container = $('#container');
	var content = $('#container .content');
	var slider = $('#scrollline .slider');
	var handle = $('#scrollline .handle');
	var scrollline = $('#scrollline');
	var rail = $('#scrollline .railmiddle');
	var scrollingFlag = false;
	
	var contentHeight = content.height();
	var containerHeight = container.innerHeight();
	var railHeight = containerHeight - parseInt(rail.css('top')) - parseInt(rail.css('bottom'));
	contentOverflowHeight = contentHeight - containerHeight;

	if (contentOverflowHeight > 0) {
		container.css('overflow-y', 'auto');
		
		var k = contentHeight != 0 ? Math.floor(containerHeight*railHeight/contentHeight) : containerHeight;
		var minK = parseInt(handle.css('min-height'));
		if ( k < minK ) {
			k = minK;
		}
		var half = Math.floor(k/2);
	
		scrollline.height(containerHeight);
		slider.css('top', half);
		slider.css('bottom', half);
		handle.css('margin-bottom', -half);
		handle.height(k);
	
		scrollline.css('display', 'block');
		slider.slider({
			orientation: "vertical",
			handle: '#handle',
			slide: function (event, ui) {
				scrollingFlag = true;
				container.scrollTop(contentOverflowHeight - ui.value);
			}
		});
		slider.slider('option', 'step', 1);
		slider.slider('option', 'min', 0);
		slider.slider('option', 'max', contentOverflowHeight);
		slider.slider('option', 'value', contentOverflowHeight);
		
		container.unbind('scroll');
		container.scroll(function() {
			if (scrollingFlag) {
				scrollingFlag = false;
				return;
			}
			slider.slider('value', contentOverflowHeight - container.scrollTop());
		});
	}
	else {
		scrollline.css('display', 'none');
	}
}


/**********************************************************************************************************/


preload();
$().ready(afterload);

