var contentSite = '/content/frontend.php/';
var getCountersURL= contentSite+'service/getCounters';
var friendURL= contentSite+'profile/ajaxToggleFriend/user_id/';
var banURL= contentSite+'profile/ajaxToggleBan/user_id/';

// Установка ссылок на конкретные флешки происходит внутри index.js (см. $(document).ready(function())
var gameSWF = '';
var lcsSWF = '';
var navSWF = '';
var miniSWF = '';

var browseAddress = '';

var width1 = 311;
var nick='';
var uid='';
var role='';

var minWinWidth = 1280;
var minWinHeight = 800;

var titleDesc = '';
var toolTipStatus = 0;

var boxBot = 74;
var boodooPhoneWidth = width1;

var addressInterval = 0;
var getCountersInterval = 0;

var gameWin = '';

var uniqn = Math.round(Math.random()*100000);
var firstLoad = true;

// Включены ли сейчас подсказки с затемнением
var darkTooltipMode = false;



var t = 0;
//счетчик для проигрывания фывы
var fivaCNT = -1;
var fivaI = -1;
var fivaFase = -1;
var vscrcObj = new Array();
vscrcObj = {
scInterface01:	{nm:"Как управлять страницей?",src:"/data/video/screencast/scInterface01.flv"},
scInterface02:	{nm:"Как попасть в разделы boodoo?",src:"/data/video/screencast/scInterface02.flv"},
scInterface03:	{nm:"Для чего нужны эти кнопки?",src:"/data/video/screencast/scInterface03.flv"},
scPaper01:		{nm:"Журналы - что это такое",src:"/data/video/screencast/scPaper01.flv"},
scPaper02:		{nm:"Как читать новости и писать комментарий",src:"/data/video/screencast/scPaper02.flv"},
scRoom01:		{nm:"Как чатиться в  комнате",src:"/data/video/screencast/scRoom01.flv"},
scRoom02:		{nm:"Как играть в конструктор комнаты",src:"/data/video/screencast/scRoom02.flv"},
scRoom03:		{nm:"Что такое доска сообщений",src:"/data/video/screencast/scRoom03.flv"},
scRoom04:		{nm:"Как оставить записку хозяину комнаты",src:"/data/video/screencast/scRoom04.flv"},
scFrontage01:	{nm:"Как искать жителей на фасаде",src:"/data/video/screencast/scFrontage01.flv"},
scFrontage02:	{nm:"",src:"/data/video/screencast/scFrontage01.flv"},
scFavorites01:	{nm:"Что такое избранное",src:"/data/video/screencast/scFavorites01.flv"},
scAvatar01:		{nm:"Как одеть своего человечка",src:"/data/video/screencast/scAvatar01.flv"},
scBlog01:		{nm:"Как сделать запись в блоге",src:"/data/video/screencast/scBlog01.flv"},
scBalcony01:	{nm:"Как украсить свой балкон",src:"/data/video/screencast/scBalcony01.flv"},
scEvents01:		{nm:"Что такое события",src:"/data/video/screencast/scEvents01.flv"},
scEmail01:		{nm:"Как написать письмо и сохранить его",src:"/data/video/screencast/scEmail01.flv"},
scGames01:		{nm:"Как играть",src:"/data/video/screencast/scGames01.flv"},
scSearch01:		{nm:"Как искать в boodoo",src:"/data/video/screencast/scSearch01.flv"},
scVideochanel01:{nm:"",src:"/data/video/screencast/scSearch01.flv"},
scFriends01:	{nm:"",src:"/data/video/screencast/scGames01.flv"},
scFriends02:	{nm:"",src:"/data/video/screencast/scGames01.flv"},
scGallery01:	{nm:"",src:"/data/video/screencast/scGames01.flv"},
scBoodooPhone01:{nm:"",src:"/data/video/screencast/scGames01.flv"}
}

var counters = {unm:0,drm:0,frq:0};

// *** Game window ***
function fullscreenWindow(){
resizeTo(minWinWidth,minWinHeight);
moveBy(parseInt((screen.width-minWinWidth)/2),parseInt((screen.height-minWinHeight)/2));
}
function normalWindow(){
moveTo(1,1);
resizeTo(screen.width,screen.height);
}


