﻿//var UrlBase = "/Services/ProfileDataService.svc/";
var UrlBase = "/Services/ProfileWebService.asmx/";
var EmailValidateUrl = UrlBase + "EmailValidate";
var CreateAccountUrl = UrlBase + "CreateAccount";
var CodeValidateUrl = UrlBase + "CodeValidate";
var CreateLoginUrl = UrlBase + "CreateLogin";
var SendPwdEmailUrl = UrlBase + "SendPwdEmail";
var UsernameValidateUrl = UrlBase + "UsernameValidate";

function ClosePopup() {
    if (confirm("Are you sure to cancel?")) {
        $(".popupHolder").fadeOut();
        $("#PopUpBackground").fadeOut();
        $(".OpenSwitch").val("No");
    }
}

//MemberRegister
function SwitchView(view) {
    $(".retrievePasswordHolder").hide();
    $(".registerHolder").hide();
    $(".validationHolder").hide();
    $(".validationMessage").empty();
    switch (view) {
        case "RetrievePassword":
            $(".retrievePasswordHolder").removeClass("hidden");
            $(".retrievePasswordHolder").show();
            break;
        case "Register":
            $(".registerHolder").removeClass("hidden");
            $(".registerHolder").show();
            break;
        case "Validation":
            $(".validationHolder").removeClass("hidden");
            $(".validationHolder").show();
            break;
        default:
            break;
    }
}

function CreateLoginFormSubmit(accountIdHolder, loginNameHolder, pwdHolder, pwdRptHolder, msgHolder) {
    var accountId = $("#" + accountIdHolder).val();
    var loginName = $("#" + loginNameHolder).val();
    var pwd = $("#" + pwdHolder).val();
    var pwdRpt = $("#" + pwdRptHolder).val();
    var flag = false;
    var now = new Date();
    var items = [];
    $.get(CreateLoginUrl, { accountId: accountId, loginname: loginName, password: pwd, repeatpassword: pwdRpt, now: now.getTime() }, function (data) {
        $(data).find("string").each(function () {
            items.push($(this).text());
        });
        if (items[0] == "Yes") {
            flag = true;
        }
        else {
            $("#" + msgHolder).empty();
            $("#" + msgHolder).append(items[1]);
            $("#" + msgHolder).removeClass("success");
            $("#" + msgHolder).addClass("error");
            flag = false;
        }
    });

    return flag;
}



function SendPwdEmail(emailHolder) {
    var email = $("#" + emailHolder).val();
    var now = new Date();
    var items = [];
    $.get(SendPwdEmailUrl, { email: email, now: now.getTime() }, function (data) {
        $(data).find("string").each(function () {
            items.push($(this).text());
        });
        if (items[0] == "Yes") {
            $(".validationMessage").empty();
            $(".validationMessage").append(items[1]);
            $(".validationMessage").removeClass("error");
            $(".validationMessage").addClass("success");
        }
        else {
            $(".validationMessage").empty();
            $(".validationMessage").append(items[1]);
            $(".validationMessage").removeClass("success");
            $(".validationMessage").addClass("error");
        }
    });
}

