$(document).ready(function(){
	$window = $(window);
	$body = ($.browser.mozilla || $.browser.msie || $.browser.opera) ? $('html') : $('body');
	screen_center = 0;
	wYT = 0;
	loaded = 0;
	a = -1/900;
	
	scroll_p = 0;
	last_scroll = 0;
	
	var pos = 0;
	
	bg_pos = 0;
	item1_pos = 0;
	item2_pos = 0;
	info_pos = 0;
	
	windowX = 0;
	windowY = 0;
	
	$.getWindowSize();
	$.initSubPages();
	
	var id_page = $.gURL(window.location.href);
	var id  = 1;
	var direct = 1;
	
	$('#pages > .page > .page_circle').click(function(){
		if(!$(this).hasClass('p_active')) {
			id_page = $(this).attr('id');
			$.scrollToScreen(parseInt(id_page.substr(4)));
		}
	});
	
	$('#pages > .page > .page_desc').click(function(){
		var $self = $(this).prev('.sub_page').prev('.page_circle');
		if(!$self.hasClass('p_active')) {
			id_page = $self.attr('id');
			$.scrollToScreen(parseInt(id_page.substr(4)));
		}
	});
	
	$('#see > a.see').click(function(e){
		e.preventDefault();
		$.scrollToScreen(2);
	});
	
	$('#pages > .page > .sub_page > div').click(function(){
		$self = $(this);
		if(!$self.hasClass('sp_active')) {
			var sp_id = parseInt($self.attr('class').substr(2))-1;
			$.scrollToSubScreen(id, sp_id, $self);
		}
	});
	
	$window.resize(function() {
		$.getWindowSize();
		$('.screen').css('width',windowX);
		if($('.active', $body).length != 0) {
			$('.active', $body).each(function(){
				$self = $(this);
				pos = $window.scrollTop()+windowY;
				var offset = -(pos - $self.offset().top);
				var wW = (windowX/2 - $('.item1',$self).width())/(windowY+screen_center);
				item2_pos = -offset * wW;
				$('.item2',$self).css('left', item2_pos);
			});
		}
		
		$('body > .realization').each(function(){
			$self = $(this);
			var count = $('.screen',$self).length;			
			$('.screen_frame', $self).css('width', count*windowX);			
		});
	});
	
	$window.scroll(function(){		
		
		scroll_p = $window.scrollTop();
		pos = scroll_p+windowY;
		
		$.chooseActive(scroll_p,pos);
		$.scrolling(pos);
				
	
		id = Math.ceil((pos)*0.0008);
		
		$page_a = $('.p_active');
		$page_id = $('#page'+id);
				
		if(!$page_id.hasClass('p_active')) {
			sp_id = 0;
			$page_a.next().css('display','none');
			$page_a.removeClass('p_active');
			$page_id.addClass('p_active');
			$spage = $page_id.next();
			$spage.css('display','block');
			if($spage.children().size() > 0) {
				var sp_id = parseInt($('.sp_active',$spage).attr('class').match(/[0-9]+/gi));
				if(sp_id > 1) History.pushState({},"","page"+id+",subpage"+sp_id+".html");
				else History.pushState({},"","page"+id+".html");
			} else History.pushState({},"","page"+id+".html");
		}
		/*id2 = Math.ceil((scroll)/1200);
		
		if(old_id != id) {
			if(id != id2) $('#id'+id).addClass('active');
			if(old_id != id2) $('#id'+old_id).removeClass('active');
			old_id = id;
		}
		
		if(old_id2 != id2) {
			if(id != id2) $('#id'+id2).addClass('active');
			if(old_id2 != id) $('#id'+old_id2).removeClass('active');
			old_id2 = id2;
		}
		*/
		//$("#data").html("<p>pos: "+id+"</p><p>scroll: "+scroll+"</p>");		
		
		//$("#data").html("<p>id: "+id+"</p><p>id2: "+offset+"</p>");
		Cufon.refresh('.page_desc');
		last_scroll = scroll_p;
	});
});

$(window).load(function(){
	$('#loading').css('display','none');
	$('#see').css('display','block');
	$('#pages').css('visibility','visible');
	loaded = 1;
});

$.chooseActive = function(scr, pos) {
	$('.realization', $body).each(function(){
		var $self = $(this);
		var off_t = $self.offset().top;
		var off_b = off_t+1200;
			
		if((off_t < scr && scr < off_b) || (off_t < pos && pos < off_b)) {
			if(!$self.hasClass('active')) $self.addClass('active');
		}else{
			if($self.hasClass('active')) $self.removeClass('active');
		}		
	});
}

