fmn = {};
fmn.nav = {};
fmn.pages = {};
fmn.previews = {};
fmn.previews.preview = {};
fmn.tabs = {};
fmn.tabs.vkc = false;
fmn.debug = {};
fmn.vk = {};
fmn.vk.hndl = {};
//var xmlHttp;

$(document).ready( function(){
	fmn.debug.log('document.ready()');
	/* init navigation menu */
	fmn.nav.init();
	/* Init Vkontakte API */
	//VK.init({apiId: 1937549, onlyWidgets: true});	
	fmn.vk.init();
	/* debug */
	fmn.debug.init();
	/* init for same pages */
	switch(fmn.pages.page) {
	case 'main': {
		fmn.slides.init();
		break;
	}
	case 'contacts': {
		fmn.previews.init();
		fmn.tabs.init();
		break;
	}
	} /* end switch */
	/* start site */
	fmn.run();
});
fmn.run = function () {
	fmn.debug.log('fmn.run()');
	$('#fmn #loading').hide();
	$('#fmn #content').show(); //animate({opacity: "1.0"}, 1000)
	/* header show */
	window.setTimeout(function() {$('#fmn #header').animate({opacity: "0.8"}, 500);}, 500);
	/* footer */
	window.setTimeout(function() {$('#fmn #footer').animate({opacity: "0.8"}, 500);}, 500);
}

/************************************************
* Pages                                         *
************************************************/
fmn.pages.init = function() {
	fmn.debug.log('fmn.pages.init()');
	$("#nav div[page=main] a").click(function() {fmn.pages.set_page('main'); fmn.nav.set_tab('main'); return false;});
	$("#nav div[page=photos] a").click(function() {fmn.pages.set_page('photos'); fmn.nav.set_tab('photos'); return false;});
	$("#nav div[page=contacts] a").click(function() {fmn.pages.set_page('contacts'); fmn.nav.set_tab('contacts'); return false;});
	
	$("#nav div[page=main] a").attr("href", "#main");
	$("#nav div[page=photos] a").attr("href", "#photos");
	$("#nav div[page=contacts] a").attr("href", "#contacts");
	
	var pages = Array('main', 'photos', 'contacts');
	var page = window.location.hash.substr(1);
	var reg = /http:\/\/new.alexanderfomin.ru\/(\w+)\//;
	if(!(reg.exec(window.location)) && in_array(page, pages)) {
		fmn.nav.set_tab(page);
		fmn.pages.set_page(page);
		fmn.pages.page = page;
	} else {
		fmn.pages.set_page(fmn.pages.page);
	}
}
fmn.pages.set_page = function(page) {
	//$('.page[page=' + fmn.pages.page + ']').hide();
	$('.page[page=' + fmn.pages.page + ']').slideUp();
	$('.page[page=' + page + ']').slideDown();
	//$('.page[page=' + page + ']').css("top","-100%").show().animate({top: "0%"});
	fmn.pages.page = page;
}

/************************************************
* Navigation                                    *
************************************************/
fmn.nav.init = function() {
	fmn.debug.log('fmn.nav.init()');
	// init nav attributes
	//$("#nav").children().addClass("nav-item");
	
	// init current page
	$(".nav-item").each(function(i) {
		if($(this).attr("page") == fmn.pages.page) {
			$(this).addClass("current");
			$(this).html($(this).children().html());
		}
	});
	
	// display nav
	// window.setInterval(function() {$("#nav").animate({opacity: 1.0}, 1500)}, 1000);
}
/************************************************
* Priviews                                      *
************************************************/
fmn.previews.init = function() {
	fmn.debug.log('fmn.previews.init()');
	//$('#fmn #previews .preview .na').attr("src", "/images/pics/preview-na.png");
	//$('#fmn #previews .preview .white').attr("src", "/images/pics/preview-white.png");
	$('#fmn .previews .preview .na').mouseover(function() {fmn.previews.preview.over($(this).parent().attr('tab')); return false;});
	$('#fmn .previews .preview .na').mouseout(function() {fmn.previews.preview.out($(this).parent().attr('tab')); return false;});
	$('#fmn .previews .preview .na').click(function() {fmn.previews.preview.click($(this).parent().attr('tab'));});
	
	$('#fmn .previews .white').animate({top: "-=28px"}, 1000);
	$('#fmn .previews .title').animate({top: "-=20px"}, 1000);
};
fmn.previews.set = function(tab) {
	$('#fmn .previews .preview.active .white').animate({top: "-138px", opacity: "0.6"}, 1000);
	$('#fmn .previews .preview.active').removeClass('active');
	$('#fmn .previews .preview[tab='+tab+']').addClass('active');
	$('#fmn .previews .preview[tab='+tab+'] .white').animate({top: "-222px", opacity: "0.8"}, 1000);
	fmn.debug.log('fmn.previews.preview: '+tab);

}
fmn.previews.preview.click = function(tab) {
	if($('#fmn .previews .preview.active').attr('tab') != tab) {
		fmn.previews.set(tab);
		fmn.tabs.set(tab);
	}

	return false;
};
fmn.previews.preview.over = function (tab) {
	if($('#fmn .previews .preview.active[tab='+tab+']').html() == null) {
		$('#fmn .previews .preview[tab='+tab+'] .title').animate({top: "-=3px"}, 100);
		$('#fmn .previews .preview[tab='+tab+'] .white').animate({top: "-=6px", opacity: "+=0.25"}, 100);
	}
}

