$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(jQuery.trim(this.value) || '');
} else {
o[this.name] = jQuery.trim(this.value) || '';
}
});
return o;
};
String.prototype.replaceAll = function(str1, str2) {
var str = this;
var result = str.replace(eval("/" + str1 + "/gi"), str2);
return result;
};
/**
* 判断是否为正整数,零,小数
*
* @author
* @param {}
* number
* @return {Boolean}
*/
function checkNumber(number) {
if (!number) {
return false;
}
if (/^[0-9]+\.{0,1}[0-9]{0,2}$/.test(number)) {
return true;
} else {
return false;
}
}
/**
* 验证qq号
*
* @param {}
* qq
* @return {Boolean}
*/
function checkQQ(qq) {
if (!qq) {
return true;
}
if (/^[1-9]\d{4,15}$/.test(qq)) {
return true;
} else {
return false;
}
}
/**
* 判断是否为11位手机号码
*
* @param {}
* moblie
* @return {Boolean}
*/
function checkMobile(moblie) {
if (!moblie) {
return false;
}
if (/^(13|15|18|14|17|19|16)[0-9]{9}$/.test(moblie)) {
return true;
} else {
return false;
}
}
/**
* 判断是否为Email地址
*
* @param {}
* email
* @return {Boolean}
*/
function checkEmail(email) {
if (!email) {
return true;
}
if (email.indexOf("@") < 0) {
return false;
}
return true;
}
/**
* 判断是否倍数
*
* @param {}
* num
* @param {}
* baseNum
*/
function checkMultiples(num, baseNum) {
if (!num && !baseNum) {
return true;
}
num = Number(num);
if (isNaN(num)) {
return false;
}
baseNum = Number(baseNum);
if (isNaN(baseNum)) {
return false;
}
var res = parseInt(num * 1000) % parseInt(baseNum * 1000);
if (res == 0) {
return true;
} else {
return false;
}
}
/**
* 获取字符串的长度,一个汉字为两个字符
*
* @param {}
* str
* @return {}
*/
function getStrLength(str) {
var re = /^[a-zA-Z0-9\u4E00-\u9FA5_]*$/;
var len = str.length;
var num = 0;
for (i = 0; i <= len; i++) {
var v = escape(str.charAt(i));
if (v.indexOf('%') == 0) {
num = num + 2;
}
}
var a = len - num / 2;
var b = num + a;
return b;
}
/**
* 封装Ajax
*
* @param {}
* ajaxArgs
*/
function doAjax(ajaxArgs) {
if ($.isFunction(ajaxArgs.error)) {
var oldErrFn = ajaxArgs.error;
}
var ajaxData = new Object();
if (ajaxArgs.data) {
ajaxData = ajaxArgs.data;
if (typeof (ajaxArgs.data) == "string") {
if (jQuery.trim(ajaxArgs.data) != "") {
ajaxData = ajaxData + "&checkLogin=true";
} else {
ajaxData = "checkLogin=true";
}
} else {
ajaxData.checkLogin = "true";
}
} else {
ajaxData.checkLogin = "true";
}
ajaxArgs.data = ajaxData;
ajaxArgs.type = 'post';
ajaxArgs.error = function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 403) {
// beginloginrove();//openLoginDialog();
} else if (oldErrFn) {
oldErrFn(XMLHttpRequest, textStatus, errorThrown);
}
}
$.ajax(ajaxArgs);
}
/**
* 将文本框值步进相加
*
* @param {}
* domId
* @param {}
* step
* @param {}
* max
*/
function stepPlus(domId, step, max) {
if (typeof (domId) == "undefined") {
return;
}
step = Number(step);
if (isNaN(step)) {
step = 1;
}
var cuNum = Number(jQuery.trim($("#" + domId).val()));
var num = step;
if (!isNaN(cuNum)) {
num = cuNum.valueOf() + step.valueOf();
}
if (!isNaN(Number(max)) && num > max) {
num = max;
}
num = commonShrink(Number(num).toFixed(2));
$("#" + domId).val(num);
}
/**
* 将文本框值步进相减
*
* @param {}
* domId
* @param {}
* step
* @param {}
* min
*/
function stepMinus(domId, step, min) {
if (typeof (domId) == "undefined") {
return;
}
step = Number(step);
if (isNaN(step)) {
step = 1;
}
var cuNum = Number(jQuery.trim($("#" + domId).val()));
var num = step;
if (!isNaN(cuNum)) {
num = cuNum.valueOf() - step.valueOf();
}
var minNum = 1;
if (!isNaN(Number(min))) {
minNum = min;
}
if (num < minNum) {
num = minNum;
}
num = commonShrink(Number(num).toFixed(2));
$("#" + domId).val(num);
}
/**
* 用ajax的方式将请求后的页面填充到指定DIV,如果DIV下有节点,则不填充
*
* @param {}
* id
* @param {}
* url
* @param {}
* data
*/
function getDivContent(id, url, data) {
if (typeof (data) == "undefined") {
data = new Object();
}
if ($("#" + id + ":has(*)").length == 0) {
$.ajax({
url : url,
type : 'post',
data : data,
success : function(data) {
$("#" + id).html(data);
}
});
}
}
/**
* 用Ajax的方式将请求后的页面填充到指定DIV
*
* @param {}
* id
* @param {}
* url
* @param {}
* data
*/
function refreshDivContent(id, url, data) {
if (typeof (data) == "undefined") {
data = new Object();
}
$.ajax({
url : url,
type : 'post',
data : data,
success : function(data) {
$("#" + id).empty().html(data);
}
});
}
/**
* 保留2位小数
*/
function toDecimal(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return;
}
f = Math.round(x * 100) / 100;
return f;
}
/**
* 公共警告框
*
* @param {}
* content
* @param {}
* title
* @param {}
* fn:回调函数,会回传一个参数:action action为两个值:ok,close,分别对应 确定,关闭两个按钮
* 如需阻止窗口关闭,请在判断 action 值内加入 return false
*/
function showAlert(content, title, fn) {
if (!content) {
content = "";
}
if (!title) {
title = "信息提示";
}
if (!jQuery.isFunction(fn)) {
fn = function(action, val) {
};
}
showGgtc(content, title, fn, "alert");
// asyncbox.alert(content, title, fn);
// $("#asyncbox_alert").bgiframe();
}
/**
* 公共输入确认框
*
* @param {}
* title:标题
* @param {}
* tips:输入框上的小提示
* @param {}
* content:默认内容
* @param {}
* textType:输入框类型,支持 text || textarea || password
* @param {}
* fn:回调函数,会回传两个参数:action,val action为三个值:ok,cancel,close,分别对应
* 确定,取消,关闭三个按钮 val为输入的值 如需阻止窗口关闭,请在判断 action 值内加入 return false
*/
function showPromte(title, tips, content, textType, fn) {
if (!title) {
title = "提示";
}
if (!tips) {
tips = "请输入";
}
if (!content) {
content = "";
}
if (!textType) {
textType = "text";
}
if (!jQuery.isFunction(fn)) {
fn = function(action, val) {
}
}
asyncbox.prompt(title, tips, content, textType, fn);
}
/**
* 公共确认框
*
* @param {}
* content:默认内容
* @param {}
* title:标题
* @param {}
* fn:回调函数,会回传一个参数:action action为三个值:ok,cancel,close,分别对应
* 确定,取消,关闭三个按钮 如需阻止窗口关闭,请在判断 action 值内加入 return false
*/
function showConfirm(content, title, fn) {
if (!content) {
content = "";
}
if (!title) {
title = "请确认";
}
if (!jQuery.isFunction(fn)) {
fn = function(action, val) {
}
}
showGgtc(content, title, fn, "confirm");
// asyncbox.confirm(content, title, fn);
}
/**
* 公共显示成功对话框
*
* @param {}
* content
* @param {}
* title
* @param {}
* fn:回调函数,会回传一个参数:action action为两个值:ok,close,分别对应 确定,关闭两个按钮
* 如需阻止窗口关闭,请在判断 action 值内加入 return false
*/
function showSuccess(content, title, fn) {
if (!content) {
content = "";
}
if (!title) {
title = "成功";
}
if (!jQuery.isFunction(fn)) {
fn = function(action) {
}
}
showGgtc(content, title, fn, "success");
// asyncbox.success(content, title, fn);
}
/**
* 公共显示失败对话框
*
* @param {}
* content
* @param {}
* title
* @param {}
* fn:回调函数,会回传一个参数:action action为两个值:ok,close,分别对应 确定,关闭两个按钮
* 如需阻止窗口关闭,请在判断 action 值内加入 return false
*/
function showError(content, title, fn) {
if (!content) {
content = "";
}
if (!title) {
title = "失败";
}
if (!jQuery.isFunction(fn)) {
fn = function(action, val) {
}
}
showGgtc(content, title, fn, "error");
// asyncbox.error(content, title, fn);
}
/**
* 公共显示提醒对话框
*
* @param {}
* content
* @param {}
* title
* @param {}
* fn:回调函数,会回传一个参数:action action为四个值:yes,no,cancel,close,分别对应
* 是,否,关闭,关闭四个按钮 如需阻止窗口关闭,请在判断 action 值内加入 return false
*/
function showWarning(content, title, fn) {
if (!content) {
content = "";
}
if (!title) {
title = "提醒";
}
if (!jQuery.isFunction(fn)) {
fn = function(action, val) {
}
}
showGgtc(content, title, fn, "warning");
// asyncbox.warning(content, title, fn);
}
/**
* 公共显示标签框
*
* @param {}
* content
* @param {}
* type 提示类型。alert、success、error 默认 alert
* @param {}
* timer 自动关闭毫秒数。默认 1.5 秒。
*/
function showTips(content, type, timer) {
if (!content) {
content = "";
}
if (!type) {
type = "alert";
}
if (typeof (timer) != "number") {
timer = 1.5;
}
asyncbox.tips(content, type, timer);
}
/**
* 关闭公共弹窗
*/
function ggtcColse() {
$(".glotc-bg1").hide();
$(".glotc-main1").hide();
}
/**
* 公共弹窗
*/
function showGgtc(content, title, fn, type) {
// 循环所有按钮
$("[name='ggtcBtn']").each(function() {
$(this).css('display', 'none');
if ($(this).attr('action') == "ok") {
if (type == "confirm" || type == "warning") {
$(this).css('display', '');
}
} else if ($(this).attr('action') == "no") {
if (type == "confirm") {
$(this).css('display', '');
}
} else if ($(this).attr('action') == "close") {
if (type == "success" || type == "error" || type == "alert") {
$(this).css('display', '');
}
}
});
$("#glotcTitle").html(title);
$("#glotcValue").html(content);
$("[name='ggtcBtn']").click(okCallBack);
function okCallBack() {
var action = $(this).attr("action");
fn(action, this);
ggtcColse();
}
$(".glotc-bg1").show();
$(".glotc-main1").show();
}
/**
* 图片出错处理 例:onError="dealwithErrImg(event)"
*
* @param {}
* event dfPic:想设定的图片路径 需限定图片大小,以免影响页面布局
*/
function dealwithErrImg(e, dfPic) {
var img = e.srcElement || e.target;
if (dfPic) {
img.src = dfPic;
} else {
img.src = "https://img01.j1.com/images/default/product_default_list.jpg";
}
img.onError = null;
}
/**
* 给回车键绑定事件
*
* @param {}
* e
* @param {}
* fn
*/
function bindEnter(e, fn) {
if (!jQuery.isFunction(fn)) {
return;
}
var keynum;
if (window.event) {// IE
keynum = e.keyCode;
} else if (e.which) {// Netscape/Firefox/Opera
keynum = e.which;
}
if (keynum == 13) {
fn();
}
}
/**
* 去除数值尾部0
*
* @param {}
* value
* @return {}
*/
function commonShrink(value) {
var n = parseFloat(value).toFixed(1);
var nn = parseFloat(value).toFixed(2);
var f = nn - n;
if (f == 0) {
var m = parseFloat(n).toFixed(0);
var t = m - n;
if (t == 0) {
return Number(m);
} else {
return Number(n);
}
} else {
return Number(nn);
}
}
/**
* 获取当前时间
*
* @returns
*/
function getCurrentTime() {
var myDate = new Date();
var mytime = myDate.getTime();
return mytime;
}
/**
* 图片出错处理用于促销抢鲜页 例:onError="dealwithErrImgForPromotion(event)"
*
* @param {}
* event dfPic:想设定的图片路径 需限定图片大小,以免影响页面布局
*/
function dealwithErrImgForPromotion(e, dfPic, nihao) {
var img = e.srcElement || e.target;
if (dfPic) {
img.src = dfPic;
} else {
img.src = "https://img.j1.com/images/default/promotion_loadero_default.jpg";
}
img.onError = null;
}
/**
* 图片出错处理用于处理促销抢先 例:onError="dealwithErrImgForPromotion(event)"
*
* @param {}
* event dfPic:想设定的图片路径 需限定图片大小,以免影响页面布局
*/
function dealwithErrImgForPromotion(e, dfPic) {
var img = e.srcElement || e.target;
if (dfPic) {
img.src = dfPic;
} else {
img.src = "https://img.j1.com/images/default/promotion_loadero_default.jpg";
}
img.onError = null;
}
/**
* 控制只能输数字
*/
function keyPress() {
var keyCode = event.keyCode;
if ((keyCode >= 48 && keyCode <= 57)) {
event.returnValue = true;
} else {
event.returnValue = false;
}
}
function openNewUrl(url) {
window.open(url);
}
// >>>>>>>>>>>>>>>>>第三方登入的js 开始 <<<<<<<<<<<<<<<<
// show_sso_login_window.js
/**
* 打开健康卡窗口 http://localhost:8080/ec-web/ https://www.j1.com
*/
function openVincceWindow(isparent) {
var vinceeRedirectURL = $("#redirectURL").val();
var vinceetimeParam = $("#timeParam").val();
var vinceezhuangtai = $("#zhuangtai").val();
var vinceesignname = $("#signname").val();
var vinceeappId = $("#appId").val();
var sysId = "8359660fd800bac2d1efb0aff54ce72e";
$.ajax({
url : appPath + "/openVincceWindow.html",
data : {
sysId : sysId,
urlValue : window.location.href,
vinceeRedirectURL : vinceeRedirectURL,
vinceetimeParam : vinceetimeParam,
vinceezhuangtai : vinceezhuangtai,
vinceesignname : vinceesignname,
vinceeappId : vinceeappId
},
type : "GET",
dataType : "json",
success : function(data) {
// alert("aa");
var token = data.token;
// http://localhost:8080/ec-web //27.115.112.226:
// var backUrl = encodeURI(encodeURI("https://www.j1.com/" + sysId+ "/" + token + ".html"));
var backUrl = encodeURI(encodeURI("https://www.j1.com/" + sysId+ "/" + token + ".html"));
// http://114.80.86.110:16080
var url = "http://jk.1qianbao.com//authLoginHtml.htm?sysId="
+ sysId + "&token=" + token + "&backUrl=" + backUrl;
if (isparent != null && isparent == 'Y') {
parent.location.href = url;
} else {
window.location.href = url;
}
}
});
}
/**
* 打开QQ登录窗口
*/
function openQQLoginWindow(isparent) {
var redirectURL = $("#redirectURL").val();
var qqtimeParam = $("#timeParam").val();
var qqzhuangtai = $("#zhuangtai").val();
var qqsignname = $("#signname").val();
var qqappId = $("#appId").val();
$
.ajax({
url : appPath + "/addBackUrl.html",
data : {
// urlValue : window.location.href,
urlValue : QueryString.backUrl || "/",
redirectURL : redirectURL,
qqtimeParam : qqtimeParam,
qqzhuangtai : qqzhuangtai,
qqsignname : qqsignname,
qqappId : qqappId
},
type : "post",
success : function(data) {
var qq_app_id = "1002940";
// var app_id = "2394707905"; www.j1.com
var redirect_uri = encodeURI(encodeURI("https://www.j1.com/qq_login_redirect.jsp"));
// var redirect_uri = encodeURI(encodeURI("new.j1.com"));
var scope = "get_user_info";
var code = "code";
// 获取Access Token
var url = "https://graph.qq.com/oauth2.0/authorize?response_type=token&client_id="
+ qq_app_id
+ "&redirect_uri="
+ redirect_uri
+ "&scope=" + scope + "&state=" + data;
if (isparent != null && isparent == 'Y') {
parent.location.href = url;
} else {
window.location.href = url;
}
}
});
}
/**
* 打开淘宝登录窗口
* (window.location.href.indexOf("login.jsp"))==-1?window.location.href:"/"
*/
function openTaoBaoLoginWindow() {
var currentPage = window.location.href;
$
.ajax({
url : appPath + "/addBackUrl.html",
data : {
// urlValue : window.location.href
urlValue : QueryString.backUrl || "/"
},
type : "post",
success : function(data) {
var taobao_appKey = "12685181";
// var redirect_uri = encodeURI("https://www.j1.com?");
var redirect_uri = encodeURI(encodeURI("https://www.j1.com/taobao_login_redirect.jsp?"));
var url = "https://oauth.taobao.com/authorize?response_type=token&client_id="
+ taobao_appKey + "&redirect_uri=" + redirect_uri;
window.location.href = url;
}
});
}
var QueryString = function() {
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (typeof query_string[pair[0]] === "undefined") {
query_string[pair[0]] = pair[1];
} else if (typeof query_string[pair[0]] === "string") {
var arr = [ query_string[pair[0]], pair[1] ];
query_string[pair[0]] = arr;
} else {
query_string[pair[0]].push(pair[1]);
}
}
return query_string;
}();
/**
* 打开支付宝登录窗口
*/
function openAlipayLoginWindow(isparent) {
// $.ajax({
// url : appPath + "/addBackUrl.html",
// data : {
// // urlValue : window.location.href
// urlValue : QueryString.backUrl || "/"
// },
// type : "post",
// success : function(data) {
// // 合作身份者ID、交易安全检验码在AlipayConfig.java中配置
// var url = appPath + "/jsp/login/alipay_auth_authorize.jsp";
// if (isparent != null && isparent == 'Y') {
// parent.location.href = url;
// } else {
// window.location.href = url;
// }
// }
// });
//var passportPath="http://passport.test.com:9080/passport";
var loginBackUrl = "";
var hidBack = $("#hidBackURL", parent.document).val();
if (hidBack != null && "" != hidBack) {
loginBackUrl = hidBack;
} else {
loginBackUrl = parent.location.href;
}
if (loginBackUrl.indexOf('#') != -1) {
loginBackUrl = loginBackUrl.substr(0, loginBackUrl.indexOf('#'));
}
$.ajax({
url : passportPath + "/remoteAddBackUrl.html",
dataType:'jsonp',
data : {
// urlValue : window.location.href
//urlValue : QueryString.backUrl || "/"
urlValue: appPath + loginBackUrl
},
type : "post",
success : function(data) {
// 合作身份者ID、交易安全检验码在AlipayConfig.java中配置
//alert('data is '+data);
var url = passportPath + "/jsp/login/alipay_auth_authorize.jsp";
if (isparent != null && isparent == 'Y') {
parent.location.href = url;
} else {
window.location.href = url;
}
}
});
}
/**
* 打开华润通的联合登录窗口openHrtWindow
*/
function openHrtWindow(isparent) {
$.ajax({
url: appPath + "/getUUID.html",
data: {
},
type: "GET",
dataType: "json",
success: function (data) {
var appid="1655100000004";
var response_type="code";
var scope="auth_login";
var state=data;
var redirect_uri ="https%3a%2f%2fwww.j1.com%2fgetHrtCode.html";
//var redirect=encodeURI(encodeURI( "https://www.j1.com/"));
/**
* var url = "https://uat99oauth2.huaruntong.cn:10001/#/auth2Login?redirect_uri="
+ redirect_uri + "&appid=" + appid + "&response_type=" + response_type+"&scope="+scope+"&state="+state;
* @type {string}
*/
var url = "https://oauth2.huaruntong.cn/index.html#/oauth2/authorize?redirect_uri="
+ redirect_uri + "&appid=" + appid + "&response_type=" + response_type+"&scope="+scope+"&state="+state;
if (isparent != null && isparent == 'Y') {
parent.location.href = url;
} else {
window.location.href = url;
}
}
});
}
// >>>>>>>>>>>>>>>>>第三方登入的js 结束 <<<<<<<<<<<<<<<<
// &&&&&&&&&&&&&&&&& json 开始&&&&&&&&&&&&&&&&&&&&
/*
* http://www.JSON.org/json2.js 2008-11-19
*
* Public Domain.
*
* NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
*
* See http://www.JSON.org/js.html
*
* This file creates a global JSON object containing two methods: stringify and
* parse.
*
* JSON.stringify(value, replacer, space) value any JavaScript value, usually an
* object or array.
*
* replacer an optional parameter that determines how object values are
* stringified for objects. It can be a function or an array of strings.
*
* space an optional parameter that specifies the indentation of nested
* structures. If it is omitted, the text will be packed without extra
* whitespace. If it is a number, it will specify the number of spaces to indent
* at each level. If it is a string (such as '\t' or ' '), it contains the
* characters used to indent at each level.
*
* This method produces a JSON text from a JavaScript value.
*
* When an object value is found, if the object contains a toJSON method, its
* toJSON method will be called and the result will be stringified. A toJSON
* method does not serialize: it returns the value represented by the name/value
* pair that should be serialized, or undefined if nothing should be serialized.
* The toJSON method will be passed the key associated with the value, and this
* will be bound to the object holding the key.
*
* For example, this would serialize Dates as ISO strings.
*
* Date.prototype.toJSON = function (key) { function f(n) { // Format integers
* to have at least two digits. return n < 10 ? '0' + n : n; }
*
* return this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' +
* f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' +
* f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z'; };
*
* You can provide an optional replacer method. It will be passed the key and
* value of each member, with this bound to the containing object. The value
* that is returned from your method will be serialized. If your method returns
* undefined, then the member will be excluded from the serialization.
*
* If the replacer parameter is an array of strings, then it will be used to
* select the members to be serialized. It filters the results such that only
* members with keys listed in the replacer array are stringified.
*
* Values that do not have JSON representations, such as undefined or functions,
* will not be serialized. Such values in objects will be dropped; in arrays
* they will be replaced with null. You can use a replacer function to replace
* those with JSON values. JSON.stringify(undefined) returns undefined.
*
* The optional space parameter produces a stringification of the value that is
* filled with line breaks and indentation to make it easier to read.
*
* If the space parameter is a non-empty string, then that string will be used
* for indentation. If the space parameter is a number, then the indentation
* will be that many spaces.
*
* Example:
*
* text = JSON.stringify(['e', {pluribus: 'unum'}]); // text is
* '["e",{"pluribus":"unum"}]'
*
*
* text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); // text is
* '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
*
* text = JSON.stringify([new Date()], function (key, value) { return this[key]
* instanceof Date ? 'Date(' + this[key] + ')' : value; }); // text is
* '["Date(---current time---)"]'
*
*
* JSON.parse(text, reviver) This method parses a JSON text to produce an object
* or array. It can throw a SyntaxError exception.
*
* The optional reviver parameter is a function that can filter and transform
* the results. It receives each of the keys and values, and its return value is
* used instead of the original value. If it returns what it received, then the
* structure is not modified. If it returns undefined then the member is
* deleted.
*
* Example: // Parse the text. Values that look like ISO date strings will // be
* converted to Date objects.
*
* myData = JSON.parse(text, function (key, value) { var a; if (typeof value ===
* 'string') { a =
* /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
* if (a) { return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5],
* +a[6])); } } return value; });
*
* myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { var d; if
* (typeof value === 'string' && value.slice(0, 5) === 'Date(' &&
* value.slice(-1) === ')') { d = new Date(value.slice(5, -1)); if (d) { return
* d; } } return value; });
*
*
* This is a reference implementation. You are free to copy, modify, or
* redistribute.
*
* This code should be minified before deployment. See
* http://javascript.crockford.com/jsmin.html
*
* USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
* NOT CONTROL.
*/
/* jslint evil: true */
/* global JSON */
/*
* members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, call,
* charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, getUTCMinutes,
* getUTCMonth, getUTCSeconds, hasOwnProperty, join, lastIndex, length, parse,
* prototype, push, replace, slice, stringify, test, toJSON, toString, valueOf
*/
// Create a JSON object only if one does not already exist. We create the
// methods in a closure to avoid creating global variables.
if (!this.JSON) {
JSON = {};
}
(function() {
function f(n) {
// Format integers to have at least two digits.
return n < 10 ? '0' + n : n;
}
if (typeof Date.prototype.toJSON !== 'function') {
Date.prototype.toJSON = function(key) {
return this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1)
+ '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours())
+ ':' + f(this.getUTCMinutes()) + ':'
+ f(this.getUTCSeconds()) + 'Z';
};
String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function(
key) {
return this.valueOf();
};
}
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { // table
// of
// character
// substitutions
'\b' : '\\b',
'\t' : '\\t',
'\n' : '\\n',
'\f' : '\\f',
'\r' : '\\r',
'"' : '\\"',
'\\' : '\\\\'
}, rep;
function quote(string) {
// If the string contains no control characters, no quote characters,
// and no
// backslash characters, then we can safely slap some quotes around it.
// Otherwise we must also replace the offending characters with safe
// escape
// sequences.
escapable.lastIndex = 0;
return escapable.test(string) ? '"'
+ string.replace(escapable,
function(a) {
var c = meta[a];
return typeof c === 'string' ? c : '\\u'
+ ('0000' + a.charCodeAt(0).toString(16))
.slice(-4);
}) + '"' : '"' + string + '"';
}
function str(key, holder) {
// Produce a string from holder[key].
var i, // The loop counter.
k, // The member key.
v, // The member value.
length, mind = gap, partial, value = holder[key];
// If the value has a toJSON method, call it to obtain a replacement
// value.
if (value && typeof value === 'object'
&& typeof value.toJSON === 'function') {
value = value.toJSON(key);
}
// If we were called with a replacer function, then call the replacer to
// obtain a replacement value.
if (typeof rep === 'function') {
value = rep.call(holder, key, value);
}
// What happens next depends on the value's type.
switch (typeof value) {
case 'string':
return quote(value);
case 'number':
// JSON numbers must be finite. Encode non-finite numbers as null.
return isFinite(value) ? String(value) : 'null';
case 'boolean':
case 'null':
// If the value is a boolean or null, convert it to a string. Note:
// typeof null does not produce 'null'. The case is included here in
// the remote chance that this gets fixed someday.
return String(value);
// If the type is 'object', we might be dealing with an object or an
// array or
// null.
case 'object':
// Due to a specification blunder in ECMAScript, typeof null is
// 'object',
// so watch out for that case.
if (!value) {
return 'null';
}
// Make an array to hold the partial results of stringifying this
// object value.
gap += indent;
partial = [];
// Is the value an array?
if (Object.prototype.toString.apply(value) === '[object Array]') {
// The value is an array. Stringify every element. Use null as a
// placeholder
// for non-JSON values.
length = value.length;
for (i = 0; i < length; i += 1) {
partial[i] = str(i, value) || 'null';
}
// Join all of the elements together, separated with commas, and
// wrap them in
// brackets.
v = partial.length === 0 ? '[]' : gap ? '[\n' + gap
+ partial.join(',\n' + gap) + '\n' + mind + ']' : '['
+ partial.join(',') + ']';
gap = mind;
return v;
}
// If the replacer is an array, use it to select the members to be
// stringified.
if (rep && typeof rep === 'object') {
length = rep.length;
for (i = 0; i < length; i += 1) {
k = rep[i];
if (typeof k === 'string') {
v = str(k, value);
if (v) {
partial.push(quote(k) + (gap ? ': ' : ':') + v);
}
}
}
} else {
// Otherwise, iterate through all of the keys in the object.
for (k in value) {
if (Object.hasOwnProperty.call(value, k)) {
v = str(k, value);
if (v) {
partial.push(quote(k) + (gap ? ': ' : ':') + v);
}
}
}
}
// Join all of the member texts together, separated with commas,
// and wrap them in braces.
v = partial.length === 0 ? '{}' : gap ? '{\n' + gap
+ partial.join(',\n' + gap) + '\n' + mind + '}' : '{'
+ partial.join(',') + '}';
gap = mind;
return v;
}
}
// If the JSON object does not yet have a stringify method, give it one.
if (typeof JSON.stringify !== 'function') {
JSON.stringify = function(value, replacer, space) {
// The stringify method takes a value and an optional replacer, and
// an optional
// space parameter, and returns a JSON text. The replacer can be a
// function
// that can replace values, or an array of strings that will select
// the keys.
// A default replacer method can be provided. Use of the space
// parameter can
// produce text that is more easily readable.
var i;
gap = '';
indent = '';
// If the space parameter is a number, make an indent string
// containing that
// many spaces.
if (typeof space === 'number') {
for (i = 0; i < space; i += 1) {
indent += ' ';
}
// If the space parameter is a string, it will be used as the
// indent string.
} else if (typeof space === 'string') {
indent = space;
}
// If there is a replacer, it must be a function or an array.
// Otherwise, throw an error.
rep = replacer;
if (replacer
&& typeof replacer !== 'function'
&& (typeof replacer !== 'object' || typeof replacer.length !== 'number')) {
throw new Error('JSON.stringify');
}
// Make a fake root object containing our value under the key of ''.
// Return the result of stringifying the value.
return str('', {
'' : value
});
};
}
// If the JSON object does not yet have a parse method, give it one.
if (typeof JSON.parse !== 'function') {
JSON.parse = function(text, reviver) {
// The parse method takes a text and an optional reviver function,
// and returns
// a JavaScript value if the text is a valid JSON text.
var j;
function walk(holder, key) {
// The walk method is used to recursively walk the resulting
// structure so
// that modifications can be made.
var k, v, value = holder[key];
if (value && typeof value === 'object') {
for (k in value) {
if (Object.hasOwnProperty.call(value, k)) {
v = walk(value, k);
if (v !== undefined) {
value[k] = v;
} else {
delete value[k];
}
}
}
}
return reviver.call(holder, key, value);
}
// Parsing happens in four stages. In the first stage, we replace
// certain
// Unicode characters with escape sequences. JavaScript handles many
// characters
// incorrectly, either silently deleting them, or treating them as
// line endings.
cx.lastIndex = 0;
if (cx.test(text)) {
text = text.replace(cx,
function(a) {
return '\\u'
+ ('0000' + a.charCodeAt(0).toString(16))
.slice(-4);
});
}
// In the second stage, we run the text against regular expressions
// that look
// for non-JSON patterns. We are especially concerned with '()' and
// 'new'
// because they can cause invocation, and '=' because it can cause
// mutation.
// But just to be safe, we want to reject all unexpected forms.
// We split the second stage into 4 regexp operations in order to
// work around
// crippling inefficiencies in IE's and Safari's regexp engines.
// First we
// replace the JSON backslash pairs with '@' (a non-JSON character).
// Second, we
// replace all simple value tokens with ']' characters. Third, we
// delete all
// open brackets that follow a colon or comma or that begin the
// text. Finally,
// we look to see that the remaining characters are only whitespace
// or ']' or
// ',' or ':' or '{' or '}'. If that is so, then the text is safe
// for eval.
if (/^[\],:{}\s]*$/
.test(text
.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
.replace(
/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
// In the third stage we use the eval function to compile the
// text into a
// JavaScript structure. The '{' operator is subject to a
// syntactic ambiguity
// in JavaScript: it can begin a block or an object literal. We
// wrap the text
// in parens to eliminate the ambiguity.
j = eval('(' + text + ')');
// In the optional fourth stage, we recursively walk the new
// structure, passing
// each name/value pair to a reviver function for possible
// transformation.
return typeof reviver === 'function' ? walk({
'' : j
}, '') : j;
}
// If the text is not JSON parseable, then a SyntaxError is thrown.
throw new SyntaxError('JSON.parse');
};
}
})();
// &&&&&&&&&&&&&&&&& json 开始&&&&&&&&&&&&&&&&&&&&
// j1j1j1j1j1j1j1j1j1 业务处理 开始 j1j1j1j1j1j1j1j1j1
$(function() {
$('.sidelist').mousemove(function() {
$(this).find('.i-list').show();
$(this).find('h3').addClass('hover');
});
$('.sidelist').mouseleave(function() {
$(this).find('.i-list').hide();
$(this).find('h3').removeClass('hover');
});
$(".divAd div").hover(function() {
$(this).siblings().css("opacity", 0.7);
}, function() {
$(".divAd div").css("opacity", 1);
});
$("#cartSpan").hover(function() {
if ($.cookie("shopcart")) {
$("#cartDiv").show();
getDivContent("cartDiv", appPath + "/cartGoods.html");
}
}, function() {
});
$("#cartDiv").hover(function() {
}, function() {
$("#cartDiv").hide();
});
cartCount();
reservationCount();
});
/**
* 购物车数字显示
*/
function cartCount() {
$.ajax({
url : appPath + '/orderShoppingCart/getGoodsCount.html',
type : "post",
success : function(data) {
if (data == null || data == '') {
data = 0;
}
$("#cartCount").text(data);
}
});
}
/**
* 预约清单列表总数
*/
function reservationCount() {
$.ajax({
url : appPath + '/orderShoppingCart/getReservationCount.html',
type : "post",
success : function(data) {
if (data == null || data == '') {
data = 0;
}
$("#reservationCount").text(data);
}
});
}
/**
* 加入购物车(一次加入一个或多个商品) 格式"10001,1-10002,2-..."
*/
function addMultiCart(skuString) {
var sku = skuString.split(",");
if (sku.length == 2) {
skuString = skuString + ",0";
}
$("#cartDiv").empty();
var url = appPath + '/myec/orderShoppingCart/addMulti.html';
$.ajax({
url : url,
data : {
"skuContent" : skuString
},
cache : false,
type : "post",
success : function(data) {
if (data == "ok") {
window.location.href = appPath + "/shopcart.html?time="
+ getCurrentTime();
} else {
showError("系统错误,请稍候再试!");
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
showError("系统错误,请稍候再试!");
}
});
}
function deleteCartGoods(goodsId) {
showConfirm("确定要删除该商品吗", "请确认", function(action) {
if (action == "ok") {
$.ajax({
url : appPath + '/myec/orderShoppingCart/deleteGoods.html',
data : {
"skuId" : goodsId
},
cache : false,
type : "post",
success : function(data) {
if (window.location.href.indexOf("shopcart.html") >= 0) {
window.location.reload();
} else {
cartCount();
$("#cartDiv").empty();
}
}
});
}
});
}
/**
* 判断可用库存是否有贷 加入购物车(一次加入一个或多个商品) 格式"10001,1-10002,2-..."
*/
function addMultiCartIStock(id) {
$.ajax({
url : appPath + '/myec/getAvaiableStock.html',
data : {
"goodsId" : id
},
cache : false,
type : "post",
success : function(data) {
var skuString = id + "," + 1;
if (Number(data) > Number(0)) {
addMultiCart(skuString);
} else {
showAlert("可用库存不足!");
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
showError("系统错误,请稍候再试!");
}
});
}
function goodsNotice(goodsId, dom) {
alert('aaaa');
if (!goodsId || !dom) {
return;
}
var me = $(dom);
if (me.attr("noticeId") != undefined) {
showTips("通知已经发出,请勿重复添加!", "alert", 1500);
} else {
$("#backURL").val(location.href);
var url = appPath + '/product/addNotice.html';
doAjax({
url : url,
data : "goodsId=" + goodsId,
type : "post",
success : function(data) {
me.attr("noticeId", data);
showSuccess("您好,当该货品到达后,我们会第一时间通知你!", "操作成功");
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
showError("系统错误,请稍候再试!");
}
});
}
}
$(function() {
$("#searchInput").autopoint({
url : appPath + "/PortalSearchKeyword/findSearchPromotList.html"
});
if ($("#pageType") != null && $("#pageType").val() == "index") {
if (screen.width >= 1200) {
$("#screenWidthLink").attr("href",
appPath + "/css/home_v1/index1300.css");
}
} else {
$("#cataLogMapDiv a").attr("rel", "external nofollow");
}
});
function setKeyword(keyword) {
$("#searchInput").val(keyword);
search();
}
function clearValue() {
var word = $('#searchInput').attr("value");
if (word == "请输入关键字:商品名或症状或疾病名") {
$('#searchInput').attr('value', '');
}
}
var searchleng = 20;
function search() {
var keyword = $.trim($("#searchInput").val().replaceAll('<', '〈')
.replaceAll('>', '〉'));
if (keyword == "" || keyword == "请输入关键字:商品名或症状或疾病名") {
showAlert("请输入您要查找的关键词!");
return;
}
//if (getStrLength(keyword) > searchleng) {
// showAlert("您要查找的关键词过长!");
// return;
//}
//过滤特殊字符
var reg = new RegExp("[。~!@#$%\^\+\*&\\\/\?\|:\<>{}()';=\"]");
if(keyword.match(reg) || keyword.indexOf("\.")==0){
showAlert("请输入您要查找的关键词,不需要包含特殊字符!");
return;
}
$("#keywordHid").attr("value", keyword);
window.location.href = appPath + "/"
+ (encodeURIComponent(encodeURIComponent(keyword)))
+ "/1/1-0-0-1/ss.html";
}
function hideautopoint() {
if (state == 0) {
$("#tie").hide();
}
}
function addfavorite() {
var url = "https://www.j1.com";
var title = "健一网";
if (document.all) { // ie
window.external.AddFavorite(url, title);
} else if (window.sidebar) { // firefox
try {
window.sidebar.addPanel(title, url, "");
} catch (e) {
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
} else if (window.opera && window.print) { // opera
var elem = document.createElement('a');
elem.setAttribute('href', url);
elem.setAttribute('title', title);
elem.setAttribute('rel', 'sidebar');
elem.click(); // this.title=document.title;
} else {
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
}
var isIE = (document.all) ? true : false;
// var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6);
var _$ = function(id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
var Class = {
create : function() {
return function() {
this.initialize.apply(this, arguments);
};
}
};
var Extend = function(destination, source) {
for ( var property in source) {
destination[property] = source[property];
}
};
var Bind = function(object, fun) {
return function() {
return fun.apply(object, arguments);
};
};
var Each = function(list, fun) {
for (var i = 0, len = list.length; i < len; i++) {
fun(list[i], i);
}
};
var Contains = function(a, b) {
return a.contains ? a != b && a.contains(b) : !!(a
.compareDocumentPosition(b) & 16);
};
var OverLay = Class.create();
OverLay.prototype = {
initialize : function(options) {
this.SetOptions(options);
this.Lay = _$(this.options.Lay)
|| document.body.insertBefore(document.createElement("div"),
document.body.childNodes[0]);
this.Color = this.options.Color;
this.Opacity = parseInt(this.options.Opacity);
this.zIndex = parseInt(this.options.zIndex);
with (this.Lay.style) {
display = "none";
zIndex = this.zIndex;
left = top = 0;
position = "fixed";
width = height = "100%";
}
// if(isIE6){
if (false) {
this.Lay.style.position = "absolute";
// ie6设置覆盖层大小程序
this._resize = Bind(this, function() {
this.Lay.style.width = Math.max(
document.documentElement.scrollWidth,
document.documentElement.clientWidth)
+ "px";
this.Lay.style.height = Math.max(
document.documentElement.scrollHeight,
document.documentElement.clientHeight)
+ "px";
});
// 遮盖select
this.Lay.innerHTML = '<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=0);"></iframe>';
}
},
// 设置默认属性
SetOptions : function(options) {
this.options = {// 默认值
Lay : null,// 覆盖层对象
Color : "#000000",// 背景色
Opacity : 100,// 透明度(0-100)
zIndex : 1000
// 层叠顺序
};
Extend(this.options, options || {});
},
// 显示
Show : function() {
// 兼容ie6 if(isIE6){
if (false) {
this._resize();
window.attachEvent("onresize", this._resize);
}
// 设置样式
with (this.Lay.style) {
// 设置透明度
isIE ? filter = "alpha(opacity:" + this.Opacity + ")"
: opacity = this.Opacity / 100;
backgroundColor = this.Color;
display = "block";
}
},
// 关闭
Close : function() {
var isIE6 = isIE
&& ([ /MSIE (\d)\.0/i.exec(navigator.userAgent) ][0][1] == 6);
this.Lay.style.display = "none";
if (isIE6) {
window.detachEvent("onresize", this._resize);
}
}
};
var LightBox = Class.create();
LightBox.prototype = {
initialize : function(box, options) {
this.Box = _$(box);// 显示层
this.OverLay = new OverLay(options);// 覆盖层
this.SetOptions(options);
this.Fixed = !!this.options.Fixed;
this.Over = !!this.options.Over;
this.Center = !!this.options.Center;
this.onShow = this.options.onShow;
this.Box.style.zIndex = this.OverLay.zIndex + 1;
this.Box.style.display = "none";
// 兼容ie6用的属性 if(isIE6)
if (true) {
this._top = this._left = 0;
this._select = [];
}
},
// 设置默认属性
SetOptions : function(options) {
this.options = {// 默认值
Over : true,// 是否显示覆盖层
Fixed : false,// 是否固定定位
Center : true,// 是否居中
onShow : function() {
}// 显示时执行
};
Extend(this.options, options || {});
},
// 兼容ie6的固定定位程序
Show : function(options) {
// 覆盖层
this.Over && this.OverLay.Show();
this.Box.style.display = "block";
// 兼容ie6 if(isIE6){
if (true) {
if (!this.Over) {
// 没有覆盖层ie6需要把不在Box上的select隐藏
this._select.length = 0;
Each(document.getElementsByTagName("select"), Bind(this,
function(o) {
if (!Contains(this.Box, o)) {
o.style.visibility = "hidden";
this._select.push(o);
}
}));
}
}
this.onShow();
},
// 关闭
Close : function() {
this.Box.style.display = "none";
this.OverLay.Close();
// if(isIE6){
if (false) {
window.detachEvent("onscroll", this._fixed);
Each(this._select, function(o) {
o.style.visibility = "visible";
});
}
}
};
function addCookie() {
if (document.all) {
window.external.addFavorite('https://www.j1.com', '健一网-专业的医药网上购物商城!');
} else if (window.sidebar) {
window.sidebar.addPanel('健一网-专业的医药网上购物商城!', 'https://zx.j1.com', "");
}
}
function setHomepage() {
if (document.all) {
document.body.style.behavior = 'url(#default#homepage)';
document.body.setHomePage('https://www.j1.com');
} else if (window.sidebar) {
if (window.netscape) {
try {
netscape.security.PrivilegeManager
.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("您的浏览器不支持此项功能,请手动添加,谢谢。");
}
}
var prefs = Components.classes['@mozilla.org/preferences-service;1']
.getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage', 'https://www.j1.com');
}
}
$(document).ready(function() {
$('.sidelist-x').mousemove(function() {
$(this).find('.i-list-x').show();
$(this).find('h3').addClass('sidelisthover');
});
$('.sidelist-x').mouseleave(function() {
$(this).find('.i-list-x').hide();
$(this).find('h3').removeClass('sidelisthover');
});
});
// j1j1j1j1j1j1j1j1j1 业务处理 结束 j1j1j1j1j1j1j1j1j1
// @@@@@@@@@@@@@@@ 登入与注册 开始@@@@@@@@@@@@@@@@@@@
/**
* 刷新验证码
*/
function refreshCode() {
$("#yzmImg").attr("src",
appPath + "/system/keyword.html?" + Math.random() + 100);
}
/**
* 登录校验
*
* @returns {Boolean}
*/
function loginCheck() {
// 校验用户名
var userName = jQuery.trim($("#userName").val());
if (!userName) {
$("#errMsgDiv").text("请输入用户名");
$("#errMsgDiv").addClass("register-tip");
return false;
} else {
$("#errMsgDiv").removeClass("register-tip");
}
// 校验密码
var password = jQuery.trim($("#password").val());
if (!password) {
$("#errMsgDiv").text("请输入密码");
$("#errMsgDiv").addClass("register-tip");
return false;
} else {
$("#errMsgDiv").removeClass("register-tip");
}
// 校验验证码
var keyword = jQuery.trim($("#keyword").val());
if (!keyword) {
$("#errMsgDiv").text("请输入验证码");
$("#errMsgDiv").addClass("register-tip");
return false;
} else {
$("#errMsgDiv").removeClass("register-tip");
}
return true;
}
/**
* 打开注册页面
*/
function beginOpenRegister() {
var backURL = $("#backURL").val();
if (backURL == "") {
window.location.href = appPath + "/register.html";
} else {
window.location.href = appPath + "/register.html?backURL=" + backURL;
}
}
/**
* 刷新验证码
*/
function freshCode() {
$("#yzmImg").attr("src",
appPath + "/system/keyword.html?" + Math.random() + 100);
}
/**
* 刷新验证码
*/
function refreshCode2() {
// debugger
$("#yzmImg2").attr("src",
appPath + "/system/keyword.html?" + Math.random() + 100);
// alert("asdfa");
}
/**
* 登录校验
*
* @returns {Boolean}
*/
function loginCheck2() {
// 校验用户名
var userName = jQuery.trim($("#userName2").val());
if (!userName) {
$("#errMsgDiv2").text("请输入用户名");
$("#errMsgDiv2").addClass("register-tip");
return false;
} else {
$("#errMsgDiv2").removeClass("register-tip");
}
// 校验密码
var password = jQuery.trim($("#password2").val());
if (!password) {
$("#errMsgDiv2").text("请输入密码");
$("#errMsgDiv2").addClass("register-tip");
return false;
} else {
$("#errMsgDiv2").removeClass("register-tip");
}
// 校验验证码
var keyword = jQuery.trim($("#keyword2").val());
if (!keyword) {
$("#errMsgDiv2").text("请输入验证码");
$("#errMsgDiv2").addClass("register-tip");
return false;
} else {
$("#errMsgDiv2").removeClass("register-tip");
}
$("#userName2").val(
$("#userName2").val().replaceAll('<', '〈').replaceAll('>', '〉'));
$("#password2").val(
$("#password2").val().replaceAll('<', '〈').replaceAll('>', '〉'));
return true;
}
/**
* 刷新验证码
*/
function freshCode2() {
$("#yzmImg2").attr("src",
appPath + "/system/keyword.html?" + Math.random() + 100);
}
function changeTwoDecimal(x) {
var f_x = parseFloat(x);
if (isNaN(f_x)) {
return false;
}
f_x = Math.round(f_x * 100) / 100;
var s_x = f_x.toString();
var pos_decimal = s_x.indexOf('.');
if (pos_decimal < 0) {
pos_decimal = s_x.length;
s_x += '.';
}
while (s_x.length <= pos_decimal + 2) {
s_x += '0';
}
return s_x;
}
/**
* 检查用户名是否存在
*
* @param loginName
* @returns {String}
*/
function checkLoginNameExist(loginName) {
var isExist = "N";
$.ajax({
url : appPath + "/member-checkLoginName.html",
data : "loginName=" + loginName,
type : "post",
async : false,
success : function(data) {
isExist = data;
},
error : function() {
showError("系统错误,请稍候再试!");
}
});
// alert(isExist)
return isExist;
}
/**
* yangqiuqin 当光标聚焦mini登录用户名输入框时
*
*/
function onfocusMiniUserName() {
if ($("#userName").val() == "请输入邮箱/手机号/用户名") {
$("#userName").val('');
}
$("#userName").removeClass('text bian-02');
$("#userName").addClass('text bian-01');
$("#miniLoginNameDiv").text('');
$("#miniLoginNameDiv").hide();
$("#miniLoginName").removeClass('error');
}
/**
* yagnqiuqin 光标聚焦mini登录密码输入框时样式的变化
*/
function onfocusMiniPwd() {
$("#password").removeClass('text bian-02');
$("#password").addClass('text bian-01');
$("#miniPasswordDiv").text('');
$("#miniPasswordDiv").hide();
$("#miniPassword").removeClass('error');
}
/**
* 会员登录(弹出窗口形式) 2012.9.7
*/
//function quickLoginNew(backURL) {
// // alert("aa");
// // 校验用户名
// var userName = jQuery.trim($("#userName").val());
// if (!userName || (userName == "请输入邮箱/手机号/用户名")) {
// $("#userName").removeClass('text bian-01');
// $("#userName").addClass('text bian-02');
// $("#miniLoginNameDiv").text("请输入用户名");
// $("#miniLoginNameDiv").show();
// $("#miniLoginName").removeClass("correct");
// $("#miniLoginName").addClass("error");
// return false;
// } else if (checkLoginNameExist(userName) == "N") {
// $("#userName").removeClass('text bian-01');
// $("#userName").addClass('text bian-02');
// $("#miniLoginNameDiv").show();
// $("#miniLoginNameDiv").text("您输入的账户名不存在,请核对后重新输入");
// $("#miniLoginName").removeClass('correct');
// $("#miniLoginName").addClass('error');
// return false;
// } else {
// $("#userName").removeClass('text bian-02');
// $("#userName").addClass('text bian-01');
// $("#miniLoginNameDiv").text('');
// $("#miniLoginNameDiv").hide();
// $("#miniLoginName").removeClass('error');
// $("#miniLoginName").addClass('correct');
// }
// // 校验密码
// var password = jQuery.trim($("#password").val());
// if (!password) {
// $("#password").removeClass('text bian-01');
// $("#password").addClass('text bian-02');
// $("#miniPasswordDiv").text("请输入密码");
// $("#miniPasswordDiv").show();
// $("#miniPassword").removeClass('correct');
// $("#miniPassword").addClass('error');
// return false;
// } else {
// $("#password").removeClass('text bian-02');
// $("#password").addClass('text bian-01');
// $("#miniPasswordDiv").text('');
// $("#miniPasswordDiv").hide();
// $("#miniPassword").removeClass('error');
// $("#miniPassword").addClass('correct');
// }
//
// // 提取是否记住密码值
// var isRemember;
// if (document.getElementById("miniRememberUser").checked) {
// isRemember = document.getElementById("miniRememberUser").value;
// }
//
// // alert(isRemember);
//
// // 校验验证码
// // var keyword = jQuery.trim($("#keyword").val());
// // if ($("#loginYanInput").css("display") != "none") {
// // if (!keyword) {
// // $("#errMsgDiv").text("请输入验证码");
// // $("#errMsgDiv").addClass("register-tip");
// // return false;
// // } else {
// // $("#errMsgDiv").text("").removeClass("register-tip");
// // }
// // }
//
// // /var backURL = jQuery.trim($("#backURL").val());
// var loginDto = {
// userName : userName,
// password : password,
// keyword : null,
// isRemember : isRemember
// };
// $.ajax({
// url : appPath + "/member-loginAjax.html",
// data : loginDto,
// type : "post",
// success : function(data) {
// if (data != "ok") {
// $("#password").removeClass('text bian-01');
// $("#password").addClass('text bian-02');
// $("#miniPasswordDiv").text(data);
// $("#miniPasswordDiv").show();
// $("#miniPassword").removeClass("correct");
// $("#miniPassword").addClass("error");
// } else {
// $("#miniPasswordDiv").text("").removeClass("error");
// $("#hidBackURL", parent.document).val("");
// if (backURL != null && "" != backURL) {
// parent.location.href = appPath + backURL;
// }
// $.ajax({
// url : appPath + "/login_info.html",
// type : 'POST',
// success : function(data) {
// $("#logininfo", parent.document).html(data);
// $("#newbtn_close").click();
// }
// });
// }
// }
// });
//}
$(document).ready(function() {
$('#keyword').bind('keyup', function(event) {
if (event.keyCode == "13") {
// 需要进行的处理程序
// alert("验证码回车"+Urls);
quickLoginNew(Urls);
}
});
});
/*
* $("#password").live("blur",function()//重复刷新验证码 { refreshCode(); } );
*/
function addMultiShopCart(skuString) {
}
/**
* 会员注册,校验
*/
function checkadd(Url) {
// 检查必填项
var loginName = $.trim($("#ReloginName").val());
if (!loginName) {
$("#ReloginNameTip").text("请填写用户名").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip").text("").removeClass("register-tip");
}
var loginPassword = $.trim($("#ReloginPassword").val());
if (!loginPassword) {
$("#ReloginPasswordTip").text("请填写密码").addClass("register-tip");
return false;
} else {
$("#ReloginPasswordTip").text("").removeClass("register-tip");
}
var loginPassword2 = $.trim($("#ReloginPassword2").val());
if (!loginPassword2) {
$("#ReloginPassword2Tip").text("请填写确认密码").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip").text("").removeClass("register-tip");
}
/*
* var email = $.trim($("#email").val()); if(!email){
* $("#emailTip").text("请填写邮箱").addClass("register-tip"); return false;
* }else{ $("#emailTip").text("").removeClass("register-tip"); }
*/
var keyword = $.trim($("#Rekeyword").val());
if ($("#yanzhengmaInput").css("display") != "none") {
if (!keyword) {
$("#RekeywordTip").text("请填写验证码").addClass("register-tip");
return false;
} else {
$("#RekeywordTip").text("").removeClass("register-tip");
}
}
var isChecked = $("#ReagreementCk").attr("checked");
if (!isChecked) {
$("#ReagreementTip").text("请勾选接受").addClass("register-tip");
return false;
} else {
$("#ReagreementTip").text("").removeClass("register-tip");
}
// 检查用户名是否存在
var isExist = checkLoginName(loginName);
if (isExist == "Y") {
$("#ReloginNameTip").text("该用户名已存在").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip").text("").removeClass("register-tip");
}
// 校验用户名为4-20位字符,中文、英文、数字及“_”、“-”
var re = /^[a-zA-Z0-9\u4E00-\u9FA5_@.-]*$/;
var nameLength = loginName.length;
if (!re.test(loginName) || nameLength < 4 || nameLength > 30) {
$("#ReloginNameTip").text('4-30位字符,中文,英文,数字及“_”');
return false;
} else {
$("#ReloginNameTip").text("");
}
// 校验密码为6-16位英文、数字组成
var re2 = /^[a-zA-Z0-9]{6,16}$/;
if (!re2.test(loginPassword)) {
$("#ReloginPasswordTip").text("密码为6-16位英文、数字组成").addClass(
"register-tip");
return false;
} else {
$("#ReloginPasswordTip").text("").removeClass("register-tip");
}
// 校验确认密码为6-16位英文、数字组成
if (!re2.test(loginPassword2)) {
$("#ReloginPassword2Tip").text("密码为6-16位英文、数字组成").addClass(
"register-tip");
return false;
} else {
$("#ReloginPassword2Tip").text("").removeClass("register-tip");
}
// 校验两次输入密码是否一致
if (loginPassword != loginPassword2) {
$("#ReloginPassword2Tip").text("两次输入密码不一致").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip").text("").removeClass("register-tip");
}
$("#mobileState").val("N");
// 校验用户名是否手机号
var reMobile = /^(13|15|18|14|17|19|16)[0-9]{9}$/;
if (reMobile.test(loginName)) {
if ($("#mobilecheckDiv").is(":hidden")) {
$("#codePhone1").val("");
getCodeBoxLogin('ReloginName', 'ReloginNameTip', 'getCodeButton1');
$('#mobilecheckDiv').css('display', '');
return false;
} else {
var isMobile = validatePhoneLogin('ReloginNameTip', 'codePhone1',
'ReloginName');
if (!isMobile) {
return false;
}
}
} else {
$('#mobilecheckDiv').css('display', 'none');
}
registerMember(Url);
/*
* //校验邮箱 var re3 = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
* if(!re3.test(email)){
* $("#emailTip").text("邮箱格式不正确").addClass("register-tip"); return false;
* }else{ $("#emailTip").text("").removeClass("register-tip"); }
*/
var email = $.trim($("#Reemail").val());
if (email.indexOf('>') > 0 || email.indexOf('<') > 0) {
return false;
}
}
// loginName焦点失去后验证用户是否存在
$("#ReloginName").live("blur", function() {
// 检查必填项
var loginName = $.trim($("#ReloginName").val());
if (!loginName) {
$("#ReloginNameTip").text("请填写用户名").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip").text("").removeClass("register-tip");
}
// refreshCode(); 重复刷新验证码
// 检查用户名是否存在
var isExist = checkLoginName(loginName);
if (isExist == "Y") {
$("#ReloginNameTip").text("该用户名已存在").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip").text("").removeClass("register-tip");
}
});
// loginPassword焦点失去后验证用户是否存在
$("#ReloginPassword").live("blur", function() {
var loginPassword = $.trim($("#ReloginPassword").val());
if (!loginPassword) {
$("#ReloginPasswordTip").text("请填写密码").addClass("register-tip");
return false;
} else {
$("#ReloginPasswordTip").text("").removeClass("register-tip");
}
});
// loginPassword2焦点失去后验证用户是否存在
$("#ReloginPassword2").live("blur", function() {
var loginPassword = $.trim($("#ReloginPassword").val());
var loginPassword2 = $.trim($("#ReloginPassword2").val());
if (!loginPassword2) {
$("#ReloginPassword2Tip").text("请填写密码").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip").text("").removeClass("register-tip");
}
// 校验两次输入密码是否一致
if (loginPassword != loginPassword2) {
$("#ReloginPassword2Tip").text("两次输入密码不一致").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip").text("").removeClass("register-tip");
}
});
// keyword焦点失去后验证用户是否存在
$("#Rekeyword").live("blur", function() {
var keyword = $.trim($("#Rekeyword").val());
if (!keyword) {
$("#RekeywordTip").text("请填写验证码").addClass("register-tip");
return false;
} else {
$("#RekeywordTip").text("").removeClass("register-tip");
}
});
/**
* 刷新验证码
*/
function refreshCode() {
$("#ReImg").attr("src",
appPath + "/system/keyword.html?" + Math.random() + 100);
}
/**
* 检查用户名是否存在
*/
function checkLoginName(loginName) {
var isExist = "N";
$.ajax({
url : appPath + "/member-checkLoginName.html",
data : "loginName=" + loginName,
type : "post",
async : false,
success : function(data) {
isExist = data;
},
error : function() {
showError("系统错误,请稍候再试!");
}
});
return isExist;
}
/**
* regisdter member ajax注册用户
*/
function registerMember() {
var keyword = $.trim($("#Rekeyword").val());
var loginPassword2 = $.trim($("#ReloginPassword2").val());
var loginPassword = $.trim($("#ReloginPassword").val());
var loginName = $.trim($("#ReloginName").val());
var mobileState = $.trim($("#mobileState").val());
var Reemail = "";
var isEmailRXG = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if (isEmailRXG.test(loginName)) {
Reemail = loginName;
}
$.ajax({
url : appPath + "/member-register-ajax.html",
data : "Rekeyword=" + keyword + "&ReloginPassword2=" + loginPassword2
+ "&ReloginPassword=" + loginPassword + "&ReloginName="
+ loginName + "&Reemail=" + Reemail + "&mobileState="
+ mobileState,
type : "post",
success : function(data) {
if (data == "haveUser") {
$("#ReloginNameTip").text("该用户名已存在").addClass("register-tip");
if ($.cookie("registerErrNum") != null) {
var registerNum = $.cookie("registerErrNum");
alert(registerNum);
if (Number(registerNum) >= 3) {
$("#yanzhengma").css("display", "inline");
$("#yanzhengmaInput").css("display", "inline");
} else {
$("#yanzhengma").css("display", "none");
$("#yanzhengmaInput").css("display", "none");
}
}
} else if (data == "errorCode") {
$("#RekeywordTip").text("验证码错误").addClass("register-tip");
if ($.cookie("registerErrNum") != null) {
var registerNum = $.cookie("registerErrNum");
if (Number(registerNum) >= 3) {
$("#yanzhengma").css("display", "inline");
$("#yanzhengmaInput").css("display", "inline");
} else {
$("#yanzhengma").css("display", "none");
$("#yanzhengmaInput").css("display", "none");
}
}
} else if (data == "success") {
location.reload();
}
}
});
}
/**
* regisdter member ajax注册用户
*/
function registerMember2(Url) {
var keyword = $.trim($("#Rekeyword2").val());
var loginPassword2 = $.trim($("#ReloginPassword22").val());
var loginPassword = $.trim($("#ReloginPassword3").val());
var loginName = $.trim($("#ReloginName2").val());
var Reemail = $.trim($("#Reemail2").val());
$.ajax({
url : appPath + "/member-register.html?backURL=" + Url,
data : "Rekeyword2=" + keyword + "&ReloginPassword22=" + loginPassword2
+ "&ReloginPassword3=" + loginPassword + "&ReloginName2="
+ loginName + "&Reemail2=" + Reemail,
type : "post",
success : function(data) {
}
});
}
/**
* 刷新验证码
*/
function refreshCode2() {
$("#ReImg2").attr("src",
appPath + "/system/keyword.html?" + Math.random() + 100);
}
// keyword焦点失去后验证用户是否存在
$("#Rekeyword2").live("blur", function() {
var keyword = $.trim($("#Rekeyword2").val());
if (!keyword) {
$("#RekeywordTip2").text("请填写验证码").addClass("register-tip");
return false;
} else {
$("#RekeywordTip2").text("").removeClass("register-tip");
}
});
// loginPassword2焦点失去后验证用户是否存在
$("#ReloginPassword22").live("blur", function() {
var loginPassword = $.trim($("#ReloginPassword3").val());
var loginPassword2 = $.trim($("#ReloginPassword22").val());
if (!loginPassword2) {
$("#ReloginPassword2Tip2").text("请填写密码").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip2").text("").removeClass("register-tip");
}
// 校验两次输入密码是否一致
if (loginPassword != loginPassword2) {
$("#ReloginPassword2Tip2").text("两次输入密码不一致").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip2").text("").removeClass("register-tip");
}
});
// loginPassword焦点失去后验证用户是否存在
$("#ReloginPassword3").live("blur", function() {
var loginPassword = $.trim($("#ReloginPassword3").val());
if (!loginPassword) {
$("#ReloginPasswordTip2").text("请填写密码").addClass("register-tip");
return false;
} else {
$("#ReloginPasswordTip2").text("").removeClass("register-tip");
}
});
// loginName焦点失去后验证用户是否存在
$("#ReloginName2").live("blur", function() {
// 检查必填项
var loginName = $.trim($("#ReloginName2").val());
if (!loginName) {
$("#ReloginNameTip2").text("请填写用户名").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip2").text("").removeClass("register-tip");
}
// refreshCode(); 重复刷新验证码
// 检查用户名是否存在
var isExist = checkLoginName(loginName);
if (isExist == "Y") {
$("#ReloginNameTip2").text("该用户名已存在").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip2").text("").removeClass("register-tip");
}
});
/**
* 会员注册,校验
*/
function checkadd2(Url) {
// 检查必填项
var loginName = $.trim($("#ReloginName2").val());
if (!loginName) {
$("#ReloginNameTip2").text("请填写用户名").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip2").text("").removeClass("register-tip");
}
var loginPassword = $.trim($("#ReloginPassword3").val());
if (!loginPassword) {
$("#ReloginPasswordTip2").text("请填写密码").addClass("register-tip");
return false;
} else {
$("#ReloginPasswordTip2").text("").removeClass("register-tip");
}
var loginPassword2 = $.trim($("#ReloginPassword22").val());
if (!loginPassword2) {
$("#ReloginPassword2Tip2").text("请填写确认密码").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip2").text("").removeClass("register-tip");
}
/*
* var email = $.trim($("#email").val()); if(!email){
* $("#emailTip").text("请填写邮箱").addClass("register-tip"); return false;
* }else{ $("#emailTip").text("").removeClass("register-tip"); }
*/
var keyword = $.trim($("#Rekeyword2").val());
if ($("#yanzhengma").css("display") != "none") {
if (!keyword) {
$("#keywordTip2").text("请填写验证码").addClass("register-tip");
return false;
} else {
$("#keywordTip2").text("").removeClass("register-tip");
}
}
var isChecked = $("#ReagreementCk2").attr("checked");
if (!isChecked) {
$("#ReagreementTip2").text("请勾选接受").addClass("register-tip");
return false;
} else {
$("#ReagreementTip2").text("").removeClass("register-tip");
}
// 检查用户名是否存在
var isExist = checkLoginName(loginName);
if (isExist == "Y") {
$("#ReloginNameTip2").text("该用户名已存在").addClass("register-tip");
return false;
} else {
$("#ReloginNameTip2").text("").removeClass("register-tip");
}
// 校验用户名为4-20位字符,中文、英文、数字及“_”、“-”
var re = /^[a-zA-Z0-9\u4E00-\u9FA5_@.-]*$/;
var nameLength = loginName.length;
if (!re.test(loginName) || nameLength < 4 || nameLength > 30) {
$("#ReloginNameTip2").text('4-30位字符,中文,英文,数字及“_”');
return false;
} else {
$("#ReloginNameTip2").text("");
var isEmailRXG = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if (isEmailRXG.test(loginName)) {
$("#Reemail2").val(loginName);
}
}
// 校验密码为6-16位英文、数字组成
var re2 = /^[a-zA-Z0-9]{6,16}$/;
if (!re2.test(loginPassword)) {
$("#ReloginPasswordTip2").text("密码为6-16位英文、数字组成").addClass(
"register-tip");
return false;
} else {
$("#ReloginPasswordTip2").text("").removeClass("register-tip");
}
// 校验确认密码为6-16位英文、数字组成
if (!re2.test(loginPassword2)) {
$("#ReloginPassword2Tip2").text("密码为6-16位英文、数字组成").addClass(
"register-tip");
return false;
} else {
$("#ReloginPassword2Tip2").text("").removeClass("register-tip");
}
// 校验两次输入密码是否一致
if (loginPassword != loginPassword2) {
$("#ReloginPassword2Tip2").text("两次输入密码不一致").addClass("register-tip");
return false;
} else {
$("#ReloginPassword2Tip2").text("").removeClass("register-tip");
}
// registerMember2(Url);
/*
* //校验邮箱 var re3 = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
* if(!re3.test(email)){
* $("#emailTip").text("邮箱格式不正确").addClass("register-tip"); return false;
* }else{ $("#emailTip").text("").removeClass("register-tip"); }
*/
var email = $.trim($("#Reemail2").val());
if (email.indexOf('>') > 0 || email.indexOf('<') > 0) {
return false;
}
$("#mobileState").val("N");
// 校验用户名是否手机号
var reMobile = /^(13|15|18|14|17|19|16)[0-9]{9}$/;
if (reMobile.test(loginName)) {
if ($("#mobilecheckDiv2").is(":hidden")) {
$("#codePhone2").val("");
getCodeBoxLogin('ReloginName2', 'ReloginNameTip2', 'getCodeButton2');
$('#mobilecheckDiv2').css('display', '');
return false;
} else {
var isMobile = validatePhoneLogin('ReloginNameTip2', 'codePhone2',
'ReloginName2');
return isMobile;
}
} else {
$('#mobilecheckDiv2').css('display', 'none');
}
}
var loopObj = null;
var seconds = 0;
// 获取手机验证码的方法
function getCodeBoxLogin(mobliephone, phoneMessage, getCodeButton) {
var phone = $("#" + mobliephone).val();
if (seconds > 0) {
return;
}
// 验证手机号码
if (!checkMobile(phone)) {
$("#" + phoneMessage).html("手机号码格式不正确");
return;
} else {
$("#" + phoneMessage).html("");
}
$.post(appPath + "/memberCenter/getValidateCount.html", {
phone : phone
}, function(data) {
if (data == "have") {
$("#" + phoneMessage).html("手机已被人验证");
} else {
$.post(appPath + "/memberCenter/sendPhoneCodeLogin.html", {
phoneNum : phone
}, function(data) {
if (data == "yes") {
// $("#mobiletext").show();
clearInterval(loopObj);
seconds = 60;
loopObj = window.setInterval(function() {
doUpdateLogin(getCodeButton);
}, 1000);
} else {
$("#" + phoneMessage).html("您今天5次手机验证机会用完了,等明天再来验证吧");
}
});
}
});
}
function doUpdateLogin(getCodeButton) {
seconds -= 1;
if (seconds <= 0) {
$("#" + getCodeButton).html("获取验证码");
$("#" + getCodeButton).attr("value", "获取验证码");
} else {
$("#" + getCodeButton).html(seconds + "秒后可重发");
$("#" + getCodeButton).attr("value", seconds + "秒后可重发");
}
}
// 验证手机号码
function validatePhoneLogin(phoneCodeMessage, codePhone, mobliephone) {
var isExist = false;
var codePhoneVal = $("#" + codePhone).val();
if (codePhoneVal.length == 6) {
$.ajax({
url : appPath + "/memberCenter/validatePhoneLogin.html",
data : {
codePhone : codePhoneVal,
mobile : $("#" + mobliephone).val()
},
type : "post",
async : false,
success : function(data) {
if (data == "errorCode") {
$("#" + phoneCodeMessage).html("验证码错误,请重新输入");
$("#" + codePhone).val("");
isExist = false;
} else if (data == "no") {
$("#" + phoneCodeMessage).html("今天你的验证次数超过50次,请您等待明天继续验证");
$("#" + codePhone).val("");
isExist = false;
} else {
// alert("手机验证成功");
$("#mobileState").val("Y");
$("#mobileState2").val("Y");
isExist = true;
}
},
error : function() {
showError("系统错误,请稍候再试!");
}
});
} else {
$("#" + phoneCodeMessage).html("验证码格式错误,请重新输入");
}
return isExist;
}
// @@@@@@@@@@@@@@@ 登入与注册 结束@@@@@@@@@@@@@@@@@@@
// ============autopoint-1.0开始 ==================
var state = 0;
(function($) {
$.fn
.extend({
autopoint : function(settings) {
var parent = $(this);// 文本输入框对象
var oldText = parent.val();// 文本输入框中的内容
var dropDiv = $(
'<div id="tie" style="margin-left:-2px;width:357px"></div>')
.addClass('dropDiv').appendTo('body');
parent
.keydown(function(event) {
if (dropDiv.css('display') != 'none') {// 当提示层显示时才对键盘事件处理
var currentList = dropDiv.find('.'
+ constants.listHoverCSS);
if (event.keyCode == constants.keyDown) {// 如果按的是向下方向键
if (currentList.length == 0) {
// 如果提示列表没有一个被选中,则将列表第一个选中
parent.val(getPointWord(dropDiv
.find('.list:first')
.mouseover()));
dropDiv.find('.list:last').css(
'background-color', '');
dropDiv.find('.list:first').css(
'background-color',
'rgb(255,255,153)');
} else if (currentList.next().length == 0) {
// 如果是最后一个被选中,则取消选中,即可认为是输入框被选中
unHoverAll();
} else {
unHoverAll();
// 将原先选中列的下一列选中
if (currentList.next().length != 0) {
parent
.val(getPointWord(currentList
.next()
.mouseover()));
currentList.css(
'background-color', '');
currentList.next().css(
'background-color',
'rgb(255,255,153)');
}
;
}
return false;
} else if (event.keyCode == constants.keyUp) {// 如果按的是向上方向键
if (currentList.length == 0) {
parent.val(getPointWord(dropDiv
.find('.list:last')
.mouseover()));
dropDiv.find('.list:first').css(
'background-color', '');
dropDiv.find('.list:last').css(
'background-color',
'rgb(255,255,153)');
} else if (currentList.prev().length == 0) {
unHoverAll();
} else {
unHoverAll();
if (currentList.prev().length != 0) {
parent
.val(getPointWord(currentList
.prev()
.mouseover()));
currentList.css(
'background-color', '');
currentList.prev().css(
'background-color',
'rgb(255,255,153)');
}
;
}
return false;
} else if (event.keyCode == constants.keyEnter)
dropDiv.empty().hide();
}
// 当按下键之前记录输入框值,以方便查看键弹起时值有没有变
oldText = parent.val();
});
parent.keyup(function(event) {
// 如果弹起的键是向上或向下方向键则返回
if (event.keyCode == constants.keyDown
|| event.keyCode == constants.keyUp)
return;
// 若输入框值没有改变或变为空则返回
var currentText = parent.val();
if (currentText == oldText)
return;
if (currentText == '') {
dropDiv.empty().hide();
return;
}
if ($.trim(currentText) == '') {
// showAlert("请填写您需要搜索的关键词!");
dropDiv.empty().hide();
return;
}
if ($.trim(currentText) >= searchleng) {
// showAlert("您搜索的关键词过长!");
dropDiv.empty().hide();
return;
}
getData(currentText);
});
parent.blur(function() {
if (dropDiv.find('.' + constants.listHoverCSS) != 0)
return;
// 文本输入框失去焦点则清空并隐藏提示层
dropDiv.empty().hide();
});
/** 处理ajax返回成功的方法* */
handleResponse = function(json) {
var isEmpty = true;
for ( var o in json) {
if (o == 'data')
isEmpty = false;
}
if (isEmpty) {
showErrorMsg("返回数据格式错误,请检查请求URL是否正确!");
return;
}
if (json['data'].length == 0) {
// 返回数据为空
return;
}
refreshDropDiv(json);
dropDiv.show();
};
/** 处理ajax失败的方法* */
handleError = function(error) {
// showErrorMsg("由于url错误或超时请求失败!");
};
showErrorMsg = function(error) {
alert(error);
};
/** 通过ajax返回json格式数据生成用来创建dom的字符串* */
render = function(json) {
var res = json['data'] || json;
var appendStr = '';
// 用json对象中内容替换模版字符串中匹配/\{([a-z]+)\}/ig的内容,如{word},{view}
for (var i = 0; i < res.length; i += 1) {
appendStr += (settings.tpl || constants.tpl)
.replace(/\{([a-z]+)\}/ig, function(m, n) {
return res[i][n];
});
}
// appendStr += '<div style="text-align:right"><a
// οnclick=$("#tie").hide()
// href="javascript:void(0)">[关闭]</a></div>' ;
jebind(appendStr);
};
/** 将新建dom对象插入到提示框中,并重新绑定mouseover事件监听* */
jebind = function(a) {
dropDiv.append(a);
dropDiv.find('.list').each(function() {
$(this).unbind('mouseover').mouseover(function() {
unHoverAll();
$(this).addClass(constants.listHoverCSS);
state = 1;
}).unbind('click').click(function() {
parent.val(getPointWord($(this)));
dropDiv.empty().hide();
parent.focus();
state = 0;
search();
});
});
};
/** 将提示框中所有列的hover样式去掉* */
unHoverAll = function() {
dropDiv.find('.list').each(function() {
$(this).removeClass(constants.listHoverCSS);
state = 0;
});
};
/** 在提示框中取得当前选中的提示关键字* */
getPointWord = function(p) {
return p.find('span:last').text();
};
/** 刷新提示框,并设定样式* */
refreshDropDiv = function(json) {
dropDiv.empty();
var left = parent.offset().left + 2;
var height = parent.height();
var top = parent.offset().top + height;
var width = settings.width || parent.width() + 8 + 'px';
dropDiv.css({
'border' : '1px solid #D9D4D4',
'left' : left,
'top' : top,
'width' : width,
'position' : 'absolute',
'z-index' : 20,
'background' : '#F7F7F7'
});
render(json);
};
/** 通过ajax向服务器请求数据* */
getData = function(word) {
$.ajax({
type : 'POST',
data : {
"word" : word
},
url : settings.url || '',
dataType : 'json',
timeout : 1000,
success : handleResponse,
error : handleError
});
};
/** 一些常量* */
var constants = {
keyLeft : 37,// 向左方向键
keyUp : 38,// 向上方向键
keyRight : 39,// 向右方向键
keyDown : 40,// 向下方向键
keyEnter : 13,// 回车键
listHoverCSS : 'jhover',// 提示框列表鼠标悬浮的样式
// tpl : '<div class="list" style="' + parent.height() +
// '"><div class="word">{word}</div><div
// class="view">约{view}条记录</div></div>'
// tpl : '<div class="list" style="'
// + parent.height()
// + '"> <div
// onMouseMove="$(this).css(\'background-color\',\'rgb(255,255,153)\')"
// onMouseOut="$(this).css(\'background-color\',\'\');state
// = 0;"
// style="font-size:12px;line-height:20px;font-family:宋体;padding-left:8px;cursor:
// pointer;color:#333333;"><span style="text-align:
// right;float:
// right;color:#a1a1a1;">约{amount}个商品 </span>
// <span>{word}</span></div></div>'
tpl : '<div class="list" style="'
+ parent.height()
+ '"> <div onMouseMove="$(this).css(\'background-color\',\'rgb(255,255,153)\')" onMouseOut="$(this).css(\'background-color\',\'\');state = 0;" style="font-size:12px;line-height:20px;font-family:宋体;padding-left:8px;cursor: pointer;color:#333333;"> <span>{word}</span></div></div>'
};
}
});
})(jQuery);
// ============autopoint-1.0结束 ==================
// ###########第三方js 开始#############
var hz6d_fixed_conf = {};
hz6d_fixed_conf.arg = "joyi365";
hz6d_fixed_conf.cid = "70771113";
if (typeof hz6d_from_page == 'undefined')
var hz6d_from_page = hz6d_getCookie("53kf_" + hz6d_fixed_conf.cid
+ "_keyword");
if (hz6d_from_page == "") {
hz6d_from_page = document.referrer;
document.cookie = "53kf_" + hz6d_fixed_conf.cid + "_keyword="
+ hz6d_from_page;
}
function hz6d_getCookie(name) {
var offset = document.cookie.indexOf(name + "=");
if (offset != -1) {
offset += name.length + 1;
var end = document.cookie.indexOf(";", offset);
if (end == -1) {
end = document.cookie.length;
}
return document.cookie.substring(offset, end);
} else {
return "";
}
}
function hz6d_FixedKF(v, s) {
if (hz6d_fixed_conf[s].img == '')
hz6d_fixed_conf[s].img = 'http://kf1.53kf.com/style/chat/new3/img/wk_zixun_cn.gif';
if (hz6d_fixed_conf[s].text == '')
hz6d_fixed_conf[s].text = "\u70b9\u51fb\u5bf9\u8bdd";
var img = hz6d_fixed_conf[s].img, text = hz6d_fixed_conf[s].text, height = hz6d_fixed_conf[s].height, width = hz6d_fixed_conf[s].width, style = hz6d_fixed_conf[s].style, arg = hz6d_fixed_conf.arg, kflist = hz6d_fixed_conf[s].kf;
var href_str = 'http://chat.53kf.com/webCompany.php?arg=' + arg + '&style='
+ style + '&keyword=' + escape(hz6d_from_page) + '&kf=' + kflist;
if (v == "iframe") {
document
.write('<iframe marginwidth="0" marginheight="0" frameborder="0" cellspacing="0" width="'
+ width
+ '" height="'
+ height
+ '" src="'
+ href_str
+ '"></iframe>');
} else if (v == "img") {
document.write('<a href="' + href_str
+ '" target="_blank"><img width="' + width + '" height="'
+ height + '" src="' + img + '" /></a>');
} else {
document.write('<div width="' + width + '" height="' + height
+ '"><a href="' + href_str + '" target="_blank">' + text
+ '</a></div>');
}
}
// ###########第三方js 结束#############
function addCollections(goodsId) {
doAjax({
url : appPath + '/myec/addCollection.html',
data : "goodsId=" + goodsId,
type : "post",
success : function(data) {
// me.attr("goodsId",goodsId);
if (data == "no") {
showTips("该商品已经收藏成功,请勿重复添加!", "alert", 1500);
} else {
showSuccess("添加收藏成功,您可以到会员中心查看已经收藏的物品!", "操作成功");
}
;
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
showError("系统错误,请稍候再试!");
}
});
}
// 获取cps 中的cookie值
function getCookie(objName) {
var arrCookie = document.cookie.split("; ");
var cps = "";
// 遍历cookie获取cps标识
for (var i = 0; i < arrCookie.length; i++) {
var arr = arrCookie[i].split("=");
if (arr[0] == objName)
cps = arr[1];
}
return cps;
}
/**
* 跳转第三方合作页面
*
* @param thirdHref
*/
function gotoThirdPage(thirdHref) {
var formObj = document.createElement("form");
var date = new Date();
var dateStr = date.getMilliseconds();
document.body.appendChild(formObj);
formObj.id = "postForm";
formObj.action = appPath + "/showThirdPage.html";
formObj.method = "POST";
formObj.target = "newWin" + dateStr;
var i = document.createElement("input");
i.type = "hidden";
i.value = thirdHref;
i.name = "thirdHref";
formObj.appendChild(i);
window.open("about:blank", "newWin" + dateStr, "");// newWin 是上面form的target
formObj.submit();
formObj.remove();
}
/**
* 页面广告加载优化
*
* @param
*/
$(function() {
var adids = [];
$("div[adid]").each(function() {
adids.push($(this).attr("adid"));
});
if (adids.length > 0) {
$.ajax({
type : "POST",
dataType : "json",
url : appPath + "/common/getAdMainImg.html?adids=" + adids,
data : "",
success : function(data) {
for (var i = 0; i < adids.length; i++) {
for (var j = 0; j < data.length; j++) {
if (adids[i] == data[j].adId) {
$($("div[adid]")[i]).html(data[j].context);
}
}
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
// showError("系统错误,请稍候再试!");
}
});
}
});
/**
* 获取欢迎用户登录HTML
*/
function getUserInfo() {
$.ajax({
url : appPath + "/login_info.html",
type : 'POST',
success : function(data) {
$("#logininfo").html(data);
}
});
}
//页面说明JS start
$(function() {
var open = $(".cadesc").find('.open');
var summary = $(".cadesc").find('.summary');
open.toggle(function() {
$(this).html("收起<em class='arrow arrowtop'></em>");
summary.css("height", "auto");
}, function() {
$(this).html("展开<em class='arrow'></em>");
summary.css("height", "36px");
});
});
//页面说明JS end
//将传入数据转换为字符串,并清除字符串中非数字与.的字符
//按数字格式补全字符串
function getFloatStr(num){
num += '';
num = num.replace(/[^0-9|\.]/g, ''); //清除字符串中的非数字非.字符
if(/^0+/) //清除字符串开头的0
num = num.replace(/^0+/, '');
if(!/\./.test(num)) //为整数字符串在末尾添加.00
num += '.00';
if(/^\./.test(num)) //字符以.开头时,在开头添加0
num = '0' + num;
num += '00'; //在字符串末尾补零
num = num.match(/\d+\.\d{2}/)[0];
return num;
};
/**
* 加入购物车(一次加入一个或多个商品)
* 格式"10001,1-10002,2-..."
*/
function addPromoteGoodsMultiCartForAll(goodsId){
var count = 1;
var skuString=goodsId+","+count+",0";
$.ajax({
url:appPath+'/myec/orderShoppingCart/addMulti.html',
data:{"skuContent":skuString},
cache:false,
type:"post",
success:function(data){
if (data == "ok") {
showAlert("添加购物车成功!");
cartCount();
} else {
showError("系统错误,请稍候再试!");
}
},
error:function(XMLHttpRequest, textStatus, errorThrown){
showError("系统错误,请稍候再试!");
}
});
}
var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appVersion;
return {
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: (!!u.match(/AppleWebKit.*Mobile.*/))&&!navigator.userAgent.match(/Chrome/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
}()
};
function init(){
var ism = $.cookie('ism');
if(ism == null){
var i = (window.location.href).indexOf("ufrom=wap");
if(i != -1){
$.cookie('ism','true');
}else if(browser.versions.mobile && $.cookie('ism') != 'true'){
var toUrl = window.location.href;
toUrl = toUrl.replace("www","m");
window.location.href = toUrl;
//window.location.href = 'https://m.j1.com';
}
}
}
init();