﻿// Initialize the required scripts

function scriptInit() {
    if (!document.getElementById) {
        return;
    }
}

function IsInRole(role) {
    var roles = $.jCache.getItem("Roles");

    for (i = 0; i < roles.length; i++) {
        if (roles[i].Title.toLowerCase() == role.toLowerCase()) {
            return true;
        }
    }

    return false;
}

function OpenLogin() {
    tb_show('Login', './Handlers/BettorLogicHandler.aspx?op=loadlogincontrol&modal=false&width=454&height=150');
}

function Register() {
    tb_show('Registration', './Handlers/BettorLogicHandler.aspx?op=loadregistration&modal=false&width=454&height=275');
}

function Login(txtUsername, txtPassword, checked, autoLogin) {

    var dataStr = "username=" + URLEncode(txtUsername) + "&password=" + txtPassword;

    var req = $.ajax({
        type: "POST",
        url: "Handlers/BettorLogicHandler.aspx?op=login",
        data: dataStr,
        error: function(req, json) {
            $.jCache.setItem("Authenticated", "false");
        },
        success: function(json) {
            var user = eval("(" + json + ")");

            if (user.UserId != 0) {

                if (user.ChangePassword == false) {
                    $.jCache.setItem("Authenticated", "true");
                    $.jCache.setItem("AuthenticatedUserId", user.UserId);
                    $.jCache.setItem("Username", user.Username);

                    if (!(autoLogin)) {
                        if (checked)
                            SaveCookie(txtUsername, txtPassword);
                        else
                            DeleteCookie();
                    }

                    $("#lbl_Welcome").show();
                    $("#lbl_Welcome").html(CreateLogout(user.Username));

                    $("#btn_Members").hide();
                    //$("#btn_Buy").hide();

                    tb_remove();

                    var thispage = $.jqURL.url();
                    $.jqURL.loc(thispage);

                    return true;
                }
                else {
                    $("#LoginControl").hide();
                    $("#ChangePasswordControl").show();
                    $("#ForgotPasswordControl").hide();

                    return false;
                }
            }
            else {
                $.jCache.setItem("Authenticated", "false");

                if (autoLogin) {
                    $("#btn_Members").show();
                    //$("#btn_Buy").show();
                }
                else {
                    var msgControl = document.getElementById("LoginMessageLabel");

                    msgControl.innerHTML = user.message;
                    // For IE
                    msgControl.setAttribute("className", "ErrorMessage");
                    // For other browsers
                    msgControl.setAttribute("class", "ErrorMessage");
                }

                return false;
            }
        }
    });
}

function Logout() {
    // Delete the cookie
    DeleteCookie();

    // Clear the session
    var dataStr = "";

    var req = $.ajax({
        type: "POST",
        url: "Handlers/BettorLogicHandler.aspx?op=logout",
        data: dataStr,
        error: function(req, json) {

            alert('Error');
        },
        success: function(json) {
            var user = eval("(" + json + ")");

            if (user.UserId == 0) {
                checkAuthentication();
            }
            var thispage = $.jqURL.url();
            $.jqURL.loc(thispage);

            return;
        }
    });
}

function CheckString(regex, input) {

    return regex.test(input.toString());
}

function newCookie(name, value, days) {
    // the number at the left reflects the number of days for the cookie to last
    // modify it according to your needs
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toUTCString();
    }
    else var expires = "";

    document.cookie = name + "=" + value + expires + "; path=/";
}

function eraseCookie(name) {
    newCookie(name, "", 1);
}

function SaveCookie(txtUsername, txtPassword) {
    newCookie('EmailAddress', txtUsername, 10);     // add a new cookie as shown at left for every
    newCookie('UserPassword', txtPassword, 10);
}

function DeleteCookie() {
    eraseCookie('EmailAddress');   // make sure to add the eraseCookie function for every field
    eraseCookie('UserPassword');
}

function URLEncode(clearString) {
    var output = '';
    var x = 0;
    clearString = clearString.toString();
    var regex = /(^[a-zA-Z0-9_.]*)/;

    while (x < clearString.length) {
        var match = regex.exec(clearString.substr(x));

        if (match != null && match.length > 1 && match[1] != '') {
            output += match[1];
            x += match[1].length;
        }
        else {
            if (clearString[x] == ' ')
                output += '+';
            else {
                var charCode = clearString.charCodeAt(x);
                var hexVal = charCode.toString(16);
                output += '%' + (hexVal.length < 2 ? '0' : '') + hexVal.toUpperCase();
            }

            x++;
        }
    }

    return output;
}

function allDigits(str) {
    return inValidCharSet(str, "0123456789");
}

function inValidCharSet(str, charset) {
    var result = true;
    // Note: doesn't use regular expressions to avoid early Mac browser bugs	
    for (var i = 0; i < str.length; i++)
        if (charset.indexOf(str.substr(i, 1)) < 0) {
        result = false;
        break;
    }
    return result;
}

function SpendCredits() {
    var thispage = $.jqURL.strip();
    var dataStr = "&page=" + thispage;

    var req = $.ajax({
        type: "POST",
        url: "Handlers/Handler.aspx?op=spendcredits",
        data: dataStr,
        error: function(req, json) {

            alert('Error');
        },
        success: function(json) {
            var result = eval("(" + json + ")");

            if (result.isError == 'true') {
                alert(result.message);
                return false;
            }
            else {
                $.jqURL.loc(thispage);
            }

            return false;
        }
    });
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

// Changes the cursor to an hourglass
function cursor_wait() {
    document.body.style.cursor = 'wait';
}

// Returns the cursor to the default pointer
function cursor_clear() {
    document.body.style.cursor = 'default';
}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent)
        while (1) {
        curleft += obj.offsetLeft;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent)
        while (1) {
        curtop += obj.offsetTop;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}