// *** IM2 before load ***
function banUser (uid, url, stat){
	$.getJSON(banURL+uid);
	if(stat == 0)	{
		gameSWF.unbanUser(uid);
		lcsSWF.unbanUser(uid);
	}else{
		gameSWF.banUser(uid);
		lcsSWF.banUser(uid);
	}
}
function friendUser (uid, url, stat){
	$.getJSON(friendURL+uid, function(data){updateFriendStatus(uid, data.result);});
}


/**
 * Функции для работы с затемняющими подсказками.
 */
/**
 * Включение подсказок с затеменением.
 */
function turnOnDarkTooltipMode()
{
	darkTooltipMode = true;
	if(!isnull(gameSWF.turnOnDarkTooltipMode)) gameSWF.turnOnDarkTooltipMode();
	if(!isnull(lcsSWF.turnOnDarkTooltipMode)) lcsSWF.turnOnDarkTooltipMode();
	if(!isnull(navSWF.turnOnDarkTooltipMode)) navSWF.turnOnDarkTooltipMode();
	if(!isnull(miniSWF.turnOnDarkTooltipMode)) miniSWF.turnOnDarkTooltipMode();
	if(!isnull(window.frames[0]) && !isnull(window.frames[0].turnOnDarkTooltipMode)) window.frames[0].turnOnDarkTooltipMode();
	if(!isnull(window.frames[0])){
		var tSWF = getFlashMovieInFrm('np');
		if(!isnull(tSWF)) if(!isnull(tSWF.turnOnDarkTooltipMode)) tSWF.turnOnDarkTooltipMode();
	}
}

/**
 * Выключение затеменения.
 */
function turnOffDarkMode()
{
	if(!isnull(window.frames[0])){
		var tSWF = getFlashMovieInFrm('np');
		if(!isnull(tSWF)) if(!isnull(tSWF.turnOffDarkMode)) tSWF.turnOffDarkMode();
	}
}
function turnOnDarkMode()
{
	if(!isnull(window.frames[0])){
		var tSWF = getFlashMovieInFrm('np');
		if(!isnull(tSWF)) if(!isnull(tSWF.turnOnDarkMode)) tSWF.turnOnDarkMode();
	}
}

/**
 * Выключение подсказок с затеменением.
 */
function turnOffDarkTooltipMode()
{
	darkTooltipMode = false;
	if(!isnull(gameSWF.turnOffDarkTooltipMode)) gameSWF.turnOffDarkTooltipMode();
	if(!isnull(lcsSWF.turnOffDarkTooltipMode)) lcsSWF.turnOffDarkTooltipMode();
	if(!isnull(navSWF.turnOffDarkTooltipMode)) navSWF.turnOffDarkTooltipMode();
	if(!isnull(miniSWF.turnOnDarkTooltipMode)) miniSWF.turnOffDarkTooltipMode();
	if(!isnull(window.frames[0]) && !isnull(window.frames[0].turnOffDarkTooltipMode)) window.frames[0].turnOffDarkTooltipMode();
	if(!isnull(window.frames[0])){
		var tSWF = getFlashMovieInFrm('np');
		if(!isnull(tSWF)) if(!isnull(tSWF.turnOffDarkTooltipMode)) tSWF.turnOffDarkTooltipMode();
	}
}

/**
 * Функция, которая будет скрывать показываемые тёмные подсказки (не путать с вкл/выкл режимов тёмных подсказок).
 */
function hideDarkTooltips(isFromContentFrame)
{
	if(!isnull(gameSWF.hideDarkTooltips)) gameSWF.hideDarkTooltips();
	if(!isnull(navSWF.hideDarkTooltips)) navSWF.hideDarkTooltips();
	if(!isnull(miniSWF.hideDarkTooltips)) miniSWF.hideDarkTooltips();
	// Если эта функция вызывается не из контент-фрейма, то вызываем аналогичную функцию в контент-фрейме,
	// иначе в контент фрейме ничего не вызываем
	if(!isFromContentFrame)
	{
		if(!isnull(window.frames[0]) && !isnull(window.frames[0].hideDarkTooltips)) window.frames[0].hideDarkTooltips();
	}
}

