var PredictFinal = function () {
    var priv =
    {
        ResetShirt: function (shirtNo) {
            shirt = $('.draggable.' + shirtNo);
            shirt.attr('style', 'position: relative;');
            $('.droppable.' + shirtNo + ' a').attr('href', 'javascript:void(0);');
            $('.droppable.' + shirtNo + ' a').attr('style', 'visibility: hidden');
            $('.droppable.' + shirtNo).removeClass(shirtNo);
        },
        CheckStorePrediction: function () {
            $('.prediction-error').html('');
            var error = false;
            var points = Utils.Trim($('.answer-box-1').val());
            var goals = Utils.Trim($('.answer-box-2').val());
            if (isNaN(parseFloat(goals)) || !isFinite(goals)) {
                // error goals
                error = true;
                $('.goal-error').html(messages.GOAL_INVALID);
            }

            if (isNaN(parseFloat(points)) || !isFinite(points)) {
                // error points
                error = true;
                $('.point-error').html(messages.POINT_INVALID);
            }

            var predictionList = '';
            for (var i = 1; i < 19; i++) {
                var classes = $('.droppable_box_' + i).attr("class").split(' ');
                var shirtNo = '';
                for (var j = 0; j < classes.length; j++) {
                    if (classes[j].lastIndexOf('shirt_', 0) === 0) {
                        shirtNo = classes[j];
                        break;
                    }
                }
                if (shirtNo == '') {
                    error = true;
                    $('.prediction-error').html(messages.PREDICTION_INVALID);
                    break;
                }
                predictionList += i + ":" + shirtNo + ";";

            }

            if (!error) {
                priv.StorePrediction(predictionList, points, goals);
            }
            else {
                return false;
            }
        },
        StorePrediction: function (predictionList, points, goals) {
            $.ajax({
                type: "POST",
                url: "../Handlers/PredictFinal.ashx",
                data: "job=1&predictedGoals=" + goals + "&predictedPoints=" + points + "&predictionList=" +
                        predictionList,
                success: function (data) {
                    if (data == undefined)
                        return false;

                    if (data["response"] == -1) {

                        return false;
                    }
                    else if (data["response"] == 1) {
                        $('.login-box').hide();
                        $('.is-registered').show();
                        Utils.OpenDOMWindowWithSize('PopupBoxes', '510px', '280px');
                        return true;
                    }
                },
                error: function (data) {
                    return false;
                },
                dataType: "json"
            });
        }
    };
    return {
        OnReady: function () {
            $('.draggable').draggable({ revert: 'invalid', snap: '.droppable', snapMode: 'inner', snapTolerance: '40',
                start: function (event, ui) {
                    $(this).addClass('top-z-index');
                },
                stop: function (event, ui) {
                    $(this).removeClass('top-z-index');
                }
            });
            $('.droppable').droppable({
                drop: function (event, ui) {
                    newShirt = ui.draggable;
                    classes = newShirt.attr("class").split(' ');
                    var newShirtNo = '';
                    for (var i = 0; i < classes.length; i++) {
                        if (classes[i].lastIndexOf('shirt_', 0) === 0) {
                            newShirtNo = classes[i];
                            break;
                        }
                    }
                    if (newShirtNo == '') {
                        return;
                    }

                    classes = this.attributes["class"].value.split(' ');
                    var oldShirtNo = '';
                    var remainingClasses = '';
                    for (var i = 0; i < classes.length; i++) {
                        if (classes[i].lastIndexOf('shirt_', 0) === 0) {
                            oldShirtNo = classes[i];
                        }
                        else {
                            remainingClasses += classes[i] + ' ';
                        }
                    }

                    if (oldShirtNo == newShirtNo) {
                        return;
                    }

                    if (oldShirtNo != '') {
                        priv.ResetShirt(oldShirtNo);
                    }

                    $('.droppable.' + newShirtNo + ' a').attr('href', 'javascript:void(0);');
                    $('.droppable.' + newShirtNo + ' a').attr('style', 'visibility: hidden;');
                    $('.droppable.' + newShirtNo).removeClass(newShirtNo);

                    remainingClasses += newShirtNo;
                    this.attributes["class"].value = remainingClasses;
                    $('#' + this.id + ' a').attr('href', 'javascript:PredictFinal.ResetShirt("' + newShirtNo + '");');
                    $('#' + this.id + ' a').attr('style', 'visibility: visible;');

                }
            });
            $('.prediction .teams ul li').mouseover(function () {
                var style = $(this).find("div").attr('style');
                if (style == "position: relative; left: 0px; top: 0px;" || style == "position: relative;" || style == "position: relative; ") {
                    $(this).addClass('hover');
                }
                else {
                    $(this).removeClass('hover');
                }
            }).mouseout(function () {
                $(this).removeClass('hover');

            });
            $('.answer-box-1').focus(function () {
                $(this).val('');
                $(this).removeClass('dummy-text');
                $('.point-error').html('');
            });
            $('.answer-box-2').focus(function () {
                $(this).val('');
                $(this).removeClass('dummy-text');
                $('.goal-error').html('');
            });
            $('.email-box').focus(function () {
                $('.email-error').hide();
            });
            $('.password-box').focus(function () {
                $('.password-error').hide();
            });
            $('.password-dummy').focus(function () {
                $('.password-dummy').hide();
                $('.password-box-real').show().focus();
            });
            $('.email-dummy').focus(function () {
                $('.email-dummy').hide();
                $('.email-box-real').show().focus();
            });
            $("input[name='haveAccount']").change(function () {
                if ($("input[name='haveAccount']:checked").val() == 'yes') {
                    $('#btnOkHaveAccount').show();
                }
                else if ($("input[name='haveAccount']:checked").val() == 'no') {
                    $('#btnOkHaveAccount').hide();
                }
            });
            //            $("a[rel^='prettyPhoto']").prettyPhoto({
            //                theme: 'light_rounded', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
            //                iframe_markup: '<iframe src="{path}" width="{width}" height="{height}" border="0" frameborder="no"></iframe>',
            //                showTitle: false
            //            });       
            $('.fancybox').fancybox({
                'width': 410,
                'height': 530,
                'autoScale': false,
                'transitionIn': 'none',
                'transitionOut': 'none',
                'type': 'iframe',
                'centerOnScroll': false,
                'autoDimensions': false
            });
            $('#txtEmailAddress').keydown(function (event) {
                if (event.keyCode == '13') {
                    event.preventDefault();
                    Login.Login();
                }
            });
            $('#txtPassword').keydown(function (event) {
                if (event.keyCode == '13') {
                    event.preventDefault();
                    Login.Login();
                }
            });
        },
        ResetShirt: function (shirtName) {
            priv.ResetShirt(shirtName);
        },
        ValidateOpenIsRegisteredBox: function () {
            priv.CheckStorePrediction();
        },

        PassFirstPopupBox: function () {
            $('.login-box').show();
            $('.is-registered').hide();
        },

        ShowFacebookPostedMessage: function () {
            Utils.OpenDOMWindowWithSize('FacebookPosted', '510px', '280px');
            setTimeout("self.close();", 2000) 
        }
    };
} ();

$(document).ready(function () {
    PredictFinal.OnReady();    
});