$.scrolling = function(pos) {
	if($('.active', $body).length != 0) {
		$('.active', $body).each(function(){		
			$self = $(this);
			var d = (windowY - $('.item1',$self).height())/2;
			var wH = 1 - (($('.item1',$self).height()+d)/(windowY+screen_center));
			var wW = (windowX/2 - $('.item1',$self).width())/(windowY+screen_center);
			var offset = -(pos - $self.offset().top);
			item1_pos = -offset * wH;
			item2_pos = -offset * wW;
			item3_pos = -offset * wYT;
			$('#data').html('<p>'+offset+'</p><p>'+item1_pos+'</p><p>'+item2_pos+'</p>');	
			info_pos = -offset * 0.5;
			bg_pos = '50% '+(offset*0.15)+'px';
			op = Math.abs(-offset - 900)*a +1;
			
			if($self.attr('id')=='id15') {
				$('#logo-footer').css('top', pos-$self.offset().top-windowY+20);
			}
						
			$self.css('backgroundPosition', bg_pos);
			$('.item1',$self).css("bottom", item1_pos);
			$('.item2',$self).css('left', item2_pos);
			$('.item3',$self).css('top', item3_pos);
			$('.info',$self).css('opacity', op);
		});
	}
}

$.initSubPages = function () {
	$('body > .realization').each(function(){
		$self = $(this);
		var id = $self.attr('id').substr(2);
		var count = 0;
		var html = '';
		
		$('.screen', $self).each(function(){
			count++;
			html += '<div class="sp'+count+'"><b>'+count+'</b></div>';
			$(this).css('width', windowX);
		});
		
		$('.screen_frame', $self).css('width', count*windowX);
		
		if(count > 1) {
			$('#page'+id).next().append(html);
			$('#page'+id).next().children().first().addClass('sp_active');
		}
	});
	Cufon.replace('#pages .sub_page > div');
}

$.getWindowSize = function () {
	if( typeof( $window.innerWidth ) == 'number' ) {
		//Non-IE
		windowX = $window.innerWidth;
		windowY = $window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		windowX = document.documentElement.clientWidth;
		windowY = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		windowX = document.body.clientWidth;
		windowY = document.body.clientHeight;
	}
	screen_center = (1200 - windowY)/2;
	$('.item3').css('left', (windowX/2-400));
	wYT = 380/(screen_center+windowY);
	$('.footer .item1').each(function(){
		var w = $('.logotypes', this).width();
		$(this).css('left',(windowX-w)/2);
	});
	$('.s_active').each(function(){
		var s = $(this).attr('class');
		if(s!==undefined) {
			s = s.replace('screen ','');
			s = s.replace('s_active','');
			s = parseInt(s.replace('s',''));
			$(this).parent('.screen_frame').css('marginLeft',-(s-1)*windowX);
		}
	});
}

$.scrollToScreen = function(id_page) {
	//var screen_center = 0;
	//if(windowY < 750) screen_center = (1200 - windowY)/2;
	//screen_center = (1200 - windowY)/2;
	var screen = 0;
	if(id_page!=1) screen = (id_page-1)*1200 + screen_center;
	$body.stop().animate({scrollTop: screen}, 1000);
}

$.scrollToSubScreen = function(id, sp_id, $self) {
	var move = sp_id * -windowX;
	var page = $('#id'+id);
	var sp_par = $self.parent();
	$('.screen_frame', page).animate({marginLeft: move}, 1000);
	$('.sp_active', sp_par).removeClass('sp_active');
	$self.addClass('sp_active');
	$('.s_active', page).removeClass('s_active');
	$('.s'+(sp_id+1), page).addClass('s_active');
	if(sp_id > 0) History.pushState({},"","page"+id+",subpage"+(sp_id+1)+".html");
	else History.pushState({},"","page"+id+".html");
}
	
$.getScrollDirection = function () {
	if(last_scroll > scroll_p) return -1;
	else return 1;
}

$.gURL = function(u) {
	var screen = 0;
	var id = 0;
	var i = 1;
	var h = u.lastIndexOf("#") + 1;
	if(h<=0) {
		h = u.lastIndexOf("/") + 1;
	}
	var d = u.lastIndexOf(".");
	var c = u.lastIndexOf(",");
	var c2 = u.lastIndexOf("%2C");
	if(c2>c) { c = c2; i = 3; }
	
	if(c<=0) {
		screen = u.substring(h,d);
		
	} else {
		screen = u.substring(h,c);
		var subscreen = u.substring(c+i,d);
	}	
	id = parseInt(screen.substr(4));
	if(isNaN(id)) id = 0; else { 
		$(window).load(function(){$.scrollToScreen(id);});
		if(c>0) {
			var sp_id = parseInt(subscreen.substr(7));
			var parent = $('#page'+id).parent();
			$self = $('.sp'+sp_id, parent);
			$.scrollToSubScreen(id, --sp_id, $self);
		}
	}
	return id;
}
