var anchor = '';
var pageLoaded = false;

$(document).ready(function() {
	$(".imgport").fancybox({
		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic',
		'titlePosition'	: 'inside',
		'cyclic'		: 'true'
	});
	
	$(".yandexmaps").fancybox({
		'padding' 		: 0,
		'type'      	: 'iframe',
		'autoDimensions': false,
		'scrolling'		: 'no',
		'width'			: 600,
		'height'		: 500,
		'overlayShow'	: true,

		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic',
		'speedIn'		: '10',
		'speedOut'		: '10',
		'changeSpeed'	: '100'

	});
});

var mod = "";

function getOffset(elem)
{
	if (elem.getBoundingClientRect)
	{
		return getOffsetRect(elem)
	}
	else
	{
		return getOffsetSum(elem)
	}
}

function getOffsetSum(elem)
{
	var top=0, left=0;
	while(elem)
	{
		top = top + parseInt(elem.offsetTop);
		left = left + parseInt(elem.offsetLeft);
		elem = elem.offsetParent;
	}

	return {top: top, left: left};
}

function getOffsetRect(elem)
{
	// (1)
	var box = elem.getBoundingClientRect();

	// (2)
	var body = document.body;
	var docElem = document.documentElement;

	// (3)
	var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
	var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;

	// (4)
	var clientTop = docElem.clientTop || body.clientTop || 0;
	var clientLeft = docElem.clientLeft || body.clientLeft || 0;

	// (5)
	var top  = box.top +  scrollTop - clientTop;
	var left = box.left + scrollLeft - clientLeft;

	return { top: Math.round(top), left: Math.round(left) };
}

function screenSize()
{
    var w, h;
    w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
    h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
    return {w:w, h:h}; 
}

var raph = null;

window.onload = function()
{
	var portf = document.getElementById("portf_m");
	var about = document.getElementById("about_m");
	var cont = document.getElementById("cont_m");
	var serv = document.getElementById("serv_m");

	portf.style.opacity = 0;
	about.style.opacity = 0;
	cont.style.opacity = 0;
	serv.style.opacity = 0;

	$('#portf_m').css("opacity", 0);
	portf.style.display = "block";
	$('#about_m').css("opacity", 0);
	about.style.display = "block";
	$('#cont_m').css("opacity", 0);
	cont.style.display = "block";
	$('#serv_m').css("opacity", 0);
	serv.style.display = "block";

	$('#portf_m').hover(function() {
		$(this).stop().animate({opacity:"1"}, 300);
	},
	function() {
		if (activeMenu != "portf_m")
			$(this).stop().animate({opacity:"0"}, 300);
	});

	$('#about_m').hover(function() {
		$(this).stop().animate({opacity:"1"}, 300);
	},
	function() {
		if (activeMenu != "about_m")
			$(this).stop().animate({opacity:"0"}, 300);
	});

	$('#cont_m').hover(function() {
		$(this).stop().animate({opacity:"1"}, 300);
	},
	function() {
		if (activeMenu != "cont_m")
			$(this).stop().animate({opacity:"0"}, 300);
	});

	$('#serv_m').hover(function() {
		$(this).stop().animate({opacity:"1"}, 300);
	},
	function() {
		if (activeMenu != "serv_m")
			$(this).stop().animate({opacity:"0"}, 300);
	});
	
	setActiveMenu(mod);

	$('#'+activeMenu).css("opacity", 1);

	prepare(mod);
	pageLoaded = true;
};

window.onresize = function()
{
	var ss = screenSize();
	raph.setSize(ss.w, ss.h);
}

function setActiveMenu(mmod)
{
	var oldmenu = activeMenu;

	if (mmod == 'portfolio')
		activeMenu = "portf_m";
	else if (mmod == 'service')
		activeMenu = "serv_m";
	else if (mmod == 'contacts')
		activeMenu = "cont_m";
	else if (mmod == 'about')
		activeMenu = "about_m";
	else
		activeMenu = "main_m";

	if (activeMenu != null && oldmenu != activeMenu && oldmenu != null)
		$('#'+oldmenu).stop().animate({opacity:"0"}, 300);
}

