﻿/// <reference path="../../../js/jquery/jquery-1.4.1-vsdoc.js" />

var AuthURL = "../../Services/Auth2.asmx/";
var GameURL = "../../promotions/therealfoodproject/Services/TRFPGame.asmx/";
var pageTrackingPreamble = "/promotions/therealfoodproject/wheelOfReal/";

var swfDisplayDelayInterval;
var pendingSpin = false;

// Application Steps
$(document).ready(Init);

function Init() {
    // 1. Check if user Loggedin
    CheckLogin();
    //Hook up events
    $('#lblMessage').hide();
    $("#email_popup_signin_btn").click(function(event) {
        var tEmail = $("#txtEmailAddress");
        var email = tEmail.val();
        var isValid = true;
        $('#email_popup_enter_email').removeClass('email_popup_error_msg');
        $('#optin_agree').removeClass('email_popup_error_msg');
        if (email == '') {
            $('#email_popup_enter_email').addClass('email_popup_error_msg');
            isValid = false;
        }
        if (!$('#chkbox').attr('checked')) {
            $('#optin_agree').addClass('email_popup_error_msg');
            isValid = false;
        }
        if (isValid) {

            $.ajax({
                type: "POST",
                url: AuthURL + "Login",
                data: "promotionName=" + PromotionFileName + "&Email=" + email + "&sessionUID=" + SessionUID,
                dataType: "json",
                success: function(data) {
                    var x = data; //.d
                    if (x == null) { return; }
                    if (x.LoggedIn == true) {
                        $('#email_popup').hide();
                        $('#game_state_panels').show();
                        showGame();
                        pageTracker._trackPageview(pageTrackingPreamble + "login");
                    } else {

                        $('#email_popup').show();
                        $('#game_state_panels').hide();
                        $('#email_popup_enter_email').addClass('email_popup_error_msg');
                        $('#lblMessage').show();
                    }

                }
            });
        }
        event.preventDefault();
    });
    //Hookup panel events
    $("#game_panel_readytoplay").click(function(event) { spinWheel(); event.preventDefault(); });
    $("#game_panel_oneleft").click(function(event) { spinWheel(); event.preventDefault(); });
    $("#game_panel_twoleft").click(function(event) { spinWheel(); event.preventDefault(); });
    $('#game_panel_nospins').click(function(event) { goToVideo(); event.preventDefault(); });
}

function CheckLogin() {

    $.ajax({
        type: "POST",
        url: AuthURL + "IsLoggedIn",
        data: "promotionName=" + PromotionFileName + "&sessionUID=" + SessionUID,
        dataType: "json",
        success: function(data) {
            var x = data; //.d
            if (x == null) { return; }
            if (x.LoggedIn == true) {
                //if User Logged In check Game status
                showGame();
            } else {
                showLogin();
            }
        }
    });
    
    
    
    
    
    
    
}

function showLogin() {
    // User is not Loggedin
    $('#email_popup').show();
    //$('#email_popup_error_block').hide();
    $('#email_popup_error_block').show();
    $('#game_state_panels').hide();
}

function showGame() {
    $.ajax({
        type: "POST",
        url: GameURL + "GetPlayCount",
        data: "promotionName=" + PromotionFileName + "&sessionUID=" + SessionUID,
        dataType: "json",
        success: function(data) {
            var x = data; //.d
            hideChildPanels();

            if (x.AuthResponse.LoggedIn) {
                $('#email_popup').hide();
                $('#game_state_panels').show();
                if (x.PlayCount < 3) {
                    showSpinPanel(x.PlayCount);
                    //spinWheel();
                } else {
                    pageTracker._trackPageview(pageTrackingPreamble + "noSpinsRemaining");
                    $('#game_panel_nospins').show();
                }
            } else {
                showLogin();
            }

        }
    });

}

