var __stageGame				// Сцена игры
var __stageBG					// Сцена фона
var __arrBG = new Array();	// Массив фонов 
var __arrLoc = new Array();	// Массив локаций
var __mainTicker


//------------- Запуск и отображение прелоадера и инициализация сцен -----------//
function v_startPreloader(){
	// -------- ФОН -------------//
	__stageBG = document.getElementById(canvases.bg)
	__arrBG[bgImgs[0].name] = createBgImg(bgImgs[0].url)// images["img_other_bg"];
	__stageBG.appendChild(__arrBG[bgImgs[0].name]);
	//------- Игровая сцена ---------//
	__stageGame = createStage(canvases.game, 0, (__HEIGHTBG - HEIGHTGAME)/2)
	__arrLoc["preloader"] =  new Preloader();
	__mainTicker = function(){__stageGame.update();}
	t_addToTicker(__mainTicker);
	//-------------------------------//
	v_choiseLocation("preloader");
	return __arrLoc["preloader"];
}
//-------------- Инициализация локация и фонов ------------//
function v_initLocations(){
	//----- ФОНЫ ------//
	for (var i = 1; i < bgImgs.length; i++) {
		__arrBG[bgImgs[i].name] = createBgImg(bgImgs[i].url)//images["img_game_bg"];
		__stageBG.appendChild(__arrBG[bgImgs[i].name]);
	};
	//-------ЛОКАЦИИ -------//
	__arrLoc["game"] =  new Game();
	__arrLoc["pause"] =  new Pause();
	__arrLoc["gameOver"] =  new GameOver();
	__arrLoc["menu"] =  new Menu();
	__arrLoc["setting"] =  new Setting();
	__arrLoc["about"] =  new About();
	__arrLoc["instructions"] =  new Instructions();
	__arrLoc["bonus"] =  new BonusWnd();
	__arrLoc["choise"] =  new ChoiseLvl();
	__arrLoc["shop"] =  new Shop();
	__arrLoc["yar"] =  new YouAreReady();
}
//--------------- Переключение между локациями --------------------//
function v_choiseLocation(val, par){
	if(!__arrLoc[val])
		return;
	
	if(val == "game")							// Обновление фона (если требуется)
		updateBg(bgImgs[1].name);
	else if(val == "menu")
		updateBg(bgImgs[2].name);
	else if(val == "preloader")
		updateBg(bgImgs[0].name);
	else if(val == "instructions")
		updateBg(bgImgs[3].name);
	else
		updateBg(bgImgs[4].name);



	__stageGame.removeAllChildren();				// Обновление сцены


	if(__arrLoc[val].update)
		__arrLoc[val].update(par);				// Функция обновления окна при переключении на него
	__stageGame.addChild(__arrLoc[val]);
};


//----------- Установка координат -------------//
 function setCoor(o, x, y){
 	if(typeof(x) == "number")
 		o.x = x/__koefDisplay;
 	if(typeof(y) == "number")
 		o.y = y/__koefDisplay;
 };

// This function calculates the coordinates to display the hits, in Firefox OS the scaling seems to be different //
 function setCoor_forHits(o, x, y){
 	if(typeof(x) == "number")
 		o.x = x;
 	if(typeof(y) == "number")
 		o.y = y;
};

/////////-- PRIVATE --//////////
////////////////////////////////
var updateBg = function(name){
	for (var i = 0; i < bgImgs.length; i++)
		if(__arrBG[bgImgs[i].name] && __arrBG[bgImgs[i].name].parentNode)
			__stageBG.removeChild(__arrBG[bgImgs[i].name]);
	__stageBG.appendChild(__arrBG[name]);
};

var createStage = function(nameCanvas, x, y) {
	canvasInit(nameCanvas)
	var newCan = document.getElementById(nameCanvas);
	var newStage = new createjs.Stage(newCan);
	createjs.Touch.enable(newStage);
	newStage.x = x;
	newStage.y = y;
	return newStage
};

var createBgImg = function(o) {
	var ret;
	if(images[o])
		ret = images[o];
	else{
		ret = document.createElement("div");
		ret.style.background = "#0099cc";// "linear-gradient(to bottom, #0099cc 0%, #0099cc 50%, #0099cc 100%)";
		ret.style.width = "100%";
		ret.style.height = "100%";
	}
	ret.id="bg";
	return ret;
};
///--- Инициализация первоначальных размеров canvas'а перед scal'ом ---///
var canvasInit = function (name)
{
	var can = document.getElementById(name)
	can.width = __WIDTHBG
	can.height = __HEIGHTBG
};

bgImgs = [
			{name:"preloader", url:"bg_preloaderimg"},
			{name:"game", url:"bg_windowimg"},
			{name:"menu", url:"menuimg"},
			{name:"instructions", url:"bg_instructionsimg"},
			{name:"other", url:"bgimg"}
		];

__WIDTHBG = 640/__koefDisplay			// Ширина бэкграунда и всех канвасов
__HEIGHTBG = 960/__koefDisplay			// Высота бэкграунда и всех канвасов

WIDTHGAME = 640/__koefDisplay			// Габариты
HEIGHTGAME = 744/__koefDisplay			// игры
canvases = {
				game: "gameField",
				bg: "background"
			}
