﻿$(function () {
    var $addToCart,
        data = [],
        c = 'cart',
        $cartPage,
        cartPage = false,
        $cartBlock,
        $addToCart = '';
    var cart = {
        init: function () {
            $addToCart = $('.add-to-cart');
            $cartPage = $('.section.cart-page');
            $cartBlock = $('.cart-block .viewport .overview');
            $('.cart-block').tinyscrollbar();
            this.binds();

            if ($cartPage.length > 0) {
                cartPage = true;
            }
            this.checkCookie();
        },
        binds: function () {
            $addToCart.click(function () {
                cart.gatherData($(this));
                $('.cart-block').tinyscrollbar_update();
            });
            $close = $('.cart-block .close, .cart-page .close').live('click', function () {
                cart.removeItem($(this).attr('data-number'));
            });
        },
        checkCookie: function () {
            if (!!cookie.read(c)) {
                data = JSON.parse(cookie.read(c));
                if (data.length > 0) {
                    this.renderDataToBox();
                } else {
                    this.addNoDataMsg();
                }
            } else {
                cookie.create(c, '[]', 30);
            };
        },
        addNoDataMsg: function () {
            $cartBlock.empty();
            $('<h2>' + $.trim($('.no-items').text()) + '</h2>').appendTo($cartBlock);
        },
        gatherData: function ($this) {
            var gatheredData = {};
            gatheredData.gameName = currentGame.HomeParticipant + ' - ' + currentGame.AwayParticipant;
            gatheredData.homeTeam = currentGame.HomeParticipant;
            gatheredData.awayTeam = currentGame.AwayParticipant;
            gatheredData.bets = [];
            var $thisParent = $this.parent('.cell2');
            $thisParent.addClass('selected');
            var selectedBet = $this.attr('class').split(' ')[1]; //$('.table:visible .row:last-child .cell2').index($('.cell2.selected')) + 2;
            gatheredData.pick = '';
            gatheredData.pickType = $.trim($('.tabset .active').text());
            if (gatheredData.pickType == '1x2') {
                gatheredData.pick = selectedBet == 'home-odds' ? 'Pick: 1' + ' (' + gatheredData.pickType + ')' : (selectedBet == 'draw-odds' ? 'Pick: x' : 'Pick: 2') + ' (' + gatheredData.pickType + ')';
            } else {
                var pickNumber = $.trim($thisParent.parent('.row').prev('.row').find('.cell1').next().text());
                gatheredData.pick = 'Pick: ' + (selectedBet == 'home-odds' ? gatheredData.homeTeam : gatheredData.awayTeam) + ' ' + pickNumber + ' ' + gatheredData.pickType;
            }
            gatheredData.gameLink = currentGame.URL;
            gatheredData.gameDate = currentGame.StartDate;
            var $rowsToCheck = $thisParent.parent('.row').prevUntil('.add-to-cart-row');
            var $rates = $('a.' + selectedBet + ' strong', $rowsToCheck);
            var highestThree = [];
            $.each($rates, function (index, el) {
                number = parseFloat($(el).text());
                highestThree.push(number);
            });
            highestThree = highestThree.sort().reverse().slice(0, 3);
            var $topRates = [];
            $.each(highestThree, function (index, number) {
                $.each($rates, function (index, rate) {
                    if (parseFloat($(rate).text()) == number && $(rate).attr('data-checked') != 'true') {
                        $topRates.push(rate);
                        $(rate).attr('data-checked', 'true');
                    }
                    if ($topRates.length > 2)
                        return false;
                });
            });
            $rates.removeAttr('data-checked');
            $.each($topRates, function () {
                $thisRow = $(this).parents('.row');
                var bet = {};
                bet.name = $.trim($('.cell1 > a:eq(1) span:last-child', $thisRow).text());
                bet.logoImageClass = $('.cell1 > a:eq(1) span:first-child', $thisRow).attr('class');
                bet.logoLink = $('.cell1 > a:eq(1)', $thisRow).attr('href');
                var myArray = bet.logoLink.split('/');
                myArray[myArray.length - 1] = 'Cart';
                bet.logoLink = myArray.join('/');
                bet.value = $(this).text();
                gatheredData.bets.push(bet);
            });
            $thisParent.removeClass('selected');
            data.push(gatheredData);
            this.saveDataToCookie(data);
            this.renderDataToBox();
        },
        removeItem: function (item) {
            data.splice(item, 1);
            this.saveDataToCookie(data);
            this.renderDataToBox();
        },
        saveDataToCookie: function (data) {
            cookie.create(c, JSON.stringify(data), 30);
        },
        renderDataToBox: function () {

            if (!!cartPage) {
                $cartBlock = $('.cart-block .viewport .overview, .section.cart-page .frame').empty();
            } else {
                $cartBlock.empty();
            }
            if (data.length == 0) {
                this.addNoDataMsg();
            }
            var $dataBlock;
            $.each(data, function (index, obj) {
                var items = '';
                var linkToCartPage = '';
                var hideNextItems = '';
                if (index > 2) {
                    index == 3 ? linkToCartPage = '<strong><a class="more" href="/my-cart">Show All</a></strong>' : '';
                    hideNextItems = 'hideItems';
                }
                $.each(obj.bets, function (index, bet) {
                    items += '<dt><a href="' + bet.logoLink + '"><span class="' + bet.logoImageClass + '"></span></a></dt><dd>' + bet.value + '</dd>';
                });
                $dataBlock = $(linkToCartPage + '<span class="' + hideNextItems + '"><ul class="info"><li><strong><a href="' + obj.gameLink + '">' + obj.gameName + '</a></strong></li><li class="small">Date: ' + obj.gameDate + '</li><li class="small">' + obj.pick + '</li></ul> ' +
                            '<a href="#" class="close" data-number="' + index + '">close</a>' +
                            '<div class="area">' +
                                '<strong class="title">Highest odds</strong>' +
                                '<dl class="data">' + items + '</dl></div><div class="clear"></div></span>');

                $dataBlock.appendTo($cartBlock);
                $('.cart-block').tinyscrollbar_update();
            });
        }
    };
    var cookie = {
        create: function (name, value, days) {
            if (days) {
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                var expires = "; expires=" + date.toGMTString();
            }
            else var expires = "";
            document.cookie = name + "=" + value + expires + "; path=/";
        },
        read: function (name) {
            var nameEQ = name + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
            }
            return null;
        },
        erase: function (name) {
            cookies.create(name, "", -1);
        }
    };
    if($('.widgetConfig').length == 0) {
        cart.init();
        window.cart = cart;
        window.data = data;    
    }
});

