    var self = this;
    var iterator = 0;
    Game1.Game = function (game) {
       
        var buttonLeft;
        var buttonRight;
        var int = 0;
        var spriteList = new Array();
        var selectedbox1;
        var selectedbox2;
        var equationTable;
        var playedEquation;
        var isReadyToRead;
        var intro;
        var input = 0;
        var calc_value;
        var text;
        var SavedLocation;
        var item;
        var ZmiennaMieszajaca;
        var ButtonList = [];
        var GameIsBusy = false;

    };

    function isPlaying(audelem) {
        return !audelem.paused;
    }

    function shuffle(array) {
        var currentIndex = array.length,
            temporaryValue, randomIndex;

        // While there remain elements to shuffle...
        while (0 !== currentIndex) {

            // Pick a remaining element...
            randomIndex = Math.floor(Math.random() * currentIndex);
            currentIndex -= 1;

            // And swap it with the current element.
            temporaryValue = array[currentIndex];
            array[currentIndex] = array[randomIndex];
            array[randomIndex] = temporaryValue;
        }

        return array;
    }

    Game1.Game.prototype = {

        upList: function () {
            if (ButtonList.length > 0) {
                for (var index = 0; index < ButtonList.length; ++index) {
                    ButtonList[index].kill();
                }
            };

            ZmiennaMieszajaca = false;
            //   if (this.ZmiennaMieszajaca){

            //  ItemList = "";
            if (shoppingcart.length > 1)
                for (var j = 1; j < shoppingcart.length; j++) {

                    this.button = this.game.add.sprite(1800, 275 + (42 * (j)), 'calc_', 0);
                    this.button.scale.setTo(0.4, 0.4);
                    this.button.inputEnabled = true;
                    this.button.name = 'kalkulator';
                    this.button.item = j;
                    this.button.events.onInputDown.add(this.down, this);
                    ButtonList.push(this.button);
                    //console.log("timeout!");
                }
                // shoppinglist.setText(ItemList);

            //console.log("timeout!");

            // }
        },
        create: function () {
            iterator = 0;
            tween = null;
            //this.load.BitmapFont('font_0', 'font/font_0_0.png',font_json);
            GameIsBusy = false;
            ButtonList = [];
            ItemInputList = [];
            ZmiennaMieszajaca = false;
            calc_value = "";
            input = 0;
            shoppinglist = "";
            shoppingcart = [[]];
            var SavedLocation = null;
            var LocationIsSet;
            this.LocationIsSet = false;
            variant1 = ['1_1', '2_1', '3_1', '4_1', '5_2', '6_4', '7_4', '8_8', '9_4', '10_2', '11_7', '12_2', '13_2', '14_2', '15_7', '16_5', '17_5', '18_9', '19_3', '20_5', '21_3', '22_6', '23_8'];
            shuffle(variant1);
            strona = new Audio("./sound/page.mp3");
            strona.load();
            lektor = new Audio("./sound/OB_g_I_4_1.mp3");
            lektor.load();
            finnish = new Audio("./sound/page.mp3");
            finnish.load();
            sound = new Audio();
            equationTable = [4, 2, 1, 10, 3, 2, 5, 9, 9, 5, 0, 10];
            playedEquation = 0;
            isReadyToRead = false;
            intro = true;
            ItemList = "";
            this.bg = this.game.add.sprite(0, 0, 'bg_ingame');
            this.game.stage.backgroundColor = '#ffffff';
            this.game.physics.startSystem(Phaser.Physics.ARCADE);
            this.time.advancedTiming = true;
            this.boo = this.game.add.sprite(0, 0, "book");

            this.buttonHelp = this.game.add.sprite(1768, 100 / 2, 'help', 0);
            this.buttonHelp.scale.setTo(0.8, 0.8);
            this.buttonHelp.name = "Help";
            this.buttonHelp.inputEnabled = true;
            this.buttonHelp.fixedToCamera = true;
            this.buttonHelp.events.onInputDown.add(this.down2, this);
            this.buttonHelp.events.onInputUp.add(this.up, this);



            var item;
            var selectexbox1 = null;
            var selectexbox2 = null;
            var TotalPoints = 0;
            var equal;
            var j;


            this.SpawnItem();


            this.showInstruction();
            lektor.play();

        },

        SpawnItem: function () {
            if (iterator <= 11) {
                this.item = this.game.add.sprite(836, 216, variant1[iterator]);
                this.item.name = variant1[iterator];
                this.item.value = variant1[iterator].slice(-2);
                ItemInputList.push(this.item);
                //console.log(ItemInputList);

                iterator++;
                this.SpawnButtons();
            }
        },

        SpawnButtons: function () {
            ButtonList = [];
            var arr = [];
            var tmp_int = variant1[iterator - 1].slice(-1);
            arr.push(parseInt(tmp_int));
            while (arr.length < 3) {
                var randomnumber = Math.ceil(Math.random() * 9)
                var found = false;
                for (var i = 0; i < arr.length; i++) {
                    if (arr[i] == randomnumber) {
                        found = true;
                        break
                    }
                }
                if (!found) arr[arr.length] = randomnumber;
            }
            //console.log(arr);
            //wylaczenie szuflowania tablicy odpowiedzi..
            shuffle(arr);
            for (var i = 0; i < 3; i++) {
                this.item = this.game.add.sprite(330 + (547 * i), 762, "p_" + arr[i]);
                this.item.inputEnabled = true;
                this.item.name = "odpowiedzi";
                this.item.value = arr[i];
                this.item.events.onInputDown.add(this.down, this);
                this.item.events.onInputUp.add(this.up, this);
                ButtonList.push(this.item);
            }
        },

        SaveLocation: function (button, pointer) {
            if (GameIsBusy == false) {
                if (playedEquation < 10) {
                    button.bringToTop();
                }
            }
        },

        up: function (button, pointer) {
            button.frame = 0;
        },
        down2: function (button, pointer) {
            button.frame = 1;
            if (button.name == 'guiBack' || button.name == 'NextButton') {
                if (button.name == 'guiBack')
                    this.hideFinnish();
                else if (button.name == 'NextButton')
                    this.showFinnish();
            } else if (button.name == 'Speaker') {
                if (!isPlaying(sound) || sound.ended)
                    this.playSound();
            } else if (((button.name != 'guiBack') || (button.name != 'Speaker')) && (!isPlaying(lektor) || lektor.ended)) {
                intro = true;
                this.showInstruction();
                lektor.play();
            }
        },

        StopInput: function () {
            if (ItemInputList.length > 0) {
                for (var index = 0; index < ItemInputList.length; ++index) {
                    ItemInputList[index].inputEnabled = false;
                }
            };
        },
        ReStartInput: function () {
            if (ItemInputList.length > 0) {
                for (var index = 0; index < ItemInputList.length; ++index) {
                    ItemInputList[index].inputEnabled = true;
                }
            };
        },

        showInstruction: function () {
            GameIsBusy = true;
            this.StopInput();
            this.guiHelp = this.game.add.sprite(1210, 350, 'guiPomocnik_good');
            //this.guiHelp.scale.setTo(0.8,0.8);
            this.guiHelp.fixedToCamera = true;
            this.guiBubble = this.game.add.sprite(135, 96, 'Finish');
            this.guiBubble.scale.setTo(1.2, 1.2);
            this.guiBubble.fixedToCamera = true;
            this.titleText = this.game.add.text(200, 330, '\nKażdy produkt ma zaspokoić jakąś potrzebę.\nWskaż, jaką potrzebę\nzaspokajają wymienione produkty.', {
                font: "40px Arial",
                fill: "#000000",
            });
            this.titleText.fixedToCamera = true;
        },

        hideInstruction: function () {
            GameIsBusy = false;
            this.ReStartInput();
            this.guiHelp.visible = false;
            this.guiBubble.visible = false;
            this.titleText.visible = false;
            //this.lektor.hide();
        },



        stopDrag: function (button, pointer) {

            if (GameIsBusy == false) {
                //console.log(button.name);
                var mover = button;


                //this.add.tween(button).to({button.orginalPositionX,button.orginalPositionY}, 2000, Phaser.Easing.Linear.None, true);
                // Game1.Game.Phaser.game.add.tween(button).to( {x:button.orginalPositionX, y:button.orginalPositionY }, 500, Phaser.Easing.Back.Out, true);
                this.game.add.tween(button).to({
                    x: button.orginalPositionX,
                    y: button.orginalPositionY
                }, 1000, Phaser.Easing.Back.Out, true);

                // button.x = button.orginalPositionX;
                // button.y = button.orginalPositionY;
                ZmiennaMieszajaca = true;
                // And re-enable it upon release
                // this.sprite.body.moves = true;

            }
        },

        playSound: function () {
            //   sound = new Audio("./sound/MW_g_I_8_działanie" + variant1[playedEquation] + ".mp3");
            sound.load();
            sound.loop = false;
            sound.play();

        },
        playWrong: function () {
            // if (!isPlaying(sound)) {
            sound.pause();
            sound = new Audio("./sound/OB_g_I_4_3.mp3");
            sound.load();
            sound.loop = false;
            sound.play();

            //   }
        },
        playGood: function () {
            sound.pause();
            sound = new Audio("./sound/OB_g_I_4_2.mp3");
            sound.load();
            sound.loop = false;
            sound.play();

        },
        showFinnish: function () {
            this.StopInput();
            if (ButtonList.length > 0) {
                for (var index = 0; index < ButtonList.length; ++index) {
                    ButtonList[index].kill();

                }
            }

            this.guiBg = this.game.add.sprite(0, 0, 'bg_ingame');
            this.guiBoo = this.game.add.sprite(0, 0, "book");
            this.guiBubble = this.game.add.sprite(174, 85, 'Finish');
            //Ustalenie poprawności wykonania zadania

            this.guiHelp = this.game.add.sprite(1050, 290, 'guiPomocnik_good');
            this.guiText = this.game.add.text(220, 330, 'Brawo.\nWidzę, że umiesz rozpoznawać potrzeby.', {
                font: "40px Arial",
                fill: "#000000",
            });
            sound.pause();
            sound = new Audio("./sound/OB_g_I_1_8.mp3");
            sound.load();
            sound.loop = false;
            sound.play();
            this.titleText.fixedToCamera = true;
            playedEquation = 13;
        },
        hideFinnish: function () {
            sound.pause();
            this.ReStartInput();
            //   this.guiHelp.kill();
            //   this.guiBubble.kill();
            // this.upList();    
            this.guiBack.kill();
            this.guiBg.kill();
            this.guiBoo.kill();
            this.guiHelp.kill();
            this.guiBubble.kill();
            this.guiBasket.kill();
            this.guiCounter.kill();
            this.guiText.setText('');
            text.setText('');

        },

        down: function (button, pointer) {
            button.frame = 1;
            if (GameIsBusy == false) {
                if (button.name == "odpowiedzi") {
                    console.log(ItemInputList[0].value.slice(-2,-1)+" "+ItemInputList[0].value.slice(-1));
                    if (button.value == (ItemInputList[0].value.slice(-1)) || button.value == (ItemInputList[0].value.slice(-2,-1) )) {
                        if (iterator <= 11) {
                            this.playGood();
                        }
                        //console.log('yeeah');
                        ItemInputList[0].destroy();
                        ItemInputList.pop();
                        if (ButtonList.length > 0) {
                            for (var index = 0; index < ButtonList.length; ++index) {
                                ButtonList[index].kill();

                            }
                        }
                        this.SpawnItem();
                        playedEquation++;
                    } else this.playWrong();
                }

            }
        },
        AddDigit: function (string) {
            {
                if (calc_value.length > 6) {} else {
                    if ((eval(calc_value) == 0) && (calc_value.indexOf(".") == -1)) {
                        calc_value = string;
                    } else {
                        calc_value = calc_value + string;
                    };
                };
            };
            input = calc_value;
            // text.setText(input);    
        },





        update: function () {
            if (tween != null)
                tween.onComplete.removeAll();
            if (ZmiennaMieszajaca) {
                //this.showFinnish();
                playedEquation == 10;
                // //console.log("timeout!");
                this.upList();


            }
            if (playedEquation == 12 && (!isPlaying(sound) || sound.ended)) {
                sound.pause();
                playedEquation = 13;
                this.showFinnish();
            }
            if (playedEquation == 13 && (!isPlaying(sound) || sound.ended)) {
                strona.play();
                this.state.start('Menu');
                //this.hideFinnish();
            }
            if (playedEquation < 12) {
                if ((!isPlaying(lektor) || lektor.ended) && intro) {
                    intro = false;
                    this.hideInstruction();
                    isReadyToRead = true;
                }

            }
            if (playedEquation == 14) {
                this.state.start('Menu');
            }
        },

        render: function () {



        }
    };