fmn.previews.preview.out = function (tab) {
	if($('#fmn .previews .preview.active[tab='+tab+']').html() == null) {
		$('#fmn .previews .preview[tab='+tab+'] .title').animate({top: "+=3px"}, 100);
		$('#fmn .previews .preview[tab='+tab+'] .white').animate({top: "+=6px", opacity: "-=0.25"}, 100);
	}
}

/************************************************
* Tabs                                          *
************************************************/
fmn.tabs.init = function() {
	fmn.debug.log('fmn.tabs.init()');
	fmn.tabs.tabs = Array('#about', '#price', '#contacts');
	fmn.tabs.deftab = 'contacts';
	fmn.tabs.curtab = window.location.hash;
	if((fmn.tabs.curtab == '') || (!in_array(fmn.tabs.curtab, fmn.tabs.tabs))){
		fmn.tabs.curtab = fmn.tabs.deftab;
	} else {
		fmn.tabs.curtab = fmn.tabs.curtab.substr(1);
	}
	$('#fmn #tab_'+fmn.tabs.curtab).addClass('active');
	fmn.previews.set(fmn.tabs.curtab);
	fmn.tabs.set(fmn.tabs.curtab);
}
fmn.tabs.set = function(tab) {
	fmn.tabs.tab = tab;
	fmn.debug.log('fmn.tabs.tab: '+fmn.tabs.tab);
	//fmn.previews.set(tab);
	$('#fmn .tabs .tab.active').animate({opacity: "0.0"}, 500, function () {
																	$('#fmn .tab.active').removeClass('active');
																	$('#fmn #tab_'+fmn.tabs.tab).addClass('active');
																	$('#fmn #tab_'+fmn.tabs.tab).animate({opacity: "1.0"}, 500, fmn.tabs.vck_init());
																});

	window.location.hash = '#' + tab;
}
fmn.tabs.vck_init = function() {
	// fmn.debug.log('fmn.tabs.vkc='+fmn.tabs.vkc+';fmn.tabs.tab='+fmn.tabs.tab);
	if((!fmn.tabs.vkc) && (fmn.tabs.tab == 'contacts')) {
	  // VK.init({apiId: 1937549, onlyWidgets: true});
		VK.Widgets.Comments('vk_comments_contacts', {width: 770, limit: 10});
		fmn.tabs.vkc = true;
	}
}