/*<ul class="info">
    <li><strong>Liverpool - Ferencvarosi TC</strong></li>
    <li>Date: 23.7.11 , Hour: 20:30</li>
    <li>Pick: 2 (1x2)</li>
</ul>
<a href="#" class="close">close</a>
<div class="area">
    <strong class="title">Highest odds</strong>
    <dl>
        <dt><a href="#">
            <img src="Img/logo1.jpg" alt="StanJames.com logo" width="68" height="14" /></a></dt>
        <dd>
            2.50</dd>
        <dt><a href="#">
            <img src="Img/logo2.jpg" alt="youwin logo" width="68" height="14" /></a></dt>
        <dd>
            2.50</dd>
        <dt><a href="#">
            <img src="Img/logo3.jpg" alt="betfair logo" width="68" height="14" /></a></dt>
        <dd>
            2.43</dd>
        <dt><a href="#">
            <img src="Img/logo3.jpg" alt="betfair logo" width="68" height="14" /></a></dt>
        <dd>
            2.43</dd>
        <dt><a href="#">
            <img src="Img/logo3.jpg" alt="betfair logo" width="68" height="14" /></a></dt>
        <dd>
            2.43</dd>
        <dt><a href="#">
            <img src="Img/logo3.jpg" alt="betfair logo" width="68" height="14" /></a></dt>
        <dd>
            2.43</dd>
    </dl>
</div>*/
