MediaUtil = function () { } MediaUtil.replaceMedias = function (obj, flag) { new MediaUtil().replaceMedias(obj, flag); } MediaUtil.stopMedia = function(id){new MediaUtil().stopMedia(id);} MediaUtil.playOrPause = function(id){new MediaUtil().playOrPause(id);} MediaUtil.defaultPlayer = ""; var count=0; MediaUtil.prototype = { supportMediaType: [".mp3", ".mp4", ".flv", ".ogg", ".ogv", ".m4v"], defaultMediaType: ".mp4", //由于MP4实现点播功能需要IIS插件支持,而使用此插件时HTML5不能实现点播,因此配置两个虚拟站点对应一个应用 siteMain: "", //siteMain为使用IIS插件站点,siteHtml5为不使用IIS插件站点(如果播放视频为外链,则siteMain,siteHtml5不起作用) siteHtml5: "", //播放器默认宽度 mediaWidth:"640", //播放器默认高度 mediaHeight: "480", //默认不循环播放 mediaLoop: "0", //默认不自动播放 mediaAutoStart:"0", //播放器所在路径,默认为当前网站根路径下mediaUtil/player mediaPlayerPath: "", //初始图片地址,就是在播放器默认是暂停或默认不加载的情况下先给一张图片遮在播放器前面,让其看起来不会一片黑 picBeforePlay: "", //暂停时显示图片地址 picWhenPause: "", //暂停时图片对应的链接地址 picWhenPauseUrl: "", //前置广告地址,swf/图片/视频,多个用竖线“|”隔开,图片和视频要加链接地址 advUrl: "", //前置广告链接地址,多个用竖线隔开,没有的留空 advLinkUrl:"", //前置广告播放时间,多个用竖线“|”隔开 advPlayTime: "", objHtml: null, //是否使用自定义解析方法 useCustomAnalyze : false, //调用入口 replaceMedias: function (obj, isUseCustomAnalyze) { objHtml = undefined; if (typeof (obj) != "undefined") { if (typeof (obj) == "object") { objHtml = obj; } else { objHtml = $("#" + obj); } } muObj = this; if (typeof (isUseCustomAnalyze) == "undefined" || isUseCustomAnalyze == null) muObj.useCustomAnalyze = false; if (typeof (objHtml) == "undefined") { //未指定id,遍历当前页面所有多媒体元素并进行处理 $.each($("embed"), function () { var html = $(this).src; if (typeof (html) != "undefined") { if (html.indexOf("ckplayer.swf") == -1 && html.indexOf("mp3.swf") == -1) {//系统播放器 muObj.replaceSteps($(this)); } } }); $.each($("video"), function () { muObj.replaceSteps($(this)); }); $.each($("audio"), function () { muObj.replaceSteps($(this)); }); } else { // 处理指定id的元素及内部元素 if (objHtml.is("video")||objHtml.is("audio")||objHtml.is("embed")) { muObj.replaceSteps(objHtml); } else { $.each(objHtml.find("video"), function () { muObj.replaceSteps($(this)); }); $.each(objHtml.find("audio"), function () { muObj.replaceSteps($(this)); }); $.each(objHtml.find("embed"), function () { var html = $(this).attr("src"); if (html.indexOf("ckplayer.swf") == -1 && html.indexOf("mp3.swf") == -1) { muObj.replaceSteps($(this)); } }); } } }, replaceSteps:function(obj) { count++; var customSourceMediaID = obj.attr("customSourceMediaID");//获取当前标签对象自定义属性值 if (customSourceMediaID) { //不为空 $("[ID=customDiv" + customSourceMediaID + "]").remove(); //不为空,移除之前为原对象所生成的替换元素 } customSourceMediaID = count; obj.attr("customSourceMediaID", customSourceMediaID);//原对象添加自定义属性customSourceMediaID或为该属性重新赋值 obj.after("
"); var id = obj.attr("id");//获取当前标签的id值 if (id && id.indexOf("customSourceMedia")>-1) { //如果是替换所生成的元素,则不再处理 return; } muObj = this; var autoStart = ""; var path = obj.attr("src"); var width = obj.attr("width"); var height = obj.attr("height"); var isLoop = obj.attr("loop");//获取是否循环播放 width = width == undefined ? muObj.mediaWidth : width; height = height == undefined ? muObj.mediaHeight : height; if (obj.is("video") || obj.is("audio")) { autoStart = obj.attr("autoplay");//获取是否自动播放 } if (obj.is("embed")) { autoStart = obj.attr("autostart"); } if (isLoop == undefined) { isLoop = 0; } else { if (isLoop == "1" || isLoop == "true" || isLoop == true || isLoop == "loop") { isLoop = 1; } else { isLoop = 0; } } if (autoStart == undefined) { autoStart = 0; } else { if (autoStart == "1" || autoStart == "true" || autoStart == true || autoStart == "autostart" || autoStart == "autoplay") { autoStart = 1; } else { autoStart = 0; } } obj.hide();//保留原标签,主要用于标签相关属性读取比如data-自定义属性,等等 for (var i = 0; i < obj.length; i++) { try { obj[i].stop(); //停止原始播放器,如果正在播放。 } catch (ex) { //在不同的浏览器中,并非所有的播放器都有stop方法。 } } muObj.initMediaPlayer(); var mediaType = muObj.getMediaType(path); if (muObj.useCustomAnalyze) { //使用自定义解析方法 media_json = muObj.doCustomAnalyze(path); if (media_json) { var mediaObj = $.parseJSON(media_json); mediaType = mediaObj.type; path = mediaObj.path; } } extention = mediaType.replace(".", "").toLowerCase(); var f = path;// 视频地址 var s = '0';//调用方式,0=普通方法(f=视频地址),1=网址形式,2=xml形式,3=swf形式(s>0时f=网址,配合a来完成对地址的组装) var c = '1';//是否读取文本配置,0不是,1是 var i = muObj.picBeforePlay;//初始图片地址 var d = muObj.picWhenPause;//暂停时播放的广告,swf/图片,多个用竖线隔开,图片要加链接地址,没有的时候留空就行 var u = muObj.picWhenPauseUrl;//暂停时图片对应的链接地址 var l = muObj.advUrl; //前置广告,swf/图片/视频,多个用竖线隔开,图片和视频要加链接地址 var r = muObj.advLinkUrl; //前置广告的链接地址,多个用竖线隔开,没有的留空 var t = muObj.advPlayTime;//视频开始前播放swf/图片时的时间,多个用竖线隔开 var e = isLoop == 1 ? '1' : '0';//视频结束后的动作,0是调用js函数,1是循环播放,2是暂停播放并且不调用广告,3是调用视频推荐列表的插件,4是清除视频流并调用js功能和1差不多,5是暂停播放并且调用暂停广告 var p = autoStart == 1 ? '1' : '0';//视频默认0是暂停,1是播放 var h = 4;//播放http视频流时采用何种拖动方法,=0不使用任意拖动,=1是使用按关键帧,=2是按时间点,=3是自动判断按什么(如果视频格式是.mp4就按关键帧,.flv就按关键时间),=4也是自动判断(只要包含字符mp4就按mp4来,只要包含字符flv就按flv来) var b = 0;//是否开启播放器对象API交互,=0开启 var replaceID = 'customDiv' + customSourceMediaID;//替换后元素放置容器ID var createID = 'customSourceMedia' + customSourceMediaID;//替换后元素id if (extention == "swf") { //SWF直接播放 $("#"+replaceID).append("") var opObjectParams = {}; opObjectParams.wmode = "transparent"; opObjectParams.menu = "true"; swfobject.embedSWF(path, createID, width, height, "9.0.0", "install_flash_player.swf", null, opObjectParams); } var video = ""; var playerPath =""; if (extention == "ogv" || extention == "mp4" || extention == "m4v" || extention=="m4a" || extention=="flv") { video = [f + "->video/" + extention]; playerPath = muObj.mediaPlayerPath + "/ckplayer.swf";//ckplayer所在路径 var flashvars = { f: f, s: s, c: c, i: i, d: d, u: u, l: l, r: r, t: t, e: e, p: p, h: h, b: b } var params = { bgcolor: '#FFF', allowFullScreen: true, allowScriptAccess: 'always' };//这里定义播放器的其它参数如背景色(跟flashvars中的b不同),是否支持全屏,是否支持交互 if (extention == "flv") { CKobject.embedSWF(playerPath, replaceID, createID, width, height,flashvars, video, params); } else { CKobject.embed(playerPath, replaceID, createID, width, height, true, flashvars, video, params); } } if (extention == "ogg" || extention == "mp3") { playerPath = muObj.mediaPlayerPath + "/mp3.swf";//mp3player所在路径 var flashvars = { mp3: f, showstop: 1, showvolume: 1, autoload: 1, volume: 200, width: width, height: 50 } if (!!document.createElement('video').canPlayType) { $(obj).hide(); $("#" + replaceID).append(""); } else { CKobject.embedSWF(playerPath, replaceID, createID, width, 50, flashvars, params); } } }, //获取当前待播放媒体类型,根据扩展名判断 getMediaType: function (mediaPath) { if (mediaPath) { var mediaType = ""; var temp = mediaPath.substring(mediaPath.lastIndexOf('/'));//尝试获取视频扩展名 var reg = /\.[^\.]+$/; mediaType = String(reg.exec(temp)); if (mediaType != "null" && mediaType != null && mediaType.indexOf('?') > -1) { mediaType = mediaType.substring(0, 4); } if (mediaType == "" || mediaType == "null" || mediaType == null) { //未能获取扩展名,尝试简单判断视频类型 $.each(muObj.supportMediaType, function (key, val) { if (mediaPath.indexOf(val) >= 0) { //支持当前地址指定视频类型 mediaType = val; } }); if (mediaType == "" || mediaType == "null" || mediaType == null) { mediaType = muObj.defaultMediaType;//不支持的视频类型强制使用默认格式播放 } } } else { mediaType = muObj.defaultMediaType; } return mediaType; }, doCustomAnalyze: function (mediaPath) { muObj = this; var media_json = muObj.analyzeMediaPath(mediaPath); return media_json; }, //如视频地址需特殊解析,重写此方法(返回JSON字符串) analyzeMediaPath: function () { }, //生成JSON字符串 mediaType:视频类型(如".mp4"),mediaPath:解析后的视频地址 createMediaJSON: function (mediaType, mediaPath) { var s = ""; s += "{" + "\"type\":\"" + mediaType + "\"," + "\"path\":\"" + mediaPath + "\"" + "}"; return s; }, initMediaPlayer: function () { this.mediaPlayerPath = MediaUtil.defaultPlayer == "" ? this.mediaPlayerPath == "" ? "/mediaUtil/player" : this.mediaPlayerPath : MediaUtil.defaultPlayer; }, stopMedia:function(mediaID){ CKobject.getObjectById(mediaID).videoClear(); }, playOrPause:function(mediaID){ CKobject.getObjectById(mediaID).playOrPause(); } } var swfobject = function () { var D = "undefined", r = "object", T = "Shockwave Flash", Z = "ShockwaveFlash.ShockwaveFlash", q = "application/x-shockwave-flash", S = "SWFObjectExprInst", x = "onreadystatechange", Q = window, h = document, t = navigator, V = false, X = [], o = [], P = [], K = [], I, p, E, B, L = false, a = false, m, G, j = true, l = false, O = function () { var ad = typeof h.getElementById != D && typeof h.getElementsByTagName != D && typeof h.createElement != D, ak = t.userAgent.toLowerCase(), ab = t.platform.toLowerCase(), ah = ab ? /win/.test(ab) : /win/.test(ak), af = ab ? /mac/.test(ab) : /mac/.test(ak), ai = /webkit/.test(ak) ? parseFloat(ak.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, aa = t.appName === "Microsoft Internet Explorer", aj = [0, 0, 0], ae = null; if (typeof t.plugins != D && typeof t.plugins[T] == r) { ae = t.plugins[T].description; if (ae && (typeof t.mimeTypes != D && t.mimeTypes[q] && t.mimeTypes[q].enabledPlugin)) { V = true; aa = false; ae = ae.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); aj[0] = n(ae.replace(/^(.*)\..*$/, "$1")); aj[1] = n(ae.replace(/^.*\.(.*)\s.*$/, "$1")); aj[2] = /[a-zA-Z]/.test(ae) ? n(ae.replace(/^.*[a-zA-Z]+(.*)$/, "$1")) : 0 } } else { if (typeof Q.ActiveXObject != D) { try { var ag = new ActiveXObject(Z); if (ag) { ae = ag.GetVariable("$version"); if (ae) { aa = true; ae = ae.split(" ")[1].split(","); aj = [n(ae[0]), n(ae[1]), n(ae[2])] } } } catch (ac) { } } } return { w3: ad, pv: aj, wk: ai, ie: aa, win: ah, mac: af } }(), i = function () { if (!O.w3) { return } if ((typeof h.readyState != D && (h.readyState === "complete" || h.readyState === "interactive")) || (typeof h.readyState == D && (h.getElementsByTagName("body")[0] || h.body))) { f() } if (!L) { if (typeof h.addEventListener != D) { h.addEventListener("DOMContentLoaded", f, false) } if (O.ie) { h.attachEvent(x, function aa() { if (h.readyState == "complete") { h.detachEvent(x, aa); f() } }); if (Q == top) { (function ac() { if (L) { return } try { h.documentElement.doScroll("left") } catch (ad) { setTimeout(ac, 0); return } f() }()) } } if (O.wk) { (function ab() { if (L) { return } if (!/loaded|complete/.test(h.readyState)) { setTimeout(ab, 0); return } f() }()) } } }(); function f() { if (L || !document.getElementsByTagName("body")[0]) { return } try { var ac, ad = C("span"); ad.style.display = "none"; ac = h.getElementsByTagName("body")[0].appendChild(ad); ac.parentNode.removeChild(ac); ac = null; ad = null } catch (ae) { return } L = true; var aa = X.length; for (var ab = 0; ab < aa; ab++) { X[ab]() } } function M(aa) { if (L) { aa() } else { X[X.length] = aa } } function s(ab) { if (typeof Q.addEventListener != D) { Q.addEventListener("load", ab, false) } else { if (typeof h.addEventListener != D) { h.addEventListener("load", ab, false) } else { if (typeof Q.attachEvent != D) { g(Q, "onload", ab) } else { if (typeof Q.onload == "function") { var aa = Q.onload; Q.onload = function () { aa(); ab() } } else { Q.onload = ab } } } } } function Y() { var aa = h.getElementsByTagName("body")[0]; var ae = C(r); ae.setAttribute("style", "visibility: hidden;"); ae.setAttribute("type", q); var ad = aa.appendChild(ae); if (ad) { var ac = 0; (function ab() { if (typeof ad.GetVariable != D) { try { var ag = ad.GetVariable("$version"); if (ag) { ag = ag.split(" ")[1].split(","); O.pv = [n(ag[0]), n(ag[1]), n(ag[2])] } } catch (af) { O.pv = [8, 0, 0] } } else { if (ac < 10) { ac++; setTimeout(ab, 10); return } } aa.removeChild(ae); ad = null; H() }()) } else { H() } } function H() { var aj = o.length; if (aj > 0) { for (var ai = 0; ai < aj; ai++) { var ab = o[ai].id; var ae = o[ai].callbackFn; var ad = { success: false, id: ab }; if (O.pv[0] > 0) { var ah = c(ab); if (ah) { if (F(o[ai].swfVersion) && !(O.wk && O.wk < 312)) { w(ab, true); if (ae) { ad.success = true; ad.ref = z(ab); ad.id = ab; ae(ad) } } else { if (o[ai].expressInstall && A()) { var al = {}; al.data = o[ai].expressInstall; al.width = ah.getAttribute("width") || "0"; al.height = ah.getAttribute("height") || "0"; if (ah.getAttribute("class")) { al.styleclass = ah.getAttribute("class") } if (ah.getAttribute("align")) { al.align = ah.getAttribute("align") } var ak = {}; var aa = ah.getElementsByTagName("param"); var af = aa.length; for (var ag = 0; ag < af; ag++) { if (aa[ag].getAttribute("name").toLowerCase() != "movie") { ak[aa[ag].getAttribute("name")] = aa[ag].getAttribute("value") } } R(al, ak, ab, ae) } else { b(ah); if (ae) { ae(ad) } } } } } else { w(ab, true); if (ae) { var ac = z(ab); if (ac && typeof ac.SetVariable != D) { ad.success = true; ad.ref = ac; ad.id = ac.id } ae(ad) } } } } } X[0] = function () { if (V) { Y() } else { H() } }; function z(ac) { var aa = null, ab = c(ac); if (ab && ab.nodeName.toUpperCase() === "OBJECT") { if (typeof ab.SetVariable !== D) { aa = ab } else { aa = ab.getElementsByTagName(r)[0] || ab } } return aa } function A() { return !a && F("6.0.65") && (O.win || O.mac) && !(O.wk && O.wk < 312) } function R(ad, ae, aa, ac) { var ah = c(aa); aa = W(aa); a = true; E = ac || null; B = { success: false, id: aa }; if (ah) { if (ah.nodeName.toUpperCase() == "OBJECT") { I = J(ah); p = null } else { I = ah; p = aa } ad.id = S; if (typeof ad.width == D || (!/%$/.test(ad.width) && n(ad.width) < 310)) { ad.width = "310" } if (typeof ad.height == D || (!/%$/.test(ad.height) && n(ad.height) < 137)) { ad.height = "137" } var ag = O.ie ? "ActiveX" : "PlugIn", af = "MMredirectURL=" + encodeURIComponent(Q.location.toString().replace(/&/g, "%26")) + "&MMplayerType=" + ag + "&MMdoctitle=" + encodeURIComponent(h.title.slice(0, 47) + " - Flash Player Installation"); if (typeof ae.flashvars != D) { ae.flashvars += "&" + af } else { ae.flashvars = af } if (O.ie && ah.readyState != 4) { var ab = C("div"); aa += "SWFObjectNew"; ab.setAttribute("id", aa); ah.parentNode.insertBefore(ab, ah); ah.style.display = "none"; y(ah) } u(ad, ae, aa) } } function b(ab) { if (O.ie && ab.readyState != 4) { ab.style.display = "none"; var aa = C("div"); ab.parentNode.insertBefore(aa, ab); aa.parentNode.replaceChild(J(ab), aa); y(ab) } else { ab.parentNode.replaceChild(J(ab), ab) } } function J(af) { var ae = C("div"); if (O.win && O.ie) { ae.innerHTML = af.innerHTML } else { var ab = af.getElementsByTagName(r)[0]; if (ab) { var ag = ab.childNodes; if (ag) { var aa = ag.length; for (var ad = 0; ad < aa; ad++) { if (!(ag[ad].nodeType == 1 && ag[ad].nodeName == "PARAM") && !(ag[ad].nodeType == 8)) { ae.appendChild(ag[ad].cloneNode(true)) } } } } } return ae } function k(aa, ab) { var ac = C("div"); ac.innerHTML = ""; return ac.firstChild } function u(ai, ag, ab) { var aa, ad = c(ab); ab = W(ab); if (O.wk && O.wk < 312) { return aa } if (ad) { var ac = (O.ie) ? C("div") : C(r), af, ah, ae; if (typeof ai.id == D) { ai.id = ab } for (ae in ag) { if (ag.hasOwnProperty(ae) && ae.toLowerCase() !== "movie") { e(ac, ae, ag[ae]) } } if (O.ie) { ac = k(ai.data, ac.innerHTML) } for (af in ai) { if (ai.hasOwnProperty(af)) { ah = af.toLowerCase(); if (ah === "styleclass") { ac.setAttribute("class", ai[af]) } else { if (ah !== "classid" && ah !== "data") { ac.setAttribute(af, ai[af]) } } } } if (O.ie) { P[P.length] = ai.id } else { ac.setAttribute("type", q); ac.setAttribute("data", ai.data) } ad.parentNode.replaceChild(ac, ad); aa = ac } return aa } function e(ac, aa, ab) { var ad = C("param"); ad.setAttribute("name", aa); ad.setAttribute("value", ab); ac.appendChild(ad) } function y(ac) { var ab = c(ac); if (ab && ab.nodeName.toUpperCase() == "OBJECT") { if (O.ie) { ab.style.display = "none"; (function aa() { if (ab.readyState == 4) { for (var ad in ab) { if (typeof ab[ad] == "function") { ab[ad] = null } } ab.parentNode.removeChild(ab) } else { setTimeout(aa, 10) } }()) } else { ab.parentNode.removeChild(ab) } } } function U(aa) { return (aa && aa.nodeType && aa.nodeType === 1) } function W(aa) { return (U(aa)) ? aa.id : aa } function c(ac) { if (U(ac)) { return ac } var aa = null; try { aa = h.getElementById(ac) } catch (ab) { } return aa } function C(aa) { return h.createElement(aa) } function n(aa) { return parseInt(aa, 10) } function g(ac, aa, ab) { ac.attachEvent(aa, ab); K[K.length] = [ac, aa, ab] } function F(ac) { ac += ""; var ab = O.pv, aa = ac.split("."); aa[0] = n(aa[0]); aa[1] = n(aa[1]) || 0; aa[2] = n(aa[2]) || 0; return (ab[0] > aa[0] || (ab[0] == aa[0] && ab[1] > aa[1]) || (ab[0] == aa[0] && ab[1] == aa[1] && ab[2] >= aa[2])) ? true : false } function v(af, ab, ag, ae) { var ad = h.getElementsByTagName("head")[0]; if (!ad) { return } var aa = (typeof ag == "string") ? ag : "screen"; if (ae) { m = null; G = null } if (!m || G != aa) { var ac = C("style"); ac.setAttribute("type", "text/css"); ac.setAttribute("media", aa); m = ad.appendChild(ac); if (O.ie && typeof h.styleSheets != D && h.styleSheets.length > 0) { m = h.styleSheets[h.styleSheets.length - 1] } G = aa } if (m) { if (typeof m.addRule != D) { m.addRule(af, ab) } else { if (typeof h.createTextNode != D) { m.appendChild(h.createTextNode(af + " {" + ab + "}")) } } } } function w(ad, aa) { if (!j) { return } var ab = aa ? "visible" : "hidden", ac = c(ad); if (L && ac) { ac.style.visibility = ab } else { if (typeof ad === "string") { v("#" + ad, "visibility:" + ab) } } } function N(ab) { var ac = /[\\\"<>\.;]/; var aa = ac.exec(ab) != null; return aa && typeof encodeURIComponent != D ? encodeURIComponent(ab) : ab } var d = function () { if (O.ie) { window.attachEvent("onunload", function () { var af = K.length; for (var ae = 0; ae < af; ae++) { K[ae][0].detachEvent(K[ae][1], K[ae][2]) } var ac = P.length; for (var ad = 0; ad < ac; ad++) { y(P[ad]) } for (var ab in O) { O[ab] = null } O = null; for (var aa in swfobject) { swfobject[aa] = null } swfobject = null }) } }(); return { registerObject: function (ae, aa, ad, ac) { if (O.w3 && ae && aa) { var ab = {}; ab.id = ae; ab.swfVersion = aa; ab.expressInstall = ad; ab.callbackFn = ac; o[o.length] = ab; w(ae, false) } else { if (ac) { ac({ success: false, id: ae }) } } }, getObjectById: function (aa) { if (O.w3) { return z(aa) } }, embedSWF: function (af, al, ai, ak, ab, ae, ad, ah, aj, ag) { var ac = W(al), aa = { success: false, id: ac }; if (O.w3 && !(O.wk && O.wk < 312) && af && al && ai && ak && ab) { w(ac, false); M(function () { ai += ""; ak += ""; var an = {}; if (aj && typeof aj === r) { for (var aq in aj) { an[aq] = aj[aq] } } an.data = af; an.width = ai; an.height = ak; var ar = {}; if (ah && typeof ah === r) { for (var ao in ah) { ar[ao] = ah[ao] } } if (ad && typeof ad === r) { for (var am in ad) { if (ad.hasOwnProperty(am)) { var ap = (l) ? encodeURIComponent(am) : am, at = (l) ? encodeURIComponent(ad[am]) : ad[am]; if (typeof ar.flashvars != D) { ar.flashvars += "&" + ap + "=" + at } else { ar.flashvars = ap + "=" + at } } } } if (F(ab)) { var au = u(an, ar, al); if (an.id == ac) { w(ac, true) } aa.success = true; aa.ref = au; aa.id = au.id } else { if (ae && A()) { an.data = ae; R(an, ar, al, ag); return } else { w(ac, true) } } if (ag) { ag(aa) } }) } else { if (ag) { ag(aa) } } }, switchOffAutoHideShow: function () { j = false }, enableUriEncoding: function (aa) { l = (typeof aa === D) ? true : aa }, ua: O, getFlashPlayerVersion: function () { return { major: O.pv[0], minor: O.pv[1], release: O.pv[2] } }, hasFlashPlayerVersion: F, createSWF: function (ac, ab, aa) { if (O.w3) { return u(ac, ab, aa) } else { return undefined } }, showExpressInstall: function (ac, ad, aa, ab) { if (O.w3 && A()) { R(ac, ad, aa, ab) } }, removeSWF: function (aa) { if (O.w3) { y(aa) } }, createCSS: function (ad, ac, ab, aa) { if (O.w3) { v(ad, ac, ab, aa) } }, addDomLoadEvent: M, addLoadEvent: s, getQueryParamValue: function (ad) { var ac = h.location.search || h.location.hash; if (ac) { if (/\?/.test(ac)) { ac = ac.split("?")[1] } if (ad == null) { return N(ac) } var ab = ac.split("&"); for (var aa = 0; aa < ab.length; aa++) { if (ab[aa].substring(0, ab[aa].indexOf("=")) == ad) { return N(ab[aa].substring((ab[aa].indexOf("=") + 1))) } } } return "" }, expressInstallCallback: function () { if (a) { var aa = c(S); if (aa && I) { aa.parentNode.replaceChild(I, aa); if (p) { w(p, true); if (O.ie) { I.style.display = "block" } } if (E) { E(B) } } a = false } }, version: "2.3" } }();