function spinWheel() {
    //if there's already a pending spin, stop here
    if (pendingSpin) return;
    
    //disable the play buttons to prevent multiple clicks while the back-end waits for a response
    pendingSpin = true;
    $("#game_panel_readytoplay, #game_panel_oneleft, #game_panel_twoleft").css('opacity', '0.75');
    $("#game_panel_readytoplay, #game_panel_oneleft, #game_panel_twoleft").css('filter', 'alpha(opacity=75)');

    $.ajax({
        type: "POST",
        url: GameURL + "Spin",
        data: "promotionName=" + PromotionFileName + "&sessionUID=" + SessionUID,
        dataType: "json",
        success: function(data) {
            var x = data; //.d
            var showSWF = true;
            var isWin = false;
            var winCopy;
            var id;
            hideChildPanels();

            //            if (x == null || x.PrizeCode == null) {
            //                
            //            }

            if (x != null && x.Success != null && x.Success == true) {
                if (x.PrizeCode == 0) {
                    if (x.PlayCount > 2) {
                        showSWF = false;
                        pageTracker._trackPageview(pageTrackingPreamble + "noSpinsRemaining");
                        $('#game_panel_nospins').show();
                    } else {
                        id = Math.floor(Math.random() * 4) + 1;
                    }
                } else {
                    winCopy = x.PrizeName;
                    isWin = true;
                    pageTracker._trackPageview(pageTrackingPreamble + "win" + x.PrizeCode);
                    id = x.PrizeCode;
                }
                if (showSWF) {
                    pageTracker._trackPageview(pageTrackingPreamble + "spin" + (x.PlayCount + 1));
                    placeSWF(isWin, id);
                    initSpinDisplay(isWin, id, x.PlayCount + 1, winCopy);
                }
            }
            else {
                //an unhandled exception occurred server-side
                alert('We’ve encountered an error, please click OK to continue playing the game');
                window.location = window.location;
            }
            //re-enable the play buttons for the next spin
            pendingSpin = false;
            $("#game_panel_readytoplay, #game_panel_oneleft, #game_panel_twoleft").css('opacity', '1');
            $("#game_panel_readytoplay, #game_panel_oneleft, #game_panel_twoleft").css('filter', 'alpha(opacity=100)');
        }
    });

}

function initSpinDisplay(isWin, id, playCount, winCopy) {
    swfDisplayDelayInterval = setTimeout(function() { showEndState(isWin, id, playCount, winCopy); }, 4000);
}

function showEndState(isWin, id, playCount, winCopy) {
    removeSWF();
    hideChildPanels();
    $("#flashImageReplacement").replaceWith('<div id="flashImageReplacement"><img src="swf/spinAssets/' + (isWin ? 'win' : 'lose') + id + '.jpg' + '"/></div>');
    if (isWin) {
        $('#game_panel_youwon_hdr3').text(winCopy);
        $('#game_panel_youwon').show();
    } else {
        showSpinPanel(playCount);
    }
}

function showSpinPanel(id) {
    switch (id) {
        case 0:
            // User has not done any spins
            $('#game_panel_readytoplay').show();
            break;
        case 1:
            //user had one spin done
            $('#game_panel_twoleft').show();
            break;
        case 2:
            // user had two spins done
            $('#game_panel_oneleft').show();
            break;
        case 3:
            $('#game_panel_nospins').show();
            break;
    }
}

function placeSWF(isWin, id) {
    removeSWF();
    $("#flashImageReplacement").replaceWith('<div id="flashImageReplacement"></div>');
    $('#img_background').prepend('<div id="flashHolder"></div>');
    var flashvars = {};
    var params = {};
    params.wmode = "transparent";
    var attributes = {};
    attributes.id = "iwinplayer";
    swfobject.embedSWF(("swf/spinAssets/" + (isWin ? "win" : "lose") + id + ".swf"),
        "flashHolder", "540", "585", "9.0.115", "swf/expressinstall.swf",
        flashvars, params, attributes);
}

function removeSWF() {
    swfobject.removeSWF("iwinplayer");
}

function hideChildPanels() {
    $($('#game_state_panels').children()).each(function(index) { $(this).hide(); });
}

function goToVideo() {
    window.location = "videos.aspx";
}









  