function showDarkTooltipsVideoScreenCast(videoId, isFromContentFrame)
{
	var obj = vscrcObj[videoId];
	if(isgamesite()){
		if(!isnull(gameSWF.showDarkTooltipsVideoScreenCast)) gameSWF.showDarkTooltipsVideoScreenCast(videoId, obj.nm, obj.src);
	}else{
		if(!isnull(window.frames[0])){
			var tSWF = getFlashMovieInFrm('np');
			if(!isnull(tSWF)) if(!isnull(tSWF.showDarkTooltipsVideoScreenCast)) tSWF.showDarkTooltipsVideoScreenCast(videoId, obj.nm, obj.src);
			var tSWF = getFlashMovieInFrm('fav');
			if(!isnull(tSWF)) if(!isnull(tSWF.showDarkTooltipsVideoScreenCast)) tSWF.showDarkTooltipsVideoScreenCast(videoId, obj.nm, obj.src);
		}
	}
	if(!isnull(navSWF.showDarkTooltipsVideoScreenCast)) navSWF.showDarkTooltipsVideoScreenCast(videoId, obj.nm, obj.src);
	if(!isnull(miniSWF.showDarkTooltipsVideoScreenCast)) miniSWF.showDarkTooltipsVideoScreenCast(videoId, obj.nm, obj.src);
	if(!isnull(window.frames[0]) && browseAddress != "/paper") if(!isnull(window.frames[0].showDarkTooltipsVideoScreenCast)) window.frames[0].showDarkTooltipsVideoScreenCast(videoId, obj.nm, obj.src);
}
function getDarkTooltipMode(){return darkTooltipMode;}




function onLogin(n, u, r){
	nick = n;
	uid = u;
	role = r;
	if(role==2){
		$('#lcServCont').remove();
		$('#mimCont').remove();
		$('#mCont').css({'border-bottom':0, 'bottom':0});
		boxBot = 0;
	}else{
		$('#mimCont object, #mimCont embed').css({visibility:'visible'});
		$('#mimCont object, #mimCont embed').css({height:'74px'});
		
	}
	//$('#mCont').css({'top':'95px'});
	var t = location.href.split('#/')[1];
	if(t==undefined){
		if(role==0 || role==10)	setBrowseFlAddress('hall');
		else 					setBrowseAddress('paper');
	}
	//console.warn(SWFAddress.getValue());
	//console.warn(isgamesite());
	//if(isgamesite()) $('#mCont').css({'width':'auto', 'right':0});
	//else $('#mCont').css({'width':width1+'px', 'right':'auto'});
}

function onLoadComplete(){
	if(firstLoad){
		firstLoad = false;
		removePreloader();
		if(isgamesite()) $('#mCont').css({'width':'auto', 'right':0});
		else $('#mCont').css({'width':width1+'px', 'right':'auto'});
		startGetCounters();
	}
}

function loadUnAuthScene(){
	removePreloader();
	$('#mCont').css({'width':'auto', 'right':0});
}

function getCounters(){return counters};
function startGetCounters(){
	getCountersInterval = setInterval(getCountersReq, 10*1000)
}
function getCountersReq(){
	$.getJSON(getCountersURL,function(data){
		if(data.unm!=counters.unm || data.frq!=counters.frq ||data.drm!=counters.drm){
			if(data.frq!=counters.frq) {if(gameSWF.setFriendReqCounter) gameSWF.setFriendReqCounter(data);}
			if(gameSWF.setCounters) gameSWF.setCounters(data);
			if(miniSWF.setCounters) miniSWF.setCounters(data);
			counters = data;
		}
	});
}

