;
(function () {
window.console = window.console || { log: function () { } };
//需要引入配置字段文件,方便针对不同的字段
if (!window.registerConfig || !registerConfig.eloquaParams) {
alert("没有引入配置文件");
return false;
}
var $minisiteRegisterForm = $(".minisiteRegisterForm");
var lang = $.trim($("#gLanguageCurrent").val());
lang = lang == "zh" ? "cn" : lang;
if (~navigator.userAgent.indexOf("MSIE 8")) {
jQuery.support.cors = true;
}
/**
* 弹框
* @param $dialog
*/
function dialog($dialog) {
if ($dialog.length == 0) {
return
}
$(".minisiteDialog-mask").hide()
$(".J-minisiteExportCloseBtn").click();
$dialog.show();
$dialog.parents(".minisiteDialog-mask").show();
dialogCenter($dialog);
$dialog.on("click", ".J-minisiteDialog-close", function () {
dialogClose($dialog);
})
}
/**
* 关闭弹窗
*/
function dialogClose($dialog) {
if ($dialog.length == 0) {
return
}
$(".J-minisiteExportCloseBtn").click();
$dialog.parents(".minisiteDialog-mask").hide();
$dialog.off("click", ".J-minisiteDialog-close")
}
/**
* 窗口居中
*/
function dialogCenter($dialog) {
var height = $dialog.height();
var winH = $(window).height();
var setH = (winH - height < 0) ? 0 : (winH - height) / 2;
$dialog.css({ top: setH });
}
/**
* 弹窗resize
*/
function resizeDialog() {
dialogCenter($(".minisiteCreateIdForm"));
dialogCenter($(".minisiteLoginDialog"));
}
/**
* 弹窗功能
*/
function initDialog() {
if (window.registerConfig.resizeDialog) {
registerConfig.resizeDialog(resizeDialog);
}
}
/**
* 模板
* */
String.prototype.tpl = function () {
var arg = arguments;
var that = this;
for (var i = 0; i < arg.length; i++) {
that = that.replace(new RegExp('\\{' + i + '\\}', "g"), arg[i]);
}
return that;
};
/**
* 职位html模板
* */
function getOpitonTempl(ret) {
var retStr = "";
for (var i = 0; i < ret.length; i++) {
var obj = ret[i];
if (!obj.value) obj.value = obj.name;
retStr += '
{1}'.tpl(obj.value, obj.name, obj.value);
}
return retStr;
}
/**
* 职位信息
* */
function initJop() {
if ($(".J-minisite-jop.J-select").length == 0) return;
var urlPosition = location.protocol + "//" + location.host + ("/en/Service/CollectUser?languages=" + lang + "&type={1D6B1276-86A7-4AB5-B1B5-3169CD8D3423}");
$.ajax({
type: "POST",
url: urlPosition,
success: function (obj) {
try {
$(".J-minisite-jop.J-select").find(".J-select-option").html(getOpitonTempl(obj));
$(".J-minisite-jop.J-select").data("data", obj).trigger("data-ready").data("data-ready", true);
} catch (e) {
console.error(e);
}
},
error: function (e) {
console.error(e);
}
})
}
/**
* 行业html模板
* */
function getIndustryTempl(data) {
var industry = [];
for (var j = 0; j < data.length; j++) {
var ret = data[j].data;
var retStr = "";
for (var i = 0; i < ret.length; i++) {
var obj = ret[i];
retStr += ' {3}'.tpl(obj.name, obj.value, obj.value, obj.name, obj.ucode)
}
industry.push('{1}{2}
'.tpl(data[j].value, data[j].name, retStr))
}
return industry.join("");
}
/**
* multi-list模板
* */
function getIndustryTempl2(data) {
var industry = [];
var subindustry = [];
for (var j = 0; j < data.length; j++) {
var ret = data[j].data;
var retStr = "";
for (var i = 0; i < ret.length; i++) {
var obj = ret[i];
retStr += ' {3}'.tpl(obj.name, obj.value, obj.value, obj.name, obj.ucode);
}
subindustry.push('{0}
'.tpl(retStr));
industry.push(''.tpl(data[j].value, data[j].name));
}
return '{0}{1}'.tpl(industry.join(""), subindustry.join(""));
}
/**
* 获取行业
* */
function getIndustryInfo() {
var $select = $("input[name='Industry']").parents(".J-select");
if ($select.length == 0) return;
var $Industry = $select.find(".J-select-option");
$Industry.html("");
var url = location.protocol + "//" + location.host + "/en/Service/CollectUser?languages=" + lang + "&type={60B71899-9BD1-42C1-A414-110EA69C4CCD}";
$.ajax({
type: "POST",
url: url,
success: function (data) {
if (data && data.length > 0) {
//列表树形结构
if ($Industry.parents(".J-select-multi-list").length) {
$Industry.html(getIndustryTempl2(data));
} else {
$Industry.html(getIndustryTempl(data));
}
$select.data("data", data).trigger("data-ready").data("data-ready", true);
}
},
error: function (t) { }
})
}
/***
*
* @param 将serializeArr转换为map
* @returns {{}}
*/
function parseFormParam(serializeArr) {
var obj = {};
for (i = 0; i < serializeArr.length; i++) {
var name = serializeArr[i].name;
var value = serializeArr[i].value;
if (obj[name]) {
if ($.type(obj[name]) == "array") {
obj[name].push(value)
} else {
obj[name] = [obj[name]];
obj[name].push(value);
}
} else {
obj[name] = value;
}
}
return obj;
}
/***
*
* 从配置中取数据
*/
function parseParamsFromConfig(dir, src) {
parseKeyMap(window.registerConfig.eloquaParams, function (key, mapKey, handle) {
if (typeof handle == "function") {
dir[mapKey] = handle(src[key]);
} else {
dir[mapKey] = src[key];
}
});
}
/***
*
* 解析特定结构{key:keyMap} 或者是{key:{mapName:keyMap,handle:function}}到callback里面
*/
function parseKeyMap(data, callBack) {
for (var key in data) {
if (data[key]) {
//带处理函数的配置数据
if (typeof data[key] == "object") {
if (typeof data[key].handle == "function" && data[key].mapName != null) {
callBack(key, data[key].mapName, data[key].handle);
} else {
alert(key + "in config data can not parse!");
}
} else {
callBack(key, data[key]);
}
} else {
alert(key + "in not find in config!");
}
}
}
/**
* 取URL上的参数
* */
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var str = window.location.search.substr(1).match(reg);
if (str != null) return unescape(str[2]);
return null;
}
/***
*
* 通过url设置表单数据
*/
function parseParamsFromUrl(eloquaParams, obj) {
if (window.registerConfig.urlParams) {
parseKeyMap(window.registerConfig.urlParams, function (key, mapKey, handle) {
var value;
if (key) {
value = GetQueryString(key)
}
if (typeof handle == "function") {
value = handle(value);
}
//如果url有值优先取url上的值;如果没有值就取form里面的值;这里要求url匹配的值和form值保持一致
if (value) {
eloquaParams[mapKey] = value;
} else {
eloquaParams[mapKey] = obj[mapKey];
}
});
}
}
/***
*
* eloqua将json转化为input
*/
function submitByForm(eloquaParams, action) {
if (!$("#submitMiddlewareForm").length) {
$("body").append("")
}
$("#submitMiddlewareForm").html("");
for (var key in eloquaParams) {
insertInput(key, eloquaParams[key])
}
if (!eloquaParams.GOTOURL && registerConfig.postEloquaSuccessUrl) {
var gotoUrl = registerConfig.postEloquaSuccessUrl;
setCookie("GOTOURLTIME", new Date().getTime());
if ($("#submitMiddlewareForm").find("input[name='GOTOURL']").length) {
$("#submitMiddlewareForm").find("input[name='GOTOURL']").val(gotoUrl)
} else {
insertInput("GOTOURL", gotoUrl)
}
}
$("#submitMiddlewareForm")[0].submit()
}
function insertInput(key, value, level) {
level = level || { count: 0 }
var i;
if ($.type(value) == "array" && level.count < 3) {
for (var i = 0; i < value.length; i++) {
level.count++;
insertInput(key, value[i], level);
level.count--;
}
} else if ($.type(value) == "object" && level.count < 3) {
for (var i in value) {
level.count++;
insertInput(key + "." + i, value[i], level)
level.count--;
}
} else {
$("#submitMiddlewareForm").append("")
}
}
/***
*
* eloqua提交表单
*/
function postEloqua($btn, $form, noDilaog) {
if (typeof registerConfig.beforePostEloqua == "function") {
registerConfig.beforePostEloqua($btn, $form, noDilaog)
}
var action = $.trim($form.attr("action"));
var obj = parseFormParam($form.serializeArray());
var eloquaParams = {};
parseParamsFromConfig(eloquaParams, obj);
parseParamsFromUrl(eloquaParams, obj);
//支持可以修改或新增参数
if (typeof registerConfig.afterParseParams == "function") {
registerConfig.afterParseParams(eloquaParams);
}
//测试地址
// var action = "//gate-beta.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submit/138" //form
// var action = "//gate-beta.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submitByForm/138" //ajax
//上线地址
if (registerConfig.postEloquaByFormMethod) {
action = action || "//gate.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submit/19";
//为这utag提交数据,延迟1秒
setTimeout(function () {
submitByForm(eloquaParams, action);
$btn.html("" + ($btn.data("org-text") || "") + "");
}, 1000);
} else {
action = action || "//gate.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submitByForm/19";
jQuery.support.cors = true;
$.ajax({
url: action,
data: $.param(eloquaParams, true),
type: "post",
cache: false,
success: function (ret) {
$btn.html("" + ($btn.data("org-text") || "") + "")
//成功
if (typeof ret == "object" && ret.code == 200) {
if (typeof registerConfig.postEloquaSuccess == "function" && registerConfig.postEloquaSuccess(ret, eloquaParams, dialog) === false) {
return;
}
if (!noDilaog) {
dialog($(".eloqueRegisterOkDialog"));
}
//3s跳
if (eloquaParams.GOTOURL) {
setTimeout(function () {
window.location.href = eloquaParams.GOTOURL;
}, 1000)
}
//失败
} else {
$btn.html("" + ($btn.data("org-text") || "") + "")
if (typeof registerConfig.postEloquaFail == "function" && registerConfig.postEloquaFail(ret, eloquaParams, dialog) === false) {
return;
}
dialog($(".eloqueRegisterFailDialog"));
}
},
error: function (e) {
$btn.html("" + ($btn.data("org-text") || "") + "")
if (typeof registerConfig.postEloquaFail == "function" && registerConfig.postEloquaFail(e, eloquaParams, dialog) === false) {
return;
}
dialog($(".eloqueRegisterFailDialog"));
}
})
}
}
/**
* Eloqua注册校验表单
* */
function miniEloquaRegister() {
var $form = $minisiteRegisterForm;
$form.validForm({
successList: function ($target, $form) {
if (typeof registerConfig.validSuccess == "function") registerConfig.validSuccess($target, $form);
//console.log("successList : " + $target.attr("name"));
},
success: function ($btn, $form) {
//提交
function submitByBtn() {
if ($btn.html().indexOf("...") != -1) {
return;
}
if (!$btn.data("org-text")) {
$btn.data("org-text", $btn.text());
}
$btn.html("" + $btn.data("org-text") + "...")
postEloqua($btn, $form);
}
if ($btn) {
if ($form.hasClass("J-checkCapta")) {
$("#checkCaptaDialogContent").parents(".ebg-module-dialog-mask").show()
baseUtils.checkCapta($("#checkCaptaDialogContent"), function (token) {
if (typeof registerConfig.capthcaPass == "function") registerConfig.capthcaPass(token);
submitByBtn();
})
} else {
submitByBtn();
}
}
},
blur: function ($input) {
//这个不需要默认的校验
if ($input.attr("name") == "validateNumber") {
return false;
}
},
errorAfter: function () {
$(".media-content-left").trigger("equireHeight");
var $err = $form.find(".validError");
var wt = $(window).scrollTop();
if ($err.offset()) {
if ($err.offset().top < wt) {
if ($(".zl-pc-header").css("position") == "fixed") {
$("body,html").stop().animate({ "scrollTop": $err.offset().top - $(".zl-pc-header").height() });
} else {
$("body,html").stop().animate({ "scrollTop": $err.offset().top });
}
}
}
}
})
$form.trigger("init-validform");
return { $eloquaForm: $form, checkFunc: $form.data("valid-form") };
}
//checkbox和输入同步
function initcheckboxInput() {
$minisiteRegisterForm.on("change", ".J-checkBox-input .checkboxInput", function () {
$(this).parents(".J-checkBox-input").find(".checkbox").val($(this).val())
})
}
// 点击查看大图
;
(function () {
if ($(".media-content-left").length == 0) {
return;
}
var winH = $(window).height();
var winW = $(window).width();
if ($('.img-item').length) {
var display = $('.icon-close').css('display');
$('.img-item').each(function () {
$(this).on('click', function () {
console.log($(this).find('img').data('viewimg'));
var oImg = $(this).find('img').data('viewimg');
$('.view-box').fadeIn(400);
$('.view-box img').attr('src', oImg);
var imgH = $('.view-box img').height();
if (imgH > winH) {
$('.view-box img').css('bottom', 'auto')
$('body').css({ 'overflow': 'hidden' })
$('.view-box').css({ 'overflow-y': 'scroll' })
}
})
})
if (display != 'none') {
$('.icon-close').on('click', function () {
$(this).parent('.view-box').fadeOut(400);
var _this = $(this);
setTimeout(function () {
_this.parent('.view-box').find('img').attr('src', '')
$('body').css({ 'overflow': 'auto' })
}, 400)
$('.view-box img').css('bottom', '0')
$('.view-box').css({ 'overflow-y': 'auto' })
})
}
}
if (winW <= 1200) {
$(".media-content-left").on("limitHeight", function () {
if ($(this).data("limitHeight")) {
$(this).data("limitHeight", false);
$(".media-content-left").css("max-height", "100%");
} else {
$(this).data("limitHeight", true);
var maxHeight = $(".media-content-left").data("wap-maxheight") * 1 || 320;
var nowHeight = $(".media-content-left section").height()
if (nowHeight > maxHeight) {
$(".media-content-left").css("max-height", maxHeight + "px");
$(".media-content-left .view-all").show();
}
}
})
$(".view-all").on("click", function () {
$(".media-content-left").trigger("limitHeight");
$(this).hide();
});
$(".media-content-left").trigger("limitHeight");
} else {
// $(".media-content-left").on("equireHeight", function() {
// if (winW > 1200) {
// $(".media-content-left").css("height","auto")
// $(".media-content-right").css("height","auto")
// var lHeight = $(".media-content-left").height()
// var rHeight = $(".media-content-right").height()
// var setHeight = Math.max(lHeight, rHeight);
// $(".media-content-left").height(setHeight)
// $(".media-content-right").height(setHeight)
// }
// })
$(".media-content-left").trigger("equireHeight");
}
})()
/*获取行业*/
getIndustryInfo();
/*职位信息*/
initJop();
/*checkboxValue*/
initcheckboxInput();
/**
* Eloqua注册校验表单
* */
miniEloquaRegister()
})();