/************************************************
* Debug                                          *
************************************************/
fmn.debug.init = function() {
	fmn.debug.log('fmn.debug.init()');
	if(fmn.debug.mode) {
		$('#fmn #debug').show();
		fmn.debug.log('fmn.debug.mode: '+fmn.debug.mode);
	}
}
fmn.debug.log = function(text) {
	$('#fmn #debug').html($('#fmn #debug').html() + '> ' + text + '<br />');
}
fmn.debug.on = function() {
	fmn.debug.mode = 1;
	$('#fmn #debug').show();
	fmn.debug.log('fmn.debug.on()');
}
fmn.debug.off = function() {
	fmn.debug.mode = 0;
	$('#fmn #debug').hide();
	fmn.debug.log('fmn.debug.off()');
}
fmn.debug.change = function() {
	if(fmn.debug.mode) {
		fmn.debug.off();
	} else {
		fmn.debug.on();
	}
}
/************************************************
* VK                                         *
************************************************/
fmn.vk.init = function() {
	fmn.debug.log('fmn.vk.init()');
	
	/* mask for user vk-login */
	fmn.vk.usr_settings = 2+1024;
	VK.init({apiId: 1937549, onlyWidgets: true});
	$('#vk_panel').hide();
	//$('#vk_login_button').hide();
	//VK.UI.button('vk_login_button');
	$('#nav .nav-item[page=vk]').click(function (){
																fmn.debug.log('nav.vk.click()');
																if(!fmn.vk.uid) {
																	VK.Auth.login(fmn.vk.hndl.login, fmn.vk.usr_settings);
																} else {
																	/*
																	if($('#nav .nav-item[page=vk]').hasClass('current')) {
																		$('#nav .nav-item[page=vk]').removeClass('current');
																		$('#vk_panel').slideUp();
																	} else {
																		$('#nav .nav-item[page=vk]').addClass('current');
																		$('#vk_panel').slideDown();
																	}
																	*/
																	VK.Auth.logout(fmn.vk.hndl.logout);	
																}
															});	
	VK.Auth.getLoginStatus(fmn.vk.hndl.login);															
}
fmn.vk.users = {};
fmn.vk.users.add = function(uids) {
	VK.Api.call('getProfiles',
							{uids: uids, fields: 'first_name, last_name, photo'},
							function (r) {
								var usrs = r.response;
								for(var i = 0; i < usrs.length; i++) {
									fmn.vk.users.display(usrs[i]);
								}
							});
}
fmn.vk.users.display = function(usr) {
	for(p in usr) { fmn.debug.log('usr.'+p+'='+usr[p]); }
	var usr_div = ce('div');
	usr_div.setAttribute('id', 'vk_user_'+usr.uid);
	usr_div.setAttribute('class', 'vk_user');									
	usr_div.innerHTML = '<a href="http://vkontakte.ru/id'+usr.uid+'"><div class="vk_photo"><img src="'+usr.photo+'" /></div></a><a href="http://vkontakte.ru/id'+usr.uid+'">'+usr.first_name+'</a>';
	ge('vk_panel').appendChild(usr_div);
}
fmn.vk.users.display_status = function(usr) {
	VK.Api.call('activity.get',
							{uid: usr.uid},
							function (r) {
								var usr_div = ce('div');
								usr_div.setAttribute('id', 'vk_user_'+usr.uid);
								usr_div.setAttribute('class', 'vk_user');									
								usr_div.innerHTML = '<a href="http://vkontakte.ru/id'+usr.uid+'">'+usr.first_name+'</a> ('+r.response.activity+')';
								ge('vk_panel').appendChild(usr_div);					
							});
}
fmn.vk.users.addfriends = function(uid) {
	fmn.vk.users.maxdisplay = 11;
	VK.Api.call('friends.get',
							{fields: 'uid, first_name, last_name, photo, domain'},
							function (r) { 
								var usrs = r.response;
								fmn.vk.users.num = (usrs.length > fmn.vk.users.maxdisplay) ? fmn.vk.users.maxdisplay : usrs.length;
								for(var i = 0; i < fmn.vk.users.num; i++) {
									fmn.vk.users.display(usrs[i]);
									//window.setTimeout(fmn.vk.users.display_status(usrs[i]), i * 1000);
								}								
							});
}
fmn.vk.hndl.login = function(response) {
	fmn.debug.log('fmn.vk.hndl.login()');
	if (response.session) {
		//$('#vk_login_button').hide();
		fmn.vk.uid = response.session.mid;
		fmn.debug.log('[-] fmn.vk.uid: '+response.session.mid);
		$('#nav .nav-item[page=vk] span').html('выйти вконтакте');	
    //fmn.vk.users.add(response.session.mid);
		fmn.vk.log(response.session.mid);
		//fmn.vk.users.clean();
		//fmn.vk.users.addfriends(response.session.mid);
		$('#vk_panel').slideDown();
	} else {
		//$('#nav .nav-item[page=vk] span').html('войти вконтакте');
		//fmn.debug.log('[!] error in fmn.vk.hndl.login()');
	}
}
fmn.vk.users.clean = function() {
	$('#vk_panel').html('');
}
fmn.vk.hndl.logout = function(response) {
	fmn.debug.log('fmn.vk.hndl.logout()');

	fmn.vk.uid = false;
	$('#nav .nav-item[page=vk] span').html('войти вконтакте');
	$('#vk_panel').slideUp();
}
fmn.vk.log = function(uid) {
	VK.Api.call('getProfiles',
							{uids: uid, fields: 'first_name, last_name, photo'},
							function (r) {
								var usr = r.response[0];
								var params = 'uid='+usr.uid+'&name='+usr.first_name+' '+usr.last_name+'&page='+document.location;
								fmn.vk.sendlog(params);
								fmn.debug.log('fmn.vk.sendlog: '+params);
							});
}
fmn.vk.sendlog = function(text) {
	fmn.vk.ajax = new XMLHttpRequest();
	fmn.vk.ajax.open("GET", '/logger.php?'+text, true);
	fmn.vk.ajax.onreadystatechange = function() {
																		 if (fmn.vk.ajax.readyState == 4) {
																			 fmn.debug.log('fmn.vk.ajax.responseText: '+fmn.vk.ajax.responseText);
																		 }
																	 }
	fmn.vk.ajax.send(null);
}
