$(document).ready(function () { 
    game = {
        player:0,
        turn:1,
        score:[0,0],
        displayed:null
    };
    
    
    
    deck = { 
        uncovered: [], cards: [], num_cells: 6, 
        images: ["http://dl.dropbox.com/u/519014/memooory/cows.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows2.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows3.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows4.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows5.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows6.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows7.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows8.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows9.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows10.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows11.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows12.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows13.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows14.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows15.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows16.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows17.jpg", 
        "http://dl.dropbox.com/u/519014/memooory/cows18.jpg"] 
    }; 
    deck.initialize = function () { 
        var audioElement = document.createElement('audio');
        audioElement.setAttribute('src', 'https://s3.amazonaws.com/soundbible/mp3/Cow_Moo-Mike_Koenig-42670858.mp3');
        
        for (var row = 0; row < deck.num_cells; row++) 
        { /* create cards */ 
            for (var col = 0; col < deck.num_cells; col++) 
            { 
                var a_card = new card(row, col); 
                this.cards.push(a_card); 
            } 
        } 
        /* assign images */ 
        var num_images = (this.num_cells * 2) / 2; 
        var img_copy1 = jQuery.extend([], this.images);
        var img_copy2 = jQuery.extend([], this.images);
        var card_copy = jQuery.extend([], this.cards);
        
        this.cards = [];
        while (img_copy1.length > 0) {
                var i1 = Math.floor(Math.random() * img_copy1.length),
                    i2 = Math.floor(Math.random() * img_copy1.length);
                card_copy[0].image = img_copy1[i1];
                card_copy[1].image = img_copy2[i2];
                this.cards.push(card_copy[0]);
                this.cards.push(card_copy[1]);
                card_copy.splice(0,1);
                card_copy.splice(0,1);
                img_copy1.splice(i1,1);
                img_copy2.splice(i2,1);
            
        } 
        
        for (var i = 0; i < this.cards.length; i++) { 
            var a_card = this.cards[i]; 
            var ui = a_card.render_ui();
            $("#cards").append(ui); 
            if (i % (this.num_cells) == 0) { 
                $(ui).addClass("clear"); 
            }
            $(ui).click(function(){
                if($(this).attr("found") == "true") return false;
                if(game.turn <= 2){
                    if($(this).hasClass("clicked")) $(this).removeClass("clicked");
                    else $(this).addClass("clicked");
                    
                    if(game.turn == 1)
                    game.displayed_card = $(this); //$(".image",$(this)).attr("src");
                    
                    else if(game.turn == 2){
                       var this_card = $(".image",$(this)).attr("src"); 
                       if(this_card == $(".image", game.displayed_card).attr("src")){
                           /* yay */
                           game.score[game.player]++;
                           $(game.displayed_card).attr("found","true");
                           $(this).attr("found","true");
                           $("#p" + game.player + "_score").html(game.score[game.player]);
                           game.turn = 0;
                            audioElement.play();
                       }
                       game.displayed_card = null;
                    }
                    game.turn++;
                    
                }
                else{
                    game.player++;
                    $(".card[found!=true]").removeClass("clicked");
                    game.turn = 1;
                    game.player = game.player % 2;
                    if(game.player == 0) $(".current_player").html("one");
                    else $(".current_player").html("two");
                }
            
            });
        } 
    };
    
    card = function card(row, col) { 
        this.row = row, this.col = col, this.image;
        this.render_ui = function () { 
            var ui = $("<div class='card " + this.row + " " + this.col + "'><div class='face_front'><img src='http://dl.dropbox.com/u/519014/memooory/card.jpg'></img></div><div class='face_back'></div></div>"); 
            /*var ui = $("<div class='card " + this.row + " " + this.col + "'></div>");*/
            var image = $("<img class='image' src='" + this.image + "'></img>"); 
            $(".face_back",ui).append(image);
            /*$(ui).append(image);*/
            return ui; 
        }; 
    }; 
    
    deck.initialize(); 
    
});