//*** attitude functionality ***
function getAttitude(uid){gameSWF.getAttitude(uid);}
function setAttitude(url, str){gameSWF.setAttitude(url, str);}
function getAttitudeAnswer(uid, str, href, lastVisitTime, sex){
	if(!isnull(window.frames[0])) {if(!isnull(window.frames[0].userTypeStatus)) window.frames[0].userTypeStatus(Array(uid, str, href));}
	if(gameSWF.getAttitudeAnswer) gameSWF.getAttitudeAnswer(uid, str, href)
	if(gameSWF.getAttitudeAnswerToProfile) gameSWF.getAttitudeAnswerToProfile(uid, str, href, lastVisitTime, sex);
	var tSWF = getFlashMovieInFrm('np');
	if(!isnull(tSWF)) if(!isnull(tSWF.getAttitudeAnswer)) tSWF.getAttitudeAnswer(uid, str, href);
	tSWF = getFlashMovieInFrm('fav');
	if(!isnull(tSWF)) if(!isnull(tSWF.getAttitudeAnswer)) tSWF.getAttitudeAnswer(uid, str, href);
}
	
	
//*** blog js bridge ***
function userFilter(id,is_on){if(!isnull(window.frames[0])){if(!isnull(window.frames[0]).userFilter) window.frames[0].userFilter(id,is_on);}}
function postFilter(id,is_on){if(!isnull(window.frames[0])){if(!isnull(window.frames[0]).postFilter) window.frames[0].postFilter(id,is_on);}}
function userAllFilter(){if(!isnull(window.frames[0])) window.frames[0].userAllFilter();}
function userNoneFilter(){if(!isnull(window.frames[0])) window.frames[0].userNoneFilter();}
function dateFilter(date, status){if(!isnull(window.frames[0])) window.frames[0].dateFilter(date, status);}
function filter(post_type_ids, date, user_ids){if(!isnull(window.frames[0])) window.frames[0].filter(post_type_ids, date, user_ids);}
	

//*** IM2 ***
function updateContactList(){/*lcsSWF.updateContactList();*/}
function showIMChat(){gameSWF.showIMChat();}
function hideIMChat(){gameSWF.hideIMChat();}
function showIMIncoming(){setBrowseAddress('communicator', 'communicator');}
function onIncomingClose(){lcsSWF.onIncomingClose();}
function messageUser(userName, userID){
	if(userID!=uid) lcsSWF.messageUser(userName, userID);
	showIMChat();
}
function callUser(n){gameSWF.callUser(n);}



//*** Profile ***
function showMProfile(id){
	gameSWF.showMProfile(id);
	if(!isnull(gameSWF.onShowMProfile))gameSWF.onShowMProfile();
}

function hideMProfile(){
	if(!isnull(gameSWF.onHideMProfile)) gameSWF.onHideMProfile();
}
	
// *** box ***
function showBox(pageName, pT, pR, pB, pL){
	var tStr = pageName;
	if(tStr!=''){
		//thickbox tail add
		tStr+='?keepThis=true&TB_iframe=true';
		if(pT) tStr+='&pT='+boxTop;
		if(pR) tStr+='&pR='+pR;
		tStr+='&pB='+boxBot;
		tStr+='&pL='+boodooPhoneWidth;
		
		tb_remove();
		if(tStr.indexOf('http://')==-1) tStr = contentSite+tStr;
		tb_show('', tStr, null);
		if(isgamesite()) $('#mCont').css({'width':'auto', 'right':0});
		else {
		removePreloader();
		$('#mCont').css({'width':width1+'px', 'right':'auto'});
		}
	}
	clearInterval(addressInterval);
	if(browseAddress.indexOf('external')!=-1){
		addressInterval = setInterval(function(){
			addr = getIFrameAddress();
			if(browseAddress!=addr) setBrowseAddress(addr);
		}, 100);
	}
}

function closeBox(){
	tb_remove();
	if(!firstLoad) $('#mCont').css({'width':'auto', 'right':0});
	clearInterval(addressInterval);
}
function displayBox(){
	if(!isgamesite()) {
		removePreloader();
		$('#mCont').css({'width':width1+'px', 'right':'auto'});
		tb_display();
	}
}
function undisplayBox(){
	if(!isgamesite()) {
		removePreloader();
		$('#mCont').css({'width':'auto', 'right':0});
		tb_undisplay();
	}
}

function removePreloader(){
	$('#lcServCont').css({'height':'95px'});
	$('#preloaderCont3').remove();
	$('#preloaderCont').remove();
	$('#preloaderCont2').remove();
	$('#navCont').css({'height':'95px'});
	$('#mimCont').css({'height':'74px'});
}


function getIFrameAddress(){
	return browseAddress;
}


// *** SWFAddress ***
function getBrowseAddress(){
	if(!isgamesite()) return browseAddress;
	else return '';
}

