{"version":3,"sources":["webpack:///webpack/bootstrap 11dcdacea85a044e6f18","webpack:///./index.js","webpack:///./core/adv-seed.js","webpack:///./core/adv.js","webpack:///./core/util.js","webpack:///./core/net.js","webpack:///./core/razor.js","webpack:///./core/cookie.js","webpack:///./core/storage.js","webpack:///./core/dom.js","webpack:///./core/flash.js","webpack:///./core/eventemitter.js","webpack:///./core/iadv.js","webpack:///./core/collection.js","webpack:///./core/adbase.js","webpack:///./core/dr_base.js","webpack:///./core/adfilter.js","webpack:///./core/FtBrowser.js","webpack:///./core/FtUrl.js","webpack:///./core/adCenter.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","document","createElement","adv","window","_filters","filter","fn","push","advConfigs","configFiles","enableAdMark","API_ADDRESSS","alllget","ADV_CONFIGS","LoaderType","initConfig","beforeConfig","$","jQuery","this","filterMarks","config","filEls","each","eval","razor","con","attr","isCommercial","PAGESPEC","selector","advid","adCenter","loadConfigFile","file","global","flashCallback","merge","length","arguments","result","obj","key","initializing","fnTest","test","xyz","Class","extend","ns","prop","firstLetter","split","toUpperCase","Error","Fn","classType","base","attrName","tmp","ret","apply","classs","init","constructor","CONFIGS","baseDir","debug","VERSION","ENUM","ADVSTATE","uninit","inited","setuped","played","stoped","dispose","ERROR","initInterface","EVENTS","configed","POSITION","topLeft","topCenter","topRight","middleLeft","middleCenter","middleRight","bottomLeft","bottomCenter","bottomRight","RANDOMS","allways","firstTime","isIE","ver","b","innerHTML","getElementsByTagName","nativeForEach","Array","forEach","toString","typeEnum","class2type","replace","toLowerCase","ohasOwn","util","sendIpa","el","ipaCode","exposure","_jc_ping","sendTrack","random","arrOrNum","type","Math","floor","guid","substring","getType","String","isObject","isString","isNum","isArray","isFunction","isWindow","isPlainObject","nodeType","e","arrDel","arr","slice","concat","iterator","context","urlParams","url","params","location","href","indexOf","str","value","objToQueryStr","encodeParam","queryArr","encodeURIComponent","join","trim","poll","condition","onSuccess","onTimeout","timeout","interval","endTime","Date","setTimeout","isIE8","isIE7","isMobile","a","navigator","userAgent","net","jsonp","callback","fun","jsEl","src","appendChild","proxy","proxyParams","u","_symbol","_isEnableEmptyValue","template","model","_getTemplateFunction","multiline","HtmlHelper","segments","SegmentHelper","parse","segmentIndex","conditionOpeningBraceCount","functionContent","ContentHandler","toFunctionContent","Function","escape","SegmentTypeEnum","RegexCollection","VariableFirstChar","Variable","ConditionAndLoop","ElseCondition","Unicode","parseModel","templateString","len","currentChar","substr","_handleString","nextChar","_handleEscape","_handleScriptBlock","_handleCondition","_handleVariable","_handleCloseBrace","startIndex","segmentType","content","char","index","templateStringRemain","variableString","exec","variableLength","_getScriptBlockLength","openingBraceCount","openningBraceIndex","code","variable","use","symbol","enableEmptyValue","isEnableEmptyValue","match","TypeError","grp","fromCharCode","parseInt","cookie","DAY","HOUR","MINUTE","setCookie","expires","domain","path","cookieString","date","setTime","getTime","toUTCString","getCookie","reg","RegExp","unescape","deleteCookie","storage","set","localStorage","setItem","valArr","getItem","remove","removeItem","recycled","root","documentElement","W3C","dispatchEvent","q","ss","val","sObj","charAt","getElementById","className","search","ll","tagName","j","$isAdd","readyList","readyBound","realReady","isReady","body","doScrollCheck","doScroll","error","bindReady","readyState","addEventListener","DOMContentLoaded","attachEvent","toplevel","frameElement","rnospaces","rword","Dom","me","els","htmlStr","childNodes","removeChild","firstChild","create","data","hide","style","display","show","find","append","cel","appendTo","css","hasClass","cls","node","addClass","removeClass","classNames","cl","setAttribute","getAttribute","offset","doc","ownerDocument","pos","left","top","box","getBoundingClientRect","win","defaultView","parentWindow","vendor","compatMode","clientTop","clientLeft","scrollTop","pageYOffset","scrollLeft","pageXOffset","position","offsetParent","elem","parentOffset","width","html","outerHtml","on","phase","off","prefixes","camelize","target","cssName","host","camelCase","cssMap","cssNumber","array","oneObject","cssHooks","parseFloat","isFinite","float","background","getComputedStyle","styles","getPropertyValue","rnumnonpx","rposition","ie8","XDomainRequest","border","thin","medium","thick","currentStyle","rsLeft","runtimeStyle","pixelLeft","zoom","alpha","filters","opacity","clientWidth","clientHeight","computed","cssShow","visibility","rdisplayswap","method","clientProp","scrollProp","offsetProp","hidden","showHidden","offsetWidth","parent","parentNode","max","event","srcElement","which","charCode","keyCode","DOC","pageX","clientX","pageY","clientY","timeStamp","originalEvent","preventDefault","returnValue","stopPropagation","cancelBubble","fixEvent","removeEventListener","noop","detachEvent","easin","appendStyle","head","styleSheet","cssText","createTextNode","flash","embed","paramArr","id","allowScript","defultNetSetting","link","allowNet","flashvars","isFlv","source","flashLoader","height","funcVar","swfObj","getSWF","button","open","getParam","varsValue","varsKey","appName","events","listener","emit","console","log","EventEmitter","setup","play","stop","_","cursor","_arrData","reset","read","count","equal","pro","del","IAdv","options","state","generalAdMark","option","tmpl","zIndex","bindLink","showAdMark","markConfigs","markContainer","markConfig","advEl","getContainer","adMarkConfigs","shift","container","AdBase","ad","instance","passing","validate","accord","skipOnAccord","FtBase","adPool","popSort","THE_OTHER_ADSYS_API","AdCenter","Collection","t","default","resources","37wan","resourceid","timer","resource","clearTimeout","hasPkg","status","pkgid","disable","start","loader","delegate","configs","hash","loadScript","sendPv","eid","script","ready","_onreadystatechange","onreadystatechange","_onload","onload","callbackRuned","loadSource","versionPath","versionUpdateTimes","version","ADV_SYSTEM_DEBUG","DEBUG_AD","market17173","addAd","pvCode","pvList","pvTimer","pvItem","ad_code","resource_code","order_code","mpkg_id","Image","API_TIME_OUT","multiApiUnion","multiResources","unionLength","datas","chooseResource","orderIndex","unionKey","isMultiPkg","theotherid","loadAd","adMark","disablePv","execFilter","filterCon","filterConfig","LoaderBase","queueing","next","STATUS_LTIE8","overTime","$w","calcSize","scrollTimer","update","bind","_onResize","_onScroll","queueCount","preloadHeight","resizeTimer","updateTimer","checkForLoad","lazyLoaded","adEl","calcPosition","below","above","calcHeight","wHeight","screenHeight","$el"],"mappings":"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","file":"seed.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 11dcdacea85a044e6f18","require('./core/adv-seed.js')\r\nrequire('./core/adv.js')\r\nrequire('./core/util.js')\r\nrequire('./core/net.js')\r\nrequire('./core/razor.js')\r\nrequire('./core/cookie.js')\r\nrequire('./core/storage.js')\r\nrequire('./core/dom.js')\r\nrequire('./core/flash.js')\r\nrequire('./core/eventemitter.js')\r\nrequire('./core/iadv.js')\r\nrequire('./core/collection.js')\r\nrequire('./core/adbase.js')\r\nrequire('./core/dr_base.js')\r\nrequire('./core/adfilter.js')\r\nrequire('./core/FtBrowser.js')\r\nrequire('./core/FtUrl.js')\r\nrequire('./core/adCenter.js')\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","(function () {\n document.createElement('advfilter')\n var adv = window.adv = {\n _filters: [],\n filter: function (fn) {\n adv._filters.push(fn);\n }\n }\n var advConfigs = window.advConfigs = [];\n /*advConfigs.ADV_SYSTEM_DEBUG = true;\n advConfigs.DEBUG_AD={\n DrAlterAble:\"http://10.5.15.99:10086/ad/sources/dralterable/production.js\"\n };*/\n\n advConfigs.configFiles = [];\n advConfigs.enableAdMark = true;\n advConfigs.API_ADDRESSS = {\n alllget: 'http://17173im.alllget.com/main/s'\n };\n advConfigs.ADV_CONFIGS = {\n LoaderType: 'DefaultLoader' //DefaultLoader,LazyLoader.\n };\n var initConfig = false\n var beforeConfig = function(){\n var $ = window.jQuery || adv.$;\n this.filterMarks = $('advfilter')\n }\n\n advConfigs.config = function (config) {\n var $ = window.jQuery || adv.$;\n if(!initConfig){\n beforeConfig()\n initConfig = true\n var filEls = $('advfilter');\n //这个判断是为了兼容下载站的prototype这几百年前的烂裤\n if(filEls && filEls.each){\n filEls.each(function(i,n){\n eval(adv.razor(\"var fn = function(option){return option.@con}\",{con:$(n).attr('con')}))\n adv.filter(fn) \n })\n }\n }\n var isCommercial = window.PAGESPEC && window.PAGESPEC.isCommercial === true;\n if (!config || isCommercial) return;\n //use selector instead advid on new version\n if (!config.selector && config.advid) {\n config.selector = '.' + config.advid;\n }\n if (adv.adCenter) {\n adv.adCenter.config(config);\n } else {\n advConfigs.push(config);\n }\n };\n\n\n advConfigs.loadConfigFile = function (file) {\n if (!file) {\n return;\n }\n else if (window.adv) {\n adv.adCenter.loadConfigFile(file);\n } else {\n advConfigs.configFiles.push(file);\n }\n };\n\n/* advConfigs.RANDOMS = {\n allways: 'allways',\n firstTime: 'firstTime'\n }; */\n/* advConfigs.POSITION = {\n topLeft: 'topLeft',\n topCenter: 'topCenter',\n topRight: 'topRight',\n middleLeft: 'middleLeft',\n middleCenter: 'middleCenter',\n middleRight: 'middleRight',\n bottomLeft: 'bottomLeft',\n bottomCenter: 'bottomCenter',\n bottomRight: 'bottomRight'\n };\n */\n/* advConfigs.urlHash = function (path) {\n var rlt = '//';\n // var n = 0;\n // for (var i = 0; i < path.length; i++) {\n // n += path.charCodeAt(i);\n // }\n // n = Math.round(n % 3) + 1;\n rlt += 's' + '.17173cdn.com';\n return rlt + path;\n }; */\n /* var script;\n if (!document.getElementById('scriptadvcore')) {\n script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'http://10.5.15.99:10086/build/vda.test.js';\n //2p\n //script.src = 'http://ue.2pcdn.com/a/lib/vda/vda.js';\n //http://ue.2pcdn.com/a/lib/v1/images/favicon.ico\n //script.src = 'http://ue.17173cdn.com/cache/lib/v3/vda/adv-pak.min.js';\n script.id = 'scriptadvcore';\n document.getElementsByTagName('head')[0].appendChild(script);\n } */\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/adv-seed.js\n// module id = 1\n// module chunks = 0","/**\n * 广告系统基础库\n * @version\n v0.6.0 2015-12-15 14:51:01\n \t1. 增加模版引擎模块adv.razor\n 2. 增加配置文件加载器,可以设定符合某个条件时加载指定的某些配置文件.\n\t\t\t\teg:\n advConfigs.loadConfigFile([\n {\n filter:function(){\n return true;\n },\n configs:[\n 'http://10.5.15.99:10086/configs.js',\n 'http://10.5.15.99:10086/configs2.js'\n ]\n }\n ]);\n 3. 增加了几个工具方法,详细见api文档.\n \tv0.5.0\n \t增加版本号控制\n \tv0.4.0\n \t采买系统的曝光统计功能\n \tv0.3.0\n \t可自定义广告如何加载.并实现了两种默认的加载器:即时顺序(默认),按需加载\n v0.2.3\n 页面中有同样类型的广告同时执行时,现在都会正确的等待源代码脚本加载完毕再执行了. \n v0.2.2\n 改进adCenter的广告加载策略,修复加载bug.\n * @module adv\n * @class adv\n * @main adv\n * @static\n */\n(function(global) {\n 'use strict';\n global.adv = global.adv ||{}\n var adv = global.adv ;\n global.flashCallback = {};\n\n\n /**\n * 合并对象,后面的覆盖前面\n * @method merge\n * @namespace adv\n * @param {Object} args 要合并的对象(Object),如果参数长度为1,则参数将被合并到adv对象中\n * @return {Object} 合并后的对象\n * @static\n */\n adv.merge = function() {\n var length = arguments.length;\n if (length < 1) return {};\n if (length < 2) {\n return adv.merge(adv, arguments[0]);\n }\n var result = arguments[0];\n for (var i = 1; i < length; i++) {\n var obj = arguments[i];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n }\n return result;\n };\n\n\n var initializing = false,\n fnTest = /xyz/.test(function() { xyz; }) ? /\\bbase\\b/ : /.*/;\n\n /**\n * 所有构造函数的父类,ADV中所有构造函数都是通过adv.Class.extend来创建.\n * \n * @class Class\n * @namespace adv\n * @static\n */\n function Class() {}\n\n /**\n * 继承当前构造函数,创建新的构造函数\n * \n * @method extend\n * @param {String} ns 指定在adv根命名空间下的构造函数名称\n * @param {Object} prop 构造函数成员\n * @return Function 子类构造函数\n * @static\n */\n Class.extend = function(ns, prop) {\n /// \n /// 从当前类派生出子类,可以使用this.base()调用当前方法的父方法\n /// \n /// \n /// 附加到adv命名空间下的类名称\n /// \n /// \n /// 类成员,如果包含init方法,将会在调用构造函数时被自动调用\n /// \n ///\n if (arguments.length == 2) {\n var firstLetter = ns.split('')[0];\n if (firstLetter.toUpperCase() != firstLetter) {\n throw new Error(\"Constructor must begin with Uppercase letter:\" + ns);\n }\n var Fn = this.extend(prop);\n Fn.classType = ns;\n adv[ns] = Fn;\n return;\n }\n prop = arguments[0];\n var base = this.prototype;\n initializing = true;\n var prototype = new this();\n initializing = false;\n for (var name in prop) {\n prototype[name] = typeof prop[name] == \"function\" &&\n typeof base[name] == \"function\" && fnTest.test(prop[name]) ?\n (function(attrName, fn) {\n return function() {\n var tmp = this.base;\n this.base = base[attrName];\n\n var ret = fn.apply(this, arguments);\n this.base = tmp;\n\n return ret;\n };\n })(name, prop[name]) :\n prop[name];\n }\n\n function classs() {\n if (!initializing && this.init)\n this.init.apply(this, arguments);\n }\n\n classs.prototype = prototype;\n\n classs.prototype.constructor = classs;\n\n classs.extend = Class.extend;\n\n return classs;\n };\n\n adv.Class = Class;\n\n adv.CONFIGS = {\n baseDir: '//ue.17173cdn.com/a/lib/vda',\n //2p\n //baseDir: 'http://ue.2pcdn.com/a/lib/vda',\n debug: false\n };\n\tadv.CONFIGS = adv.merge(adv.CONFIGS,advConfigs.ADV_CONFIGS);\n adv.VERSION = 'v0.5.0';\n\n adv.merge({\n ENUM: {\n ADVSTATE: {\n uninit: 'uninit',\n inited: 'inited',\n setuped: 'setuped',\n played: 'played',\n stoped: 'stoped',\n dispose: 'dispose'\n },\n ERROR: {\n initInterface: 'can not init an interface'\n },\n EVENTS: {\n configed:'configed',\n inited: 'inited',\n setuped: 'setuped',\n played: 'played',\n stoped: 'stoped',\n dispose: 'disspose'\n },\n POSITION: {\n topLeft: 'topLeft',\n topCenter: 'topCenter',\n topRight: 'topRight',\n middleLeft: 'middleLeft',\n middleCenter: 'middleCenter',\n middleRight: 'middleRight',\n bottomLeft: 'bottomLeft',\n bottomCenter: 'bottomCenter',\n bottomRight: 'bottomRight'\n },\n RANDOMS: {\n //每次都随机\n allways: 'allways',\n //第一次随机\n firstTime: 'firstTime'\n }\n }\n });\n})(window);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/adv.js\n// module id = 2\n// module chunks = 0","/**\n *工具函数模块,提供了一系列辅助方法\n *\n * @class adv.util\n * @module adv\n * @static\n */\n(function (adv) {\n 'use strict';\n\n var isIE = function(ver){\n var b = document.createElement('b')\n b.innerHTML = ''\n return b.getElementsByTagName('i').length === 1\n }\n\n var nativeForEach = Array.prototype.forEach;\n\n var toString = Object.prototype.toString,\n typeEnum = {\n ARRAY: '[object Array]',\n NUM: '[object Number]',\n OBJECT: '[object Object]',\n STRING: '[object String]',\n FUNCTION: '[object Function]'\n };\n var class2type = {};\n var rword = /[^, ]+/g;\n var DONT_ENUM = \"propertyIsEnumerable,isPrototypeOf,hasOwnProperty,toLocaleString,toString,valueOf,constructor\".split(\",\");\n \"Boolean Number String Function Array Date RegExp Object Error\".replace(rword, function(name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n var oproto = Object.prototype;\n var ohasOwn = oproto.hasOwnProperty;\n adv.util = {\n /**\n \t* ping.js提供的点击,曝光统计接口\n\t\t\t*\n * 请注意,以下场景不需要手动调用此接口,广告库会自动绑定统计:广告本身只有一个统计代码,需要绑定到广告的容器(选择器为advid的元素)上,则只要在广告配置里加上ipaCode即可\n```\nadvConfigs.config({\n type: 'Ad17173Banner',\n advid:'ad17173indexbanner3',\n version:'v1.0.001',\n ipaCode:'4eae814d3b34f0abedb5a66676e1ba41',\n resources:[{\n width:1100,\n height:120,\n source: 'http://i2.17173.itc.cn/2016/www/2016/gg/hd/06/01/app-0601-1000120-syban3.jpg',\n link: '//Cvda.17173.com/click?media_code=17173&ad_code=171731110&resource_code=1110&order_code=1008728'\n }]\n});\n```\n\t\t\t* 以上情况不能满足时(比如多个按钮需要分别统计),才需要手动调用此方法,此时不应以ipaCode作为统计配置字段名以防止重复统计\n\t\t\t*\n \t* @method sendIpa\n \t* @param {Element} el 要绑定统计的dom元素,可以为jquery包裹的,也可以为原生的.但是元素必须已经在页面上存在\n * @param {String} ipaCode 统计代码\n * @param {Boolean} exposure 是否发送曝光统计请求,默认为true.在一个广告有多个分离的dom元素需要绑定同一个代码时,一般只有第一个绑定曝光统计,以防止重复曝光.\n \t* @return undefined\n \t*/\n sendIpa:function(el,ipaCode,exposure){\n\t\t\twindow._jc_ping = window._jc_ping || [];\n _jc_ping.push([\n '_trackBlock',//_trackModuleArea\n el,\n ipaCode,\n exposure\n ]);\n },\n sendTrack:function(el,ipaCode,exposure){\n this.sendIpa(el,ipaCode,exposure);\n },\n /**\n \t* 返回一个大于等于0,小于指定的参数或者数组长度的随机值\n \t*\n \t* @method random\n \t* @param {Number,Array} 随机的范围,如果为数组,则为数组长度\n \t* @return Number\n \t*/\n random: function (arrOrNum) {\n /// \n ///\n /// \n /// \n /// 随机值范围,或者要获取随机数组索引的数组\n /// \n /// \n var type = toString.call(arrOrNum);\n if (type === typeEnum.ARRAY) return adv.util.random(arrOrNum.length);\n if (type === typeEnum.NUM) {\n return Math.floor(Math.random() * arrOrNum);\n }\n return 0;\n },\n /**\n \t* 生成一个唯一的\"adv+16位guid\"字符串\n \t*\n \t* @method guid\n \t* @return String\n \t*/\n guid: function () {\n /// \n /// 生成随机唯一字符串\n /// \n ///\n return 'adv' + Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n },\n /**\n \t* 对象类型判断,获取类型字符串\n \t*\n \t* @method getType\n \t* @param {任意}\n \t* @return String\n \t*/\n getType: function (obj) {\n if (obj == null) {\n return String(obj);\n }\n return typeof obj === \"object\" || typeof obj === \"function\" ?\n class2type[toString.call(obj)] || \"object\" :\n typeof obj;\n },\n isObject: function (obj) {\n return toString.call(obj) === typeEnum.OBJECT;\n },\n isString: function (obj) {\n return toString.call(obj) === typeEnum.STRING;\n },\n isNum: function (obj) {\n return toString.call(obj) === typeEnum.NUM;\n },\n isArray:function (obj){\n return toString.call(obj) === typeEnum.ARRAY;\n },\n isFunction: function (obj) {\n return toString.call(obj) === typeEnum.FUNCTION;\n },\n /**\n \t* 判断对象是否为window对象\n \t*\n \t* @method isWindow\n \t* @param {Object} 要判断的对象\n \t* @return Boolean\n \t*/\n isWindow: function (obj) {\n if (!obj)\n return false;\n return obj == obj.document && obj.document != obj;\n },\n /**\n \t* 判断对象是否为简单对象\n \t*\n \t* @method isPlainObject\n \t* @param {Object} obj\n \t* @return Boolean\n \t*/\n isPlainObject: function (obj) {\n if (adv.util.getType(obj) !== \"object\" || obj.nodeType || this.isWindow(obj)) {\n return false;\n }\n try {\n if (obj.constructor && !ohasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n } catch (e) {\n return false;\n }\n return true;\n },\n /**\n \t* 删除数组中指定索引的值\n \t*\n \t* @method arrDel\n \t* @param {Array} arr 待操作数组\n * @param {Number} n 要删除的索引\n \t* @return Array\n \t*/\n arrDel: function (arr, n) {\n if (n < 0) return arr;\n return arr.slice(0, n).concat(arr.slice(n + 1, arr.length));\n },\n /**\n \t* 遍历对象或者数组\n \t*\n \t* @method forEach\n \t* @param {Object,Array} obj 要遍历的对象或数组\n * @param {Function} iterator 遍历函数\n * @parma {Object} context 指定iterator的this\n \t* @return\n \t*/\n forEach: function (obj, iterator, context) {\n if (obj == null) return;\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context);\n //这里不是判断是否为数组,这样就可以枚举NodeList,arguments了\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n iterator.call(context, obj[i], i, obj);\n }\n } else {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) iterator.call(context, obj[key], key, obj);\n }\n }\n },\n filter: function () {\n },\n /**\n \t* 解析并返回url参数部分\n \t*\n \t* @method urlParams\n \t* @param {String} url 要解析的url,如果为空,则取location.href\n \t* @return Object 参数键值对\n \t*/\n urlParams: function (url) {\n var params = {};\n url = url || location.href;\n //如果地址包含'?',则取?之后的部分\n url = ~url.indexOf('?') ? url.split('?')[1] : url;\n if (url) {\n url.replace(/([^=&]+)=([^&]*)/gi, function (str, key, value) {\n params[key] = value;\n });\n }\n return params;\n },\n /**\n \t* 将对象转为url参数格式\n \t*\n \t* @method objToQueryStr\n \t* @param {String} obj 要转换的对象\n * @param {Boolean} encodeParam 自动encode参数值 默认为true.\n \t* @return String url参数字符串\n \t*/\n objToQueryStr: function (obj,encodeParam) {\n var queryArr = [];\n encodeParam = encodeParam === false?encodeParam:true;\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n queryArr.push(key + '=' + (encodeParam?encodeURIComponent(obj[key]) : obj[key]));\n }\n }\n return queryArr.join('&');\n },\n trim:function(str){\n return str.trim? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n /**\n \t* 轮询执行某个方法,在超时之前只要有一次返回true(所有!!后为true的值),则执行onSuccess,否则执行onError\n \t*\n * @example\n //模拟4秒后为true的条件\n var condition = false\n\n //5秒内如果判断方法返回true,则执行成功回调\n adv.util.poll(function(){\n return condition;\n },function(){\n console.log('success');\n },function(){\n console.log('error')\n },5000,500)\n\n //4秒后将条件设为true\n setTimeout(function(){\n r = true\n },4000);\n \t* @method poll\n \t* @param {Function} condition 用于轮询执行(条件判断)的函数\n * @param {Function} onSuccess 符合条件后执行的回调\n * @param {Function} onTimeout 超时回调\n * @param {Number} timeout 多少毫秒后超时(默认2000毫秒)\n * @param {Number} interval 轮询间隔(默认100毫秒)\n \t* @return undefined\n \t*/\n poll:function(condition, onSuccess, onTimeout, timeout, interval) {\n var endTime = new Date()*1 + (timeout || 2000);\n interval = interval || 100;\n (function p(){\n if(condition()){\n onSuccess();\n }\n else if(new Date()*1 < endTime){\n setTimeout(p,interval);\n }\n else{\n onTimeout();\n }\n })();\n },\n isIE:isIE(),\n isIE8:isIE(8),\n isIE7: isIE(7)\n };\n\n\n adv.util.isMobile = (function () {\n var a = navigator.userAgent,\n b = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPod'],\n c = false;\n\n for (var i = 0; i < b.length; i++) {\n if (a.indexOf(b[i]) > -1) {\n c = true;\n break;\n }\n }\n return c;\n })();\n\n\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/util.js\n// module id = 3\n// module chunks = 0","/**\n * net模块\n * @class net\n * @namespace adv\n */\n(function (adv) {\n 'use strict';\n\n adv.net = {\n /**\n * 发送jsonp请求,并执行回调\n *\n * @method jsonp\n * @param {String} url 请求地址\n * @param {Object} params 参数\n * @param {Function} callback 回调函数\n * @return {Undefined}\n * @static\n */\n jsonp: function (url, params, callback) {\n if(adv.util.isFunction(params)){\n callback = params;\n }\n params = params || {};\n if (callback) {\n var fun = adv.util.guid();\n window[fun] = callback;\n params.callback = fun;\n }\n url = url + '?' + adv.util.objToQueryStr(params);\n var jsEl = document.createElement('script');\n jsEl.src = url;\n document.getElementsByTagName('head')[0].appendChild(jsEl);\n },\n /**\n * 代理不支持jsonp的http请求,返回jsonp格式的结果\n *\n * @method jsonp\n * @param {String} url 请求地址\n * @param {Object} param 参数\n * @param {Function} callback 回调函数\n * @return {Undefined}\n * @static\n */\n proxy:function(url,params,callback){\n var proxyUrl = '//ap.17173.com';\n params = params || {};\n\t\t\tvar proxyParams = {\n u: url,\n p:adv.util.objToQueryStr(params,false)\n };\n this.jsonp(proxyUrl,proxyParams,callback);\n }\n };\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/net.js\n// module id = 4\n// module chunks = 0","/**\n * 简单的字符串处理,html模版引擎\n\t*\n***示例1: 普通字符串**\n```\nconsole.log(adv.razor('hello:@name',{name:'大雕怪'}));\n```\n![](http://7ximoo.com1.z0.glb.clouddn.com/db96ct187ftg9cqp1tl90080bp.png)\n*\n***示例1: 变量后紧跟字符串,需要人工指定变量名**\n```\nconsole.log(adv.razor('
',{width:35}));\n```\n结果:\n```\n
\n```\n*\n***示例3: 多行文本模版** \n\n![](http://7ximoo.com1.z0.glb.clouddn.com/rhyzqn7stb9vbbelh660lbsrww.png) \n\n![](http://7ximoo.com1.z0.glb.clouddn.com/fy3e1n0cutzqipbz0pyd2a9110.png) \n*\n\n***示例4: if,for,while循环** \n![](http://7ximoo.com1.z0.glb.clouddn.com/urqdf62k7h6kotiieoh6tcxuk5.png) \n\n![](http://7ximoo.com1.z0.glb.clouddn.com/14itv6zcalcjtq1931tj86y74x.png) \n\n```\n var tmpl = '@for(var i = 0; i < 2; i++){@data[i].name}';\n var data = {data:[{name:'骑兵',age:10086},{name:'民兵',age:10086}]};\n console.log(adv.razor(tmpl,data));\n```\n![](http://7ximoo.com1.z0.glb.clouddn.com/osy41n5eymkxdrekb3yf6dqntg.png)\n*\n***示例5: 转义符** \n```\nconsole.log(adv.razor('hmjlr123@@gmail.com',''));\n```\n![](http://7ximoo.com1.z0.glb.clouddn.com/6aoicrt1m2027l6vtyssabyxbh.png)\n\t*\n * @class adv.razor\n * @module adv\n * @static\n\n */\n(function (adv) {\n 'use strict';\n\n var _symbol = '@', _isEnableEmptyValue = true;\n\n var razor = function (template, model) {\n var func;\n if (arguments.length == 1)\n return _getTemplateFunction(template);\n else {\n if (typeof template === 'function'){\n template = adv.razor.multiline(template);\n \t\t}\n func = _getTemplateFunction(template);\n return func.call(null, razor.HtmlHelper, model);\n }\n };\n\n var _getTemplateFunction = function (template, model) {\n var parseModel = {\n segments: [],\n segmentIndex: 0,\n conditionOpeningBraceCount: 0\n };\n\n //获取字符串和变量片段\n var segments = SegmentHelper.parse(parseModel, template);\n\n //获取模版函数正文\n var functionContent = ContentHandler.toFunctionContent(segments);\n\n return new Function('Html', 'm', functionContent);\n };\n\n razor.HtmlHelper = {\n escape: function (value) {\n return ('' + value).replace(/&/g, '&').replace(//g, '>')\n .replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n }\n };\n\n //片段类型枚举\n var SegmentTypeEnum = {\n String: 0,\n Variable: 1,\n ScriptBlock: 2\n };\n\n //正则集合\n var RegexCollection = {\n VariableFirstChar: /^[\\(_a-zA-Z]/,\n Variable: /^(?:(?:\\()(?:new\\s+)?[_a-zA-Z0-9]+(?:\\.|[-\\+*\\/^=<>?:]|[\\[\\(][^\\]\\)]*[\\]\\)]|[_a-zA-Z0-9]+)*(?:\\))|(?:new\\s+)?[_a-zA-Z0-9]+(?:\\.|[\\[\\(][^\\]\\)]*[\\]\\)]|[_a-zA-Z0-9]+)*)/,\n ConditionAndLoop: /^(?:if|for|while)\\s*\\(/,\n ElseCondition: /^[\\s\\r\\n\\t]*else(?:\\s*{|[\\s\\t]+if\\()?/,\n \tUnicode:/\\\\u([\\d\\w]{4})/gi\n };\n\n //片段处理\n var SegmentHelper = {\n parse: function (parseModel, templateString) {\n\n var len = templateString.length;\n\n for (var i = 0; i < len; i++) {\n\n //从关键符号开始匹配\n var currentChar = templateString.substr(i, 1);\n\n if (currentChar === _symbol) {\n //将前面的内容添加到片段数组\n this._handleString(parseModel, templateString, parseModel.segmentIndex, i - parseModel.segmentIndex);\n\n //获取关键符号的下个字符\n var nextChar = templateString.substr(i + 1, 1);\n\n if (nextChar === _symbol) {\n this._handleEscape(parseModel, _symbol, parseModel.segmentIndex);\n i = parseModel.segmentIndex - 1;\n }\n else if (nextChar === '}') {\n this._handleEscape(parseModel, nextChar, parseModel.segmentIndex);\n i = parseModel.segmentIndex - 1;\n }\n else if (nextChar === '{') {\n //脚本块模式\n this._handleScriptBlock(parseModel, templateString, i + 1);\n //更新索引\n i = parseModel.segmentIndex - 1;\n }\n else if (RegexCollection.VariableFirstChar.test(nextChar)) {\n\n if (RegexCollection.ConditionAndLoop.test(templateString.substr(i + 1))) {\n //条件或循环模式\n this._handleCondition(parseModel, templateString, i + 1);\n }\n else {\n //变量模式\n this._handleVariable(parseModel, templateString, i + 1);\n }\n i = parseModel.segmentIndex - 1;\n }\n }\n else if (currentChar === '}' && parseModel.conditionOpeningBraceCount > 0) {\n //处理 } 符号闭合\n this._handleCloseBrace(parseModel, templateString, i);\n\n //如果后面的字符为\\r \\n 空格,然后接else 和 else if的话,则进行后续的逻辑处理\n if (RegexCollection.ElseCondition.test(templateString.substr(parseModel.segmentIndex))) {\n this._handleCondition(parseModel, templateString, i + 1);\n }\n\n i = parseModel.segmentIndex - 1;\n }\n }\n\n if (parseModel.segmentIndex < len) {\n this._handleString(parseModel, templateString, parseModel.segmentIndex, len - parseModel.segmentIndex);\n }\n\n return parseModel.segments;\n\n },\n _handleString: function (parseModel, templateString, startIndex, len) {\n if (len == 0) {\n return;\n }\n\n parseModel.segments[parseModel.segments.length] = {\n segmentType: SegmentTypeEnum.String,\n content: templateString.substr(startIndex, len)\n };\n parseModel.segmentIndex = startIndex + len;\n },\n _handleEscape: function (parseModel, char, index) {\n parseModel.segmentIndex = index + 2;\n parseModel.segments[parseModel.segments.length] = {\n segmentType: SegmentTypeEnum.String,\n content: char\n };\n },\n _handleVariable: function (parseModel, templateString, index) {\n var templateStringRemain = templateString.substr(index);\n var variableString = RegexCollection.Variable.exec(templateStringRemain)[0];\n\n //更新片段索引\n parseModel.segmentIndex = index + variableString.length;\n\n //将变量块添加到片段数组\n parseModel.segments[parseModel.segments.length] = {\n segmentType: SegmentTypeEnum.Variable,\n content: variableString\n };\n },\n _handleScriptBlock: function (parseModel, templateString, index) {\n //获取变量长度\n var variableLength = this._getScriptBlockLength(templateString, index);\n\n //更新片段索引\n parseModel.segmentIndex = index + variableLength;\n\n //将变量块添加到片段数组\n parseModel.segments[parseModel.segments.length] = {\n segmentType: SegmentTypeEnum.ScriptBlock,\n content: templateString.substr(index + 1, variableLength - 2)\n };\n\n parseModel.conditionOpeningBraceCount++;\n },\n _getScriptBlockLength: function (templateString, index) {\n var openingBraceCount = 0;\n for (var i = index; i < templateString.length; i++) {\n var currentChar = templateString.substr(i, 1);\n if (currentChar === '{') {\n openingBraceCount++;\n }\n else if (currentChar === '}') {\n if (--openingBraceCount === 0) {\n return i - index + 1;\n }\n else {\n openingBraceCount--;\n }\n }\n };\n throw \"no matches found }\";\n },\n _handleCondition: function (parseModel, templateString, index) {\n var templateStringRemain = templateString.substr(index);\n var openningBraceIndex = templateStringRemain.indexOf('{');\n parseModel.segments[parseModel.segments.length] = {\n segmentType: SegmentTypeEnum.ScriptBlock,\n content: templateStringRemain.substr(0, openningBraceIndex + 1)\n };\n parseModel.segmentIndex = index + openningBraceIndex + 1;\n parseModel.conditionOpeningBraceCount++;\n },\n _handleCloseBrace: function (parseModel, templateString, index) {\n //将前面的内容添加到片段数组\n this._handleString(parseModel, templateString, parseModel.segmentIndex, index - parseModel.segmentIndex);\n\n //将 } 加入 script block 片段\n parseModel.segments[parseModel.segments.length] = {\n segmentType: SegmentTypeEnum.ScriptBlock,\n content: templateString.substr(index, 1)\n };\n\n parseModel.segmentIndex = index + 1;\n parseModel.conditionOpeningBraceCount--;\n }\n };\n\n var ContentHandler = {\n escape: function (code) {\n return code.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\").replace(/[\\n\\r]/g, '');\n },\n toFunctionContent: function (segments) {\n var content = [\"var __c=[];with(m||{}){\"];\n for (var i = 0; i < segments.length; i++) {\n if (segments[i].segmentType === SegmentTypeEnum.String) {\n content[content.length] = \"__c[__c.length] = '\" + this.escape(segments[i].content) + \"';\";\n }\n else if (segments[i].segmentType === SegmentTypeEnum.Variable) {\n var variable = segments[i].content;\n if (_isEnableEmptyValue) {\n content[content.length] = \"if(typeof \" + variable + \" !== 'undefined'){__c[__c.length] = \" + variable + \";}\";\n }\n else {\n content[content.length] = \"__c[__c.length] = \" + variable + \";\";\n }\n }\n else if (segments[i].segmentType === SegmentTypeEnum.ScriptBlock) {\n content[content.length] = segments[i].content;\n }\n }\n content[content.length] = \"};return __c.join('');\";\n return content.join('');\n }\n };\n\n razor.use = function (symbol) {\n _symbol = symbol;\n return this;\n };\n\n razor.enableEmptyValue = function (isEnableEmptyValue) {\n _isEnableEmptyValue = isEnableEmptyValue;\n return this;\n };\n\n\n\n /**\n \t* 将函数内部注释作为字符串模版使用,用于方便的编写多行文本\n \t* 格式见示例,@preserve表示uglify压缩时跳过此注释\n *\n * @example\n![](http://7ximoo.com1.z0.glb.clouddn.com/d8kavo3yqbu1hwqsio0whr3gl2.png)\n\n![](http://7ximoo.com1.z0.glb.clouddn.com/hliqnf7exrsh5l8xlu6z2rem3r.png)\n \t*\n \t* @method multiline\n \t* @param {Function} fn 用作字符串模版的函数\n \t* @return String 文本内容\n * @static\n \t*/\n razor.multiline = function(fn){\n var reTemplate = /\\/\\*!?(?:\\@preserve)?[ \\t]*(?:\\r\\n|\\n)([\\s\\S]*?)(?:\\r\\n|\\n)[ \\t]*\\*\\//;\n var match = reTemplate.exec(fn.toString());\n if (!match) {\n throw new TypeError('Template does not exist,or unread');\n }\n return match[1].toString().replace(RegexCollection.Unicode, function (match, grp) {\n \treturn String.fromCharCode(parseInt(grp, 16)); } );;\n };\n\n\t\tadv.razor = razor;\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/razor.js\n// module id = 5\n// module chunks = 0","/**\n * cookie模块\n * @class cookie\n * @namespace adv\n */\n(function (adv) {\n 'use strict';\n adv.cookie = {\n //1天所包含的毫秒数\n DAY: 86400000,\n HOUR: 3600000,\n MINUTE: 60000,\n /**\n * 写cookie\n * @method setCookie\n * @param {String} name cookie名\n * @param {String} value cookie值\n * @param {Number} expires 过期时间\n * @param {String} domain 域\n * @param {String} path 路径\n * @return {undefined}\n * @static\n */\n setCookie: function (name, value, expires, domain,path) {\n var cookieString = name + \"=\" + escape(value);\n //判断是否设置过期时间\n if (expires) {\n var date = new Date();\n date.setTime(date.getTime() + expires);\n cookieString += \"; expires=\" + date.toUTCString();\n }\n if (domain) {\n cookieString += \"; domain=\" + domain;\n }\n if (path) {\n cookieString +=\"; path=\" + path;\n }\n document.cookie = cookieString;\n },\n /**\n \t* 取得指定名称的cookie值\n \t* \n \t* @method getCookie\n \t* @param {String} name cookie名\n \t* @return {String,null} cookie值,如果name不存在,则返回null\n * @static\n \t*/\n getCookie: function (name) {\n var arr, reg = new RegExp(\"(^| )\" + name + \"=([^;]*)(;|$)\");\n if (arr = document.cookie.match(reg)) {\n return unescape(arr[2]);\n }\n return null;\n },\n /**\n \t* 删除指定名称的cookie\n \t* \n \t* @method deleteCookie\n \t* @param {String} name cookie名\n \t* @return {undefined}\n * @static\n \t*/\n deleteCookie: function (name) {\n adv.cookie.setCookie(name, 1, -1000);\n }\n };\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/cookie.js\n// module id = 6\n// module chunks = 0","/**\n *简单的浏览器端keyvalue存储模块,如果浏览器支持local Storage,则使用,不支持则使用cookie\n *能避免使用存储的,尽量避免,因为如果不支持local storage,大量的cookie会提高请求头的数据量.\n *\n * @class storage\n * @namespace adv\n **/\n(function(adv) {\n 'use strict';\n adv.storage = {\n /**\n * 根据key存储一条数据\n * @method set\n * @param {String} key 关键字\n * @param {String,Number} value 值,不可包含“;;\",因为此符号为存储过期时间分隔符\n * @param {Number} expires 过期时间(从现在开始后的n毫秒)\n * @param {String} domain 域\n * @return {undefined}\n * @static\n */\n set: function(key, value, expires) {\n if (window.localStorage) {\n adv.storage.set = function(key, value, expires) {\n var date = new Date();\n date.setTime(date.getTime() + expires);\n if (expires) {\n value += ';;' + date * 1;\n }\n localStorage.setItem(key, value);\n };\n } else {\n adv.storage.set = function(key, value, expires) {\n adv.cookie.setCookie(key, value, expires);\n };\n }\n adv.storage.set(key, value, expires);\n },\n /**\n \t* 根据关键字取出储存的值\n \t*\n \t* @method get\n \t* @param {String} key 关键字\n \t* @return {String} value 值,过期或者不存在,则返回undefined\n * @static\n \t*/\n get: function(key) {\n if (window.localStorage) {\n adv.storage.get = function(key) {\n var value = localStorage.getItem(key), valArr;\n if (value) {\n valArr = value.split(';;');\n if (!valArr[1] || (valArr[1] - new Date() * 1) > 0) {\n return valArr[0];\n }\n }\n };\n } else {\n adv.storage.get = function(key) {\n return adv.cookie.getCookie(key);\n };\n }\n return adv.storage.get(key);\n },\n /**\n \t* 根据关键字移除储存的值\n \t* \n \t* @method remove\n \t* @param {String} key 关键值\n \t* @return {undefined}\n * @static\n \t*/\n remove: function(key) {\n if (window.localStorage) {\n adv.storage.remove = function(key) {\n localStorage.removeItem(key);\n };\n } else {\n adv.storage.remove = function(key) {\n adv.cookie.deleteCookie(key);\n };\n }\n adv.storage.remove(key);\n }\n };\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/storage.js\n// module id = 7\n// module chunks = 0","/**\n * 类似jquery,提供基本的dom操作集合\n *\n * @class adv.$\n * @namespace adv\n **/\n(function (adv) {\n 'use strict';\n\n var recycled = document.createElement('div');\n var root = document.documentElement;\n var W3C = window.dispatchEvent;\n \n var create = function (htmlStr) {\n recycled.innerHTML = htmlStr;\n var els = [];\n while(recycled.childNodes.length){\n els.push(recycled.removeChild(recycled.firstChild));\n }\n return els;\n };\n var selector = function (q, o) {\n var obj = [];\n //查询表达式必须为字符串,并且不能为空。\n if (!adv.util.isString(q) || q == '') return obj;\n\n //使用空格分割,只处理第一个表达式\n var ss = q.split(' ');\n\n //获取属性\n var attr = '';\n var s = ss[0].split(':')[0];\n if (s != ss[0])\n attr = ss[0].split(':')[1];\n\n var val = s.split('[')[0];\n if (val != s)\n val = s.split('[')[1].replace(/[\",\\]]/g, '');\n else\n val = '';\n s = s.split('[')[0];\n\n\n var sObj = null;\n //当父对象不存在时,使用document;\n o = o || document;\n switch (s.charAt(0)) {\n case '#':\n //ID选择器\n sObj = document.getElementById(s.substr(1));\n if (sObj) obj.push(sObj);\n break;\n case '.':\n //类选择器\n var l = o.getElementsByTagName('*');\n var c = s.substr(1);\n for (var i = 0; i < l.length; i++)\n if (l[i].className && adv.util.isFunction(l[i].className.search) && l[i].className.search('\\\\b' + c + '\\\\b') != -1){\n obj.push(l[i]);\n }\n break;\n default:\n //根据tag获取元素\n obj = o.getElementsByTagName(s);\n break;\n }\n\n if (val) {\n //[t=val]筛选属性匹配\n var l = [];\n var a = val.split('=');\n for (var i = 0; i < obj.length; i++)\n if (a.length == 2 && obj[i][a[0]] == a[1]) l.push(obj[i]);\n obj = l;\n }\n\n if (attr) {\n //: 筛选属性匹配\n var l = [];\n for (var i = 0; i < obj.length; i++)\n if (obj[i][attr]) l.push(obj[i]);\n obj = l;\n }\n\n if (ss.length > 1) {\n //递归处理表达式后续内容\n //父元素为已获取的所有元素\n var l = [];\n for (var i = 0; i < obj.length; i++) {\n var ll = selector(q.substr(ss[0].length + 1), obj[i]);\n if (ll.tagName) l.push(ll);\n else\n for (var j = 0; j < ll.length; j++) l.push(ll[j]);\n }\n obj = l;\n }\n\n if (sObj && ss.length == 1) {\n //当为ID选择器时,直接返回对象。\n obj = sObj;\n if (obj) obj.length = 1;\n } else {\n //去除数组中重复元素\n var l = [];\n for (var i = 0; i < obj.length; i++) obj[i].$isAdd = false;\n for (var i = 0; i < obj.length; i++) {\n if (!obj[i].$isAdd) {\n obj[i].$isAdd = true;\n l.push(obj[i]);\n }\n }\n obj = l;\n }\n return obj;\n };\n\n \n var readyList = [], readyBound = false, DOMContentLoaded;\n var ready = function(fn) {\n // Attach the listeners\n bindReady();\n\n // If the DOM is already ready\n if (adv.isReady) {\n // Execute the function immediately\n fn.call(document, adv);\n\n } else if (readyList) {\n readyList.push(fn);\n }\n return this;\n };\n\n var realReady = function() {\n // Make sure that the DOM is not already loaded\n if (!adv.isReady) {\n // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n if (!document.body) {\n return setTimeout(realReady, 13);\n }\n\n // Remember that the DOM is ready\n adv.isReady = true;\n\n // If there are functions bound, to execute\n if (readyList) {\n // Execute all of them\n var fn, i = 0;\n while ((fn = readyList[i++])) {\n fn.call(document, adv);\n }\n\n // Reset the list of functions\n readyList = null;\n }\n }\n };\n\n var doScrollCheck = function() {\n if (adv.isReady) {\n return;\n }\n\n try {\n // If IE is used, use the trick by Diego Perini\n // http://javascript.nwbox.com/IEContentLoaded/\n document.documentElement.doScroll(\"left\");\n } catch (error) {\n setTimeout(doScrollCheck, 1);\n return;\n }\n\n // and execute any waiting functions\n realReady();\n };\n\n var bindReady = function() {\n if (readyBound) return;\n readyBound = true;\n if (document.readyState === \"complete\") {\n return realReady();\n }\n // Mozilla, Opera and webkit nightlies currently support this event\n if (document.addEventListener) {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", DOMContentLoaded, false);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", realReady, false);\n\n // If IE event model is used\n } else if (document.attachEvent) {\n // ensure firing before onload,\n // maybe late but safe also for iframes\n document.attachEvent(\"onreadystatechange\", DOMContentLoaded);\n\n // A fallback to window.onload, that will always work\n window.attachEvent(\"onload\", realReady);\n\n // If IE and not a frame\n // continually check to see if the document is ready\n var toplevel = false;\n\n try {\n toplevel = window.frameElement == null;\n } catch (e) { }\n\n if (document.documentElement.doScroll && toplevel) {\n doScrollCheck();\n }\n }\n };\n adv.isReady = false;\n\n\n var rnospaces = /\\S+/g;\n var rword = /[^, ]+/g; //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach\n var Dom = adv.Dom = adv.Class.extend({\n init: function (q, o) {\n var me = this;\n this.els = [];\n if (q) {\n //判断是否为元素节点\n if (q.nodeType) {\n this.els.push(q);\n }\n else if (adv.util.isFunction(q)) {\n ready(q);\n }\n else if (adv.util.trim(q).charAt(0) === '<') {\n this.els = this.els.concat(create(adv.util.trim(q)));\n } else {\n this.els = this.els.concat(selector(q, o));\n }\n }\n this.length = this.els.length;\n this.each(function (i,data) {\n me[i] = data;\n });\n },\n each: function(callback){\n adv.util.forEach(this.els, function (el, i) {\n callback(i,el);\n });\n return this;\n },\n /**\n \t* 遍历当前的元素集合\n \t* \n \t* @method forEach\n \t* @param {Function} callback 回调函数,函数签名function(元素本身,序号)\n \t* @return this\n \t*/\n forEach: function (callback) {\n adv.util.forEach(this.els, function (el, i) {\n callback(el, i);\n });\n return this;\n },\n /**\n \t* 隐藏当前元素\n \t* \n \t* @method hide\n \t* @return this\n \t*/\n hide: function () {\n this.forEach(function (el) {\n el.style.display = 'none';\n });\n return this;\n },\n /**\n \t* 从页面dom结构中移除当前元素或其子元素\n \t* \n \t* @method remove\n \t* @param {String} q 选择器,在当前元素的子元素中查找并移除元素,为空则移除当前元素\n \t* @return this\n \t*/\n remove:function() {\n \n },\n //TODO 还原inline还是block等初始状态,而不是全部block\n /**\n \t* 显示当前元素\n \t* \n \t* @method show\n \t* @return this\n \t*/\n show: function () {\n this.forEach(function (el) {\n el.style.display = 'block';\n });\n return this;\n },\n /**\n \t* 查找子元素\n \t* \n \t* @method find\n \t* @param {String} q 选择器\n \t* @return this\n \t*/\n find: function (q) {\n return new Dom(q, this.els[0]);\n },\n /**\n \t* 向当前元素插入子元素\n \t* \n \t* @method append\n \t* @param {adv.$,String} el 要插入的元素或html字符串\n \t* @return this\n \t*/\n append: function (el) {\n var me = this;\n if (this.length) {\n if (adv.util.isString(el) || el.nodeType === 1) {\n el = new adv.Dom(el);\n }\n if (el.length) {\n el.each(function (i,cel) {\n me.els[0].appendChild(cel);\n });\n }\n }\n return this;\n },\n /**\n \t* 将当前元素插入到另一个元素中\n \t* \n \t* @method appendTo\n \t* @param {adv.$,String} el 要作为容器包含当前元素的元素\n \t* @return this\n \t*/\n appendTo: function (el) {\n el.append(this);\n return this;\n },\n /**\n \t* 设置样式\n \t* \n \t* @method css\n \t* @param {String} name 样式名\n * @param {String,Number} value 样式值\n \t* @return this\n \t*/\n css: function (name, value) {\n if (adv.util.isPlainObject(name)) {\n for (var i in name) {\n adv.Dom.css(this, i, name[i]);\n }\n } else {\n var ret = adv.Dom.css(this, name, value);\n }\n return ret !== void 0 ? ret : this;\n },\n /**\n \t* 判断是否包含指定的class名\n \t* \n \t* @method hasClass\n \t* @param {String} cls class名\n \t* @return this\n \t*/\n hasClass: function (cls) {\n var node = this[0] || {};\n if (node.nodeType === 1 && node.className) {\n return (\" \" + node.className + \" \").indexOf(\" \" + cls + \" \") > -1;\n }\n return false;\n },\n /**\n \t* 添加class\n \t* \n \t* @method addClass\n \t* @param {String} cls class名\n \t* @return this\n \t*/\n addClass: function (cls) {\n var node = this[0] || {};\n if (cls && typeof cls === \"string\" && node.nodeType === 1) {\n if (!node.className) {\n node.className = cls;\n } else {\n var arr = node.className.match(rnospaces);\n cls.replace(rnospaces, function(a) {\n if (arr.indexOf(a) === -1) {\n arr.push(a);\n }\n });\n node.className = arr.join(\" \");\n }\n }\n return this;\n },\n /**\n \t* 移除class\n \t* \n \t* @method removeClass\n \t* @param {String} cls class名\n \t* @return this\n \t*/\n removeClass: function (cls) {\n var node = this[0] || {};\n if (cls && typeof cls > \"o\" && node.nodeType === 1 && node.className) {\n var classNames = cls.match(rnospaces) || [];\n var cl = classNames.length;\n var set = \" \" + node.className.match(rnospaces).join(\" \") + \" \";\n for (var c = 0; c < cl; c++) {\n set = set.replace(\" \" + classNames[c] + \" \", \" \");\n }\n node.className = set.slice(1, set.length - 1);\n }\n return this;\n },\n /**\n \t* 设置或获取属性值\n \t* \n \t* @method attr\n \t* @param {String} name 属性名\n * @param {String,Number} value 要设置的属性值,如果为空,则返回当前属性值\n \t* @return this或者属性值\n \t*/\n attr: function (name, value) {\n if (arguments.length === 2) {\n this[0].setAttribute(name, value);\n return this;\n } else {\n return this[0].getAttribute(name);\n }\n },\n /**\n \t* 获取元素在页面中的位置\n \t* @example\n * adv.$('#div1');\n * {left:100,top:200};\n \t* @method offset\n \t* @return Object\n \t*/\n offset:function() {\n var node = this[0],\n doc = node && node.ownerDocument;\n var pos = {\n left: 0,\n top: 0\n };\n if (!doc) {\n return pos;\n }\n //http://hkom.blog1.fc2.com/?mode=m&no=750 body的偏移量是不包含margin的\n //我们可以通过getBoundingClientRect来获得元素相对于client的rect.\n //http://msdn.microsoft.com/en-us/library/ms536433.aspx\n var box = node.getBoundingClientRect(),\n //chrome1+, firefox3+, ie4+, opera(yes) safari4+ \n win = doc.defaultView || doc.parentWindow,\n root = (navigator.vendor || doc.compatMode === \"BackCompat\") ? doc.body : doc.documentElement,\n clientTop = root.clientTop >> 0,\n clientLeft = root.clientLeft >> 0,\n scrollTop = win.pageYOffset || root.scrollTop,\n scrollLeft = win.pageXOffset || root.scrollLeft;\n // 把滚动距离加到left,top中去。\n // IE一些版本中会自动为HTML元素加上2px的border,我们需要去掉它\n // http://msdn.microsoft.com/en-us/library/ms533564(VS.85).aspx\n pos.top = box.top + scrollTop - clientTop;\n pos.left = box.left + scrollLeft - clientLeft;\n return pos;\n },\n position: function () {\n var offsetParent,\n offset,\n elem = this[0],\n parentOffset = {\n top: 0,\n left: 0\n };\n if (!elem)return;\n if (this.css(\"position\") === \"fixed\") {\n offset = elem.getBoundingClientRect();\n } else {\n offsetParent = this.offsetParent(); //得到真正的offsetParent\n offset = this.offset(); // 得到正确的offsetParent\n if (offsetParent[0].tagName !== \"HTML\") {\n parentOffset = offsetParent.offset();\n }\n parentOffset.top += adv.Dom.css(offsetParent[0], \"borderTopWidth\", true);\n parentOffset.left += adv.Dom.css(offsetParent[0], \"borderLeftWidth\", true);\n }\n return {\n top: offset.top - parentOffset.top - adv.Dom.css(elem, \"marginTop\", true),\n left: offset.left - parentOffset.left - adv.Dom.css(elem, \"marginLeft\", true)\n };\n },\n offsetParent: function () {\n var offsetParent = this[0].offsetParent || root;\n while (offsetParent && (offsetParent.tagName !== \"HTML\") && adv.Dom.css(offsetParent, \"position\") === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n return adv.$(offsetParent || root);\n },\n width:function() {\n var node = this[0];\n },\n //height:function() {\n //},\n /**\n \t* 获取或设置当前元素的html内容(子元素)\n \t* \n \t* @method html\n \t* @param {String} html 如果为空,则获取html内容,不为空,则设置html内容\n \t* @return this或者innerHTML\n \t*/\n html:function(html) {\n if (!html) {\n return this.length ? this[0].innerHTML : '';\n }\n else {\n this.append(html);\n }\n return this;\n },\n /**\n \t* 获取当前元素的html(区别于html(),此方法包含自己)\n \t*\n \t* @method outerHtml\n \t* @return outerHTML\n \t*/\n outerHtml:function(){\n return adv.$('
').append(this[0]).html();\n },\n /**\n \t* 绑定事件,this指向元素本身\n \t* \n \t* @method on\n \t* @param {String} type 事件类型\n * @param {Function} fn 事件函数\n \t* @return this\n \t*/\n on: function (type, fn, phase) {\n this.forEach(function (el) {\n adv.Dom.on(el, type, fn, phase);\n });\n },\n /**\n \t* 移除事件绑定\n \t* \n \t* @method off\n \t* @param {String} type 事件类型\n * @param {Function} fn 要移除的事件函数\n \t* @return this\n \t*/\n off: function (type, fn, phase) {\n this.forEach(function (el) {\n adv.Dom.off(el, type, fn, phase);\n });\n }\n //animate:function() {\n \n //}\n });\n\n\n var prefixes = [\"\", \"-webkit-\", \"-o-\", \"-moz-\", \"-ms-\"];\n adv.Dom.cssName = function (name, host, camelCase) {\n if (cssMap[name]) {\n return cssMap[name];\n }\n host = host || root.style;\n for (var i = 0, n = prefixes.length; i < n; i++) {\n camelCase = camelize(prefixes[i] + name);\n if (camelCase in host) {\n return (cssMap[name] = camelCase);\n }\n }\n return null;\n };\n\n function camelize(target) {\n if (target.indexOf(\"-\") < 0 && target.indexOf(\"_\") < 0) {\n return target;\n }\n return target.replace(/[-_][^-_]/g, function(match) {\n return match.charAt(1).toUpperCase();\n });\n };\n\n\n function oneObject(array, val) {\n if (typeof array === \"string\") {\n array = array.match(rword) || [];\n }\n var result = {},\n value = val !== void 0 ? val : 1;\n for (var i = 0, n = array.length; i < n; i++) {\n result[array[i]] = value;\n }\n return result;\n }\n\n var cssNumber = oneObject(\"columnCount,order,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom\");\n\n adv.Dom.css = function(node, name, value) {\n node = node[0];\n var prop = /[_-]/.test(name) ? camelize(name) : name;\n name = adv.Dom.cssName(prop) || prop;\n if (value === void 0 || typeof value === \"boolean\") {\n var fn = cssHooks[prop + \":get\"] || cssHooks[\"@:get\"];\n var val = fn(node, name);\n return value === true ? parseFloat(val) || 0 : val;\n } else if (value === \"\") { //请除样式\n node.style[name] = \"\";\n } else { //设置样式\n if (value == null || value !== value) {\n return;\n }\n if (isFinite(value) && !cssNumber[prop]) {\n value += \"px\";\n }\n fn = cssHooks[prop + \":set\"] || cssHooks[\"@:set\"];\n fn(node, name, value);\n }\n };\n\n /**css hook**/\n var cssMap = {\n \"float\": \"cssFloat\",\n background: \"backgroundColor\"\n };\n var cssHooks = adv.Dom.cssHooks = {};\n cssHooks[\"@:set\"] = function(node, name, value) {\n try { //node.style.width = NaN;node.style.width = \"xxxxxxx\";node.style.width = undefine 在旧式IE下会抛异常\n node.style[name] = value;\n } catch (e) {\n }\n };\n\n if (window.getComputedStyle) {\n cssHooks[\"@:get\"] = function(node, name) {\n var ret, styles;\n if (node && ( styles = window.getComputedStyle(node, null))) {\n ret = name === \"filter\" ? styles.getPropertyValue(name) : styles[name];\n if (ret === \"\") {\n ret = node.style[name]; //其他浏览器需要我们手动取内联样式\n }\n }\n return ret;\n };\n cssHooks[\"opacity:get\"] = function(node) {\n var ret = cssHooks[\"@:get\"](node, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n };\n } else {\n var rnumnonpx = /^-?(?:\\d*\\.)?\\d+(?!px)[^\\d\\s]+$/i;\n var rposition = /^(top|right|bottom|left)$/;\n var ie8 = !!window.XDomainRequest;\n var salpha = \"DXImageTransform.Microsoft.Alpha\";\n var border = {\n thin: ie8 ? '1px' : '2px',\n medium: ie8 ? '3px' : '4px',\n thick: ie8 ? '5px' : '6px'\n };\n cssHooks[\"@:get\"] = function(node, name) {\n //取得精确值,不过它有可能是带em,pc,mm,pt,%等单位\n if(!node) return 'auto';\n var currentStyle = node.currentStyle;\n var ret = currentStyle[name];\n if ((rnumnonpx.test(ret) && !rposition.test(ret))) {\n //①,保存原有的style.left, runtimeStyle.left,\n var style = node.style,\n left = style.left,\n rsLeft = node.runtimeStyle.left;\n //②由于③处的style.left = xxx会影响到currentStyle.left,\n //因此把它currentStyle.left放到runtimeStyle.left,\n //runtimeStyle.left拥有最高优先级,不会style.left影响\n node.runtimeStyle.left = currentStyle.left;\n //③将精确值赋给到style.left,然后通过IE的另一个私有属性 style.pixelLeft\n //得到单位为px的结果;fontSize的分支见http://bugs.jquery.com/ticket/760\n style.left = name === 'fontSize' ? '1em' : (ret || 0);\n ret = style.pixelLeft + \"px\";\n //④还原 style.left,runtimeStyle.left\n style.left = left;\n node.runtimeStyle.left = rsLeft;\n }\n if (ret === \"medium\") {\n name = name.replace(\"Width\", \"Style\");\n //border width 默认值为medium,即使其为0\"\n if (currentStyle[name] === \"none\") {\n ret = \"0px\";\n }\n }\n return ret === \"\" ? \"auto\" : border[ret] || ret;\n };\n cssHooks[\"opacity:set\"] = function(node, name, value) {\n node.style.filter = 'alpha(opacity=' + value * 100 + ')';\n node.style.zoom = 1;\n };\n cssHooks[\"opacity:get\"] = function(node) {\n //这是最快的获取IE透明值的方式,不需要动用正则了!\n var alpha = node.filters.alpha || node.filters[salpha],\n op = alpha ? alpha.opacity : 100;\n return (op / 100) + \"\"; //确保返回的是字符串\n };\n //旧式IE无法通过currentStyle取得没有定义在样式表中的width, height值\n \"width,height\".replace(rword, function(name) {\n cssHooks[name + \":get\"] = function(node) {\n if (name === \"width\") {\n return node.clientWidth - adv.Dom.css(node, \"paddingLeft\", true) - adv.Dom.css(node, \"paddingRight\", true);\n } else {\n return node.clientHeight - adv.Dom.css(node, \"paddingTop\", true) - adv.Dom.css(node, \"paddingBottom\", true);\n }\n };\n });\n };\n\n \"top,left\".replace(rword, function(name) {\n cssHooks[name + \":get\"] = function(node) {\n var computed = cssHooks[\"@:get\"](node, name);\n return /px$/.test(computed) ? computed :\n adv.$(node).position()[name] + \"px\";\n };\n });\n\n var cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n };\n\n var rdisplayswap = /^(none|table(?!-c[ea]).+)/;\n\n function showHidden(node, array) {\n if (node.offsetWidth <= 0) { //opera.offsetWidth可能小于0\n if (rdisplayswap.test(cssHooks[\"@:get\"](node, \"display\"))) {\n var obj = {\n node: node\n };\n for (var name in cssShow) {\n obj[name] = node.style[name];\n node.style[name] = cssShow[name];\n }\n array.push(obj);\n }\n var parent = node.parentNode;\n if (parent && parent.nodeType == 1) {\n showHidden(parent, array);\n }\n }\n }\n\n \"Width,Height\".replace(rword, function(name) {\n var method = name.toLowerCase(),\n clientProp = \"client\" + name,\n scrollProp = \"scroll\" + name,\n offsetProp = \"offset\" + name;\n cssHooks[method + \"::get\"] = function(node) {\n var hidden = [];\n showHidden(node, hidden);\n var val = adv.Dom.css(node, method, true);\n for (var i = 0, obj; obj = hidden[i++];) {\n node = obj.node;\n for (var n in obj) {\n if (typeof obj[n] === \"string\") {\n node.style[n] = obj[n];\n }\n }\n }\n return val;\n };\n adv.Dom[method] = function(value) {\n var node = this[0];\n if (arguments.length === 0) {\n if (node.setTimeout) { //取得窗口尺寸,IE9后可以用node.innerWidth /innerHeight代替\n return node[\"inner\" + name] || node.document.documentElement[clientProp];\n }\n if (node.nodeType === 9) { //取得页面尺寸\n var doc = node.documentElement;\n //FF chrome html.scrollHeight< body.scrollHeight\n //IE 标准模式 : html.scrollHeight> body.scrollHeight\n //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点?\n return Math.max(node.body[scrollProp], doc[scrollProp], node.body[offsetProp], doc[offsetProp], doc[clientProp]);\n }\n return cssHooks[method + \"::get\"](node);\n } else {\n return this.css(method, value);\n }\n };\n\n });\n\n /**css hook**/\n\n\n /**event**/\n\n function fixEvent(event) {\n var ret = {};\n for (var i in event) {\n ret[i] = event[i];\n }\n var target = ret.target = event.srcElement;\n if (event.type.indexOf(\"key\") === 0) {\n ret.which = event.charCode != null ? event.charCode : event.keyCode;\n } else if (/mouse|click/.test(event.type)) {\n var doc = target.ownerDocument || DOC;\n var box = doc.compatMode === \"BackCompat\" ? doc.body : doc.documentElement;\n ret.pageX = event.clientX + (box.scrollLeft >> 0) - (box.clientLeft >> 0);\n ret.pageY = event.clientY + (box.scrollTop >> 0) - (box.clientTop >> 0);\n }\n ret.timeStamp = new Date - 0;\n ret.originalEvent = event;\n ret.preventDefault = function() { //阻止默认行为\n event.returnValue = false;\n };\n ret.stopPropagation = function() { //阻止事件在DOM树中的传播\n event.cancelBubble = true;\n };\n return ret;\n }\n\n adv.Dom.on = function (el, type, fn, phase) {\n var callback = W3C ? fn : function (e) {\n return fn.call(el, fixEvent(e));\n };\n if (W3C) {\n el.addEventListener( type, callback, !!phase);\n } else {\n el.attachEvent(\"on\" + type, callback);\n }\n return callback;\n };\n adv.Dom.off = W3C ? function (el, type, fn, phase) {\n el.removeEventListener( type, fn || noop, !!phase);\n } : function (el, type, fn) {\n el.detachEvent(\"on\" + type, fn || noop);\n };\n /**event**/\n\n\n\n adv.easin = {\n\n };\n\n /************\n \n ***************/\n\n /**\n \t* 类似jquery方法,可以传入选择器,adv.Dom对象或者html片段\n * @example\n * $('#div1') ID选择器\n * $('.aCur') 类选择器;\n * $('div') 元素选择器\n * $('#div1 li') 组合选择器\n * $('input[type=text]:checked') 属性值选择器\n * $('a', myDiv) 选择myDiv下的所有a元素\n \t* \n * @example\n * $('
');\n * $('
');\n \t* @method adv.$\n \t* @param {String,Object} q 选择器,adv.Dom对象或者html片段\n \t* @return adv.$实例对象\n \t*/\n adv.$ = function (q, o) {\n return new Dom(q, o);\n };\n \n /**\n \t* 插入样式表到页面中\n * @example\nadv.$.appendStyle('body{background:#000;}')\n \t*\n \t* @method appendStyle\n \t* @param {String} css 样式字符串\n \t* @return undefined\n \t*/\n adv.$.appendStyle = function(css){\n var head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n style.type = 'text/css';\n if (style.styleSheet){\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n head.appendChild(style);\n }\n\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/dom.js\n// module id = 8\n// module chunks = 0","/**\n * 封装flash相关的功能\n *\n * @class adv.flash\n * @module adv\n * @static\n */\n(function (adv) {\n 'use strict';\n var $ = window.jQuery || adv.$;\n adv.flash = {\n /**\n \t* 生成flash的object标签\n \t* \n \t* @method embed\n \t* @param {Object} data 标签配置\n * 标签name与id相同.如果没有指定id,则会自动生成一个id\n * @example\n * test('embed', function() {\n * var embed = adv.flash.embed({ \n * id: 'embed10086',\n * source: '#',\n * width: 100,\n * height: 200\n * });\n * equal(embed.id, 'embed10086');\n * equal(embed.width, 100);\n * equal(embed.height, 200);\n * embed = adv.flash.embed({\n * source: '#'\n * });\n * ok(embed.id);\n *\n * embed = adv.flash.embed({\n * source: '#',\n * params: {\n * onload: 1,\n * onplay: 2,\n * onstop:3\n * }\n * });\n * equal(adv.flash.getParam(embed, 'onload'), 1);\n * equal(adv.flash.getParam(embed, 'onplay'), 2);\n * equal(adv.flash.getParam(embed, 'onstop'), 3);\n * });\n \t* @return adv.$实例\n \t*/\n embed: function (data) {\n var html = [];\n var id = data.id ? data.id : adv.util.guid();\n var allowScript = data.allowScript ? data.allowScript : 'never'; //always,never\n //如果有link参数,则默认网络权限为none,因为此时swf里不带链接.\n var defultNetSetting = data.link? 'none':'all';\n var allowNet = data.allowNet ? data.allowNet : defultNetSetting; //all,none\n var params = data.params || [], paramArr, flashvars = \"\";\n var isFlv = ~data.source.indexOf(\".flv\");\n var flashLoader = '//ue.17173cdn.com/a/lib/vda/ad_assets_loader.swf';\n html.push('');\n html.push('');\n html.push(' ');\n html.push(' ');\n html.push(' ');\n html.push(' ');\n if (params) {\n paramArr = [];\n adv.util.forEach(params, function (value, key) {\n var funcVar = value;\n //自定义函数\n if (adv.util.isFunction(value)) {\n //如果是函数,则生成一个随机的名称,并存储在flashCallback命名空间下\n funcVar = adv.util.guid();\n window.flashCallback[funcVar] = function () {\n var swfObj = adv.flash.getSWF(id);\n //this指向flash对象本身\n value.apply(swfObj, arguments);\n };\n }\n paramArr.push(key + '=' + funcVar);\n });\n if(isFlv){\n paramArr.push('url=' + data.source);\n paramArr.push('maxsize=500');\n }\n flashvars = paramArr.join('&');\n html.push(' ');\n }\n html.push(' ');\n html.push('');\n html = window.jQuery(html.join(''));\n data.link && html.on('mouseup',function(e){\n //if(e.which === 1){\n if(0 === e.button || (adv.util.isIE8 && 1 === e.button) || (adv.util.isIE7 && 1 === e.button)){\n window.open(data.link);\n }\n });\n return html;\n },\n /**\n \t* 获取object标签的自定义属性,优先取标签属性,如果没有,则从flashvars中解析\n \t* \n \t* @method getParam\n \t* @param {HTMLNode} el object标签\n * @param {String} key 属性名\n \t* @return {String} 属性值\n \t*/\n getParam: function (el, key) {\n var value, flashvars;\n adv.util.forEach(el[0].childNodes, function (node) {\n if (node.name == key) {\n value = node.value;\n } else if (node.name === 'flashvars') {\n flashvars = adv.util.urlParams(node.value);\n adv.util.forEach(flashvars, function (varsValue, varsKey) {\n if (varsKey == key) value = varsValue;\n });\n } else if (node[key]) {\n value = node[key];\n }\n });\n return value;\n },\n /**\n \t* 获取标签对应的flash对象,用于调用flash素材里暴露给javascript的方法\n \t* \n \t* @method getSWF\n \t* @param {String} name 对象名\n * @example\n * test('getParam', function() {\n * var embed = adv.flash.embed({\n * id: 'embed10086',\n * source: '#',\n * width: 100,\n * height: 200,\n * params: {\n * a: 1,\n * b:2\n * }\n * });\n * var source = adv.flash.getParam(embed, 'movie');\n * equal(source, '#');\n * console.log(embed);\n * equal(adv.flash.getParam(embed, 'a'), 1);\n * equal(adv.flash.getParam(embed, 'b'), 2);\n * });\n \t* @return \n \t*/\n getSWF: function (name) {\n if (navigator.appName.indexOf(\"Microsoft\") != -1) {\n return window[name];\n } else {\n return document[name];\n }\n }\n };\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/flash.js\n// module id = 9\n// module chunks = 0","\r\n(function (adv) {\r\n 'use strict';\r\n\r\n /**\n * 实现了事件机制的类,如果需要自定义事件,则继承此类.\n * \n * @class adv.EventEmitter\n * @module adv\n * @constructor\n * @extends adv.Class\n */\r\n adv.Class.extend('EventEmitter', {\r\n init: function () {\r\n this.events = {};\r\n },\r\n /**\n \t* 监听事件\n \t* \n \t* @method on \n \t* @param {String} event 事件名\n * @param {Function} listener 事件函数,事件函数的this指向对象本身\n \t* @return {undefined}\n \t*/\r\n on: function (event, listener) {\r\n this.events[event] = this.events[event] || [];\r\n this.events[event].push(listener);\r\n },\r\n /**\n \t* 取消事件监听\n \t* \n \t* @method off\n \t* @param {String} event 事件名\n * @param {Function} listener 要取消的已绑定的事件函数\n \t* @return {Boolean} 如果不存在此事件,或者该事件并未绑定此函数,则返回false,其余返回true\n \t*/\r\n off: function (event, listener) {\r\n if (!listener) {\r\n this.events[event] = [];\r\n } else {\r\n this.events[event] = adv.util.filter(this.events[event], function (listener) {\r\n return listener !== listener;\r\n });\r\n }\r\n },\r\n /**\n \t* 触发事件,并传递事件数据\n \t* \n \t* @method emit\n \t* @param {String} event 事件名\n * @param {Object} data 要传递的事件数据\n \t* @return {Undefined}\n \t*/\r\n emit: function (event, data) {\r\n adv.util.forEach(this.events[event], function (listener) {\r\n adv.CONFIGS.debug && console.log(event, data);\r\n listener.call(this, data);\r\n }, this);\r\n }\r\n });\r\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/eventemitter.js\n// module id = 10\n// module chunks = 0","\r\n(function(adv) {\r\n 'use strict';\r\n\r\n /**\n * 广告类和装饰类必须实现的接口,接口里的方法只起到描述的作用,不能直接调用\n *\n * @class adv.IAdv\n * @module adv\n * @constructor\n * @extends adv.EventEmitter\n */\r\n adv.EventEmitter.extend('IAdv', {\r\n init: function() {\r\n this.base();\r\n },\r\n /**\n \t* 加载数据,生成dom结构等操作放在这个方法中处理,并在数据处理完毕后触发setuped事件\n \t* \n \t* @method setup\n \t*/\r\n setup: function() {\r\n throw new Error(adv.ENUM.ERROR.initInterface);\r\n },\r\n /**\n \t* 当setuped事件触发后,此方法可用.调用此方法后开始播放广告\n \t* \n \t* @method play\n \t*/\r\n play: function() {\r\n throw new Error(adv.ENUM.ERROR.initInterface);\r\n },\r\n /**\n \t* 调用后停止广告播放\n \t* \n \t* @method stop\n \t*/\r\n stop: function() {\r\n throw new Error(adv.ENUM.ERROR.initInterface);\r\n }\r\n\r\n });\r\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/iadv.js\n// module id = 11\n// module chunks = 0","(function (_) {\n 'use strict';\n\n /**\n * 集合类,既像对象一样具有key,又像数组一样具有整数索引的数据结构,用于存储.\n * 索引从0开始\n *\n * @class Collection\n * @module adv\n * @namespace adv\n * @constructor\n * @extends adv.Class\n */\n _.Class.extend('Collection', {\n init: function () {\n /**\n \t* 当前游标所在索引值,用于按顺序读取记录\n \t* \n \t* @property cursor\n \t* @type Number\n \t* @default 0\n \t*/\n this.cursor = 0;\n this._arrData = [];\n },\n /**\n \t* 重置当前游标\n \t* \n \t* @method reset\n \t* @return {undefined}\n \t*/\n reset: function () {\n this.cursor = 0;\n },\n /**\n \t* 读取当前游标所指的索引的记录\n \t* \n \t* @method read\n \t* @return {Object} 当前记录\n \t*/\n read: function () {\n var data;\n if (this.cursor >= this.count()) {\n data = null;\n } else {\n data = this._arrData[this.cursor].data;\n this.cursor++;\n }\n return data;\n },\n /**\n \t* 返回当前记录数量\n \t* \n \t* @method count\n \t* @return {Number} 当前记录总数\n \t*/\n count: function () {\n return this._arrData.length;\n },\n /**\n * 向集合的末端添加一条记录,如果不指定key,则默认的key为自增长的索引\n *\n * @method push\n * @param {String} key 记录的key\n * @param {Object} value 存储的值\n * @return {String} Return 该条记录的索引\n */\n push: function (key, data) {\n\n //var index = 0,length = this._arrData.length;\n //if (length) {\n // index = this._arrData[length - 1].index;\n //}\n this._arrData.push({ key: key, data: data });\n },\n /**\n \t* 取出指定条件的记录\n \t* \n \t* @method get\n \t* @param {undefined,Number,String} 根据查询条件取得记录\n * 不指定参数,则返回所有记录.\n * 参数为Number,则根据索引返回记录\n * 参数为字符串,则根据key查询返回\n \t* @return {Array,Object} 符合条件的记录,如果超过1条,则以数组的形式返回.\n \t*/\n get: function () {\n var arr = [], params,index;\n if (!arguments.length) {\n this.forEach(function (data) {\n arr.push(data);\n });\n } else if (adv.util.isNum(arguments[0])) {\n index = arguments[0];\n this.forEach(function (data, key, i) {\n if (i === index) arr.push(data);\n });\n } else if (adv.util.isString(arguments[0])) {\n this.forEach(function (data, key) {\n if (key === arguments[0]) arr.push(data);\n });\n } else if (adv.util.isObject(arguments[0])) {\n params = arguments[0];\n this.forEach(function (data) {\n var equal = true;\n for (var pro in params) {\n if (!data[pro] || data[pro] != params[pro]) {\n equal = false;\n }\n }\n if (equal) arr.push(data);\n });\n }\n if (arr.length === 1) {\n arr = arr[0];\n }\n else if(arr.length === 0){\n arr = null;\n }\n return arr;\n },\n forEach: function (fn) {\n adv.util.forEach(this._arrData, function (n, i) {\n fn(n.data, n.key, i);\n });\n },\n /**\n \t* 删除指定条件的记录\n \t* \n \t* @method del\n \t* @param {Number} index 根据查询条件取得记录\n \t* @return {Boolean} Return 删除是否成功,如果找不到记录,则返回false\n \t*/\n del: function () {\n\n }\n });\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/collection.js\n// module id = 12\n// module chunks = 0","(function (_) {\n var $ = window.jQuery || adv.$;\n /**\n * 广告基类,提供广告公共的实现,实现IAdv接口\n *\n * @class adv.AdBase\n * @module adv\n * @constructor\n * @extends adv.IAdv\n */\n _.IAdv.extend('AdBase', {\n init: function (options) {\n this.state = adv.ENUM.ADVSTATE.uninit;\n this.base();\n this.options = adv.merge({}, this.options, options);\n this.id = _.util.guid();\n\n _.util.forEach(this.options.events, function (n) {\n this.on(n.event, n.listener);\n }, this);\n this.on(adv.ENUM.EVENTS.inited, function () {\n this.state = adv.ENUM.ADVSTATE.inited;\n });\n this.on(adv.ENUM.EVENTS.setuped, function () {\n this.state = adv.ENUM.ADVSTATE.setuped;\n });\n this.on(adv.ENUM.EVENTS.played, function () {\n this.state = adv.ENUM.ADVSTATE.played;\n });\n this.on(adv.ENUM.EVENTS.stoped, function () {\n this.state = adv.ENUM.ADVSTATE.stoped;\n });\n },\n setup: function () {\n //this.state = _.ENUM.ADVSTATE.SETUP;\n //this.emit(adv.ENUM.EVENTS.setuped);\n },\n play: function () {\n //this.state = _.ENUM.ADVSTATE.PLAY;\n //this.emit(adv.ENUM.EVENTS.played);\n },\n stop: function () {\n //this.state = _.ENUM.ADVSTATE.STOP;\n //this.emit(adv.ENUM.EVENTS.stoped);\n },\n generalAdMark: function (option) {\n var data = {}, tmpl;\n option = adv.merge({\n zIndex: 10,\n left: true,\n top: false,\n offset: [2, 2]\n }, option);\n tmpl = '';\n return adv.razor(tmpl, option);\n },\n /**\n \t* 绑定广告链接到指定的元素,点击该元素时,打开新页面\n *\n * @method bindLink\n * @return undefined\n */\n bindLink: function (el, link) {\n el.on('mouseup', function (e) {\n if(e.which === 1){\n window.open(link);\n }\n });\n },\n showAdMark: function () {\n //download站jquery的class选择器会导致报错.\n //此为临时补丁,应该改为判断jquery功能是否有问题,更进一步,应该移除jquery依赖,在adv.$里实现jquery的序号,属性等选择器\n if (~location.href.indexOf('download.17173.com')) {\n $ = adv.$;\n }\n var advEl = this.getContainer(),\n markConfigs, markContainer, markConfig;\n markConfigs = this.options.adMarkConfigs || [{}];\n if (!advEl) return;\n while (markConfigs.length) {\n markConfig = markConfigs.shift();\n if (markConfig.container) {\n markContainer = advEl.find(markConfig.container);\n markContainer = markContainer[0] ? markContainer : $(markConfig.container);\n }\n else {\n markContainer = advEl;\n }\n if (markContainer.css('position') != 'absolute' && markContainer.css('position') != 'fixed') {\n markContainer.css('position', 'relative');\n }\n markContainer.css('*zoom', '1');\n markContainer.append(this.generalAdMark(markConfig));\n }\n },\n getContainer: function () {\n var container;\n if (this.container) {\n container = this.container;\n }\n else if (this.options.selector) {\n container = this.container = $(this.options.selector)\n }\n return container;\n },\n /**\n \t* 注销广告,移除资源占用.\n \t*\n \t* @method dispose\n \t* @return\n \t*/\n dispose: function () {\n this.emit(adv.ENUM.EVENTS.dispose);\n }\n });\n\n /**\n * 移动端广告基类,提供广告公共的实现,继承于AdBase,与AdBase一致,目前并有有任何特殊实现.\n *\n * @class adv.AdMBase\n * @module adv\n * @constructor\n * @extends adv.AdBase\n */\n _.AdBase.extend('AdMBase', {\n init: function (options) {\n this.base(options);\n }\n });\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/adbase.js\n// module id = 13\n// module chunks = 0","/// \n/// \n\n(function (_) {\n //\n\n /**\n * 广告装饰者基类,实现IAdv接口,这样就可以作为广告调用\n * \n * @class adv.DrBase\n * @module adv\n * @constructor\n * @extends adv.IAdv\n */\n _.IAdv.extend('DrBase',{\n init: function (options) {\n this.state = adv.ENUM.ADVSTATE.uninit;\n this.base();\n this.options = adv.merge({}, this.options, options);\n this.id = _.util.guid();\n _.util.forEach(this.options.events, function (n) {\n this.on(n.event, n.listener);\n }, this);\n this.on(adv.ENUM.EVENTS.inited, function () {\n this.state = adv.ENUM.ADVSTATE.inited;\n });\n this.on(adv.ENUM.EVENTS.setuped, function () {\n this.state = adv.ENUM.ADVSTATE.setuped;\n });\n this.on(adv.ENUM.EVENTS.played, function () {\n this.state = adv.ENUM.ADVSTATE.played;\n });\n this.on(adv.ENUM.EVENTS.stoped, function () {\n this.state = adv.ENUM.ADVSTATE.stoped;\n });\n },\n setup: function () {\n this.ad.instance.setup();\n },\n play: function () {\n this.ad.instance.play();\n },\n stop: function () {\n this.ad.instance.stop();\n }\n });\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/dr_base.js\n// module id = 14\n// module chunks = 0","/// \r\n\r\n(function (_) {\r\n _.Class.extend('FtBase', {\r\n init: function (options) {\r\n this.passing = false;\r\n this.options = options;\r\n },\r\n validate: function () {\r\n if ((this.accord && !this.options.skipOnAccord) || (!this.accord && this.options.skipOnAccord)) {\r\n this.passing = true;\r\n }\r\n else {\r\n this.passing = false;\r\n }\r\n return this.passing;\r\n }\r\n });\r\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/adfilter.js\n// module id = 15\n// module chunks = 0","/// \r\n/// \r\n\r\n(function (_) {\r\n 'use strict'\r\n\r\n _.FtBase.extend('FtBrowser',{\r\n init: function (options) {\r\n //skipOnAccord\r\n this.base(options);\r\n if (this.options.key == 'mobile') {\r\n this.accord = adv.util.isMobile;\r\n }\r\n else {\r\n this.accord = false;\r\n }\r\n }\r\n });\r\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/FtBrowser.js\n// module id = 16\n// module chunks = 0","/// \n/// \n\n(function (_) {\n 'use strict';\n\n _.FtBase.extend('FtUrl',{\n init: function (options) {\n //skipOnAccord\n this.base(options);\n this.accord = ~location.href.indexOf(this.options.key);\n }\n });\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/FtUrl.js\n// module id = 17\n// module chunks = 0","/**\n * 广告管理中心,负责广告播放控制,冲突协调\n *\n * @class adv.adCenter\n * @module adv\n */\n(function (adv) {\n var adPool = new adv.Collection();\n\n var popSort = function(data,fn){\n var fn = fn || function(a, b){ return a > b;};\n for(var i=0; i 0){\n var t = data[i];\n data[i] = data[j];\n data[j] = t;\n }\n }\n }\n return data;\n };\n\n //第三方素材推送接口(根据接口返回值来决定展示多套素材(rsources字段)中哪一套素材)\n var THE_OTHER_ADSYS_API = {\n 'default': function (ad, fn) {\n fn(ad.resources[0]);\n },\n \"37wan\": function (ad, fn) {\n var resourceid = ad.resourceid,\n resources = ad.resources,\n timeout = false;\n var timer = setTimeout(function () {\n ad.resources = [resources[0]];\n fn(resources[0]);\n //临时接口调用统计\n if(ad.type == 'Ad17173Jinrijingxuan'){\n _jc_ping.push([\n '_trackBlockClick',\n 'aaIBN3',\n resources[0].link\n ]);\n }\n timeout = true;\n }, 5000);\n //zt2.wa5as4.com\n adv.net.jsonp('//zt2.he2d.com/jp1f26/' + resourceid, function (data) {\n var resource = resources[0];\n if (timeout) return;\n clearTimeout(timer);\n var hasPkg = false;\n if (data.status === 1 && data.pkgid) {\n for (var i = 0; i < resources.length; i++) {\n if (-resources[i].pkgid === -data.pkgid) {\n resource = resources[i];\n hasPkg = true;\n }\n }\n }\n //防止全部素材的曝光统计都被发送\n ad.resources = [resource];\n //临时接口调用统计\n if(ad.type == 'Ad17173Jinrijingxuan'){\n if(hasPkg){\n _jc_ping.push([\n '_trackBlockClick',\n 'eemmee',\n resource.link\n ]);\n }\n else{\n _jc_ping.push([\n '_trackBlockClick',\n 'aI3Yfq',\n resource.link\n ]);\n }\n }\n fn(resource);\n });\n }\n };\n\n //adCenter的事件功能是对所有广告事件的集中处理\n var AdCenter = adv.EventEmitter.extend({\n init: function () {\n this.base();\n },\n /**\n \t* 是否禁用广告,目前可通过在url带上参数(market17173=false)或者设置全局变量window.market17173 = false来全局禁用广告\n \t* 如果要根据条件禁用某些广告,请查询filter组件\n *\n \t* @property disable\n \t* @type Boolean\n * @static\n \t* @default false\n \t*/\n disable: false,\n start: function () {\n if (this.validate()) {\n while (advConfigs.configFiles.length) {\n this.loadConfigFile(advConfigs.configFiles.shift());\n }\n this.loader = new adv[adv.CONFIGS.LoaderType]();\n this.loader.start();\n }\n },\n /**\n \t* 注册事件\n *\n * @method on\n \t* @param {String} event 事件名\n * @param {String} delegate 代理标识(如广告位id,类型等),用于从通用事件中筛选出符合条件的事件触发对象\n * @param {Function} listener 事件处理函数\n * @static\n \t* @return\n \t*/\n on: function (event, delegate, listener) {\n if (arguments.length > 2) {\n this.base(delegate + ':' + event, listener);\n }\n else {\n this.base(event, delegate);\n }\n },\n /**\n \t* 注册事件\n *\n * @method emit\n \t* @param {String} event 事件名\n * @param {Object} data 传递给事件处理函数的事件对象\n * @static\n \t* @return\n \t*/\n emit: function (event, data) {\n this.base(event, data);\n data.selector && this.base(data.selector + ':' + event, data);\n data.advid && this.base(data.advid + ':' + event, data);\n },\n loadConfigFile: function (configs) {\n if (adv.util.isString(configs)) {\n configs += '?clear=' + Math.floor(new Date() / 180000);\n //广告预览功能\n if(~location.hash.indexOf('vdapreview') && ~configs.indexOf('s.17173cdn.com')){\n //configs = configs.replace('s.17173cdn.com','10.5.13.94:6600/ad/download_preview_js')\n configs = configs.replace('s.17173cdn.com','buy.local.17173.com/ad/download_preview_js').replace('https','http')\n }\n this.loadScript('adconfig' + adv.util.guid(), configs);\n }\n else if (adv.util.isArray(configs)) {\n var config;\n while (configs.length) {\n config = configs.shift();\n if (config.filter && config.filter()) {\n while (config.configs.length) {\n this.loadConfigFile(config.configs.shift());\n }\n }\n }\n }\n },\n sendPv: function (ad) {\n this.loader.sendPv && this.loader.sendPv(ad);\n },\n sendIpa: function (ad) {\n this.loader.sendIpa && this.loader.sendIpa(ad);\n },\n loadScript: function (eid, url, callback, ad) {\n var script = document.getElementById(eid);\n if (!script) {\n script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.id = eid;\n if (callback) {\n script.onload = script.onreadystatechange = function () {\n if (script.ready) {\n return false;\n }\n if (!script.readyState || script.readyState == \"loaded\" || script.readyState == 'complete') {\n script.onreadystatechange = null;\n script.ready = true;\n callback();\n }\n };\n }\n document.getElementsByTagName('head')[0].appendChild(script);\n } else if (callback) {\n if (script.ready) {\n callback();\n }\n //标签已创建,但是脚本还没加载完成\n else {\n var _onreadystatechange = script.onreadystatechange;\n var _onload = script.onload;\n var callbackRuned = false;\n script.onreadystatechange = function () {\n _onreadystatechange();\n if (!script.readyState || script.readyState == \"loaded\" || script.readyState == 'complete') {\n if (callbackRuned) return;\n callbackRuned = true\n callback();\n }\n };\n script.onload = function () {\n if (callbackRuned) return;\n callbackRuned = true\n _onload();\n callback();\n }\n }\n }\n },\n loadSource: function (ad, fn) {\n //var url = adv.CONFIGS.baseDir + '/sources/vda' + type.toLowerCase().slice(2) + '/production.js';\n var type = ad.type,\n version = ad.version,\n //指定版本号,则加载该版本\n versionPath,\n //版本号最后一位(更新次数)作为脚本的防缓存参数\n versionUpdateTimes;\n if(adv[type]){\n fn()\n }\n else{\n if (version) {\n version = version.split('.');\n versionPath = version[0] + '-' + version[1];\n versionUpdateTimes = version[2];\n }\n var url = adv.CONFIGS.baseDir + '/sources/' + type.toLowerCase();\n url += versionPath ? '/' + versionPath : '';\n url += '/production.js';\n url += versionUpdateTimes ? '?' + versionUpdateTimes : '';\n if (advConfigs.ADV_SYSTEM_DEBUG && advConfigs.DEBUG_AD && advConfigs.DEBUG_AD[type]) {\n url = advConfigs.DEBUG_AD[type];\n }\n this.loadScript(type + 'adsourcesembled' + (ad.version || ''), url, fn, ad);\n }\n },\n validate: function () {\n //~location.href.indexOf('market17173=false') ||\n if (window.market17173 === false) {\n this.disable = true;\n }\n else {\n this.disable = false;\n }\n return !this.disable;\n },\n filter:function(ad){\n var result = true;\n for(var i = 0;i b.orderIndex;\n })\n if(ad.unionKey){\n resource[ad.unionKey] = datas;\n }\n else{\n resource = datas;\n }\n fn(resource)\n }\n });\n })(i)\n }\n \n },\n //根据规则选择配置中多套素材的其中一套以供展现\n //resources = 一个广告仅对应一个素材接口(如焦点图多轮播,每一轮播都是独立的广告)\n //multiResources一个广告内部分素材配置是数组,数组每一项请求独立的接口(如,首页轮播图广告,2张图可分开售卖,但属于同一个广告组件实例)\n chooseResource: function (ad, fn) {\n var resources = ad.resources;\n if (resources && adv.util.isArray(resources)) {\n /*if(ad.theotherid == '37wan'){\n console.log(ad)\n }*/\n if (!parseInt(ad.isMultiPkg, 10) || !ad.theotherid) {\n ad.theotherid = 'default';\n }\n //通过其他系统的素材选择api决定播放素材\n THE_OTHER_ADSYS_API[ad.theotherid](ad, fn);\n }\n else if(ad.multiResources){\n this.multiApiUnion(ad,fn)\n }\n else{\n fn();\n }\n },\n loadAd: function (ad, fn) {\n var me = this;\n this.loadSource(ad, function () {\n //if(ad.type == 'Ad17173Script')console.log(ad.resources[0].source);\n fn && fn();\n ad.instance = new adv[ad.type](ad);\n ad.instance.on(adv.ENUM.EVENTS.played, function () {\n adv.adCenter.emit(adv.ENUM.EVENTS.played, ad);\n\n //\"广告\"角标\n if ((advConfigs.enableAdMark && ad.adMark === 'show') || ad.adMark === 'allwaysShow') {\n ad.instance.showAdMark();\n }\n\n //173内部统计系统\n if (ad.ipaCode) {\n me.sendIpa(ad);\n }\n //如果有的广告曝光规则较为复杂,需要广告内自己实现,则可配置禁用默认曝光统计.\n if (!ad.disablePv) {\n if (ad.pvCode) {\n me.sendPv(ad);\n }\n //遍历子配置项里的pvCode\n for (var key in ad) {\n if (ad.hasOwnProperty(key)) {\n if (adv.util.isArray(ad[key])) {\n for (var i = 0; i < ad[key].length; i++) {\n //如果子配置项是一个完整的广告配置(会被adCenter处理,则跳过,防止重复发送)\n if (!ad[key][i].type && ad[key][i].pvCode) {\n me.sendPv(ad[key][i]);\n }\n }\n }\n }\n }\n }\n });\n ad.instance.on(adv.ENUM.EVENTS.setuped, function () {\n adv.adCenter.emit(adv.ENUM.EVENTS.setuped, ad);\n this.play();\n });\n if (ad.instance.state == adv.ENUM.EVENTS.inited) {\n adv.adCenter.emit(adv.ENUM.EVENTS.inited, ad);\n me.chooseResource(ad, function (data) {\n ad.instance.setup(data);\n });\n }\n else {\n ad.instance.on(adv.ENUM.EVENTS.inited, function () {\n adv.adCenter.emit(adv.ENUM.EVENTS.inited, ad);\n me.chooseResource(ad, function (data) {\n ad.instance.setup(data);\n });\n });\n }\n });\n },\n //运行过滤器(弃用,新版统一使用adv.filter接口,此为兼容旧版保留),如果通过则返回true,广告需要被过滤则返回false\n execFilter: function (ad) {\n result = true;\n if (ad.filters) {\n if (!ad.filterCon || ad.filterCon === 'and') {\n while (ad.filters.length) {\n filterConfig = ad.filters.shift();\n if (!new adv[filterConfig.type](filterConfig).validate()) {\n return false;\n }\n }\n }\n else if (ad.filterCon === 'or') {\n while (ad.filters.length) {\n filterConfig = ad.filters.shift();\n if (new adv[filterConfig.type](filterConfig).validate()) {\n return true;\n }\n }\n result = false;\n }\n }\n return result;\n }\n });\n\n //默认加载器-遇到广告配置马上按顺序加载源代码并播放\n adv.LoaderBase.extend('DefaultLoader', {\n init: function () {\n this.base();\n },\n //是否在广告加载序列中,如果正在处理广告,则新添加的广告无需手动调用next方法\n queueing: false,\n start: function () {\n this.base();\n this.next();\n },\n next: function () {\n var ad = adPool.read(), me = this, filterConfig;\n this.queueing = true;\n if (!ad) {\n this.queueing = false;\n }\n else if (this.execFilter(ad)) {\n var overTime\n //针对ie7的性能优化hack\n if (window.STATUS_LTIE8) {\n this.loadAd(ad)\n setTimeout(function () {\n me.next()\n }, 1000)\n }\n else {\n //加载失败导致超时后继续加载下一个广告\n var overTime = setTimeout(function () {\n me.next();\n }, 3000);\n this.loadAd(ad, function () {\n clearTimeout(overTime);\n me.next();\n });\n }\n }\n else {\n this.next();\n }\n },\n addAd: function (config) {\n this.base(config);\n if (!this.queueing) this.next();\n }\n });\n\n //延迟加载器-仅在用户浏览到广告位置时才加载广告\n adv.LoaderBase.extend('LazyLoader', {\n init: function () {\n var me = this;\n this.base();\n this.$w = $(window);\n this.calcSize(true);\n this.scrollTimer = setTimeout(function () {\n me.calcSize();\n me.update();\n }, 200);\n this.$w.bind('resize', function () {\n me._onResize.call(me);\n }).bind('scroll', function () {\n me._onScroll.call(me);\n });\n //页面上延迟加载的内容里也可能包含广告,所以页面有新增内容时要调用一次判断\n $(document.body).bind('appendHtml', function (e, html) {\n me.update();\n });\n },\n queueing: true,\n queueCount: 0,\n preloadHeight: 200,\n _onResize: function () {\n var me = this;\n clearTimeout(me.resizeTimer);\n me.resizeTimer = setTimeout(function () {\n me.calcSize(true);\n me.update();\n }, 100);\n },\n _onScroll: function () {\n var me = this;\n //使用定时器,这样在连续滚动时,只有停止滚动才会真正的加载\n clearTimeout(me.scrollTimer);\n me.scrollTimer = setTimeout(function () {\n me.calcSize();\n me.update();\n }, 100);\n },\n update: function () {\n ////Cvda.17173.com/click?media_code=17173&ad_code=171737206&resource_code=10248&order_code=1010686\n var me = this;\n clearTimeout(this.updateTimer);\n this.updateTimer = setTimeout(function () {\n me.checkForLoad();\n }, 100);\n },\n checkForLoad: function () {\n var me = this;\n adPool.forEach(function (ad, i) {\n me.loadAd(ad);\n });\n },\n //如果指定的广告符合播放条件,则加载源代码并播放,条件如下:\n //1,广告配置不包含selector\n //2,广告的占位标签已经滚动到视野内(即selector指定的标签)\n loadAd: function (ad) {\n var me = this;\n if (ad.lazyLoaded) return;\n //广告位的占位标签都是以selector作为标识的,所以没有这个字段的是没有占位标签的,此类广告直接执行.\n if (ad.selector && ad.theotherid !== '37wan') {\n ad.adEl = ad.adEl && ad.adEl[0] ? ad.adEl : $(ad.selector);\n if (ad.adEl[0]) {\n var position = me.calcPosition(ad.adEl, ad);\n if (!position.below && !position.above) {\n ad.lazyLoaded = true;\n this.base(ad);\n }\n }\n }\n else {\n this.queueing = true;\n this.queueCount++;\n ad.lazyLoaded = true;\n this.base(ad, function () {\n me.queueCount--;\n if (me.queueCount === 0) {\n setTimeout(function () {\n me.queueing = false;\n }, 1000);\n $(window).on('load', function () {\n me.queueing = false;\n });\n }\n });\n }\n },\n calcSize: function (calcHeight) {\n /// \n /// 计算可视区域高度,滚动条高度\n /// \n /// 是否计算可视区域高度,只有首次加载和改变页面尺寸时,才需重新计算\n if (calcHeight) {\n this.wHeight = this.$w.height();\n }\n this.scrollTop = this.$w.scrollTop();\n this.screenHeight = this.wHeight + this.scrollTop;\n },\n //判断一个元素在页面可视区域的之下或者之上,两者都不是,则该元素在视野内.\n calcPosition: function ($el, ad) {\n var top;\n if ($el.css('display') == 'none') {\n $el.show();\n top = $el.offset().top;\n $el.hide();\n }\n else {\n top = $el.offset().top;\n }\n var below = this.screenHeight <= top - this.preloadHeight,\n above = this.scrollTop >= top + $el.height() + this.preloadHeight;\n return {\n below: below,\n above: above\n };\n },\n addAd: function (config) {\n this.base(config);\n this.loadAd(config);\n }\n });\n\n adv.adCenter.start();\n})(adv);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./core/adCenter.js\n// module id = 18\n// module chunks = 0"],"sourceRoot":""}