﻿var account = Class.create({
    initialize: function() {
    }
});

account.isNewAccount = function(v) {
    $$('input[id$="hfNewUser"]')[0].value = v;
}

account.accountExists = function(ev) {
    if ($$('input[id$="hfNewUser"]')[0].value == 'true') {
        var ajxRequest = null;
        if (ajxRequest) {
            ajxRequest.abort();
        }
        var input;
        if (ev.tagName) {
            input = ev;
        }
        else if ($$('input[id$="' + ev + '"]')[0]) {
            input = $$('input[id$="' + ev + '"]')[0];

        } else {
            ev = ((ev) ? ev : window.event);
            input = ((ev.srcElement) ? ev.srcElement : ev.target);
        }


        //alert(ev);

        if (DataValidation.isValidEmailAddress(input.value)) {
            $('msgAccountExists').style.visibility = 'visible';
            ajxRequest = new Ajax.Request('verifyacct.acct', {
                method: 'post',
                parameters: { cmd: 'AccountExists', userId: input.value },
                onSuccess: function(xhrResponse) {
                    var r = xhrResponse.responseText;
                    if (r == 'true') {
                        $('msgAccountExists').innerHTML = 'Already Exists.';
                        $$('input[id$="hfAccountExists"]')[0].value = r;
                        $(input).addClassName('errorNull');
                    } else {
                        $('msgAccountExists').innerHTML = 'Looks good.';
                        $$('input[id$="hfAccountExists"]')[0].value = r;
                        $(input).removeClassName('errorNull');
                    }
                },
                onFailure: function(xhrResponse) {
                    alert('there was a problem, try again');
                }
            });

        }
    }
}

account.comparePasswordFields = function(ev) {
    ev = ((ev) ? ev : window.event);
    var input = ((ev.srcElement) ? ev.srcElement : ev.target);
    if (input.value.length >= $$('input[id$="password"]')[0].value.length) {
        $('msgPasswordMatch').style.visibility = 'visible';
        if ($$('input[id$="password"]')[0].value == input.value) {
            $('msgPasswordMatch').innerHTML = 'Passwords Match';
            $(input).removeClassName('errorNull');
            $$('input[id$="password"]')[0].removeClassName('errorNull');
        } else {
            $('msgPasswordMatch').innerHTML = 'Passwords Don\'t Match';
        }
    }
}

account.authenticateAccount = function () {
    //CheckoutBilling.aspx?guid=cUqdPl3A
    //alert($F("input[id$='hfNewUser']"));
    //cphContent1_hfNewUser
    //alert($F('cphContent1_hfNewUser'));
    if ($F('cphContent1_hfNewUser') == 'false') {
        if (DataValidation.validateRequest('loginContainer', 'vLoginForm', 'errorNull')) {
            $('modalContainer').show();
            $('modalMessage').innerHTML = 'Logging you in...';
            new Ajax.Request('authenticate.acct', {
                method: 'post',
                parameters: { cmd: 'AuthenticateAccount', userId: $F('cphContent1_userId'), password: $F('cphContent1_password'), successUrl: 'CheckoutBilling.aspx?guid=cUqdPl3A' },
                onSuccess: function (xhrResponse) {
                    var js = xhrResponse.responseText.evalJSON();
                    if (js.result == '1') {
                        //$('msgLoginMessage').innerHTML = js.successStatement;
                        setTimeout(js.successStatement, 200);
                        //document.location.href = 'CheckoutBilling.aspx?guid=cUqdPl3A';
                    } else {
                        $('modalContainer').hide();
                        $('msgLoginMessage').innerHTML = 'No Luck';
                    }

                },
                onFailure: function (xhrResponse) {
                    //alert('there was a problem');
                    $('modalMessage').innerHTML = xhrResponse.responseText;
                }
            });
        }
    } else {
        account.addNewSubAccount();
    }
}

account.addNewSubAccount = function() {
    if (DataValidation.validateRequest('loginContainer', 'vNewUserForm', 'errorNull')) {
        if ($$('input[id$="hfAccountExists"]')[0].value == 'false') {
            $('modalContainer').show();
            $('modalMessage').innerHTML = 'Creating Account...';
            new Ajax.Request('addaccount.acct', {
                method: 'post',
                parameters: { cmd: 'AddSubAccount', userId: $$('input[id$="userId"]')[0].value, password: $$('input[id$="password"]')[0].value,
                    firstName: $$('input[id$="firstName"]')[0].value, lastName: $$('input[id$="lastName"]')[0].value
                },
                onSuccess: function(xhrResponse) {
                    var js = xhrResponse.responseText.evalJSON();
                    //$('msgLoginMessage').innerHTML = js.SubAccountID;
                    setTimeout(function() {
                        account.addSubAccountToGroup(js.SubAccountID, '340');
                    }, 500);
                },
                onFailure: function(xhrResponse) {
                }
            });
        } else {
            account.accountExists($$('input[id$="userId"]')[0]);
        }
    } else {

    }
}

