/*start 通用函数*/ if (!this.JSON) { this.JSON = {}; } (function() { function f(n) { return n < 10 ? '0' + n : n; } if (typeof Date.prototype.toJSON !== 'function') { Date.prototype.toJSON = function(key) { return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z' : null; }; 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) { 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) { var i, // The loop counter. k, // The member key. v, // The member value. length, mind = gap, partial, value = holder[key]; if (value && typeof value === 'object' && typeof value.toJSON === 'function') { value = value.toJSON(key); } if (typeof rep === 'function') { value = rep.call(holder, key, value); } switch (typeof value) { case 'string': return quote(value); case 'number': return isFinite(value) ? String(value) : 'null'; case 'boolean': case 'null': return String(value); case 'object': if (!value) { return 'null'; } gap += indent; partial = []; if (Object.prototype.toString.apply(value) === '[object Array]') { length = value.length; for (i = 0; i < length; i += 1) { partial[i] = str(i, value) || 'null'; } v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; gap = mind; return v; } 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 { for (k in value) { if (Object.hasOwnProperty.call(value, k)) { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; gap = mind; return v; } } if (typeof JSON.stringify !== 'function') { JSON.stringify = function(value, replacer, space) { var i; gap = ''; indent = ''; if (typeof space === 'number') { for (i = 0; i < space; i += 1) { indent += ' '; } } else if (typeof space === 'string') { indent = space; } rep = replacer; if (replacer && typeof replacer !== 'function' && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) { throw new Error('JSON.stringify'); } return str('', { '': value }); }; } if (typeof JSON.parse !== 'function') { JSON.parse = function(text, reviver) { var j; function walk(holder, key) { 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); } text = String(text); cx.lastIndex = 0; if (cx.test(text)) { text = text.replace(cx, function(a) { return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }); } 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, ''))) { j = eval('(' + text + ')'); return typeof reviver === 'function' ? walk({ '': j }, '') : j; } throw new SyntaxError('JSON.parse'); }; } } ()); (function($) { $.newegg = { isSecurePage: function() { return location.protocol == 'https:'; }, buildCurrent: function(relativePath) { if (location.host.indexOf(":8008") != -1) { return location.protocol + '//' + location.host + '/WebUI/' + relativePath; } else { return location.protocol + '//' + location.host + '/' + relativePath; } }, buildWWW: function(relativePath) { return wwwSite + '/' + relativePath; }, buildShopper: function(relativePath) { return shopperSite + '/' + relativePath; }, buildSSL: function(relativePath) { return sslSite + '/' + relativePath; }, format: function(source, params) { if (arguments.length == 1) return function() { var args = $.makeArray(arguments); args.unshift(source); return $.newegg.format.apply(this, args); }; if (arguments.length > 2 && params.constructor != Array) { params = $.makeArray(arguments).slice(1); } if (params.constructor != Array) { params = [params]; } $.each(params, function(i, n) { source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n); }); return source; }, format2: function(source, params) { if (arguments.length == 1) return function() { var args = $.makeArray(arguments); args.unshift(source); return $.newegg.format.apply(this, args); }; if (arguments.length > 2 && params.constructor != Array) { params = $.makeArray(arguments).slice(1); } if (params.constructor != Array) { params = [params]; } $.each(params, function(i, n) { source = source.replace("{" + i + "}", n); }); return source; }, cookie: { set: function(name, value, options) { var cv = ""; options = options || {}; value = value || null; if (value == null) { options = $.extend({}, options); options.expires = -1; } if (value != null && typeof (value) == "string") { cv = escape(value); } else if (value != null && typeof (value) == "object") { var jsonv = $.newegg.cookie.ToJson($.newegg.cookie.get(name)); if (jsonv == false) jsonv = {}; for (var k in value) { eval("jsonv." + k + "=\"" + value[k] + "\""); } for (var k in jsonv) { cv += k + '=' + escape(jsonv[k]) + '&'; } cv = cv.substring(0, cv.length - 1); } var expires = ""; if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); } else { date = options.expires; } expires = "; expires=" + date.toUTCString(); } var path = options.path ? "; path=" + (options.path) : "; path=/"; var domain = options.domain ? "; domain=" + (options.domain) : ""; if (options.topdomain) { var host = location.hostname hostindex = host.indexOf('.'); if (hostindex > 0) { host = host.substring(hostindex); domain = "; domain=" + host; } } var secure = options.secure ? "; secure" : ""; document.cookie = [name, '=', cv, expires, path, domain, secure].join(''); }, get: function(n, k) { var reg = new RegExp("(^| )" + n + "=([^;]*)(;|$)"); var arr = document.cookie.match(reg); if (arguments.length == 2) { if (arr != null) { var kArr, kReg = new RegExp("(^| |&)" + k + "=([^&]*)(&|$)"); var c = arr[2]; var c = c ? c : document.cookie; if (kArr = c.match(kReg)) { return unescape(kArr[2]); } else { return ""; } } else { return ""; } } else if (arguments.length == 1) { if (arr != null) { return unescape(arr[2]); } else { return ""; } } }, ToJson: function(cv) { var cv = cv.replace(new RegExp("=", "gi"), ":'").replace(new RegExp("&", "gi"), "',").replace(new RegExp(";\\s", "gi"), "',"); return eval("({" + cv + (cv.length > 0 ? "'" : "") + "})"); }, clear: function(name, options) { var expires = ";expires=Thu, 01-Jan-1900 00:00:01 GMT"; var path = options.path ? "; path=" + (options.path) : "; path=/"; var domain = options.domain ? "; domain=" + (options.domain) : ""; if (options.topdomain) { var host = location.hostname hostindex = host.indexOf('.'); if (hostindex > 0) { host = host.substring(hostindex); domain = "; domain=" + host; } } var secure = options.secure ? "; secure" : ""; document.cookie = [name, '=', expires, path, domain, secure].join(''); } }, querystring: { get: function(key) { var qs = $.newegg.querystring.parse(); var value = qs[key]; return (value != null) ? value : ""; }, set: function(key, value) { var qs = $.newegg.querystring.parse(); qs[key] = encodeURIComponent(value); return $.newegg.querystring.toString(qs); }, parse: function(qs) { var params = {}; if (qs == null) qs = location.search.substring(1, location.search.length); if (qs.length == 0) return params; qs = qs.replace(/\+/g, ' '); var args = qs.split('&'); for (var i = 0, l = args.length; i < l; i++) { var pair = args[i].split('='); var name = pair[0]; var value = (pair.length == 2) ? pair[1] : name; params[name] = value; } return params; }, toString: function(qs) { if (qs == null) qs = $.newegg.querystring.parse(); var val = ""; for (var k in qs) { if (val == "") val = "?"; val = val + k + "=" + qs[k] + "&"; } val = val.substring(0, val.length - 1); return val; } }, imgLoad: { objArray: [], loadImg: function(obj) { if (obj && obj.length > 0) { for (var i = 0, l = obj.length; i < l; i++) { if ($.inArray(obj[i], $.newegg.imgLoad.objArray) == -1) { $.newegg.imgLoad.objArray.push(obj[i]); } } } $.newegg.imgLoad.load(); }, pageTop: function() { return document.documentElement.clientHeight + Math.max(document.documentElement.scrollTop, document.body.scrollTop); }, load: function() { for (var i = 0, l = $.newegg.imgLoad.objArray.length; i < l; i++) { var jObj = $("#" + $.newegg.imgLoad.objArray[i]); if (jObj) { jObj.find("img").each(function() { if ($(this).offset().top <= $.newegg.imgLoad.pageTop()) { var src2 = $(this).attr("src2"); if (src2) { $(this).attr("src", src2).removeAttr("src2"); } } }); } } } } }; })(jQuery); /*end 通用函数*/ /*start 通用效果函数*/ /*如果1280开关关闭,则默认是1024*/ if (typeof (resolution) == "undefined") { resolution = 0; } function startTabA(w) { //开启指定容器内的TAB功能,参数为包含TAB组件的外部容器 var sWrap = "." + w; var wrap = $(sWrap); //包含TAB的外部容器 if (wrap.length) { //判断容器是否存在 $(sWrap + " .tab a").click(function() { //当窗口中tabs下面的链接点击时 var prop = $(this).attr("prop"); if (prop == "viewMore") { var cmd = $(this).attr("command"); if (cmd) { eval(cmd + "(this);"); } return false; } var contentID = $(this).parents(sWrap).get(0).id; var tab = $(this).parents(".tabs").children("*"); var tabNum = tab.length; //获取TAB个数 tab.removeClass("currentBtn"); if ($(this).parents(".tabs").children("a").length > 0) $(this).addClass("currentBtn"); else $(this).parent().addClass("currentBtn"); for (var i = 1; i <= tabNum; i++) { $("#" + contentID + "_" + i).hide(); //先将所有tabContent隐藏 } $("#" + contentID + "_" + this.rel).show(); //将所点击链接所对应的tabContent显示 $.newegg.imgLoad.loadImg([contentID + "_" + this.rel]); var cmd = $(this).attr("command"); if (cmd) { eval(cmd + "(this);"); } return false; }); if ($(sWrap + " .prevView").length) { //如果存在向前按钮则执行 $(sWrap + " .prevView").click(function() { var contentID = $(this).parents(sWrap).get(0).id; var curNum = parseInt($("#" + contentID + " .tabs .currentBtn").attr("rel")) - 1; if (curNum < 1) curNum = $("#" + contentID + " .tabs a").length; $("#" + contentID + " .tabs a").eq(curNum - 1).click(); }); } if ($(sWrap + " .nextView").length) { //如果存在向后按钮则执行 $(sWrap + " .nextView").click(function() { var contentID = $(this).parents(sWrap).get(0).id; var curNum = parseInt($("#" + contentID + " .tabs .currentBtn").attr("rel")) + 1; if (curNum > $("#" + contentID + " .tabs a").length) curNum = 1; $("#" + contentID + " .tabs a").eq(curNum - 1).click(); }); } } } function startTabB(w) { //在startTabA基础上增加鼠标划过TAB按钮也切换TAB的功能 var sWrap = "." + w; var wrap = $(sWrap); //包含TAB的外部容器 if (wrap.length) { sWrap = "." + w; $(sWrap + " .tab a").mouseover(function() { $(this).click(); }); } } function onoff(s) { var objStyle = "." + s; var obj = $(objStyle); if (obj.length) { if ($.browser.msie) { obj.parent().hover(function() { $(this).addClass("over"); }, function() { obj.parent().removeClass("over"); }); } else { obj.parent().mouseover(function() { $(this).addClass("over"); }).mouseout(function() { $(this).removeClass("over"); }); } } } function onoff_2(s) { var obj = $(s); if (obj.length) { obj.mouseover(function() { obj.removeClass("over"); $(this).addClass("over"); }); } } //弹出层可根据距离页面底部距离决定是否向上弹出 目前用于左侧带弹出菜单的分类导航 function onoff_3(s) { var objStyle = "." + s; var obj = $(objStyle); if (obj.length) { if ($.browser.msie) { obj.parent().hover(function() { var offset = $(this).offset(); var scrollTop = document.documentElement.scrollTop; var windowHeight = document.documentElement.clientHeight; var objHeight = $(objStyle, this).height(); if (offset.top - scrollTop > objHeight) { if ((windowHeight - offset.top + scrollTop) < objHeight) { $(objStyle, this).addClass("dirUp"); $(objStyle, this).css("top", 23 - objHeight); } } $(this).addClass("over"); }, function() { obj.parent().removeClass("over"); $(objStyle, this).removeClass("dirUp"); $(objStyle, this).css("top", "1px"); }); } else { obj.parent().mouseover(function() { var offset = $(this).offset(); var scrollTop = document.documentElement.scrollTop + document.body.scrollTop; //解决FF,CHROME,SAFARI的不兼容问题 var windowHeight = document.documentElement.clientHeight; var objHeight = $(objStyle, this).height(); if (offset.top - scrollTop > objHeight) { if ((windowHeight - offset.top + scrollTop) < objHeight) { $(objStyle, this).addClass("dirUp"); } } $(this).addClass("over"); }).mouseout(function() { $(this).removeClass("over"); $(objStyle, this).removeClass("dirUp"); }); } } } function onoffDelay(s) { var timer, timer2; var objStyle = "." + s; var obj = $(objStyle); obj.parent().mouseover(function() { var current = $(this); if ($(this).find(objStyle).css("display") == "block") { current.addClass('over'); clearTimeout(timer2); } else { timer = setTimeout(function() { current.addClass('over'); }, 350); } }).mouseout(function() { var current = $(this); if (timer) { clearTimeout(timer); timer2 = setTimeout(function() { current.removeClass('over'); }, 350); } }); obj.mouseover(function() { $(this).parent().addClass('over'); }); } /*为页面上特定输入元素增加默认文字的效果*/ function defaultText() { var obj = $(".hasDefaultText"); var tmpText = new Array(); var objIndex = 0; for (i = 1, l = obj.length; i <= l; i++) { tmpText[i - 1] = obj.eq(i - 1).val(); } obj.focus(function() { objIndex = obj.index($(this)); if ($(this).val() == tmpText[objIndex]) { $(this).val(""); $(this).removeClass("hasDefaultText"); } }); obj.blur(function() { objIndex = obj.index($(this)); if ($(this).val() == "") { $(this).val(tmpText[objIndex]); $(this).addClass("hasDefaultText"); } }); } var hasOnePopupShow = false; //需要等待异步返回的展开效果 // hasOnePopupShow 表示页头有弹出框显示,此时处于加载状态的其他弹出框不显示 // objFor.attr("display", "true");,表示当前节点在显示状态。仅当true时,插入回调数据 function onoff_4(s, fn) { var objStyle = "#" + s; var obj = $(objStyle); if (obj.length) { obj.parent().unbind(); if ($.browser.msie) { obj.parent().hover(function() { var objFor = $(this); objFor.attr("data-display", "true"); if (typeof fn != "undefined") { fn(obj, function() { if (hasOnePopupShow) { return; } if (objFor.attr("data-display") == "true") { objFor.find(".opener").addClass("now"); //$("#minicart").show(); hasOnePopupShow = true; } }); } }, function() { hasOnePopupShow = false; var objFor = $(this); objFor.attr("data-display", "false"); $(this).find(".opener").removeClass("now"); //$("#minicart").hide(); }); } else { obj.parent().mouseover(function() { var objFor = $(this); objFor.attr("data-display", "true"); if (typeof fn != "undefined") { fn(obj, function() { if (hasOnePopupShow) { return; } if (objFor.attr("data-display") == "true") { objFor.find(".opener").addClass("now"); if ($("#headerCartCount").text() > 0) { //$("#minicart").show(); } hasOnePopupShow = true; } }); } }).mouseout(function() { hasOnePopupShow = false; var objFor = $(this); objFor.attr("data-display", "false"); $(this).find(".opener").removeClass("now"); //$("#minicart").hide(); }); } } } /*通用的左右滚动函数*/ function scrollV(o, num, step, scrollTime, autoPlay, autoTime) { /*参数:包围对象id,每屏显示数量,每次滚动数量,滚动时间,是否自动滚动,自动滚动间隔时间*/ var obj = $("#" + o); var cell = $("#" + o + " .moveable li"); var total = cell.length; var btnPre = $("#" + o + " .pre"); var btnNext = $("#" + o + " .next"); autoFilledKeywords.clickObj = btnNext[0]; var moveLimit = Math.ceil((total - num) / step); var moveNum = 0; var currLeft = 0; var moveWidth = 0; if (total > num) { //btnPre.addClass("preDisable"); btnNext.click(function() { moveWidth = (parseInt(cell.width()) + parseInt(cell.css("margin-right")) + parseInt(cell.css("margin-left")) + parseInt(cell.css("padding-right")) + parseInt(cell.css("padding-left")) + parseInt(cell.css("border-right-width")) + parseInt(cell.css("border-left-width"))) * step; if (moveNum < moveLimit) { moveNum++; currLeft = currLeft - moveWidth; } else { moveNum = 0; currLeft = 0; } $(this).parents("#" + o).find(".moveable").animate({ left: currLeft + "px" }, scrollTime); }); btnPre.click(function() { moveWidth = (parseInt(cell.width()) + parseInt(cell.css("margin-right")) + parseInt(cell.css("margin-left")) + parseInt(cell.css("padding-right")) + parseInt(cell.css("padding-left")) + parseInt(cell.css("border-right-width")) + parseInt(cell.css("border-left-width"))) * step; if (moveNum > 0) { moveNum--; currLeft = currLeft + moveWidth; } else { moveNum = moveLimit; currLeft = 0 - moveLimit * moveWidth; } $(this).parents("#" + o).find(".moveable").animate({ left: currLeft + "px" }, scrollTime); }); if (autoPlay == true) { autoChange = setInterval(function() { btnNext.click(); }, autoTime); obj.mouseenter(function() { clearInterval(autoChange); }); obj.mouseleave(function() { autoChange = setInterval(function() { btnNext.click(); }, autoTime); }); } } else { btnPre.addClass("preDisable"); btnNext.addClass("nextDisable"); } } /*弹出窗口*/ function popWinA(s, hover) { var objOpner = $("." + s + " .opener"); var objShuter = $("." + s + " .shuter"); if (hover == false) { if (objOpner.length) { objOpner.click(function() { if ($(this).parents(".over").length) { $(this).parents("." + s).removeClass("over"); } else { $("." + s).removeClass("over"); $(this).parents("." + s).addClass("over"); } }); } if (objShuter.length) { objShuter.click(function() { $(this).parents("." + s).removeClass("over"); }); } } if (hover == true) { if ($.browser.msie) { objOpner.parents("." + s).hover(function() { $(this).addClass("over"); }, function() { $(this).removeClass("over"); }); } else { objOpner.parents("." + s).mouseover(function() { $(this).addClass("over"); }).mouseout(function() { $(this).removeClass("over"); }); } } } /*带有延时的弹出窗口*/ function popWinB(s, hover) { var current; var timer, timer2; var objOpner = $("." + s + " .opener"); var objShuter = $("." + s + " .shuter"); if (hover == false) { if (objOpner.length) { objOpner.click(function() { if ($(this).parents(".over").length) { $(this).parents("." + s).removeClass("over"); } else { $("." + s).removeClass("over"); $(this).parents("." + s).addClass("over"); } }); } if (objShuter.length) { objShuter.click(function() { $(this).parents("." + s).removeClass("over"); }); } } if (hover == true) { if ($.browser.msie) { objOpner.parents("." + s).hover(function() { current = $(this); if (timer2) { clearTimeout(timer2); } timer = setTimeout(function() { current.parent().children(".over").removeClass("over"); current.addClass("over"); }, 350); }, function() { if (timer) { clearTimeout(timer); timer2 = setTimeout(function() { current.parent().children(".over").removeClass("over"); }, 350); } }); } else { objOpner.parents("." + s).mouseover(function() { current = $(this); if (timer2) { clearTimeout(timer2); } timer = setTimeout(function() { current.parent().children(".over").removeClass("over"); current.addClass("over"); }, 350); }) objOpner.parents("." + s).mouseleave(function() { if (timer) { clearTimeout(timer); timer2 = setTimeout(function() { current.parent().children(".over").removeClass("over"); }, 350); } }); } } } /*通用的页面居中弹出层函数*/ function letCenter(o) { obj = $("#" + o); var A = document.documentElement.clientWidth; var E = document.documentElement.clientHeight; var D = obj.height(); var B = obj.width(); var C = document.documentElement.scrollTop + document.body.scrollTop obj.css({ position: "absolute", top: E / 2 - D / 2 + C, left: A / 2 - B / 2 }); } function centerPopA(o, clickOut) { var opener = $("#" + o + "Opener"); var popup = $("#" + o); opener.click(function() { $("#popBack").css({ opacity: "0" }); $("#popBack").show(); popup.show(); letCenter(o); $(".shuter").click(function() { popup.hide(); $("#popBack").hide(); }); if (clickOut == true) { $("#popBack").click(function() { popup.hide(); $("#popBack").hide(); }); } }); } var centerPopB = { open: function() { $("#popBack").css({ opacity: "0" }); $("#popBack").show(); }, close: function() { $("#popBack").hide(); } } function clearLine(o, clearRight, clearBot) { //去除九宫格排列的产品的最后一个单元的纵向分隔线,以及最后一行的底部分隔线 //参数:包围窗口ID或CLASS | 是否清除右边线 bool值 | 是否清除最后一行的线 bool值 var obj = $(o); var cell = obj.children(".itemCell") var totalCell = cell.length; if (clearRight == true) { for (i = 4; i <= totalCell; i = i + 4) { cell.children(".inner").eq(i - 1).addClass("bdrRW"); } } if (clearBot == true) { var lastLine = totalCell % 4; if (lastLine == 0) { lastLine = 4; } for (i = totalCell - lastLine + 1; i <= totalCell; i++) { cell.eq(i - 1).addClass("noBdrBot"); } } } /*自定义显示页数分页控件*/ function initPaginationBarA(defaultText) { if (!$("#setShowPageNav").length || !$("#btnSetShowPageNav").length) { return; } $("#setShowPageNav").focus(function() { $("#btnSetShowPageNav").show(); }); $("#setShowPageNav").keydown(function(event) { if (event.keyCode == 13 || event.keyCode == 32) { $("#btnSetShowPageNav").click(); } }); $("#setShowPageNav").blur(function() { if ($("#setShowPageNav").val() == "" || $("#setShowPageNav").val() == defaultText) { $("#btnSetShowPageNav").hide(); } }); $("#btnSetShowPageNav").click(function() { var url = $("#btnSetShowPageNav").attr("ref1"); var qty = $.trim($("#setShowPageNav").val()); var page = parseInt(qty, 10); var number = 1; var regexNumber = /^[0-9]*[1-9][0-9]*$/; if (regexNumber.test(qty) == false || isNaN(page) == true || page <= 0) { number = 1; } else if (page > 9999) { number = 9999; } else { number = page; } url = url.replace("paramPageNumber", number); window.location.href = url; return false; }); } /*控制产品横列或纵列布局*/ function initProductListLayout() { if (!$(".viewtype").length || !$("#listByRow").length || !$("#listByGrid").length) { return; } $("#listByRow").click(function() { switchRowStyle(); var jsonObject = JSON.parse('{"GridRow":"Row"}'); $.newegg.cookie.set("ProductLayOut", jsonObject); }); $("#listByGrid").click(function() { switchGridStyle(); var jsonObject = JSON.parse('{"GridRow":"Grid"}') $.newegg.cookie.set("ProductLayOut", jsonObject); }); $(".viewtype a").each(function() { var page = $(this).find("span"); if (page.length) { var pageSize = page.text(); $(this).click(function() { var jsonObject = JSON.parse('{"PageSize":"' + pageSize + '"}'); $.newegg.cookie.set("ProductLayOut", jsonObject); }); } }); var style = $.newegg.cookie.get("ProductLayOut", "GridRow"); if (style == 'Grid') { switchGridStyle(); } else if (style == 'Row') { switchRowStyle(); } else { switchGridStyle(); } } /*列表转换为row排列*/ function switchRowStyle() { $(".prolist").addClass("viewlist"); $("#listByRow").addClass("alistnow"); $("#listByGrid").removeClass("awindnow"); // $("#listByRow").removeClass("listByRow").addClass("listByRowOn"); // $("#listByGrid").removeClass("listByGridOn").addClass("listByGrid"); //$(".itemGridB").children(".itemCell").removeClass("noBdrBot"); //clearLine(".itemGridB",true,false); //$(".itemGridB").children(".itemCell").last().addClass("noBdrBot"); } /*列表转换为Grid排列*/ function switchGridStyle() { $(".prolist").removeClass("viewlist"); $("#listByRow").removeClass("alistnow"); $("#listByGrid").addClass("awindnow"); //$(".itemGridA").children(".itemCell").removeClass("noBdrBot"); //clearLine(".itemGridA",true,true); } /* jeff.s.zan * Date: 2010-09-20 * 参数: 容器ID(带#号), 一屏显示的导航项个数 切换间隔时间(毫秒),动画时间(单帧切换的时间) * 使用方法: * var 对象名 = new MyImgPlayer(); * 对象名.loading("#TopAD", 2, 2000); */ var slideBannerA = function() { var o; var nav var navCell; var btnPre; var btnNext; var showedCell; var currBanner = 0; var currScreen = 1; var bannerNum = 0; var moveEvent; var stepTime = 0; var moveHeight = 0; var moveWidth = 0; var currHeight = 0; var currWidth = 0; var self = this; var aniTime = 300; var timer, timer2; this.loading = function(obj, showCell, alterTime, animTime) { o = $(obj); nav = o.children(".slideNav"); navCell = nav.children(".navOuter").children(".moveable").children("a"); btnPre = nav.children(".pre"); btnNext = nav.children(".next"); stepTime = alterTime; showedCell = showCell; aniTime = animTime; bannerNum = $(".bannerOuter a", obj).length; moveHeight = o.children(".bannerOuter").children(".moveable").children("a").height(); moveWidth = (parseInt(navCell.width()) + parseInt(navCell.css("margin-right")) + parseInt(navCell.css("margin-left")) + parseInt(navCell.css("padding-right")) + parseInt(navCell.css("padding-left")) + parseInt(navCell.css("border-right-width")) + parseInt(navCell.css("border-left-width"))) * showedCell; if (bannerNum == 0) { o.hide(); } else if (bannerNum == 1) { nav.hide(); } else { navCell.eq(0).addClass("curr"); this.alterBanner(); (o).children(".bannerOuter").mouseenter(function() { clearInterval(moveEvent); }); (o).children(".bannerOuter").mouseleave(function() { self.alterBanner(); }); navCell.mouseenter(function() { clearInterval(moveEvent); navCell.eq(currBanner).removeClass("curr"); currBanner = navCell.index(this); self.changeBig(true); }); navCell.mouseleave(function() { self.alterBanner(); }); if (showedCell < bannerNum) { btnNext.click(function() { currScreen++; self.changeScreen(false); }); btnPre.click(function() { currScreen--; self.changeScreen(false); }); } else { btnPre.addClass("preDisable") btnNext.addClass("nextDisable") } } } this.alterBanner = function() { moveEvent = setInterval(function() { currBanner++; if (currBanner > 1 && (currBanner % showedCell) == 0 && currBanner < bannerNum) { currScreen++; self.changeScreen(true); } else if (currBanner >= bannerNum) { currBanner = 0; currScreen = 1; self.changeScreen(false); } else { self.changeBig(true); } }, stepTime); } this.changeBig = function(isDelay) { nav.children(".navOuter").children(".moveable").children(".curr").removeClass("curr"); navCell.eq(currBanner).addClass("curr"); currHeight = (0 - moveHeight * currBanner) + "px"; if (isDelay == false) { o.children(".bannerOuter").children(".moveable").css("margin-top", currHeight); } else { o.children(".bannerOuter").children(".moveable").animate({ marginTop: currHeight }, aniTime); } } this.changeScreen = function(isDelay) { if (currScreen > Math.ceil(bannerNum / showedCell)) { currScreen = 1; } if (currScreen < 1) { currScreen = Math.ceil(bannerNum / showedCell); } currWidth = (0 - moveWidth * (currScreen - 1)) + "px"; nav.children(".navOuter").children(".moveable").animate({ left: currWidth }, aniTime); currBanner = showedCell * (currScreen - 1); self.changeBig(isDelay); } } var slideProA = function() { var obj; var cell; var step; var total; var btnPre; var btnNext; var stepTime; var currLeft; var self = this; var dir; this.loading = function(o, num, moveStep, time, isAutoPlay, autoTime) { /*参数:包围对象id,每屏显示数量,每次滚动数量,滚动时间,是否自动滚动,自动滚动间隔时间*/ obj = $("#" + o); cell = $("#" + o + " .moveable .itemCell"); stepTime = time; step = moveStep; total = cell.length; btnPre = $("#" + o + " .pre"); btnNext = $("#" + o + " .next"); currLeft = 0; dir = "right"; screenNum = num if (total <= screenNum) { btnPre.addClass("preDisable"); btnNext.addClass("nextDisable"); } else { //点击向右滚动按钮 btnNext.click(function() { //alert(currLeft); dir = "right"; self.moveCell(); currLeft = currLeft + step; if (currLeft >= total) { currLeft = 0; self.showAll(); } }); //点击向右滚动按钮 btnPre.click(function() { currLeft = currLeft - step; dir = "left"; if (currLeft <= 0 - step) { currLeft = total - step; self.hideAll(); self.moveCell(); } else { self.moveCell(); } }); //自动播放 if (isAutoPlay == true) { var autoPlay = setInterval(function() { btnNext.click(); }, autoTime); obj.mouseenter(function() { clearInterval(autoPlay); }); obj.mouseleave(function() { autoPlay = setInterval(function() { btnNext.click(); }, autoTime); }); } } } this.showAll = function() { /*显示全部单元*/ cell.fadeIn(stepTime); } this.hideAll = function() { /*隐藏全部单元*/ cell.fadeOut(stepTime); } this.moveCell = function() { /*滚动缩略图*/ if (dir == "right") { for (i = currLeft; i <= currLeft + step - 1; i++) { cell.eq(i).fadeOut(stepTime); } } else { for (i = currLeft; i <= currLeft + step - 1; i++) { cell.eq(i).fadeIn(stepTime); } } } } /*页头所有商品分类菜单展开效果*/ function allCateNav() { var timer; var currNo; var currPop; var currNav; var tempCurr; $(".allCateNav").mouseenter(function() { $(".allCateNav .catePop").removeClass("catePopShow"); }); $(".allCateNav .cateLevel1 li").mouseenter(function() { currNo = $(this).find("a").attr("rel"); tempCurr = $(this); currPop = $(".allCateNav .catePop" + currNo); currNav = tempCurr; if (timer) { clearTimeout(timer); } timer = setTimeout(function() { $(".allCateNav .cateLevel1 .over").removeClass("over"); $(".allCateNav .catePopShow").removeClass("catePopShow"); currNav.addClass("over"); currPop.addClass("catePopShow"); }, 350); }); $(".allCateNav .cateLevel1 li").mouseleave(function() { if (timer) { clearTimeout(timer); } timer = setTimeout(function() { currNav.removeClass("over"); currPop.removeClass("catePopShow"); }, 350); }); $(".allCateNav .catePop").mouseenter(function() { if (timer) { clearTimeout(timer); } }); $(".allCateNav .catePop").mouseleave(function() { currPop = $(".allCateNav .catePopShow"); currNav = $(".allCateNav .cateLevel1 .over"); if (timer) { clearTimeout(timer); } timer = setTimeout(function() { currNav.removeClass("over"); currPop.removeClass("catePopShow"); }, 350); }); } /*限制textArea输入框的长度*/ var limitTextAreaInputLength = { byID: function(id, len) { var textArea = $("#" + id); if (!textArea.length) { return; } limitTextAreaInputLength.addEvent(textArea, len); }, byClass: function(className, len) { var textAreaList = $("." + className); if (!textAreaList.length) { return; } textAreaList.each(function() { limitTextAreaInputLength.addEvent($(this), len); }); }, addEvent: function(obj, len) { obj.keydown(function() { if ($(this).val().length > len) { return false; } return true; }); obj.keyup(function() { var text = $(this).val(); if (text.length > len) { $(this).val(text.substring(0, len)); } }); } } /*end 通用效果函数*/ /*start 业务函数*/ //搜索提示 var autoFilledKeywords = { json: null, xml: null, index: 0, key: "", formID: "Search", textboxID: "topSearch", // 输入框 ID autofilledviewID: "searchtip", // 弹出层 ID url: "", deferExec: null, keyIndex: 0, returnIndex: 0, clickObj: null, onload: function() { var afk = autoFilledKeywords; if ($(afk.autofilledviewID)) { $("#" + afk.autofilledviewID).mouseover(function(event) { var o = event.srcElement || event.target; if (o) { if (o.nodeName == "A") { var lastId = afk.index; afk.index = o["id"].replace(/[a-z]/ig, ""); if (lastId == 0 || lastId != afk.index) { afk.highlight(afk.index, lastId); } } } }); $("#" + afk.autofilledviewID).click(function(event) { var o = event.srcElement || event.target; var keyWord = afk.decodeHtml($(o).text()); $("#" + afk.textboxID).val(keyWord); }); } if ($(afk.textboxID)) { $("#" + afk.textboxID).keyup(afk.query); $("#" + afk.textboxID).blur(function() { afk.keyIndex = 0; afk.returnIndex = 0; }); }; $("body").click(function(event) { var o = event.srcElement || event.target; if (o["id"] != afk.autofilledviewID && o["id"] != afk.textboxID && autoFilledKeywords.clickObj != event.target) { afk.hide(); }; }); }, query: function(event) { var afk = autoFilledKeywords; var keyCode = event.which || event.keyCode; switch (keyCode) { case 13: case 37: case 39: break; case 27: afk.clear(); break; case 38: if ($("#" + afk.autofilledviewID).html().length > 0) { afk.show(); var lastId = afk.index; if (lastId <= 1) { afk.index = $("#" + afk.autofilledviewID + " a").length; } else { --afk.index; }; $("#" + afk.textboxID).val(afk.decodeHtml($("#line" + afk.index).text())); afk.highlight(afk.index, lastId); } break; case 40: if ($("#" + afk.autofilledviewID).html().length > 0) { afk.show(); var lastId = afk.index; if (lastId >= $("#" + afk.autofilledviewID + " a").length) { afk.index = 1; } else { ++afk.index; }; $("#" + afk.textboxID).val(afk.decodeHtml($("#line" + afk.index).text())); afk.highlight(afk.index, lastId); }; break; default: if (this.id) { var key = jQuery("#" + this.id).val(); if (key == "") { afk.clear(); afk.key = ""; return; }; clearTimeout(afk.deferExec); afk.deferExec = setTimeout(function() { var igonreKeys = ",9,16,17,19,20,33,34,35,36,37,38,39,40,45,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,144,145,"; var n = (igonreKeys.split("," + keyCode + ",")).length - 1; if (n <= 0) { afk.keyIndex++; key = escape(key).replace(/\*/g, "%2A").replace(/\+/g, "%2B").replace(/-/g, "%2D").replace(/\./g, "%2E").replace(/\//g, "%2F").replace(/@/g, "%40").replace(/_/g, "%5F"); $.ajax({ type: "GET", dataType: "json", url: afk.url, data: "Keyword=" + key, success: function(msg) { afk.returnIndex++; if (afk.keyIndex == afk.returnIndex) { afk.fill(msg.Data); } }, error: function() { afk.returnIndex++; } }); }; }, 300); } }; }, clear: function() { var afk = autoFilledKeywords; afk.abort(); var o = $(afk.autofilledviewID); if (o) { $(o).empty(); afk.hide(); }; afk.index = 0; }, abort: function() { var afk = autoFilledKeywords; if (afk.xml) { afk.xml.abort(); }; }, show: function() { // 显示弹出框 $("#" + autoFilledKeywords.autofilledviewID).show(); }, hide: function() { // 隐藏弹出框 $("#" + autoFilledKeywords.autofilledviewID).hide(); }, highlight: function(id, lastId) { if (id) { var o = $("#line" + id); if (o) { $(o).css("background", "#DEDEDE"); $(o).css("font-weight", "bold"); $(o).css("color", "#F60"); $(o).css("text-decoration", "none"); }; }; if (lastId) { var lasto = jQuery("#line" + lastId); if (lasto) { $(lasto).css("background", ""); $(lasto).css("font-weight", ""); $(lasto).css("color", ""); $(lasto).css("text-decoration", ""); }; }; }, fill: function(el) { var afk = autoFilledKeywords; json = el; if (json) { var html = []; for (var i = 0, l = $(json).length; i < l; i++) { var keyd = json[i].Keyword.replace(/\&/g, "&").replace(/\>/g, ">").replace(/\' + keyd + ''); }; $("#" + this.autofilledviewID).html(""); if ($(json).length > 0) { afk.show(); } else { afk.hide(); }; } else { afk.hide(); }; }, decodeHtml: function(val) { return val.replace(/(")/g, "\"").replace(/(')/ig, "'").replace(/(<)/ig, "<").replace(/(>)/ig, ">").replace(/(&)/ig, "&"); } }; //新窗口打开 var openWinMode = { setAsycBlank: function(obj) { if ($.newegg.cookie.get("Blank") != "C" && $("#" + obj)) { var regexProductDetail = /Product\/\w{2,3}-\w{2,3}-\w{2,3}-?\w{0,3}\.htm/i; $("#" + obj).find("a").each(function() { if (regexProductDetail.test($(this).attr("href"))) { $(this).attr("target", '_blank'); } }); } }, setAllElement: function(objIdOrClass) { if ($.newegg.cookie.get("Blank") != "C") { $(objIdOrClass).find("a").each(function(i, link) { if ($(link).attr('ref') != 'noBlank') { $(link).attr("target", '_blank'); } }); } }, setElement: function(idOrClass, page, target, flag) { flag = flag || "i"; var reg = new RegExp(page, flag); if (reg.test(window.location.href)) { $(idOrClass).attr("target", target); } }, setBlank: function(blank) { blank = blank == 'N' ? '_blank' : ''; var currentUrl = window.location.href; var links = document.getElementsByTagName("a"); var regexProductDetail = /Product\/\w{2,3}-\w{2,3}-\w{2,3}-?\w{0,3}\.htm/i; // 明细页面 var regexShoppingCart = /Shopping\/ShoppingCart\.aspx/i; // 购物车 var regexWishList = /Customer\/WishList\.aspx/i; // 我的收藏 var regexHelpCenter = /Service\/HelpCenter\.aspx/i; // 帮忙中心 var regexNews = /News\/.*\.htm/i; // 公告明细 var regexNewsList = /NewsList\/.*\.htm/i; // 公告列表 var regexPromotion = /Promotion.*\.htm/i; // 促销页面 var regexSearch = /Search.aspx/i; // 搜索页面 var regexLogin = /Customer\/Login.aspx/i; // 登陆页面 var regexRegister = /Customer\/Register.aspx/i; // 注册页面 var regexLogout = /Customer\/Logout.aspx/i; // 退出页面 var regexCustomerDefault = /Customer\/Default.aspx/i; // 我的账户中心页面 var isHome = false; if (location.href.toLowerCase() == $.newegg.buildWWW("default.aspx").toLowerCase() || location.href.toLowerCase() == $.newegg.buildWWW('').toLowerCase()) { isHome = true; } var link, isCurrentPage; var length = links.length; for (var i = length; i--; ) { link = links[i]; var linkHref = $(link).attr('href'); var linkAttr = $(link).attr('ref'); if (!linkHref) { linkHref = ''; } if (!linkAttr) { linkAttr = ''; } isCurrentPage = linkHref.indexOf('#') == -1 ? false : true; if (isHome == true) { if (linkHref != '' && linkHref.indexOf('javascript') == -1 && linkHref != currentUrl && linkAttr != 'noBlank' && !regexLogin.test(link) && !regexRegister.test(link) && !regexLogout.test(link) && !regexSearch.test(link) && isCurrentPage == false) { link.target = blank; } } else { if (linkAttr != 'noBlank') { if (linkAttr == 'blank') { var regexCountDown = /CountDown.*\.htm/i // 限时抢购 var regexTreasurehunt = /Treasurehunt.*\.htm/i // 寻宝专区 var regexOrderQuery = /Order\/OrderQuery.aspx/i // 我的订单 var regexMyGiftCard = /Customer\/MyGiftCard.aspx/i // 我的礼品卡 if (linkHref == currentUrl || (regexCountDown.test(link) && regexCountDown.test(currentUrl)) || (regexOrderQuery.test(link) && regexOrderQuery.test(currentUrl)) || (regexMyGiftCard.test(link) && regexMyGiftCard.test(currentUrl)) || (regexWishList.test(link) && regexWishList.test(currentUrl)) || (regexSearch.test(link) && regexSearch.test(currentUrl)) || (regexShoppingCart.test(link) && regexShoppingCart.test(currentUrl)) || (regexTreasurehunt.test(link) && regexTreasurehunt.test(currentUrl))) { link.target = ''; } else { link.target = blank; } } else if (regexProductDetail.test(link) && isCurrentPage == false) // 商品明细 { link.target = blank; } else if (regexHelpCenter.test(link) && !regexHelpCenter.test(currentUrl)) // 帮忙中心 { link.target = blank; } else if (regexNews.test(link) && blank == '_blank') // 公告明細 { link.target = blank; } else if (regexPromotion.test(link) && !regexPromotion.test(currentUrl)) // 促销页面 { link.target = blank; } else if (regexNewsList.test(link) && !regexNewsList.test(currentUrl)) // 公告列表 { link.target = blank; } else if (regexShoppingCart.test(link) && !regexShoppingCart.test(currentUrl)) // 购物车 { link.target = blank; } else if (regexWishList.test(link) && !regexWishList.test(currentUrl)) // 我的收藏 { link.target = blank; } else if (regexCustomerDefault.test(link) && !regexCustomerDefault.test(currentUrl)) // 我的个人中心 { link.target = blank; } } } } }, updateState: function(v) { var blank = $.newegg.cookie.get('Blank'); if (blank == v) { return; } if (v) { $.newegg.cookie.set('Blank', v, { topdomain: true, expires: 9999 }); openWinMode.setBlank(v); var customerID = $.newegg.cookie.get('CustomerLogin', 'ID'); if (customerID != '') { $.post('Ajax/Customer/AjaxCustomerWebsiteProfile.aspx', { displayMethod: v }); } } else { openWinMode.setBlank(blank); }; }, initButtonState: function(stateBlank) { if (stateBlank == 'N') { $("#btnNoBlank a").removeClass("curr"); $("#btnNewBlank a").addClass("curr"); } else if (stateBlank == 'C') { $("#btnNewBlank a").removeClass("curr"); $("#btnNoBlank a").addClass("curr"); } }, init: function() { var blank = $.newegg.cookie.get('Blank'); if ($("#openSet").length) { // 仅首页有显示 $(".btnNewWin").click(function() { if ($.newegg.cookie.get('Blank') == 'N') return; $("#setOk").show(); $("#setOk").fadeOut(3000); openWinMode.initButtonState('N'); openWinMode.updateState('N'); }); //点击新窗口按钮,显示设置成功。 $(".btnOldWin").click(function() { if ($.newegg.cookie.get('Blank') == 'C') return; $("#setOk").show(); $("#setOk").fadeOut(3000); openWinMode.initButtonState('C'); openWinMode.updateState('C'); }); //点击原窗口按钮,显示设置成功。 if (blank == 'N' || blank == 'C') { openWinMode.initButtonState(blank); openWinMode.setBlank(blank); } else { openWinMode.initButtonState('N'); openWinMode.setBlank('N'); } } else { // 非首页不显示设置 // 但需要设置是否新窗口 if (blank != 'C') { openWinMode.setBlank('N'); } } } }; var init_mycart = function(obj) { var mycartpage = 1; var mycartcur = 1; var $this = $(obj), totalnum = $this.find("li").length, numperpage = 5, temp = $this.find("ul"); mycartpage = Math.ceil(totalnum / numperpage) var app = function() { temp = $("