$(function () {

    $.ajaxSetup({
        async: false
    });

    $("#PopUpBackground").width($(document).width() + 10);
    $("#PopUpBackground").height($(document).height() + 10);
    $("#PopUpBackground").removeClass("hidden");
    $("#PopUpBackground").hide();
    $(".PopUpContentHolder").removeClass("hidden");
    $(".PopUpContentHolder").hide();
    $("body").append("<div id='NoticeBackground'></div>");
    $("#NoticeBackground").width($(document).width() + 10);
    $("#NoticeBackground").height($(document).height() + 10);
    $("#NoticeBackground").hide();

    $(".NoticeHolder").removeClass("hidden");
    $(".NoticeHolder").each(function () {
        $("#NoticeBackground").fadeIn();
        var noticeOffsetTop = ($(window).height() - $(this).height()) / 2;
        var noticeOffsetLeft = ($(window).width() - $(this).width()) / 2;
        $(this).offset({ top: noticeOffsetTop, left: noticeOffsetLeft });
        $(this).offset({ top: noticeOffsetTop, left: noticeOffsetLeft }); //a must have for chrome bug fix
    });

    //    $(".BodyLeftBlock").each(function () {
    //        var html = jQuery.trim($(this).html());
    //        if (html == "") {
    //            $(this).hide();
    //        }
    //    });

    $(".NoticeCloser").click(function () {
        $("#NoticeBackground").fadeOut();
        $(".NoticeHolder").fadeOut();
    });
    $("#NoticeBackground").click(function () {
        $("#NoticeBackground").fadeOut();
        $(".NoticeHolder").fadeOut();
    });

    $(".PopUpCloser").click(function () {
        ClosePopup();
    });
    $("#PopUpBackground").click(function () {
        ClosePopup();
    });
    $(".PopUpOpener").click(function () {
        $("#PopUpBackground").fadeIn();
        $(".PopUpContentHolder").hide();
        $(this).parent().find(".PopUpContentHolder").show();
        var windowOffsetTop = $(window).scrollTop();
        var curOffsetTop = $(window).scrollTop() + ($(window).height() - $(this).parent().find(".PopUpContentHolder").height()) / 3;
        var curOffsetLeft = ($(window).width() - $(this).parent().find(".PopUpContentHolder").width()) / 2;
        $(this).parent().find(".PopUpContentHolder").offset({ top: curOffsetTop, left: curOffsetLeft });
        $(this).parent().find(".PopUpContentHolder").offset({ top: curOffsetTop, left: curOffsetLeft }); //a must have for chrome bug fix
    });

    $("#BodyFunctionControlSmallA").click(function () {
        $("#BodyContentHolder").css("font-size", "11px");
    });
    $("#BodyFunctionControlBigA").click(function () {
        $("#BodyContentHolder").css("font-size", "14px");
    });

    //MemberRegister
    $(".buttonRegister").click(function () {
        $("#PopUpBackground").fadeIn();
        $(this).parents(".contextHolder").find(".popupHolder").removeClass("hidden");
        $(this).parents(".contextHolder").find(".popupHolder").show();
        var windowOffsetTop = $(window).scrollTop();
        var curOffsetTop = $(window).scrollTop() + ($(window).height() - $(this).parents(".contextHolder").find(".popupHolder").height()) / 3;
        var curOffsetLeft = ($(window).width() - $(this).parents(".contextHolder").find(".popupHolder").width()) / 2;
        $(this).parents(".contextHolder").find(".popupHolder").offset({ top: curOffsetTop, left: curOffsetLeft });
        $(this).parents(".contextHolder").find(".popupHolder").offset({ top: curOffsetTop, left: curOffsetLeft }); //a must have for chrome bug fix
        SwitchView("Register");
    });

    $(".linkForgetpassword").click(function () {
        $("#PopUpBackground").fadeIn();
        $(this).parents(".contextHolder").find(".popupHolder").removeClass("hidden");
        $(this).parents(".contextHolder").find(".popupHolder").show();
        var windowOffsetTop = $(window).scrollTop();
        var curOffsetTop = $(window).scrollTop() + ($(window).height() - $(this).parents(".contextHolder").find(".popupHolder").height()) / 3;
        var curOffsetLeft = ($(window).width() - $(this).parents(".contextHolder").find(".popupHolder").width()) / 2;
        $(this).parents(".contextHolder").find(".popupHolder").offset({ top: curOffsetTop, left: curOffsetLeft });
        $(this).parents(".contextHolder").find(".popupHolder").offset({ top: curOffsetTop, left: curOffsetLeft }); //a must have for chrome bug fix
        SwitchView("RetrievePassword");
    });

    $(".buttonRegisterEmailValidate").click(function () {
        var email = $(this).parents(".popupHolder").find(".registerEmail").val();
        var registerForm = $(this).parents(".popupHolder").find(".registerForm");
        var validationMessage = $(this).parents(".popupHolder").find(".validationMessage");
        var buttonRetrievePassword = $(this).parents(".popupHolder").find(".buttonRetrievePassword");
        var now = new Date();
        var items = [];
        $.get(EmailValidateUrl, { email: email, now: now.getTime() }, function (data) {
            $(data).find("string").each(function () {
                items.push($(this).text());
            });
            if (items[0] == "Yes") {
                $(registerForm).removeClass("hidden");
                $(validationMessage).empty();
                $(validationMessage).append(items[1]);
                $(validationMessage).removeClass("error");
                $(validationMessage).addClass("success");
            }
            else {
                buttonRetrievePassword.removeClass("hidden");
                $(validationMessage).empty();
                $(validationMessage).append(items[1]);
                $(validationMessage).removeClass("success");
                $(validationMessage).addClass("error");
            }
        });
    });

    $(".buttonRegisterFormSubmit").click(function () {
        var accountTypeList = $(this).parents(".popupHolder").find(".registerAccountType");
        var accountType = $(accountTypeList).find("input[type=radio]:checked").val();
        var firstname = $(this).parents(".popupHolder").find(".registerFirstname").val();
        var lastname = $(this).parents(".popupHolder").find(".registerLastname").val();
        var email = $(this).parents(".popupHolder").find(".registerEmail").val();
        var phone = $(this).parents(".popupHolder").find(".registerPhone").val();
        var company = $(this).parents(".popupHolder").find(".registerCompany").val();
        var registerFormMessage = $(this).parents(".popupHolder").find(".registerFormMessage");
        var registerNewAccountId = $(this).parents(".popupHolder").find(".registerNewAccountId");
        var now = new Date();
        var items = [];
        $.get(CreateAccountUrl, { accountType: accountType, firstname: firstname, lastname: lastname, email: email, phone: phone, company: company, now: now.getTime() }, function (data) {
            $(data).find("string").each(function () {
                items.push($(this).text());
            });
            if (items[0] == "Yes") {
                SwitchView("Validation");
                $(registerNewAccountId).val(items[1]);
            }
            else {
                $(registerFormMessage).empty();
                $(registerFormMessage).append(items[1]);
                $(registerFormMessage).removeClass("success");
                $(registerFormMessage).addClass("error");
            }
        });
    });

    $(".buttonCodeValidation").click(function () {
        var accountId = $(this).parents(".popupHolder").find(".registerNewAccountId").val();
        var validationCode = $(this).parents(".popupHolder").find(".validationCode").val();
        var createLoginForm = $(this).parents(".popupHolder").find(".createLoginForm");
        var codeValidationMessage = $(this).parents(".popupHolder").find(".codeValidationMessage");
        var now = new Date();
        var items = [];
        $.get(CodeValidateUrl, { accountId: accountId, validationCode: validationCode, now: now.getTime() }, function (data) {
            if (items[0] == "Yes") {
                $(createLoginForm).removeClass("hidden");
                $(codeValidationMessage).empty();
                $(codeValidationMessage).append(items[1]);
                $(codeValidationMessage).removeClass("error");
                $(codeValidationMessage).addClass("success");
            }
            else {
                $(codeValidationMessage).empty();
                $(codeValidationMessage).append(items[1]);
                $(codeValidationMessage).removeClass("success");
                $(codeValidationMessage).addClass("error");
            }
        });
    });
});