function setBrowseAddress(val0, val1, val2){
	//мега хак про мак перманентный редирект на заходе в холл
	if(SWFAddress.getValue().indexOf('boodoohall')!=-1 && ( val0=='/hall'  || val0=='hall'))  return;
	if(val0==browseAddress) return;
	browseAddress = val0;
	val0 = val0.split('&');
	val0 = val0[0];
	SWFAddress.setValue(val0);
	gameSWF.focus();
}
	
function setBrowseFlAddress(val0, val1){
	if(val0==browseAddress) return;
	browseAddress = val0;
	SWFAddress.setValue(val0);
	gameSWF.focus();
}
	
	
	

	
function onLogout(){
	//$('#cpCont').css({visibility:'hidden'});
	$('#mimCont').css({visibility:'hidden'});
	closeBox();
	logoutContent();
}

//});




function isgamesite(){
	if(SWFAddress.getValue().indexOf("/")==0) browseAddress = SWFAddress.getValue().substr(1);
	else browseAddress = SWFAddress.getValue();
	return (browseAddress == "hall" || browseAddress == "roomconstructor" || browseAddress == "frontage" || browseAddress.indexOf("frontage")!=-1 || browseAddress.indexOf("room")!=-1 || browseAddress == "character" || browseAddress == "balcony");
}


function getMyUID(){return uid;}
function getMe(){return {nick:nick, uid:uid, role:role};}
function logoutContent(){$('#ajaxT').load(contentSite+'sfGuardAuth/logoutFlash', null, function(responseText, textStatus, XMLHttpRequest){location.reload('/');} );}
function changeTagChoice(str){window.frames[0].changeTagChoice(str);}

function isnull(obj){
	if(obj==undefined || obj==null || obj=='') return true;
	else return false;
}
function debug(str){
	//if(console) console.log(str);
	//else alert(str);
}
function getFlashMovie(movieName) {
	return ($.browser.msie) ? window[movieName] : document[movieName];
}

function getFlashMovieInFrm(movieName) {
	if(window.frames[0])
		return ($.browser.msie) ? window.frames[0][movieName] : window.frames[0].document[movieName];
	else return undefined;
}

function changeItemBack(id){gameSWF.changeItemBack(id)}
function changeItem(id){var tSWF = getFlashMovieInFrm('np'); if(!isnull(tSWF)) if(!isnull(tSWF.changeItem)) tSWF.changeItem(id)}

/**
 * «Прослойка» между вызовом контентной функции updateIsFriend и флеш-частью.
 *
 * @param	userId идентификатор пользователя, информацию о котором нужно обновить.
 * @param	isFriend цифра, которая будет показывать, является ли пользователь другом нам (1 — является, 0 — не является).
 */
function updateIsFriend(userId, isFriend){
	if(!isnull(window.frames[0]) && !isnull(window.frames[0].updateIsFriend)){
		window.frames[0].updateIsFriend(userId, isFriend);
	}
}


/**
 * «Прослойка» между вызовом контентной функции updateFriendStatus и сайт-частью.
 *
 * @param	userId идентификатор пользователя, информацию о котором нужно обновить.
 * @param	isFriend цифра, которая будет показывать, является ли пользователь другом нам (1 — является, 0 — не является).
 */
function updateFriendStatus(userId, friendStatus){
	if(!isnull(gameSWF.updateFriendStatus)){gameSWF.updateFriendStatus(userId, friendStatus);}
	if(!isnull(lcsSWF.updateFriendStatus)) lcsSWF.updateFriendStatus(userId, friendStatus);
	if(!isnull(window.frames[0])) if(!isnull(window.frames[0].updateFriendStatus))	window.frames[0].updateFriendStatus(userId, friendStatus);
	var tSWF = getFlashMovieInFrm('np');
	if(!isnull(tSWF)) if(!isnull(tSWF.updateFriendStatus)) tSWF.updateFriendStatus(userId, friendStatus);
	tSWF = getFlashMovieInFrm('fav');
	if(!isnull(tSWF)) if(!isnull(tSWF.updateFriendStatus)) tSWF.updateFriendStatus(userId, friendStatus);
}

/*
Прослойка - обновление стакана
*/
function updateGlassWidget(){
	if(!isnull(gameSWF.updateGlassWidget)) gameSWF.updateGlassWidget();
}

function getUniqN(){return uniqn}
 