account.addSubAccountToGroup = function(saId, sagId) {
    $('modalContainer').show();
    $('modalMessage').innerHTML = 'Setting permissions...';
    new Ajax.Request('addtogroup.acct', {
        method: 'post',
        parameters: { cmd: 'AddSubAccountToGroup', subAccountId: saId, groupId: sagId },
        onSuccess: function(xhrResponse) {
            //$('msgLoginMessage').innerHTML += ' Group Add: ' + xhrResponse.responseText;
            $$('input[id$="hfNewUser"]')[0].value = 'false';
            setTimeout(function() {
                account.authenticateAccount();
            }, 500);
        },
        onFailure: function(xhrResponse) {
        }
    });
}


account.sendEmailMessage = function () {
    if (DataValidation.validateRequest('dContactUs', 'ContactForm', 'errorNull')) {
        var name, emailAddress, subject, message, phoneNumber, companyName;
        name = $$('input[id$="txtName"]')[0].value;
        emailAddress = $$('input[id$="txtEmailAddress"]')[0].value;
        subject = $$('select[id$="ddlSubject"]')[0].options[$$('select[id$="ddlSubject"]')[0].selectedIndex].value
        message = $$('textarea[id$="txtMessage"]')[0].value;
        phoneNumber = $$('input[id$="txtPhoneNumber"]')[0].value;
        companyName = $$('input[id$="txtCompanyName"]')[0].value;
        //$('pMessage').innerHTML = name + ' ' + emailAddress + ' ' + subject + ' ' + message;

        new Ajax.Request('util/SendMessage.aspx', {
            method: 'post',
            parameters: { Name: name, EmailAddress: emailAddress, Subject: subject, Message: message, phoneNumber: phoneNumber, companyName: companyName },
            onSuccess: function (xhrResponse) {
                $('pMessage').innerHTML = 'Thank you for your message.';
                $('pMessage').className = 'pMessageClass';
                //clearFormElements();
                DataValidation.clearForm('dContactUs', ['ContactForm', 'ContactFormEmail']);

            },
            onFailure: function (xhrResponse) {
                $('pMessage').innerHTML = xhrResponse.responseText;
            }
        });
    }
    else {
        $('pMessage').innerHTML = 'Please fill in the complete form';
    }
}

account.newsletterSignup = function () {
    if (DataValidation.validateRequest('signupForm', 'ContactForm', 'errorNull')) {
        var name, emailAddress, subject, message, phoneNumber, companyName, position;
        name = $$('input[id$="txtName"]')[0].value;
        emailAddress = $$('input[id$="txtEmailAddress"]')[0].value;
        //subject = $$('select[id$="ddlSubject"]')[0].options[$$('select[id$="ddlSubject"]')[0].selectedIndex].value
        //message = $$('textarea[id$="txtMessage"]')[0].value;
        //phoneNumber = $$('input[id$="txtPhoneNumber"]')[0].value;
        companyName = $$('input[id$="txtCompanyName"]')[0].value;
        position = $$('input[id$="txtPosition"]')[0].value;
        //$('pMessage').innerHTML = name + ' ' + emailAddress + ' ' + subject + ' ' + message;

                new Ajax.Request('util/newsletterSignup.aspx', {
                    method: 'post',
                    parameters: { Name: name, EmailAddress: emailAddress, position: $F('txtPosition'), companyName: companyName },
                    onSuccess: function (xhrResponse) {
                        $('pMessage').innerHTML = 'Thank you for your message.';
                        $('pMessage').className = 'pMessageClass';
                        //clearFormElements();
                        DataValidation.clearForm('signupForm', ['ContactForm', 'ContactFormEmail']);

                    },
                    onFailure: function (xhrResponse) {
                        $('pMessage').innerHTML = 'There was a problem with your request, please try again.';
                    }
                });
    }
    else {
        $('pMessage').innerHTML = 'Please fill in the complete form';
    }
}

account.generatePasswordResetLink = function () {
    new Ajax.Request('passwordReset.acct', {
        method: 'post',
        parameters: { cmd: 'GeneratePasswordResetLink', userId: $$('input[id$="pwResetUserId"]')[0].value },
        onSuccess: function (xhrResponse) {
        },
        onFailure: function (xhrResponse) {
        }
    });
}
