﻿// --- Methodo Ajax para post das páginas
function ajaxCall(pg, fn, paramArray, successFn, errorFn, beforeSendFn) {
    //pg = pagina que contem o metodo
    //fn = função da pagina à ser executada
    //paramArray = parametros da chamada ( ex. stringTeste:valor )
    //successFn  = funcao de retorno da chamada caso OK
    //errorFn    = funcao de retorno da chamada caso erro

    // Cria a lista de paramentros
    var paramList = '';
    if (paramArray) {
        if (paramArray.length > 0) {
            for (var i = 0; i < paramArray.length; i += 2) {
                if (paramList.length > 0)
                    paramList += ',';
                paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
            }
        }
        paramList = '{' + paramList + '}';
    }
    //CallBack no metodo Ajax-JQuery
    $.ajax({
        type: "POST",
        url: pg + "/" + fn,
        contentType: "application/json; charset=utf-8",
        data: paramList,
        dataType: "json",
        success: successFn,
        beforeSend: beforeSendFn,
        error: errorFn
    });
};

//Salva as informações de campanha / utm's / referral
function SaveUserInfo() {
    var params = ["referral", document.referrer,
        "utm_source", QueryString("utm_source"),
        "utm_campaign", QueryString("utm_campaign")]

    ajaxCall("cadastro-email.aspx", "SaveUserInfo",
                     params,
                     callBack_SaveUserInfo,
                     null,
                     null
             );
};

function callBack_SaveUserInfo(res) {
};


function QueryString(variavel) {
    var variaveis = location.search.replace(/\x3F/, "").replace(/\x2B/g, " ").split("&")
    var nvar
    if (variaveis != "") {
        var qs = []
        for (var i = 0; i < variaveis.length; i++) {
            nvar = variaveis[i].split("=")
            qs[nvar[0]] = unescape(nvar[1])
        }
        return qs[variavel]
    }
    return null
};

function Logout() {
    var params = ["referral", ""];
    ajaxCall("login.aspx", "Logout", params,
                        logoutRedirect,
                        callBack_SaveUserInfo,
                        callBack_SaveUserInfo
                        );
};

function logoutRedirect() {
    window.location = '/';
};

function isEmail(id) {
    var strEmail = document.getElementById(id).value;

    // Caracteres Excluidos
    var regEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
    var regEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
    var regEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;

    if (strEmail.substring(0,1) == '-') {
        alert('"' + strEmail + '"' + ' não é um endereço de e-mail válido.');
        return false;
    }

    if (regEmail1.test(strEmail) && regEmail2.test(strEmail) && regEmail3.test(strEmail)) {
        return true;
    } else if (strEmail != null && strEmail != '') {
        alert('"' + strEmail + '"' + ' não é um endereço de e-mail válido.');
    } else {
        alert('Digite seu e-mail.');
        document.getElementById(id).focus();
    }

    return false;
};

function deslogar() {
    Logout();
};