function prepare(mmod)
{
	$("a.link").fancybox({
		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic',
		'titlePosition'	: 'inside',
		'hideOnContentClick': true
	});

	if (mmod == "portfolio" || mmod == "main" || mmod == "mmain")
	{
		setMonitor(1);

		$(".imgport").fancybox({
			'transitionIn'	: 'elastic',
			'transitionOut'	: 'elastic',
			'titlePosition'	: 'inside',
			'cyclic'		: 'true'
		});
	}
	else if (mmod == "contacts")
	{
		$(".yandexmaps").fancybox({
		'padding' 		: 0,
		'type'      	: 'iframe',
		'autoDimensions': false,
		'scrolling'		: 'no',
		'width'			: 600,
		'height'		: 500,
		'overlayShow'	: true,

		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic',
		'speedIn'		: '10',
		'speedOut'		: '10',
		'changeSpeed'	: '100'

		});
	}
}

function doshowPage(url)
{
	document.getElementById('main_text').innerHTML = "<div class=\"ajax_loader\"><p>Подождите, идет загрузка страницы</p></div>";

	setActiveMenu(url);

	var callback = function(content)
	{
		var t = content.split("|||");
		document.title = ssn + " | " + t[0];
		document.getElementById('main_text').innerHTML = t[1];

		prepare(url);

		if (url == 'portfolio')
		{
			$('#portf_m').stop().animate({opacity:"1"}, 100);
		}
		else if (url == 'service')
		{
			$('#serv_m').stop().animate({opacity:"1"}, 100);
		}
		else if (url == 'contacts')
		{
			$('#cont_m').stop().animate({opacity:"1"}, 100);
		}
		else if (url == 'about')
		{
			$('#about_m').stop().animate({opacity:"1"}, 100);
		}

		window.scrollTo(0,0);
	}

	xhr.option.url = '';
	xhr.get('/'+url+'&aj', callback);
}

function showPage(url)
{
	doshowPage(url);
	if (url == 'mmain')
		window.location.href = "http://znteam.ru";
	else
		anchor = window.location.hash = '#'+url;
}

function setMonitor(id)
{
	$(document).ready(function(){
		$('#portf_'+id).css("opacity", 0);
		document.getElementById('portf_'+id).style.display = "block";

		$('#portf_'+id).hover(function() {
			$(this).stop().animate({opacity:"1"}, 300);
		},
		function() {
			$(this).stop().animate({opacity:"0"}, 300);
		});
	});
}

function doshowPortfolio(id)
{
	var callback = function(content)
	{
		var t = content.split("|||");
		document.getElementById('portf_title').innerHTML = t[0];
		document.getElementById('portf_url').innerHTML = t[1];
		document.getElementById('portf_url').href = t[1];
		document.getElementById('portf_img_1').src = t[2];
		document.getElementById('portf_img_1').alt = t[0];
		document.getElementById('portf_img').src = t[3];
		document.getElementById('portf_img_url').href = t[4];
		document.getElementById('portf_descr').innerHTML = t[5];

		$(".imgport").fancybox({
			'transitionIn'	: 'elastic',
			'transitionOut'	: 'elastic',
			'titlePosition'	: 'inside',
			'cyclic'		: 'true'
		});
	}

	xhr.option.url = '';
	xhr.get('/aj_portfolio&id='+id, callback);
}

function showPortfolio(id)
{
	doshowPortfolio(id);
	anchor = window.location.hash = '#portfolio_'+id;
}

setInterval(function()
{
	if (!pageLoaded)
		return;

	var hash = window.location.hash;
	if (hash.length > 0)
	{
		if (anchor != hash)
		{
			var arr = hash.replace(/#/, '').split('_');

			switch (arr[0])
			{
				case 'portfolio':
					if (arr[1] == undefined)
						doshowPage(arr[0]);
					else
					{
						if (anchor.indexOf("portfolio") == -1)
						{
							doshowPage("portfolio");
							anchor = hash;
						}
						setTimeout(function() { doshowPortfolio(arr[1]); }, 100);
					}
					anchor = hash;
					break;

				default:
					doshowPage(arr[0]);
					anchor = hash;
					break;
			}
		}
	}
	else if (anchor.length > 0)
	{
		anchor = '';
	}

}, 100);

