Created
January 7, 2013 15:39
-
-
Save kukat/4475912 to your computer and use it in GitHub Desktop.
xunlei-kankan.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if(window.location&&window.location.href){ | |
if(window.location.href.split("/")[2].search('kankan.com')>0){ | |
document.domain="kankan.com"; | |
}else{ | |
document.domain="xunlei.com"; | |
} | |
} | |
var G_DAPCTRL = null; | |
var G_DAPCTRL_VER = 0; | |
var G_CORE_CONTROL = null; | |
var kkCore = {}; | |
function $(s){ | |
return document.getElementById(s); | |
} | |
var isIE=(navigator.appName).indexOf("Microsoft")!=-1;if(window.Event&&!isIE){function SearchEvent(){var func=SearchEvent.caller;while(func!=null){var arg=func.arguments[0];if(arg){if(String(arg.constructor).indexOf('Event')>-1){return arg}}func=func.caller}return null};if (navigator.userAgent.indexOf('afari') == -1 && navigator.userAgent.indexOf('Opera') == -1) {window.constructor.prototype.__defineGetter__("event",function(){return SearchEvent()});}; Event.prototype.__defineSetter__("returnValue",function(bool){if(!bool){this.preventDefault()}return bool});Event.prototype.__defineSetter__("cancelBubble",function(bool){if(bool){this.stopPropagation()}return bool});Event.prototype.__defineGetter__("clientX",function(){return this.pageX});Event.prototype.__defineGetter__("clientY",function(){return this.pageY});Event.prototype.__defineGetter__("keyCode",function(){return this.which});Event.prototype.__defineGetter__("button",function(){return this.which});Event.prototype.__defineGetter__("srcElement",function(){var n=this.target;while(n.nodeType!=1){n=n.parentNode}return n});Event.prototype.__defineGetter__("offsetX",function(){return this.layerX});Event.prototype.__defineGetter__("offsetY",function(){return this.layerY});Event.prototype.attachEvent=function(type,handler){this.addEventListener(type.substring(2),handler,true)};Event.prototype.detachEvent=function(type,handler){this.removeEventListener(type.substring(2),handler,true)};window.constructor.prototype.attachEvent=function(type,handler){this.addEventListener(type.substring(2),handler,true)};window.constructor.prototype.detachEvent=function(type,handler){this.removeEventListener(type.substring(2),handler,true)};document.constructor.prototype.attachEvent=function(type,handler){this.addEventListener(type.substring(2),handler,true)};document.constructor.prototype.detachEvent=function(type,handler){this.removeEventListener(type.substring(2),handler,true)};Element.prototype.attachEvent=function(type,handler){this.addEventListener(type.substring(2),handler,true)};Element.prototype.detachEvent=function(type,handler){this.removeEventListener(type.substring(2),handler,true)};HTMLElement.prototype.attachEvent=function(type,handler){this.addEventListener(type.substring(2),handler,true)};HTMLElement.prototype.detachEvent=function(type,handler){this.removeEventListener(type.substring(2),handler,true)}} | |
function cacheBackground(){ | |
try{ | |
var userAgent = navigator.userAgent.toLowerCase(); | |
var env = null; | |
var ver = 0; | |
env = userAgent.match(/msie ([\d.]+)/); | |
ver = env ? parseInt(env[1], 10) : 0; | |
if(ver == 6){ | |
document.execCommand("BackgroundImageCache", false, true); | |
} | |
}catch(e){} | |
}cacheBackground(); | |
var ioCtrl = { | |
ioWriter:function(name,value,hours){ | |
if(G_DAPCTRL_VER>200000){ | |
this.ioCtrlWriter(name,value,hours||null); | |
}else{ | |
if(hours){ | |
setCookie(name,value,hours); | |
}else{ | |
setCookie(name,value); | |
} | |
} | |
}, | |
ioReader:function(name){ | |
if(G_DAPCTRL_VER>200000){ | |
return this.ioCtrlReader(name) || ""; | |
}else{ | |
return getCookie(name); | |
} | |
}, | |
ioCtrlWriter:function(key, value, expires){ | |
var player = G_DAPCTRL; | |
var iExpire = expires || 720; | |
player.Put("sCookieFileName", key+".dat"); | |
player.Put("sCookie", value+"~"+((new Date().getTime()) + iExpire * 3600000)); | |
player = null; | |
}, | |
ioCtrlReader:function(key){ | |
var player = G_DAPCTRL; | |
var sCookie = null; | |
var value = null; | |
player.Put("sCookieFileName", key+".dat"); | |
sCookie = player.Get("sCookie")||null; | |
if(null != sCookie){ | |
value = ioCtrlCheck(sCookie); | |
} | |
player = null; | |
return value; | |
function ioCtrlCheck(sCookie){ | |
var items = sCookie.split("~"); | |
var curDate = expires = 0; | |
var value = null; | |
if(items.length != 2){return null;} | |
value = ""==items[0]?null:items[0]; | |
expires = parseInt(items[1], 10); | |
curDate = new Date().getTime(); | |
if(curDate > expires){ | |
return null; | |
}else{ | |
return value; | |
} | |
} | |
} | |
}; | |
var KankanCoreObj = KankanEventObj.extend({ | |
init: function(){ | |
this._super(); | |
this.pageTitle = ''; | |
var id=this.getParameter("id"); | |
var u=this.getParameter("u"); | |
if(id){this.setCookie("qs_id", id);} | |
if(u){this.setCookie("qs_u",u);} | |
var uAgent = navigator.userAgent.toLowerCase(); | |
this.sourceId = id||this.getCookie("qs_id")||3; | |
this.isx64 = /x64/.test(uAgent); | |
this.ismac = /mac/.test(uAgent) || /opera/.test(uAgent); | |
try{ | |
this.mdata = G_MOVIE_INFO; | |
}catch(e){}; | |
//this.isx64 = true;+ | |
if(document.domain=='kankan.com'){ | |
this.subDomain = 'vod.kankan.com'; | |
}else{ | |
this.subDomain = 'kankan.xunlei.com'; | |
if(window.location.href.indexOf('kankan1.xunlei.com')>0){ | |
this.subDomain = 'kankan1.xunlei.com'; | |
} | |
} | |
this.date = new Date().getFullYear()+this.formatDate(new Date().getTime()); | |
}, | |
setTitle: function(str) { | |
this.pageTitle = str; | |
document.title=str; | |
}, | |
string2Array: function(str,splitChar) { | |
return str.split(splitChar); | |
}, | |
array2String: function(arr,joinChar) { | |
return arr.join(joinChar); | |
}, | |
getGCID: function(url) { | |
var gcid = url.split("/").length>4?(url.split("/")[4]).toUpperCase():''; | |
return gcid; | |
}, | |
getCID: function(url){ | |
var cid = url.split("/").length>5?(url.split("/")[5]).toUpperCase():''; | |
return cid; | |
}, | |
getVcutSubname: function(index){ | |
var p3=/(第)[0-9]+(集|话)/; | |
var subname = G_MOVIE_DATA.subnames[index]; | |
if(G_SUBMOVIE_DATA[index].vCut==1){ | |
if(G_MOVIE_TYPE=='movie'||G_MOVIE_TYPE=='vmovie'){ | |
if(p3.test(subname)){ | |
return '全集'; | |
} | |
} | |
subname = subname.replace(/\[[^0-9]\]/gi, ""); | |
return subname; | |
//if() | |
}else{ | |
return subname; | |
} | |
}, | |
getPeerID: function(bit){ | |
var peerId = null; | |
try{ | |
if(32 == bit){ | |
peerId = G_DAPCTRL.Get("sPeerID32")||null; | |
}else{ | |
peerId = G_DAPCTRL.Get("sPeerID")||null; | |
} | |
}catch(e){} | |
return peerId; | |
}, | |
compareVersions: function(v1, v2){ | |
for (i = 0; i < v1.length; ++i){ | |
var n1 = new Number(v1[i]); | |
var n2 = new Number(v2[i]); | |
if (n1 < n2) | |
return -1; | |
if (n1 > n2) | |
return 1; | |
} | |
return 0; | |
}, | |
getBitrate: function(url){ | |
try{ | |
var bit = parseInt(url.split("/")[9], 16); | |
return bit; | |
}catch(e){ | |
return "0"; | |
} | |
}, | |
loadJSData: function(url, handler, args, isDestory ,charset){ | |
var head = document.getElementsByTagName("head")[0]; | |
var script = this.$C("script"); | |
var id = "dynamic_script_"+(new Date().getTime())+"_"+Math.random(); | |
var eventType = (undefined !== script.onreadystatechange && undefined !== script.readyState) ? "onreadystatechange" : "onload"; | |
script.language="javascript"; | |
script.type="text/javascript"; | |
if(typeof charset != 'undefined'){ | |
script.charset = charset; | |
} | |
script.src = url; | |
script.id = id; | |
if(!isIE){ | |
try{ | |
script.addEventListener('error', function(){ | |
if(typeof(handler) == "string"){ | |
setTimeout(function(){var hdl = eval(handler);hdl.apply(null, args);}, 50); | |
}else if(typeof(handler) == "function"){ | |
setTimeout(function(){handler.apply(null, args);}, 50); | |
} | |
}); | |
}catch(e){}; | |
} | |
script.attachEvent(eventType, function(){ | |
var state = script.readyState || "loaded"; | |
if("loaded" == state || "complete" == state){ | |
if(typeof(handler) == "string"){ | |
setTimeout(function(){var hdl = eval(handler);hdl.apply(null, args);}, 50); | |
}else if(typeof(handler) == "function"){ | |
setTimeout(function(){handler.apply(null, args);}, 50); | |
} | |
if(isDestory){ | |
$R(script, head); | |
} | |
head = null; | |
script = null; | |
} | |
}); | |
this.$P(script, head); | |
}, | |
loadJSDataByTimeslice:function(url, handler, args, isDestory, interval,charset){ | |
var head = document.getElementsByTagName("head")[0]; | |
var script = $C("script"); | |
var intvId = null; | |
var isLoaded = false; | |
var id = "dynamic_script_"+(new Date().getTime())+"_"+Math.random(); | |
var eventType = (undefined !== script.onreadystatechange && undefined !== script.readyState) ? "onreadystatechange" : "onload"; | |
script.language="javascript"; | |
script.type="text/javascript"; | |
if(typeof charset != 'undefined'){ | |
script.charset = charset; | |
} | |
script.src = url; | |
script.id = id; | |
script.attachEvent(eventType, function(){ | |
var state = script.readyState || "loaded"; | |
if("loaded" == state || "complete" == state){ | |
if(null!=intvId){ | |
clearTimeout(intvId); | |
intvId = null; | |
} | |
if(!isLoaded){ | |
isLoaded = true; | |
args.unshift(false); | |
if(typeof(handler) == "string"){ | |
setTimeout(function(){try{var hdl = eval(handler);hdl.apply(null, args);}catch(e){}}, 50); | |
}else if(typeof(handler) == "function"){ | |
setTimeout(function(){handler.apply(null, args);}, 50); | |
} | |
} | |
if(isDestory){ | |
$R(script, head); | |
} | |
head = null; | |
script = null; | |
} | |
}); | |
$P(script, head); | |
intvId = setTimeout(function(){ | |
clearTimeout(intvId); | |
intvId = null; | |
if(!isLoaded){ | |
isLoaded = true; | |
args.unshift(true); | |
if(typeof(handler) == "string"){ | |
setTimeout(function(){try{var hdl = eval(handler);hdl.apply(null, args);}catch(e){}}, 50); | |
}else if(typeof(handler) == "function"){ | |
setTimeout(function(){try{handler.apply(null, args);}catch(e){}}, 50); | |
} | |
} | |
}, interval); | |
}, | |
loadJSONDataByTimeslice:function(url, handler, args, responseObj, isDestory, _parent, interval){ | |
var ifr = $C("iframe"); | |
var id = "dynamic_iframe_"+(new Date().getTime())+"_"+Math.random(); | |
var isLoaded = false; | |
var intvId = null; | |
ifr.style.cssText="display:none"; | |
ifr.width = 1; | |
ifr.height = 1; | |
ifr.src = url; | |
ifr.id=id; | |
ifr.name=id; | |
ifr.attachEvent("onload", function(){ | |
if(null!=intvId){ | |
clearTimeout(intvId); | |
intvId = null; | |
} | |
if(!isLoaded){ | |
isLoaded = true; | |
try{ | |
if(typeof(responseObj) == "object"){ | |
for(var i=0;i<responseObj.length;i++){ | |
var json = eval("ifr.contentWindow."+responseObj[i]); | |
args.unshift(json); | |
} | |
}else{ | |
var json = eval("ifr.contentWindow."+responseObj); | |
args.unshift(json); | |
} | |
}catch(e){ | |
args.unshift(null); | |
}finally{ | |
if(typeof(handler) == "string"){ | |
setTimeout(function(){var hdl = eval(handler);hdl.apply(null, args);}, 50); | |
}else if(typeof(handler) == "function"){ | |
setTimeout(function(){handler.apply(null, args);}, 50); | |
} | |
if(isDestory){ | |
$R(ifr, _parent||null); | |
} | |
ifr = null; | |
} | |
}else{ | |
if(isDestory){ | |
$R(ifr, _parent||null); | |
} | |
ifr = null; | |
} | |
}); | |
$P(ifr, _parent||null); | |
intvId = setTimeout(function(){ | |
clearTimeout(intvId); | |
intvId = null; | |
if(!isLoaded){ | |
isLoaded = true; | |
args.unshift(null); | |
if(typeof(handler) == "string"){ | |
setTimeout(function(){var hdl = eval(handler);hdl.apply(null, args);}, 50); | |
}else if(typeof(handler) == "function"){ | |
setTimeout(function(){handler.apply(null, args);}, 50); | |
} | |
} | |
}, interval); | |
}, | |
loadJSONData:function(url, handler, args, responseObj, isDestory, _parent){ | |
var ifr = $C("iframe"); | |
var id = "dynamic_iframe_"+(new Date().getTime())+"_"+Math.random(); | |
ifr.style.cssText="display:none"; | |
ifr.width = 1; | |
ifr.height = 1; | |
ifr.src = url; | |
ifr.id=id; | |
ifr.name=id; | |
ifr.attachEvent("onload", function(){ | |
try{ | |
if(typeof(responseObj) == "object"){ | |
for(var i=0;i<responseObj.length;i++){ | |
var json = eval("ifr.contentWindow."+responseObj[i]); | |
args.unshift(json); | |
} | |
}else{ | |
var json = eval("ifr.contentWindow."+responseObj); | |
args.unshift(json); | |
} | |
}catch(e){ | |
args.unshift(null); | |
}finally{ | |
if(typeof(handler) == "string"){ | |
setTimeout(function(){var hdl = eval(handler);hdl.apply(null, args);}, 50); | |
}else if(typeof(handler) == "function"){ | |
setTimeout(function(){handler.apply(null, args);}, 50); | |
} | |
if(isDestory){ | |
$R(ifr, _parent||null); | |
} | |
ifr = null; | |
} | |
}); | |
$P(ifr, _parent||null); | |
}, | |
setCookie:function(name,value,hours){ | |
if(arguments.length>2){ | |
var expireDate=new Date(new Date().getTime()+hours*3600000); | |
document.cookie = name + "=" + encodeURIComponent(value) + "; path=/; domain="+document.domain+"; expires=" + expireDate.toGMTString(); | |
}else{ | |
document.cookie = name + "=" + encodeURIComponent(value) + "; path=/; domain="+document.domain+""; | |
} | |
}, | |
setCookieWithDomain:function(name, value, hours,domain) { | |
var expire = "; path=/"; | |
if(hours != null) { | |
expire = new Date((new Date()).getTime() + hours * 3600000); | |
expire = "; expires=" + expire.toGMTString() + "; path=/"; | |
} | |
document.cookie = name + "=" + escape(value)+';domain='+domain +';'+ expire; | |
}, | |
formatDate:function(str){ | |
var d = new Date(parseInt(str)); | |
return ((d.getMonth()+1)<10?"0"+(d.getMonth()+1):(d.getMonth()+1))+""+(d.getDate()<10?"0"+d.getDate():d.getDate()); | |
}, | |
loadMediajs: function(url){ | |
var rnstr = new Date().getYear() + this.formatDate(); | |
var url = url.replace('http://biz5','http://'+rnstr+'.biz5'); | |
setTimeout(function(){this.loadJSData(url, null, [], true);},0); | |
} | |
}); | |
var kkCoreInit = KankanCoreObj.extend({ | |
init: function(){ | |
this._super(); | |
try{ | |
if(window.external.GetSource()=='XmpTipWnd'){ | |
this.init2(); | |
return true; | |
} | |
}catch(e){ | |
} | |
if(window.kkarea!='1'){ | |
this.getOsInfo(); | |
}else{ | |
this.init2(); | |
} | |
return true; | |
}, | |
getOsInfo:function(){ | |
this.loadJSData("http://ip.kankan.xunlei.com/tbl/get_status.php?id="+G_MOVIEID, this.getOsInfoHandler, [], false); | |
}, | |
getOsInfoHandler:function(){ | |
if(typeof window.G_MOVIE_OVERSEA!='undefined'&&!window.G_MOVIE_OVERSEA){ | |
G_CORE_INIT.init2os(); | |
}else{ | |
G_CORE_INIT.init2(); | |
if(typeof window.G_MOVIE_OVERSEA=='undefined'){ | |
var url = "http://kkpgv2.xunlei.com/?u=vodact&u1=oversea&u2=fail&rd="+new Date().getTime(); | |
}else{ | |
var url = "http://kkpgv2.xunlei.com/?u=vodact&u1=oversea&u2=enabled&rd="+new Date().getTime(); | |
} | |
G_CORE_INIT.mStatSend(url); | |
} | |
}, | |
init2os: function(){ | |
var str=''; | |
str+='<div class="error_copyright">'; | |
str+='<p class="p_1">很抱歉,由于影片授权地区限制,您当前所在地区我们不能为您提供本影片在线点播服务。</p>'; | |
str+='<p class="p_2">欢迎您继续选择观看其他影片,谢谢。</p>'; | |
str+='<p class="p_3">如果您在中国内地无法观看,请进入 <a href="http://helpbbs.xunlei.com/thread.php?fid=166" target="_blank">客服论坛反馈</a> 我们会尽快处理。</p>'; | |
str+='<p class="p_3">您的IP地址是:['+window.G_IP+'] </p>'; | |
str+='<p class="p_4">Sorry, we can\'t provide on-line service for this video due to its copyright restriction.<br/>You can choose other videos. Thanks for your understanding.</br>If you\'re inside Mainland China, please enter <a href="http://helpbbs.xunlei.com/thread.php?fid=166" target="_blank">the BBS to feedback</a>,<br/>we will handle this as soon as possible.</br>Your IP address:['+window.G_IP+']</br></p>'; | |
str+='</div>'; | |
document.getElementById('errorDiv').innerHTML=str; | |
document.getElementById('errorDiv').style.display=""; | |
hide_kk_player(); | |
_G=function(){}; | |
G_CORE_CONTROL.play = function(){}; | |
var url = "http://kkpgv2.xunlei.com/?u=vodact&u1=oversea&u2=disabled&rd="+new Date().getTime(); | |
this.mStatSend(url); | |
try{ | |
document.getElementById('ul_subLabel').innerHTML=""; | |
}catch(e){} | |
try{ | |
if(_ol_movie_type=="movie"||_ol_movie_type=="vmovie") | |
{ | |
$('wideScreenContainer').style.display="none"; | |
} | |
}catch(e){} | |
try{ | |
$('ass_sublist_a').style.display="none"; | |
}catch(e){} | |
try{ | |
$('ass_window_play').style.display = 'none'; | |
}catch(e){} | |
try{ | |
$('dl_subList').style.display = 'none'; | |
}catch(e){} | |
}, | |
init2: function(){ | |
this.verThunder59 = 0; | |
this.verXMP = 0; | |
this.verKanKanLite = 0; | |
this.oldVersion = false; | |
this.oldVersionLite = false; | |
this.verFlashplayer = null; | |
this.flashOld = false; | |
this.xmpPackageUrl = 'http://xmp.down.sandai.net/kankan/KankanInstaller.exe'; | |
this.isNoComponent = false; | |
this.isESource=false; | |
this.isESourceNoInstall=false; | |
this.AcControl = null; | |
this.isUseAcc = false; | |
this.isppweb = false; | |
G_PLAYER_INIT.attachEvent(this, "onload", this.f_onload); | |
try{ | |
var sourceId = this.getParameter("id")||3; | |
if(parseInt(sourceId/1000)==731||parseInt(sourceId/1000)==761||sourceId==20127757){ | |
this.isESource = true; | |
} | |
if(parseInt(sourceId)==731009 || parseInt(sourceId)==731014){ | |
this.isESourceNoInstall = true; | |
} | |
this.verFlashplayer = G_PLAYER_INIT.getFlashVer(); | |
}catch(e){} | |
if(G_PLAYER_INIT.isIE){ | |
try{ | |
G_DAPCTRL = new ActiveXObject("DapCtrl.DapCtrl"); | |
G_DAPCTRL_VER=G_DAPCTRL.Get("iVersion"); | |
}catch(e){ | |
//dump | |
//G_PLAYER_ERROR.dump('001'); | |
} | |
}else{ //FF | |
try{ | |
G_DAPCTRL = G_PLAYER_INIT.dapctrl; | |
G_DAPCTRL_VER=G_DAPCTRL.Get("iVersion"); | |
}catch(e){ | |
//dump | |
//G_PLAYER_ERROR.dump('015'); | |
} | |
} | |
G_CORE_CONTROL.init2.delayCall(0,G_CORE_CONTROL); | |
if(!this.componentCheck()){ | |
this.isppweb=true; | |
this.installPlay(false); | |
return false; | |
}else{ | |
this.mStatSend("http://kkpgv2.xunlei.com/?u=xoli1&u1=componentchecked&u2="+ (this.isESource?"outside":"inside") + "&r=" + this.time()); | |
} | |
if(getCookie("kkvs")==1){ | |
G_CORE_CONTROL.fixServerPlay = true; | |
} | |
//if(typeof G_COMMERCIAL_COMMON!='undefined' && typeof G_COMMERCIAL_COMMON.start!='undefined'&&!this.isNoComponent&&!this.getParameter('subid')&&!G_CORE_CONTROL.isServerPlay&&!G_CORE_CONTROL.fixServerPlay){ | |
// G_COMMERCIAL_COMMON.firstStartFun.delayCall(0,G_COMMERCIAL_COMMON); | |
//} | |
G_CORE_CONTROL.showPlayer(true); | |
//G_PLAYER_INIT.printObject("_player",false,'100%','100%',G_MOVIE_TYPE,this.verFlashplayer); | |
this.checkAndPlay.delayCall(0,this); | |
var f =this.verFlashplayer; | |
if(f&&(parseInt(f[0])<=9||(parseInt(f[0])==10&&parseInt(f[1])<1))){ | |
this.flashOld = true; | |
} | |
}, | |
componentCheck: function(){ | |
if(G_DAPCTRL_VER<200000){ | |
return false; | |
} | |
if(G_DAPCTRL_VER>=203153){ | |
this.verThunder59=G_DAPCTRL.GetThunderVer('Thunder59','Install'); | |
} | |
try{ | |
this.verXMP=G_DAPCTRL.GetThunderVer ("KanKan", "Install"); | |
}catch(e){ | |
this.verXMP = 0; | |
} | |
try{ | |
this.verKanKanLite=G_DAPCTRL.GetThunderVer("KanKanLite", "Install"); | |
}catch(e){ | |
this.verKanKanLite = 0; | |
} | |
if((this.getLoc().search("43/43996.shtml")>0)&&this.getParameter("redirect")!=1) { | |
window.location.href = 'http://vod.kankan.com/v/43/43996/43996.shtml'; | |
return false; | |
} | |
if((this.getLoc().search("66/66210.shtml")>0)&&this.getParameter("redirect")!=1) { | |
window.location.href = 'http://vod.kankan.com/v/66/66210/66210.shtml'; | |
return false; | |
} | |
if((this.getLoc().search("67/67799.shtml")>0)&&this.getParameter("redirect")!=1) { | |
window.location.href = 'http://vod.kankan.com/v/67/67799/67799.shtml'; | |
return false; | |
} | |
if((this.getLoc().search("65/65820.shtml")>0)&&this.getParameter("redirect")!=1) { | |
window.location.href = 'http://vod.kankan.com/v/65/65820/65820.shtml'; | |
return false; | |
} | |
//停用视频加速1.5 | |
//if(this.verKanKanLite>=135 && G_MOVIE_TYPE == 'tv' && this.getPeerID() && this.getPeerID().substr(7,1)=='8'){ //disabled va for ppweb | |
/*try{ | |
this.AcControl = $('vasensor'); | |
if(this.isIE){ | |
this.AcControl.attachEvent('Notify', this.acHandler); | |
this.AcControl.attachEvent('NotifyErr', this.acErrorHandler); | |
}else{ | |
this.AcControl.addEventListener('Notify', this.acHandler, false); | |
this.AcControl.addEventListener('NotifyErr', this.acErrorHandler, false); | |
} | |
this.isUseAcc = true; | |
}catch(e){}*/ | |
//this.isUseAcc = true; | |
//} | |
if(this.verXMP<494||(this.verXMP>557&&this.verXMP<565)){ | |
this.oldVersion = true; | |
} | |
if(this.verKanKanLite>0){ | |
this.oldVersion = false; | |
} | |
if(this.verKanKanLite>0&&this.verKanKanLite<=86||this.verKanKanLite==102){ | |
if(this.verThunder59>0){ | |
this.oldVersion = true; | |
} | |
this.oldVersionLite = true; | |
} | |
try{ | |
G_PLAYER_INIT.trace('client Version,DAP:'+G_DAPCTRL_VER+',KKL:'+this.verKanKanLite+',KK:'+this.verXMP+',T59:'+this.verThunder59); | |
G_PLAYER_INIT.trace('user Agent:'+window.navigator.userAgent); | |
}catch(e){} | |
if(this.oldVersionLite){ | |
if(this.verThunder59>0){ | |
G_PLAYER_ERROR.dump('014'); | |
} | |
G_CORE_INSTALL.triggerType = 1; | |
return false; | |
} | |
if(this.oldVersion){ | |
G_PLAYER_ERROR.dump('002'); | |
G_CORE_INSTALL.triggerType = 1; | |
return false; | |
} | |
if(G_DAPCTRL_VER>=203407&&this.verKanKanLite>=128){ | |
G_PLAYER_INIT.iCacheModeAvailable = true; | |
} | |
return true; | |
}, | |
acHandler:function(service,url,event){ | |
var eobj = {'Direct':11,'XLP2S':12,'XLP2P':13,'XLP2SP':14,'Cache':15}; | |
if(event){ | |
var status = eobj[event]||-1; | |
var times = ++G_CORE_STATIC.accStatusTimes; | |
G_CORE_STATIC.setnStat('acc_status',status,false); | |
G_CORE_STATIC.setnStat('acc_status_times',times,false); | |
if(times == 1 || times == 2){ | |
G_CORE_STATIC.setnStat('acc_status'+times,status,false); | |
} | |
if(G_PLAYER_INSTANCE && !G_PLAYER_INSTANCE.getnStat('xl_product_status')){ | |
G_CORE_STATIC.setnStat('xl_product_status','KKL('+G_CORE_INIT.verKanKanLite+','); | |
} | |
} | |
var len = arguments.length; | |
var str = ''; | |
for(var i=0;i<len;i++){ | |
str += arguments[i]+';'; | |
} | |
G_PLAYER_INIT.trace('acHandler:'+str+',status:'+status); | |
}, | |
acErrorHandler:function(err){ | |
G_CORE_STATIC.setnStat('acc_error',err,false); | |
G_PLAYER_INIT.trace('acErrorHandler:'+err); | |
}, | |
setVodAcc:function(md5Arr,cdnArr){ | |
var sessionid = 'va001'+ this.time()+this.rand(1000000,9999999)+this.rand(1000000,9999999); | |
G_CORE_STATIC.setnStat('acc_status',11,false); | |
G_CORE_STATIC.setnStat('acc_status1',11,false); | |
G_CORE_STATIC.setnStat('acc_status_times',0,false); | |
if(this.AcControl){ | |
for(var i=0;i<md5Arr.length;i++){ | |
this.AcControl.SetParameter('KKP2S',md5Arr[i],'sSessionID',sessionid); | |
this.AcControl.EnableVA('KKP2S',md5Arr[i],cdnArr[i],0); | |
} | |
} | |
}, | |
printUpdateXmp: function(){ | |
$('_player').innerHTML = '<div class="no_thunder"><div class="no_title lastest"><a target="blank" id="xmpPackage" href="'+this.xmpPackageUrl+'" title="立即下载安装">立即下载安装</a></div></div>'; | |
}, | |
f_onload:function(){ | |
if(this.isNoComponent&&window.is3d){ | |
return false; | |
} | |
if(!this.isNoComponent||this.ismac||isIE||this.isESource){ | |
this.checkAndPlay(); | |
} | |
}, | |
checkAndPlay:function(){ | |
if(this.playerLoaded) return false; | |
if(!G_PLAYER_INIT.playerLoaded){ | |
this.checkAndPlay.delayCall(50,this); | |
}else{ | |
//设置comScore值 | |
this.setComScoreVal(); | |
this.playerLoaded = true; | |
this.playerLoadedTick = this.time(); | |
this.start(); | |
//指定(播放器右边按钮)缩放 | |
this.setWideScreen(); | |
} | |
}, | |
start: function(){ | |
G_CORE_CONTROL.processEvent(); | |
G_CORE_CONTROL.initFirstPlay(); | |
//G_CORE_CONTROL.setHotKey.delayCall(100,this); | |
G_CORE_CONTROL.fireEvent('onStart'); | |
}, | |
setWideScreen: function(){ | |
var type = "small",mt = G_MOVIE_TYPE; | |
if(mt=='documentary'){ | |
type = "big"; | |
}else{ | |
return; | |
} | |
try{G_PLAYER_INSTANCE.flvExternalCommand('scrollCmd',type)}catch(e){} | |
}, | |
hintToCloseBroswerDetect: function(){ | |
try { | |
var dapCtrl = new ActiveXObject("DapCtrl.DapCtrl"); | |
var v_running = dapCtrl.Get("iVersion"); | |
try{ | |
var vd = new ActiveXObject("GVODPlayer.VersionDetector"); | |
var v_install = vd.GetVersion("Thunder5", "DapCtrl.dll"); | |
}catch(e){ | |
try{ | |
var vd = new ActiveXObject("XLKankan.VersionDetector"); | |
var v_install = vd.GetVersion("", "DapCtrl.dll"); | |
}catch(e){} | |
} | |
if (parseInt(v_running) % 1000 < parseInt(v_install)){ | |
vd = null; | |
dapCtrl = null; | |
return true; | |
} | |
vd = null; | |
dapCtrl = null; | |
return false; | |
}catch(e){ | |
return false; | |
} | |
}, | |
hintToCloseBroswer: function(){ | |
if(this.hintToCloseBroswerDetect()){ | |
alert("检测到已安装新版本的看看组件,请关闭所有页面并退出浏览器,然后重新打开当前页播放"); | |
return true; | |
}else{ | |
return false; | |
} | |
}, | |
reInit: function(){ | |
if(G_PLAYER_INSTANCE.dapctrl){ | |
return; | |
} | |
try{ | |
G_PLAYER_INSTANCE.dapctrl=new ActiveXObject("DapCtrl.DapCtrl"); | |
G_PLAYER_INSTANCE.dapctrl.onState = G_PLAYER_INSTANCE.dapCtrlHandler; | |
this.isNoComponent = false; | |
//G_PLAYER_INSTANCE.setFullScreen(false); | |
}catch(e){ | |
} | |
//G_PLAYER_INIT = new kkPlayer.Init(); | |
}, | |
installPlay: function(directPlay){ | |
this.isNoComponent = true; | |
if(!this.isESourceNoInstall&&!this.isx64&&!this.ismac){ | |
G_CORE_INSTALL.initBaseObj(); | |
G_CORE_INSTALL.init2(); | |
} | |
if(this.isESourceNoInstall){ | |
G_CORE_INSTALL.initBaseObj(); | |
} | |
if((this.ismac||isIE||this.isESource||directPlay)&&!window.is3d){//open p2s | |
G_CORE_CONTROL.showPlayer(true); | |
if(directPlay){ | |
_G(G_CORE_CONTROL.currentIndex); | |
}else{ | |
this.checkAndPlay.delayCall(0,this); | |
} | |
} | |
G_CORE_CONTROL.fireEvent.delayCall(1000,G_CORE_CONTROL,"onNoComponent"); | |
}, | |
setComScoreVal: function(){ | |
var gpi = G_PLAYER_INSTANCE; | |
gpi.setFlvStat("istrailer", (window["G_IS_TRAILER"] ? 1 : 0)); | |
gpi.setFlvStat("movieid", G_MOVIE_INFO.id); | |
G_CORE_STATIC.setChannelId(); | |
} | |
}); | |
var kkCoreControl = KankanCoreObj.extend({ | |
init: function(){ | |
this._super(); | |
this.currentIndex = 0; | |
this.currentQuality = -1; //0,1,2 | |
this.qualitystr = '000'; | |
this.playLock = false; | |
this.statChannel = 'kk_mp4'; | |
this.vcut = 0; | |
this.hideLevel = 0; | |
this.progressCount = 0; | |
this.isSeeked = false; | |
this.isLastPlaying = false; | |
this.playMode = 0; //1 for p2s | |
this.isServer = false; | |
this.isFullscreen = false; | |
if(this.isx64||this.ismac){ | |
this.isServerPlay = true; | |
}else{ | |
this.isServerPlay = false; | |
} | |
this.fixServerPlay = false; | |
this.lastPosition = 0; | |
this.lastError = null; | |
//hisplay mark kkCoreControl | |
this.hisMovNoticeShow = -1; | |
this.hisMovNoticeTxt = ''; | |
this.hisMovTiming = -1; | |
this.onBreakStopPos = 0; | |
this.isFocus = true; | |
this.serverIP = ''; | |
this.serverGCID = ''; | |
if(this.isIE){ | |
document.onfocusin = function(){G_CORE_CONTROL.isFocus = true;}; | |
document.onfocusout = function(){G_CORE_CONTROL.isFocus = false;}; | |
}else{ | |
window.onblur = function(){G_CORE_CONTROL.isFocus = false;}; | |
window.onfocus = function(){G_CORE_CONTROL.isFocus = true;}; | |
} | |
}, | |
init2:function(){ | |
this.currentIndex = this.getInitIndex(); | |
}, | |
processEvent:function(){ | |
var i = G_PLAYER_INSTANCE; | |
i.attachEvent(this, "onSuperHighClick", this.f_onSuperHighClick); | |
i.attachEvent(this, "onHighClick", this.f_onHighClick); | |
i.attachEvent(this, "onStandardClick", this.f_onStandardClick); | |
i.attachEvent(this, "onNomalClick", this.f_onNomalClick); | |
i.attachEvent(this, "onStop", this.f_onStop); | |
i.attachEvent(this, "onEnd", this.f_onEnd); | |
i.attachEvent(this, "onopen", this.f_onOpen); | |
i.attachEvent(this, "DownComplete", this.f_downComplete); | |
i.attachEvent(this, "onRePlay", this.f_onRePlay); | |
i.attachEvent(this, "onProgress", this.f_onProgress); | |
i.attachEvent(this, "onExitFullScreen", this.f_onExitFullScreen); | |
i.attachEvent(this, "onFullScreen", this.f_onFullScreen); | |
i.attachEvent(this, "onStickOver", this.f_onStickOver); | |
i.attachEvent(this, "onOneStickOver", this.f_onOneStickOver); | |
i.attachEvent(this, "onplaying", this.f_onplaying); | |
i.attachEvent(this, "OceanAdsPreDownLoad", this.f_onOceanAdsPreDownLoad); | |
i.attachEvent(this, "onErrorInfo", this.f_onErrorInfo); | |
i.attachEvent(this, "onSetStausChange", this.f_onSetStausChange); | |
i.attachEvent(this, "onStickLoadOver", this.f_onStickLoadOver); | |
i.attachEvent(this, "onbuffering", this.f_onbuffering); | |
i.attachEvent(this, "onInstall", this.f_onInstall); | |
i.attachEvent(this, "onerr", this.f_onerr); | |
i.attachEvent(this, "onTerr", this.f_onTerr); | |
i.attachEvent(this, "autoChangeQulity", this.f_autoChangeQulity); | |
i.attachEvent(this, "onSeek", this.f_onSeek); | |
i.attachEvent(this, "onDragSeekStart", this.f_onDragSeekStart); | |
i.attachEvent(this, "onDragSeekEnd", this.f_onDragSeekEnd); | |
i.attachEvent(this, "onUrlRequest", this.f_onUrlRequest); | |
i.attachEvent(this, "onPause", this.f_onPause); | |
i.attachEvent(this,'onChangeInstallPlay',this.f_onChangeInstallPlay); | |
i.attachEvent(this,'onStickSkip',this.f_onStickSkip); | |
i.attachEvent(this,'onPauseSkip',this.f_onPauseSkip); | |
i.attachEvent(this,'onScrollSmall',this.f_onScrollSmall); | |
i.attachEvent(this,'onScrollBig',this.f_onScrollBig); | |
i.attachEvent(this,'onLightOff',this.f_onLightOff); | |
i.attachEvent(this,'onLightOn',this.f_onLightOn); | |
i.attachEvent(this,'onNewWindow',this.f_onNewWindow); | |
i.attachEvent(this,'onGetPlayURL',this.f_onGetPlayURL); | |
i.attachEvent(this,'ResumeSuspend',this.f_ResumeSuspend); | |
i.attachEvent(this,'onSetPlayUrl',this.f_SetPlayUrl); | |
i.attachEvent(this,'onInterrupt',this.f_onInterrupt); | |
i.attachEvent(this,'PreDownComplete',this.f_PreDownComplete); | |
i.attachEvent(this,'hideNoticeBar',this.f_hideNoticeBar); | |
i.attachEvent(this,'onChangeSub',this.f_onChangeSub); | |
i.attachEvent(this,'onBreakStop',this.f_onBreakStop); | |
i.attachEvent(this,'onbufferend',this.f_onFirBuffEnd); | |
}, | |
f_onChangeSub:function(obj,event,submovieid){ | |
var index = this.getIndexBySubid(submovieid); | |
_G(index); | |
}, | |
f_hideNoticeBar:function(obj,event,noticeid){ | |
this.fireEvent('hideNoticeBar',noticeid); | |
}, | |
f_PreDownComplete:function(){ | |
this.fireEvent('PreDownComplete'); | |
}, | |
f_onSeek:function(){ | |
this.fireEvent('onSeek'); | |
}, | |
f_autoChangeQulity:function(){ | |
this.fireEvent('autoChangeQulity'); | |
}, | |
f_onDragSeekStart:function(){ | |
G_CORE_STATIC.dragCalc = true; | |
G_CORE_STATIC.dragTimePoint = G_CORE_STATIC.time(); | |
//this.dragTimeSum = 0; | |
}, | |
f_onUrlRequest:function(){ | |
var url = "http://kkpgv2.xunlei.com/?u=vodstart&u1=req&u2="+G_CORE_STATIC.staticData.peerid+"&u3="+G_CORE_STATIC.staticData.session_id+"&u4="+G_CORE_STATIC.getGCID(G_SUBMOVIE_DATA[G_CORE_CONTROL.currentIndex].surls[G_CORE_CONTROL.currentQuality])+"&rd="+new Date().getTime(); | |
G_CORE_STATIC.mStatSend(url); | |
if(typeof G_CORE_STATIC.staticData.req_play_tick=='undefined'||G_CORE_STATIC.staticData.req_play_tick==0){ | |
G_CORE_STATIC.setnStat('req_play_tick',null,true); | |
} | |
}, | |
f_onDragSeekEnd:function(){ | |
this.fireEvent('onDragSeekEnd'); | |
}, | |
f_onerr:function(obj,event,errorCode){ | |
this.fireEvent('onerr',errorCode); | |
G_CORE_STATIC.player_last_event='onerr'; | |
}, | |
f_onTerr:function(){ | |
this.fireEvent('onTerr'); | |
G_CORE_STATIC.player_last_event='onTerr'; | |
}, | |
f_onOceanAdsPreDownLoad:function(){ | |
this.fireEvent('OceanAdsPreDownLoad'); | |
}, | |
f_onStickOver:function(){ | |
this.playMovie.delayCall(0,this,this.currentIndex); | |
this.fireEvent('onStickOver'); | |
}, | |
f_onOneStickOver:function(obj,event,isNormal,value){ | |
this.fireEvent('onOneStickOver',isNormal,value); | |
G_CORE_STATIC.adFinish ++; | |
G_CORE_STATIC.player_last_event='onplayad_'+G_CORE_STATIC.ad+'_'+G_CORE_STATIC.adFinish; | |
}, | |
f_onSuperHighClick:function(){ | |
this.fireEvent('onSuperHighClick'); | |
this.switchQuality.delayCall(0,this,3); | |
}, | |
f_onHighClick:function(){ | |
this.fireEvent('onHighClick'); | |
this.switchQuality.delayCall(0,this,2); | |
}, | |
f_onStandardClick:function(){ | |
this.fireEvent('onStandardClick'); | |
this.switchQuality.delayCall(0,this,1); | |
}, | |
f_onNomalClick:function(){ | |
this.fireEvent('onNomalClick'); | |
this.switchQuality.delayCall(0,this,0); | |
}, | |
f_onStop:function(){ | |
this.fireEvent('onStop'); | |
//this.trace('recevie fire event:onStop'); | |
//try{ | |
//G_PLAYER_INSTANCE.dapctrl.Put("sPlayerOp", "stop"); | |
//}catch(e){}; | |
}, | |
f_onEnd:function(){ | |
//G_CORE_DEBUG.trace('recevie fire event~:onEnd'); | |
this.playNext.delayCall(50,this); | |
this.fireEvent('onEnd'); | |
}, | |
f_onRePlay:function(obj,event,time){ | |
try{G_CORE_STATIC.startnStat(false);}catch(e){}; | |
if(typeof time!='undefined'&&parseInt(time)>0){ | |
this.playMovie(this.currentIndex,time); | |
}else{ | |
this.play(this.currentIndex); | |
} | |
}, | |
f_downComplete:function(){//mark | |
this.fireEvent('downComplete'); | |
}, | |
f_onProgress:function(){ | |
this.progressCount++; | |
if(G_PLAYER_INSTANCE.playMode!='DC'&&!G_CORE_INIT.isNoComponent){ | |
G_PLAYER_INSTANCE.updatePlayPos.delayCall(0,G_PLAYER_INSTANCE); | |
if(this.progressCount%5==0){ | |
this.fireEvent('onProgressPre5'); | |
} | |
if(this.progressCount%59==0){ | |
this.fireEvent('onProgressM'); | |
} | |
if(this.progressCount%29==0){ | |
this.fireEvent('onProgressHM'); | |
} | |
this.fireEvent('onProgress'); | |
} | |
}, | |
f_onExitFullScreen:function(){ | |
this.isFullscreen = false; | |
this.fireEvent("onExitFullScreen"); | |
}, | |
f_onFullScreen:function(){ | |
this.isFullscreen = true; | |
this.fireEvent("onFullScreen"); | |
}, | |
f_onOpen:function(){ | |
this.setPlayPosition.delayCall(0,this); | |
this.isLastPlaying = false; | |
if(!G_CORE_INIT.isNoComponent){ | |
this.fireEvent('onopen'); | |
} | |
this.fireEvent('onCommonOpen'); | |
if(this.isServerPlay&&this.lastPosition>0){ | |
G_PLAYER_INSTANCE.setPlayPosition(this.lastPosition); | |
this.lastPosition = 0; | |
} | |
if(G_PLAYER_INIT.isSogou || G_PLAYER_INIT.isSafari){ | |
G_PLAYER_INSTANCE.flvExternalCommand('stageVideoShow',false); | |
} | |
if(G_CORE_INIT.isppweb){ | |
G_PLAYER_INSTANCE.flvExternalCommand('newWindowCmd','hide'); | |
} | |
}, | |
f_onplaying:function(){ | |
this.fireEvent('onCommonPlaying'); | |
if(!this.isLastPlaying){ | |
this.fireEvent('onCommonFirstPlaying'); | |
if(!G_CORE_INIT.isNoComponent){ | |
this.fireEvent('onFirstPlaying'); | |
} | |
this.isLastPlaying = true; | |
if(G_CORE_INIT.isppweb && G_PLAYER_INSTANCE.flvGet('ppwebUse')){ | |
G_CORE_STATIC.setnStat('player_type',4,false); | |
}else if(G_CORE_INIT.isUseAcc && G_PLAYER_INSTANCE.flvGet('kkvaUse')){ | |
G_CORE_STATIC.setnStat('player_type',5,false); | |
G_CORE_STATIC.setnStat('acc_status',11,false); | |
G_CORE_STATIC.setnStat('acc_status1',11,false); | |
G_CORE_STATIC.setnStat('acc_status_times',0,false); | |
} | |
G_CORE_STATIC.setnStat('movie_start_tick',null,true); | |
setTimeout(function(){ | |
G_CORE_STATIC.setnStat('movie_length',G_PLAYER_INSTANCE.getDuration(),false); | |
G_CORE_CONTROL.setStat("movie_length", G_PLAYER_INSTANCE.getDuration()); | |
},500); | |
} | |
if(!G_CORE_INIT.isNoComponent&&!this.isServerPlay&&!this.fixServerPlay){ | |
this.fireEvent('onPlaying'); | |
} | |
if(G_CORE_CONTROL.onBreakStopPos>0){ | |
G_CORE_CONTROL.onBreakStopPos=0; | |
G_PLAYER_ERROR.dump('p020',true); | |
} | |
}, | |
f_onFirBuffEnd:function(){ | |
G_CORE_STATIC.setnStat('buff_end_tick',null,true); | |
this.fireEvent('onFirBuffEnd'); | |
}, | |
f_onErrorInfo:function(){ | |
this.fireEvent('onErrorInfo'); | |
}, | |
f_onSetStausChange:function(isSkip){ | |
this.fireEvent('onSetStausChange'); | |
}, | |
f_onStickLoadOver:function(){ | |
this.fireEvent('onStickLoadOver'); | |
G_CORE_STATIC.setnStat('ad_loaded_tick',null,true); | |
}, | |
f_onbuffering:function(){ | |
this.fireEvent('onBuffering'); | |
}, | |
f_onInstall:function(type){ | |
this.fireEvent('onInstall',type); | |
}, | |
f_onPause:function(){ | |
this.fireEvent('onPause'); | |
}, | |
f_onChangeInstallPlay:function(){ | |
try{G_PLAYER_INSTANCE.setRetryTimes(0);}catch(e){}; | |
setCookie("kkvs", '1'); | |
G_CORE_INIT.installPlay(true); | |
//this.hidePlayer(); | |
G_CORE_INSTALL.triggerType = 2; | |
//this.fixServerPlay = true; | |
//G_CORE_INSTALL.initBaseObj(); | |
//G_CORE_INSTALL.init2(); | |
//G_CORE_INIT.isNoComponent = true; | |
//this.fireEvent.delayCall(1000,this,"onNoComponent"); | |
}, | |
f_onStickSkip:function(){ | |
this.fireEvent('onStickSkip'); | |
}, | |
f_onPauseSkip:function(){ | |
this.fireEvent('onPauseSkip'); | |
}, | |
f_onScrollSmall:function(){ | |
this.fireEvent('onScrollSmall'); | |
}, | |
f_onScrollBig:function(){ | |
this.fireEvent('onScrollBig'); | |
}, | |
f_onLightOff:function(){ | |
this.fireEvent('onLightOff'); | |
}, | |
f_onLightOn:function(){ | |
this.fireEvent('onLightOn'); | |
}, | |
f_onNewWindow:function(){ | |
this.fireEvent('onNewWindow'); | |
}, | |
f_onGetPlayURL:function(){ | |
this.fireEvent('onGetPlayURL'); | |
}, | |
f_ResumeSuspend:function(){ | |
this.fireEvent('ResumeSuspend'); | |
}, | |
f_SetPlayUrl:function(obj,event,gcid){ | |
this.fireEvent('SetPlayUrl',gcid); | |
}, | |
f_onInterrupt:function(){ | |
this.fireEvent('onInterrupt'); | |
}, | |
f_onBreakStop:function(){ | |
this.fireEvent('onBreakStop'); | |
}, | |
setPlayPosition:function(){ | |
if(!G_CORE_CONTROL.isSeeked){ | |
var seekTime = this.getParameter("seekpos"); | |
var subID = this.getParameter("subid"); | |
var psubID = G_MOVIE_DATA.subids[G_CORE_CONTROL.currentIndex]; | |
if(G_CORE_CONTROL.onBreakStopPos>1){ | |
seekTime = G_CORE_CONTROL.onBreakStopPos; | |
subID = psubID; | |
} | |
if(seekTime == null || isNaN(seekTime) || subID == null||psubID!=subID){ | |
return false; | |
}else{ | |
try{ | |
G_PLAYER_INSTANCE.setPlayPosition(seekTime); | |
}catch(e){ | |
}finally{ | |
G_CORE_CONTROL.isSeeked = true; | |
} | |
} | |
} | |
}, | |
setSubStyle:function(index){ | |
for(var i=0;i<=G_MOVIE_DATA.subids.length;i++){ | |
try{ | |
$('subhref_'+i).className=''; | |
}catch(e){}; | |
} | |
try{$('subhref_'+index).className='on';}catch(e){}; | |
if(G_MOVIE_TYPE=='tv'){ | |
//try{ | |
for(var i=0;i<=G_MOVIE_DATA.subids.length;i++){ | |
if($('subhref_'+i)){$('subhref_'+i).className='';} | |
var jc_submovieid = G_MOVIE_DATA.subids[i]; | |
if(this.$('playing_'+jc_submovieid)){ | |
this.$('playing_'+jc_submovieid).style.display='none'; | |
} | |
} | |
var submovieid = G_MOVIE_DATA.subids[index]; | |
if(this.$('featurelist')){ | |
var nodes = this.$('featurelist').childNodes; | |
for (i=0;i<nodes.length;i++){ | |
if(nodes[i].getAttribute&&nodes[i].getAttribute('subindex')==submovieid){ | |
nodes[i].className = 'on' | |
}else{ | |
nodes[i].className = '' | |
} | |
} | |
} | |
if(this.$('playing_'+submovieid)){ | |
this.$('playing_'+submovieid).style.display=''; | |
} | |
//}catch(e){} | |
} | |
}, | |
setLock:function(){ | |
this.playLock = true; | |
setTimeout(function(){G_CORE_CONTROL.playLock = false;},1000); | |
}, | |
playStick:function(ad,index){ | |
var stat = G_CORE_STATIC; | |
if(null == ad){ | |
this.playMovie(this.currentIndex); | |
}else{ | |
G_PLAYER_INSTANCE.setADParams(ad); | |
G_PLAYER_INSTANCE.play(); | |
G_PLAY_TYPE=1; | |
if(typeof index != 'undefined' && index===0){ | |
stat.setnStat('ad_start_tick',null,true); | |
} | |
stat.ad +=1; | |
stat.setnStat('ad_play_times',stat.ad,false); | |
stat.adFinish = 0; | |
stat.player_last_event='onplayad_'+stat.ad+'_'+stat.adFinish; | |
this.fireEvent('onstartplayad'); | |
} | |
}, | |
play:function(index){ | |
this.setLock(); | |
if(typeof G_PLAYER_INSTANCE == 'undefined'||!G_PLAYER_INSTANCE){ | |
return false; | |
} | |
if(typeof G_SUBMOVIE_DATA[index] == 'undefined'||typeof G_SUBMOVIE_DATA[index].submovieid == 'undefined'){ | |
G_CORE_SUBMOVIECTR.getSubData(index,G_CORE_CONTROL.play); | |
return false; | |
} | |
if(!this.isx64&&!this.ismac){ | |
G_CORE_CONTROL.isServerPlay = false; | |
} | |
G_PLAYER_INSTANCE.trace('play:'+index); | |
this.setSubStyle.delayCall(0,this,index); | |
this.currentIndex = index; | |
this.currentQuality = this.getQuality(index); | |
if('undefined' != typeof G_COMMERCIAL_COMMON &&(!G_CORE_INIT.isNoComponent || G_CORE_INIT.isESource || G_CORE_CONTROL.isServerPlay)&&!G_CORE_CONTROL.fixServerPlay){ | |
try{G_PLAYER_INSTANCE.closeNotice()}catch(e){} | |
G_COMMERCIAL_COMMON.start(0); | |
}else{ | |
if(this.currentIndex!=-1){ | |
G_PLAYER_INSTANCE.close(); | |
} | |
this.playMovie(index); | |
} | |
this.lastError = null; | |
var tr = G_CORE_STATIC.triggerTypeLast; | |
var triggerType = 0; | |
if(tr==1){ | |
triggerType=1; | |
}else if(tr==3){ | |
triggerType=2; | |
}else if(tr==4){ | |
triggerType=3; | |
} | |
if('1'==this.getCookie('fromMultiLang')){ | |
this.setCookieWithDomain('fromMultiLang','',-1,this.subDomain); | |
this.setHisMovNoticeTxt('goOn',{"timing":this.getParameter("seekpos")}); | |
} | |
this.fireEvent('onstartplay',index,triggerType); | |
}, | |
playMovie:function(index,startpos){ | |
var subdata=G_SUBMOVIE_DATA; | |
if(typeof subdata[index] == 'undefined'||typeof subdata[index].submovieid == 'undefined'){ | |
G_CORE_SUBMOVIECTR.getSubData(index,G_CORE_CONTROL.playMovie); | |
return false; | |
} | |
this.serverIP = ''; | |
this.serverGCID = ''; | |
this.currentQuality = this.getQuality(index); | |
this.fixQualty(subdata[index].surls,this.currentQuality,index); | |
this.qualitystr = subdata[index].type; | |
this._play(subdata[index].surls,this.currentQuality,index,startpos); | |
this.playUrl = subdata[index].surls[this.currentQuality]; | |
}, | |
getQuality:function(index,typeStr){ | |
if(typeof typeStr=='undefined'){ | |
var type=G_SUBMOVIE_DATA[index].type; | |
}else{ | |
var type = typeStr; | |
} | |
var quality = 1 | |
if(this.loadQuality()!=''){ | |
quality = this.loadQuality(); | |
} | |
if(parseInt(this.defaultQuality)>=0&&parseInt(this.defaultQuality)<=3){ | |
quality = this.defaultQuality; | |
} | |
if(typeof G_CORE_INIT!='undefined'&&(G_CORE_INIT.isNoComponent||G_CORE_CONTROL.isServerPlay||G_CORE_CONTROL.fixServerPlay)){ | |
quality = 0; | |
} | |
var typeArr=type.split(""); | |
quality = parseInt(quality); | |
if(typeof typeArr[quality]!='undefined'&&typeArr[quality]=='1'){ | |
return quality; | |
}else{ | |
for(var i=1;i<=3;i++){ | |
var tmpQuality = quality+i; | |
if(typeof typeArr[tmpQuality]!='undefined'&&typeArr[tmpQuality]=='1'){ | |
return tmpQuality; | |
} | |
var tmpQuality = quality-i; | |
if(typeof typeArr[tmpQuality]!='undefined'&&typeArr[tmpQuality]=='1'){ | |
return tmpQuality; | |
} | |
} | |
} | |
}, | |
fixQualty:function(suburls,quality,index){ | |
if(typeof suburls[quality]!='undefined'&&suburls[quality]!=''){ | |
return true; | |
}else{ | |
for(var i=0;i<suburls.length;i++){ | |
if(typeof suburls[i]!='undefined'&&suburls[i]!=''){ | |
this.currentQuality = i; | |
return true; | |
} | |
} | |
G_PLAYER_ERROR.dump('100'); | |
return false; | |
} | |
}, | |
_play:function(suburls,quality,index,start,type){ | |
/* | |
if(G_CORE_INIT.isNoComponent||G_CORE_CONTROL.isServerPlay||G_CORE_CONTROL.fixServerPlay||G_CORE_INIT.isUseAcc||G_CORE_INIT.isppweb){ | |
this._serverPlay(suburls,quality,index,start,type); | |
return false; | |
} | |
*/ | |
if(G_CORE_INIT.isNoComponent||G_CORE_CONTROL.isServerPlay||G_CORE_CONTROL.fixServerPlay||G_CORE_INIT.isUseAcc){ | |
this._serverPlay(suburls,quality,index,start,type); | |
return false; | |
} | |
this.playMode = 0; | |
var substart = G_SUBMOVIE_DATA[index].subStart; | |
var subend = G_SUBMOVIE_DATA[index].subEnd; | |
if(typeof G_SUBMOVIE_DATA[index].vCut!='undefined'&&G_SUBMOVIE_DATA[index].vCut==1){ | |
this.vcut = 1; | |
}else{ | |
this.vcut = 0; | |
} | |
if(typeof suburls[quality]!='undefined'&&suburls[quality]!=''){ | |
this.corePlay(suburls[quality],quality,start,substart,subend); | |
}else{ | |
for(var i=0;i<suburls.length;i++){ | |
if(typeof suburls[i]!='undefined'&&suburls[i]!=''){ | |
this.corePlay(suburls[i],i,start,substart,subend); | |
return true; | |
} | |
} | |
G_PLAYER_ERROR.dump('100'); | |
} | |
}, | |
_serverPlay:function(suburls,quality,index,start,type){ | |
if(quality==2 && !G_CORE_INIT.isUseAcc&&G_MOVIE_TYPE != 'tv'&&!G_CORE_INIT.isppweb){ | |
G_CORE_SERVER.getCdnResourceHandler(null,null,null,null); | |
} | |
if(typeof type != 'undefined' && type == 1){ | |
G_PLAYER_INSTANCE.setPlayPosition(start); | |
}else{ | |
G_PLAYER_INSTANCE.close(); | |
} | |
var substart = G_SUBMOVIE_DATA[index].subStart; | |
var subend = G_SUBMOVIE_DATA[index].subEnd; | |
this.vcut = 0; | |
if(start > 0){ | |
G_PLAYER_INSTANCE.setPlayPosition(start); | |
} | |
var playUrl = ''; | |
if((G_CORE_INIT.isUseAcc || G_CORE_INIT.isppweb) && typeof suburls[quality] !='undefined' && suburls[quality]!=''){ | |
playUrl = suburls[quality]; | |
}else{ | |
for(var i=0;i<suburls.length;i++){ | |
if(typeof suburls[i]!='undefined'&&suburls[i]!=''){ | |
playUrl = suburls[i]; | |
break; | |
} | |
} | |
} | |
var gcid = this.getGCID(playUrl); | |
G_CORE_SERVER.getCdnResource(gcid); | |
this.playUrl = playUrl; | |
}, | |
switchQuality:function(quality){ | |
if(this.currentQuality==quality){ | |
return false; | |
} | |
try{G_CORE_STATIC.startnStat(false);}catch(e){}; | |
var playPos = G_PLAYER_INSTANCE.getPlayPosition(); //get pos | |
G_PLAYER_INSTANCE.stop(); | |
this.saveQuality.delayCall(50,this,quality); | |
this.defaultQuality = quality; | |
this.currentQuality = quality; | |
this._play(G_SUBMOVIE_DATA[this.currentIndex].surls,quality,this.currentIndex,playPos,1); | |
G_CORE_STATIC.setnStat('trigger_type',2,false); | |
this.fireEvent('onSwitchQuality'); | |
}, | |
saveQuality:function(quality){ | |
ioCtrl.ioWriter('kk_quality',quality,7200); | |
}, | |
loadQuality:function(quality){ | |
return ioCtrl.ioReader('kk_quality'); | |
}, | |
setPlayerInfo:function(isServer,url){ | |
var instance = G_PLAYER_INSTANCE; | |
var index = G_CORE_CONTROL.currentIndex | |
var quality = G_CORE_CONTROL.currentQuality; | |
var sid = G_SUBMOVIE_DATA[index].sids[quality]; | |
instance.sid = sid; | |
instance.title = G_MOVIE_TITLE+G_MOVIE_DATA.subnames[index]; | |
instance.subname = G_MOVIE_DATA.subnames[index]; | |
instance.vlength = G_SUBMOVIE_DATA[index].length; | |
instance.submovieid = G_SUBMOVIE_DATA[index].submovieid; | |
instance.movieid = G_MOVIEID; | |
instance.poster = (typeof G_MOVIE!='undefined'&&G_MOVIE.poster)?G_MOVIE.poster:''; | |
if(!isServer){ | |
//this.trace(sid); | |
instance.put("iSubID",sid); | |
instance.put("sMovieName",G_MOVIE_TITLE+'__'+this.getVcutSubname(index)+'__'+(parseInt(quality)+1)); | |
instance.put("iMovieID",G_HALLID); | |
G_CORE_STATIC.setnStat('play_type',2,false); | |
}else{ | |
G_CORE_STATIC.setnStat('play_type',1,false); | |
} | |
if(G_SUBMOVIE_DATA[index].status==5){ | |
G_CORE_STATIC.setnStat('play_type',7,false); | |
} | |
G_CORE_STATIC.setnStat('movie_id',parseInt(G_HALLID),false);//sure | |
G_CORE_STATIC.setnStat('sub_id',G_MOVIE_DATA.subids[index],false); | |
G_CORE_STATIC.setnStat('movie_definition',parseInt(quality)+1,false); | |
G_CORE_STATIC.setnStat('vod_url',url,false); | |
if(instance.setFlvStat){ | |
instance.setFlvStat('playcode_id',1); | |
instance.setFlvStat('peer_id',this.getPeerID()); | |
} | |
}, | |
corePlay:function(url,quality,start,substart,subend){ | |
this.setPlayerInfo(false,url); | |
var instance = G_PLAYER_INSTANCE; | |
var index = G_CORE_CONTROL.currentIndex; | |
this.isServer = false; | |
if(G_CORE_INIT.isppweb){ | |
G_PLAYER_INSTANCE.flvExternalCommand('newWindowCmd','show'); | |
} | |
G_CORE_INIT.isppweb = instance.isppweb = false; | |
G_CORE_INIT.isUseAcc = instance.isUseAcc = false; | |
G_CORE_STATIC.isServer = false; | |
var startpos = 0; | |
if(typeof start!='undefined'&&parseInt(start)>0){ | |
startpos = parseInt(start); | |
} | |
//hisplay mark corePlay | |
try { | |
startpos = this.setHistoryTiming(G_COREINNER_HISTORY.getHistory(), startpos); | |
}catch(e){} | |
if((G_CORE_INIT.verXMP>=530&&G_CORE_INIT.verXMP<557)||G_CORE_INIT.verXMP>=651){ | |
var skiptimeArr = G_MOVIE_DATA.trailertime[index].split(","); | |
}else{ | |
var skiptimeArr = '0,0'.split(","); | |
} | |
if(G_MOVIEID=='61199'||G_MOVIEID=='59918'||G_MOVIEID=='38930'){ | |
instance.bufferStart = 3; | |
}else{ | |
instance.bufferStart = 10; | |
} | |
instance.skipStart = skiptimeArr[0]; | |
instance.skipEnd = skiptimeArr[1]; | |
if(typeof G_MOVIE_DATA.subids[this.getNextIndex()] !='undefined'&&!(G_MOVIE_DATA.subtype[this.getNextIndex()]==3&&G_MOVIE_DATA.subtype[index]!=3)){ | |
instance.isFinal = 0; | |
}else{ | |
instance.isFinal = 1; | |
} | |
instance.open(url,startpos,quality,this.qualitystr,substart,subend,this.vcut); | |
this.setStat("channel",this.statChannel); | |
this.setStat("movie_id", G_HALLID); | |
this.setStat("url", url); | |
this.setStat("sub_id", G_MOVIE_DATA.subids[index]); | |
this.setStat("user_id", getCookie("userid")); | |
this.setStat("ad_type", 0); | |
this.setStat("quality", quality); | |
this.setStat("movie_source_id",this.sourceId); | |
this.fireEvent('onCorePlay'); | |
}, | |
serverCorePlay:function(url,urlObj){ | |
if(!G_CORE_INSTALL.extLoaded){ | |
this.serverCorePlay.delayCall(1000,this,url,urlObj); | |
return false; | |
} | |
this.setPlayerInfo(true); | |
var instance = G_PLAYER_INSTANCE; | |
var stat = G_CORE_STATIC; | |
var index = G_CORE_CONTROL.currentIndex; | |
var quality = G_CORE_CONTROL.currentQuality; | |
this.isServer = true; | |
stat.isServer = true; | |
instance.playMode = 'DC'; | |
instance.bufferStart = 10; | |
if(typeof G_MOVIE_DATA.subids[G_CORE_CONTROL.getNextIndex()] !='undefined'&&!(G_MOVIE_DATA.subtype[this.getNextIndex()]==3&&G_MOVIE_DATA.subtype[index]!=3)){ | |
instance.isFinal = 0; | |
}else{ | |
instance.isFinal = 1; | |
} | |
try{ | |
instance.totalByte = G_SUBMOVIE_DATA[index].size[quality]; | |
instance.totalTime = G_SUBMOVIE_DATA[index].length_r[quality]; | |
instance.sourceUrl = G_SUBMOVIE_DATA[index].surls[quality]; | |
instance.quality = quality; | |
instance.qualitystr = G_CORE_CONTROL.qualitystr; | |
}catch(e){}; | |
var autoplay = 2; | |
if(!G_CORE_INSTALL.baseObj){ | |
autoplay = 0; | |
G_CORE_INSTALL.playType = 1; | |
instance.packageUrl = G_CORE_INSTALL.showPackageUrl; | |
}else{ | |
instance.packageUrl = ''; | |
} | |
if(G_CORE_INIT.isESource){ | |
instance.packageUrl = ''; | |
//if(!G_CORE_INSTALL.baseObj){ | |
autoplay = 1; | |
stat.xoliStatic("xmpinstall_playstart_direct",this.sourceId); | |
//} | |
}else if(G_CORE_CONTROL.isServerPlay){ | |
instance.packageUrl = ''; | |
autoplay = 1; | |
if(this.isx64){ | |
stat.xoliStatic("xmpinstall_playstart_x64",this.sourceId); | |
}else if(this.ismac){ | |
if(/opera/.test(navigator.userAgent.toLowerCase())){ | |
stat.xoliStatic("xmpinstall_playstart_opera",this.sourceId); | |
}else{ | |
stat.xoliStatic("xmpinstall_playstart_mac",this.sourceId); | |
} | |
}else{ | |
stat.xoliStatic("xmpinstall_playstart_autofix",this.sourceId); | |
} | |
}else if(G_CORE_CONTROL.fixServerPlay){ | |
instance.packageUrl = ''; | |
autoplay = 1; | |
G_CORE_STATIC.xoliStatic("xmpinstall_playstart_fix",this.sourceId); | |
}else if(G_CORE_INIT.isUseAcc){ | |
instance.packageUrl = ''; | |
autoplay = 1; | |
} | |
if(G_CORE_INIT.isppweb){ | |
G_CORE_STATIC.xoliStatic("xmpinstall_useppweb",this.sourceId); | |
} | |
instance.isUseAcc = G_CORE_INIT.isUseAcc; | |
instance.isppweb = G_CORE_INIT.isppweb; | |
instance.flashopen(url,true,urlObj,autoplay); | |
/*var cdnUrl = instance.flvExternalCommand('encryptUrl',urlObj); | |
if(cdnUrl && G_CORE_INIT.isUseAcc && G_MOVIE_DATA.subtype[index]==1){ | |
G_CORE_INIT.setVodAcc([this.getGCID(this.playUrl)],[cdnUrl]); | |
} | |
instance.flashopen(url,true,urlObj,autoplay); | |
if(G_CORE_INIT.isUseAcc && G_MOVIE_DATA.subtype[index]==1 && !cdnUrl){ | |
G_CORE_INIT.setVodAcc([this.getGCID(this.playUrl)],[instance.getPlayUrl()]); | |
}*/ | |
}, | |
getIndexBySubid:function(subid){ | |
var index = -1; | |
for(var i=0;i<G_MOVIE_DATA.subids.length;i++){ | |
if(G_MOVIE_DATA.subids[i]==subid){ | |
return i; | |
} | |
} | |
return index; | |
}, | |
_getInitIndex:function(){ | |
var index = 0; | |
var sns=G_MOVIE_DATA.subnames; | |
var tmpIndex=G_MOVIE_DATA.subnames.length; | |
var subtypeArr = G_MOVIE_DATA.subtype | |
if(typeof subtypeArr!='undefined'){ | |
for(var i=G_MOVIE_DATA.subnames.length-1;i>=0;i--){ | |
if(subtypeArr[i]!=3&&subtypeArr[i]!=2){ | |
tmpIndex = i+1; | |
break; | |
} | |
} | |
} | |
var p1 = /(更新至)([0-9]+)(集|话)/; | |
var p2 = /([\d]{4}\-[\d]{1,2}\-[\d]{1,2})(期)/; | |
try{ | |
if(p1.test(G_OTHER_DESC)||p2.test(G_OTHER_DESC)){ | |
index = this._getLatestSub(sns,tmpIndex,subtypeArr); | |
} | |
}catch(e){} | |
return index; | |
}, | |
_getLatestSub:function(sns,lastIndex,subtypeArr){ | |
var pd =/\d+/gmi; | |
var p=null; | |
var last=sns[lastIndex-1]; | |
var start=lastIndex-1; | |
var lastValue="",tmp=""; | |
lastValue=parseInt(last.match(pd).join(''),10); //new way | |
var isPreview = false; | |
var previewSub = 0; | |
for(var i=start;i>=0;i--){ | |
tmp = parseInt(sns[i].match(pd).join(''),10); //new way | |
if(tmp!=lastValue){ | |
if(typeof subtypeArr!='undefined'&&(subtypeArr[i]=='3'||subtypeArr[i]=='2')){ | |
isPreview = true; | |
if(previewSub==0){ | |
previewSub = i+1; | |
} | |
continue; | |
}else{ | |
return (i+1); | |
} | |
} | |
} | |
if(isPreview){ | |
return previewSub; | |
} | |
return 0; | |
}, | |
initFirstPlay:function(){ | |
var index = 0; | |
index = this.getInitIndex(); | |
this.defaultQuality = this.getParameter("quality"); | |
G_CORE_STATIC.triggerType = 1; | |
_G(index); | |
}, | |
getInitIndex:function(){ | |
var index = 0; | |
var subid = this.getParameter("subid"); | |
if(parseInt(subid)>0){ | |
index = this.getIndexBySubid(subid); | |
}else if(parseInt(G_SUBMOVIEID)>0){ | |
index = this.getIndexBySubid(G_SUBMOVIEID); | |
}else{ | |
index = this._getInitIndex(); | |
} | |
if(index==-1){ | |
index = 0; | |
} | |
return index; | |
}, | |
getNextIndex:function(index){ | |
var nextIndex = G_CORE_CONTROL.currentIndex+1; | |
if(window.G_CORE_TAB&&G_CORE_TAB.isSubInsert){ | |
if(G_MOVIE_DATA.subtype[G_CORE_CONTROL.currentIndex]>2&&G_MOVIE_DATA.subtype[nextIndex]<3){ | |
return -1; | |
} | |
var searchIndex = nextIndex; | |
if(G_MOVIE_DATA.subtype[G_CORE_CONTROL.currentIndex]<3&&G_MOVIE_DATA.subtype[nextIndex]>2){ | |
do{ | |
var searchIndex = searchIndex+1; | |
if(G_MOVIE_DATA.subtype[searchIndex]<3){ | |
break; | |
} | |
}while(typeof G_MOVIE_DATA.subids[searchIndex] != 'undefined'); | |
} | |
nextIndex = searchIndex; | |
} | |
return nextIndex; | |
}, | |
playNext:function(){ | |
var nextIndex = this.getNextIndex(); | |
if(typeof G_MOVIE_DATA.subids[nextIndex] != 'undefined'&&typeof G_MOVIE_DATA.subtype[G_CORE_CONTROL.currentIndex]!= 'undefined'&&(G_MOVIE_DATA.subtype[nextIndex]!=3)||(G_MOVIE_DATA.subtype[G_CORE_CONTROL.currentIndex]==G_MOVIE_DATA.subtype[nextIndex])){ | |
if(G_CORE_CONTROL.isFullscreen){ | |
G_CORE_STATIC.fullScreen(false); | |
} | |
G_CORE_STATIC.triggerType = 3; | |
//this.trace('G playNext'); | |
_G(nextIndex,1); | |
}else{ | |
G_CORE_CONTROL.setSubStyle(-1); | |
} | |
}, | |
setStat:function(key, value){ | |
if(key!='ad_type'){ | |
value=value.toString(); | |
} | |
try{ | |
G_PLAYER_INSTANCE.setStat(key, value); | |
}catch(e){}; | |
}, | |
getPredownloadUrl:function(){ | |
}, | |
getPerdownloadIndex:function(){ | |
return -1;//nopredownload | |
}, | |
hidePlayer:function(){ | |
if(this.hideLevel==0){ | |
try{G_PLAYER_INSTANCE.setFullScreen(false);}catch(e){}; | |
this.$('_player').style.top = '-2000px'; | |
if(G_PLAYER_INSTANCE&&G_PLAYER_INSTANCE.getPlayStatus()=='playing'){ | |
G_PLAYER_INSTANCE.pause(); | |
this.hidePlaying = true; | |
} | |
} | |
this.hideLevel++; | |
}, | |
showPlayer:function(isForce){ | |
if(this.hideLevel!=0){ | |
this.hideLevel--; | |
} | |
if(this.hideLevel==0||isForce){ | |
this.$('_player').style.top = ''; | |
this.hideLevel = 0; | |
G_CORE_CONTROL.fireEvent('onPlayerShow'); | |
if(G_PLAYER_INSTANCE&&G_PLAYER_INSTANCE.getPlayStatus()=='pause'&&typeof this.hidePlaying !='undefined'&&this.hidePlaying){ | |
G_PLAYER_INSTANCE.play(); | |
this.hidePlaying = false; | |
} | |
} | |
}, | |
ADPreDownload:function(){ | |
if(!G_COMMERCIAL_COMMON.ADPlaying || G_CORE_INIT.isUseAcc || G_CORE_INIT.isppweb){ | |
return false; | |
} | |
if(this.currentQuality<0){ //init | |
var index = this.getInitIndex(); | |
}else{ | |
var index = this.currentIndex; | |
} | |
var quality = this.getQuality(index); | |
var url = G_SUBMOVIE_DATA[index].surls[quality]; | |
var startpos = parseInt(this.hisMovTiming); | |
var substart = G_SUBMOVIE_DATA[index].subStart; | |
var subend = G_SUBMOVIE_DATA[index].subEnd; | |
try { | |
startpos = this.setHistoryTiming(G_COREINNER_HISTORY.getHistory(), startpos); | |
}catch(e){} | |
if(url){ | |
G_PLAYER_INSTANCE.put("sMovieName",G_MOVIE_TITLE+'__'+G_MOVIE_DATA.subnames[index]+'__'+(parseInt(quality)+1)); | |
G_PLAYER_INSTANCE.put("iMovieID",G_HALLID); | |
//this.trace(G_SUBMOVIE_DATA[index].sids[quality]); | |
G_PLAYER_INSTANCE.put("iSubID",G_SUBMOVIE_DATA[index].sids[quality]); | |
G_PLAYER_INSTANCE.preDownload(url); | |
G_CORE_STATIC.setnStat('vod_url',url,false); | |
G_PLAYER_INSTANCE.setStartMsg(startpos,substart,subend); | |
} | |
}, | |
moviePreDownload:function(){ | |
}, | |
clearPredownloadInterval:function(){ | |
}, | |
getUStatus:function(){ | |
//G_PLAYER_INSTANCE.trace('getUStatus~'); | |
var userid = getCookie('userid'); | |
if(!userid){ | |
userid = getCookie('luserid'); | |
} | |
if(parseInt(getCookie('isvip'))>0||(parseInt(getCookie('vod_vip'))>0&&getCookie('vod_vip')==userid)){ | |
//if(getCookie('stick_type')=='kk10'){ | |
return true; | |
//} | |
} | |
return false; | |
}, | |
formatTimeBySecond:function(timing){ | |
var timeShow = ''; | |
var timeShowH = parseInt(timing/3600); | |
var timeShowM = parseInt(timing/60-timeShowH*60); | |
var timeShowS = timing%60; | |
timeShow += timeShowH > 0 ? (timeShowH < 10 ? '0'+timeShowH : timeShowH)+':' : ''; | |
timeShow +=(timeShowM < 10 ? '0'+timeShowM : timeShowM)+':'; | |
timeShow += timeShowS < 10 ? '0'+timeShowS : timeShowS; | |
return timeShow; | |
}, | |
setHisMovNoticeTxt:function(type,obj){ | |
if(!obj||obj.timing==null||parseInt(obj.timing)<=0){return} | |
var str = ''; | |
var timeShow = this.formatTimeBySecond(parseInt(obj.timing)); | |
if(type=='goOn'){ | |
str = '自动从您上次观看的'+timeShow+'续播,您也可以<a target="_self" href="javascript:G_PLAYER_INSTANCE.close();G_CORE_CONTROL.playMovie(G_CORE_CONTROL.currentIndex,0);">从头观看</a>'; | |
}else{ | |
str = '您上次观看到“'+obj.subname+'”'+timeShow+',可以<a target="_self" href="javascript:G_CORE_CONTROL.gotoHistoryMovie(G_CORE_CONTROL.getIndexBySubid('+obj.subid+'), '+obj.timing+');">继续观看</a>'; | |
} | |
this.hisMovNoticeTxt = str; | |
}, | |
setHistoryTiming:function(history ,initPos){ | |
//hisplay mark setHistoryTiming | |
var timing = initPos || 0; | |
if(this.getParameter("seekpos")>0||timing>0) { | |
return timing; | |
} | |
if(typeof(G_IS_TRAILER)=='undefined' && this.hisMovNoticeShow<0) { | |
//非片花页 | |
if(history.length>0) { | |
for(var i = 0; i < history.length; i++) { | |
if(history[i].movieid==G_MOVIEID) { | |
//有记录 | |
var tmpTime = parseInt(history[i].timing); | |
if(tmpTime>0) { | |
if(G_SUBMOVIE_DATA[this.currentIndex].submovieid == history[i].subid) { | |
if((G_SUBMOVIE_DATA[this.currentIndex].length - parseInt(history[i].timing)) > 180) { | |
timing = tmpTime; | |
this.setHisMovNoticeTxt('goOn',{"timing":timing}); | |
} | |
} else { | |
this.setHisMovNoticeTxt('tips',history[i]); | |
} | |
} | |
break; | |
} | |
}//end for | |
} | |
this.hisMovNoticeShow = 1; | |
} | |
return timing; | |
}, | |
gotoHistoryMovie:function(index, timing){ | |
this.hisMovTiming = timing; | |
_G.delayCall(0, this, index); | |
}, | |
_GForGotoHistoryMov:function(index){ | |
G_PLAYER_INSTANCE.close(); | |
this.playMovie(index, this.hisMovTiming); | |
this.hisMovTiming = 0; | |
this.fireEvent('onstartplayHistory',index); | |
this.setSubStyle.delayCall(0,this,index); | |
} | |
}); | |
var kkCoreServer = KankanCoreObj.extend({ | |
init: function(){ | |
this.retryTimes = 0; | |
this.hasCdnRes = null; | |
this._super(); | |
if(document.domain=='kankan.com'){ | |
this.url = 'http://p2s.cl.kankan.com/getCdnresource_flv?gcid='; | |
}else{ | |
this.url = 'http://p2s.cl.kankan.xunlei.com/getCdnresource_flv?gcid='; | |
} | |
}, | |
getCdnResource:function(gcid){ | |
this.hasCdnRes = null; | |
this.loadJSONDataByTimeslice(this.url+gcid,G_CORE_SERVER.getCdnResourceHandler,[gcid],["jsonObj","jsCheckOutObj"],true,null,15000); | |
}, | |
getCdnResourceHandler:function(){ | |
var control = G_CORE_CONTROL; | |
var args = arguments; | |
var json = args[1]; | |
var jsonCheck = args[0]; | |
var gcid = args[2]; | |
if(null!=json&&jsonCheck!=null&&json.cdnlist1.length>0){ | |
G_CORE_SERVER.hasCdnRes = true; | |
var urlObj = {ip:"",port:0,path:"",param1:0,param2:0}; | |
var list = json.cdnlist1; | |
urlObj.ip = list[0].ip; | |
urlObj.port = list[0].port; | |
urlObj.path = list[0].path; | |
urlObj.param1 = jsonCheck.param1; | |
urlObj.param2 = jsonCheck.param2; | |
control.serverIP = urlObj.ip; | |
control.playMode = 1; | |
control.showPlayer(true); | |
control.serverCorePlay('',urlObj); | |
G_CORE_STATIC.xoliStatic("xmpinstall_showplayer",G_CORE_STATIC.sourceId); | |
G_CORE_CONTROL.serverIP = urlObj.ip; | |
G_CORE_CONTROL.serverGCID = gcid; | |
}else{ | |
G_CORE_SERVER.hasCdnRes = false; | |
if(typeof json!='object'||json==null||!json){ | |
G_CORE_STATIC.xoliStatic("xmpinstall_cdn_error_"+G_CORE_SERVER.retryTimes,G_CORE_STATIC.sourceId); | |
}else{ | |
G_CORE_STATIC.xoliStatic("xmpinstall_cdn_empty",gcid); | |
} | |
if(G_CORE_INIT.isESourceNoInstall||control.isx64||control.ismac){ | |
if(typeof args[1]=='string'&&!gcid) gcid = args[1]; | |
if(G_CORE_SERVER.retryTimes<3&&gcid){ | |
G_CORE_SERVER.retryTimes++; | |
setTimeout( function(){ | |
G_CORE_SERVER.getCdnResource(gcid); | |
},1000); | |
return false; | |
} | |
control.showPlayer(true); | |
G_PLAYER_ERROR.dump('100'); | |
return false; | |
} | |
if(control.isServerPlay&&control.lastError){ | |
G_PLAYER_ERROR.dump(control.lastError); | |
control.lastError = null; | |
return false; | |
} | |
if(control.fixServerPlay){ | |
control.fixServerPlay = false; | |
G_CORE_INIT.isNoComponent = false; | |
control.showPlayer(true); | |
control.play(G_CORE_CONTROL.currentIndex); | |
return false; | |
} | |
if(G_CORE_INIT.isUseAcc){ | |
G_CORE_INIT.isUseAcc = false; | |
control.showPlayer(true); | |
control.play(G_CORE_CONTROL.currentIndex); | |
return false; | |
} | |
control.playMode = 0; | |
hide_kk_player(); | |
//G_CORE_STATIC.xoliStatic("xmpinstall_show",false); | |
} | |
} | |
}); | |
var KKCoreStatic = KankanCoreObj.extend({ | |
init: function(){ | |
this._super(); | |
this.statBuffer = {}; | |
this.bufTime = 0; | |
this.seek = 0; | |
this.seekCalc = false; | |
this.seekTimePoint = 0; | |
this.seekTimeSum = 0; | |
this.pause = 0; | |
this.pauseCalc = false; | |
this.pauseTimePoint = 0; | |
this.pauseTimeSum = 0; | |
this.ad = 0; | |
this.triggerType = 4; | |
this.triggerTypeLast = 4; | |
this.staticData = {session_id:0}; | |
this.isServer = false; | |
this.isBufferSend = false; | |
this.processEvent.delayCall(0,this); | |
this.initTick = new Date().getTime(); | |
this.userStatus = 1; | |
this.userid = 0; | |
//3001 mark init | |
this.isFirstPlay = false; | |
this.bufPos = 0; | |
if(typeof G_OPEN_TICK!='undefined'){ | |
this.pageOpenTick = G_OPEN_TICK; | |
}else{ | |
this.pageOpenTick = 0; | |
} | |
this.bufferData = {position:-1,tick:-1,bufferSpeed:[-1],dataStart:-1}; | |
this.bufSeekObj = {num:0,bufferTime:0,calc:false,startTick:0,lastTime:-1}; | |
this.speedObj = {num:0,sum:0}; | |
}, | |
processEvent: function(){ | |
var con = G_CORE_CONTROL; | |
window.attachEvent("onload", function(){G_CORE_STATIC.setnStat('page_loaded_tick',null,true);}); | |
window.attachEvent("onunload",G_CORE_STATIC.f_unload); | |
con.attachEvent(this,'onPause',this.f_onPause); | |
con.attachEvent(this,'onCommonPlaying',this.f_onplaying); | |
con.attachEvent(this,'onBuffering',this.f_onbuffering); | |
con.attachEvent(this,'onSeek',this.f_onseek); | |
con.attachEvent(this,'onStop',this.f_onstop); | |
con.attachEvent(this,'onCommonOpen',this.f_onopen); | |
con.attachEvent(this,'onStickOver',this.f_onstickover); | |
con.attachEvent(this,'onOneStickOver',this.f_ononestickover); | |
//con.attachEvent(this,'onopen',G_CORE_STATIC.f_onopen); | |
con.attachEvent(this,'onplaying',this.f_onplaying); | |
con.attachEvent(this,'onstartplay',this.f_coreplay); | |
//3001 mark processEvent | |
con.attachEvent(this,'onFirstPlaying',this.f_onfirstplay); | |
con.attachEvent(this,'onDragSeekEnd',this.f_onDragSeekEnd); | |
}, | |
f_onDragSeekEnd:function(){ | |
if(G_CORE_STATIC.dragCalc){ | |
G_CORE_STATIC.dragTimeSum += Math.max(G_CORE_STATIC.time()-G_CORE_STATIC.dragTimePoint,0); | |
G_CORE_STATIC.setnStat('drag_time',G_CORE_STATIC.dragTimeSum,false); | |
G_CORE_STATIC.dragCalc = false; | |
G_CORE_STATIC.dragTimePoint = 0; | |
} | |
}, | |
f_onopen:function(){ | |
if(!G_CORE_INIT.isNoComponent&&!G_CORE_CONTROL.isServerPlay&&!G_CORE_CONTROL.fixServerPlay){ | |
this.initBuffer(); | |
} | |
this.setnStat('req_data_tick',null,true); | |
this.player_last_event='onopen'; | |
this.setStatusEnd('onopen'); | |
this.trace('host_prog:'+G_PLAYER_INSTANCE.getnStat('host_prog')); | |
this.trace('disk_info:'+G_PLAYER_INSTANCE.getnStat('disk_info')); | |
if(G_CORE_INIT.isNoComponent&&G_CORE_CONTROL.serverIP&&G_CORE_CONTROL.serverGCID){ | |
this.speedUpdate.delayCall(1000,this); | |
} | |
}, | |
f_onPause:function(){ | |
this.pause++; | |
this.setnStat('pause_times',this.pause,false); | |
this.setnStat('pause_tick',null,true); | |
this.pauseCalc = true; | |
this.pauseTimePoint = this.time(); | |
this.player_last_event='onpause'; | |
this.setStatusEnd('onpause'); | |
}, | |
f_onplaying:function(){ | |
this.player_last_event='onplaying'; | |
this.setStatusEnd('onplaying'); | |
this.bufferData = {position:-1,tick:-1,bufferSpeed:[-1],dataStart:-1,sendposS:-1}; | |
}, | |
f_onbuffering:function(){ | |
this.setnStat('play_interrupt_times',G_PLAYER_INSTANCE.bufferTimes,false); | |
//3001 mark f_onbuffering | |
this.bufPos = parseInt(G_PLAYER_INSTANCE.getPlayPosition()); | |
if(this.seekCalc){ | |
this.player_last_event='onbuffering_seek'; | |
}else if(this.isBufferCalc){ | |
this.setnStat('play_interrupt_tick',null,true); | |
this.player_last_event='onbuffering_interrupt'; | |
}else{ | |
this.player_last_event='onbuffering'; | |
} | |
this.setStatusEnd('onbuffering'); | |
if(G_CORE_INIT.isNoComponent||G_CORE_CONTROL.isServerPlay||G_CORE_CONTROL.fixServerPlay){return false;} | |
this.initBuffer(); | |
this.trace('sysSpace:'+G_PLAYER_INSTANCE.getSystemFreeSpace()); | |
}, | |
f_onseek:function(){ | |
var pos = G_PLAYER_INSTANCE.getPlayPosition(true)*100; | |
if(G_PLAYER_INSTANCE.downPos.lastDrag>0&&pos>G_PLAYER_INSTANCE.downPos.lastDrag+200){//2 percent | |
if(this.bufSeekObj.lastTime!=0){ | |
this.bufSeekObj.num++; | |
} | |
this.bufSeekObj.calc = true; | |
this.bufSeekObj.startTick = this.time(); | |
this.bufSeekObj.lastTime = 0; | |
} | |
G_PLAYER_INSTANCE.downPos.lastDrag = 0; | |
this.seek++; | |
this.setnStat('drag_times',this.seek,false); | |
this.seekCalc = true; | |
this.seekTimePoint = this.time(); | |
this.player_last_event='onseek'; | |
this.setStatusEnd('onseek'); | |
this.setnStat('drag_buffer_tick',null,true); | |
}, | |
f_onstop:function(){ | |
this.setnStat('movie_stop_tick',null,true); | |
if(this.player_last_event!='onerr'||this.player_last_event!='onend'){ | |
this.player_last_event='onstop'; | |
} | |
this.setStatusEnd('onstop'); | |
}, | |
f_onend:function(){ | |
this.player_last_event='onend'; | |
this.setnStat('movie_stop_tick',null,true); | |
this.setStatusEnd('onend'); | |
}, | |
f_onstickover:function(){ | |
this.setnStat('ad_stop_tick',null,true); | |
this.adFinish ++; | |
this.player_last_event='onplayad_'+this.ad+'_'+this.adFinish; | |
}, | |
f_ononestickover:function(obj,event,isNormal,value){ | |
if(typeof isNormal!='undefined'&&!isNormal){ | |
if(typeof value!='undefined'&&value>0){ | |
this.setnStat('ad_play_timeout',parseInt(value)+1,false); | |
}else{ | |
this.setnStat('ad_play_timeout',null,true); | |
} | |
} | |
}, | |
f_coreplay:function(){ | |
this.setChannelId(); | |
}, | |
f_onfirstplay:function(){ | |
//3001 mark f_onfirstplay | |
this.isFirstPlay = true; | |
var url = "http://kkpgv2.xunlei.com/?u=vodstart&u1=play&u2="+G_CORE_STATIC.staticData.peerid+"&u3="+G_CORE_STATIC.staticData.session_id+"&u4="+this.getGCID(G_SUBMOVIE_DATA[G_CORE_CONTROL.currentIndex].surls[G_CORE_CONTROL.currentQuality])+"&rd="+new Date().getTime(); | |
this.mStatSend(url); | |
}, | |
setStatusEnd:function(event){ | |
if(this.pauseCalc&&event!='onpause'){ | |
this.pauseTimeSum += Math.max(this.time()-this.pauseTimePoint,0); | |
this.setnStat('pause_time',this.pauseTimeSum,false); | |
this.pauseCalc = false; | |
this.pauseTimePoint = 0; | |
this.setnStat('pause_tick',0,false); | |
} | |
if(G_PLAYER_INSTANCE.isBufferCalc&&event!='onbuffering'){ | |
//3001 mark setStatusEnd | |
var thisBufTime = Math.max(this.time()-G_PLAYER_INSTANCE.bufferBeginTime,0); | |
G_PLAYER_INSTANCE.isBufferCalc = false; | |
this.bufTime = this.bufTime+ thisBufTime; | |
this.setnStat('play_interrupt_time',this.bufTime,false); | |
this.setnStat('play_interrupt_tick',0,false); | |
if(this.player_last_event == "onplaying") { | |
if(this.isFirstPlay) { | |
this.setnStat('fisrt_interrupt_tick',G_PLAYER_INSTANCE.bufferBeginTime,false); | |
this.setnStat('first_interrupt_playpos',this.bufPos,false); | |
this.setnStat('first_interrupt_buf_time',thisBufTime,false); | |
this.isFirstPlay = false; | |
} | |
this.setnStat('last_interrupt_tick',G_PLAYER_INSTANCE.bufferBeginTime,false); | |
this.setnStat('last_interrupt_playpos',this.bufPos,false); | |
this.setnStat('last_interrupt_buf_time',thisBufTime,false); | |
} | |
G_PLAYER_INSTANCE.bufferBeginTime = 0; | |
} | |
if(this.seekCalc&&event!='onbuffering'&&event!='onseek'){ | |
this.seekTimeSum += Math.max(this.time()-this.seekTimePoint,0); | |
this.setnStat('drag_buffer_time',G_CORE_STATIC.seekTimeSum,false); | |
this.seekCalc = false; | |
this.seekTimePoint = 0; | |
this.setnStat('drag_buffer_tick',0,false); | |
if(this.bufSeekObj.calc){ | |
this.bufSeekObj.bufferTime += (this.time() - this.bufSeekObj.startTick); | |
this.bufSeekObj.lastTime = (this.time() - this.bufSeekObj.startTick); | |
this.bufSeekObj.calc = false; | |
this.bufSeekObj.startTick = 0; | |
} | |
this.fireEvent('onSeekEnd'); | |
} | |
}, | |
initBuffer:function(){ | |
this.bufferData = {position:-1,tick:-1,bufferSpeed:[-1],dataStart:-1,sendposS:-1}; | |
this.bufferData.tick = this.time(); | |
this.bufferData.position = parseInt(G_PLAYER_INSTANCE.getPlayPosition()); | |
this.bufferData.dataStart = G_PLAYER_INSTANCE.pobject.flv_getStreamBytesLoaded(); | |
this.bufferData.sendposS = G_PLAYER_INSTANCE.getnStat('svr_send_pos'); | |
}, | |
isEmptyObject: function(obj){ | |
for(var name in obj){ | |
return false; | |
} | |
return true; | |
}, | |
time: function(){ | |
return new Date().getTime(); | |
}, | |
send: function(u){ | |
this.mStatSend(u); | |
}, | |
sendkkpgv:function(u){ | |
var v = arguments; | |
var url = "http://kkpgv2.xunlei.com/?u=vodact&u1="+v[0]+"&u2="+(v[1]||'')+'&u3='+(v[2]||'')+'&u4='+(v[3]||'')+"&rd="+this.time(); | |
this.send(url); | |
}, | |
jsSend:function(url){ | |
var s = $C("script"); | |
s.type="text/javascript"; | |
s.language="javascript"; | |
s.lang="zh-cn"; | |
s.src=url; | |
$P(s, document.getElementsByTagName("head")[0]||null) | |
s.attachEvent("onreadystatechange",function(){ | |
var state = s.readyState; | |
if("loaded"==state || "complete"==state){ | |
try{$R(s,document.getElementsByTagName("head")[0]||null);}catch(e){} | |
s=null; | |
} | |
}); | |
}, | |
sendKkpgvStrict:function(u){ | |
var url = "http://kkpgv.xunlei.com/?u=kankan_4_0_"+u+"_51&rd="+this.time(); | |
this.jsSend(url); | |
}, | |
xoliStatic:function(key,value){ | |
if(value){ | |
var str="http://kkpgv2.xunlei.com/?u=xoli&u1="+key+"&u2="+value+"&rd="+Math.random(); | |
}else{ | |
var str="http://kkpgv2.xunlei.com/?u=xoli&u1="+key+"&u2=&rd="+Math.random(); | |
} | |
G_CORE_STATIC.jsSend(str); | |
}, | |
setWebuid:function(){ | |
if(typeof hex_md5=='function'){ | |
var random = Math.random(); | |
var browser = navigator['appName'] + '_' + navigator['appVersion'] + '_' + navigator['userAgent'] + '_' + navigator['appCodeName'] + '_' + navigator['platform'] ; | |
var nowtime = new Date() ; | |
var nowtime_sec = nowtime.valueOf() ; | |
var kankan_web_uid = (nowtime_sec + browser + random).hex_md5() ; | |
setCookie("KANKANWEBUID" , kankan_web_uid , 24*365*10) ; | |
}else{ | |
var kankan_web_uid = 'cc007'+ this.time()+this.rand(1000000,9999999)+this.rand(1000000,9999999); | |
setCookie("KANKANWEBUID" , kankan_web_uid , 24*365*10); | |
} | |
}, | |
startnStat:function(isServer){ | |
this.sendnStat(isServer); | |
var p = G_PLAYER_INSTANCE; | |
this.fsTime = 0; | |
this.exf = 0; | |
this.enf = 0; | |
this.bufTime = 0; | |
this.seek = 0; | |
this.seekCalc = false; | |
this.seekTimePoint = 0; | |
this.seekTimeSum = 0; | |
this.pause = 0; | |
this.pauseCalc = false; | |
this.pauseTimePoint = 0; | |
this.pauseTimeSum = 0; | |
this.dragCalc = false; | |
this.dragTimePoint = 0; | |
this.dragTimeSum = 0; | |
this.accStatusTimes = 0; | |
this.ad = 0; | |
this.staticData = {session_id:0,req_start_tick:'0',ad_start_tick:'0',ad_stop_tick:'0',movie_start_tick:'0',movie_stop_tick:'0',buff_end_tick:'0',fullscreen_time:'0',full_to_nor_times:'0',nor_to_full_times:'0',play_interrupt_times:'0',play_interrupt_time:'0',drag_times:'0',drag_time:'0',drag_buffer_time:'0',pause_times:'0',pause_time:'0',movie_id:'null',sub_id:'0',moviesource_id:'0',player_type:'0',channel_id:'0',trigger_type:'0',play_type:'0',movie_format:'0',movie_definition:'0',flashplayer_ver:'null',web_url:'null',ref_url:'null',peerid:'null',svr_type:'null',buildver:'null',thunderup_begin_tick:'null',thunderup_end_tick:'null',req_data_tick:'null',stream_ver:'null',req_play_tick:0,req_data_tick:0,first_refer:'null',peerid:'null',svr_type:'null',buildver:'null',thunderup_begin_tick:0,thunderup_end_tick:0,stream_ver:'null',vod_url:'null',ad_url:'null',ad_play_times:0,movie_length:0,user_status:0,page_open_tick:0,player_loaded_tick:0,page_loaded_tick:0,userid:0,acc_status:0,acc_status1:0,acc_status2:0,acc_status_times:0,acc_error:'null',acc_bytes_p2s:0,acc_bytes_p2p:0,ad_play_timeout:0}; | |
this.isServer = false; | |
this.player_last_event = 'init'; | |
//3001 mark startnStat | |
this.isFirstPlay = false; | |
this.bufPos = 0; | |
this.bufSeekObj = {num:0,bufferTime:0,calc:false,startTick:0}; | |
if(!this.getCookie('KANKANWEBUID')){ | |
this.setWebuid(); | |
} | |
this.setnStat('session_id',this.getCookie('KANKANWEBUID')); | |
if(this.getCookie('f_refer')){ | |
this.setnStat('first_refer',this.getCookie('f_refer')); | |
} | |
if(!this.isEmptyObject(this.statBuffer)){ | |
this.isBufferSend = true; | |
for(var s in this.statBuffer){ | |
if(typeof this.statBuffer[s] =='string'||typeof this.statBuffer[s] =='number') | |
this.setnStat(s,this.statBuffer[s]); | |
} | |
this.statBuffer = {}; | |
} | |
this.setnStat('req_start_tick',null,true); | |
var id = this.getParameter("id")||getCookie("qs_id")||3; | |
var u = this.getParameter("u")||getCookie("qs_u")||0; | |
this.setnStat('moviesource_id',id,false); | |
this.setnStat('player_type',2,false); | |
this.setnStat('movie_format',G_CORE_INIT.isUseAcc?G_CORE_INIT.verKanKanLite:2,false); | |
this.setnStat('flashplayer_ver',G_CORE_INIT.getFlashVer().join('.'),false); | |
this.setnStat('web_url',window.location.href,false); | |
if(G_CORE_INIT.playerLoadedTick&&G_CORE_INIT.playerLoadedTick>0){ | |
G_CORE_STATIC.setnStat('player_loaded_tick',G_CORE_INIT.playerLoadedTick,false); | |
G_CORE_INIT.playerLoadedTick = 0; | |
} | |
if(document.referrer){ | |
this.setnStat('ref_url',document.referrer,false); | |
} | |
this.setnStat('trigger_type',this.triggerType,false); | |
this.triggerTypeLast = this.triggerType; | |
this.triggerType = 4;//hand | |
this.staticData.peerid=this.getPeerID(); | |
this.setnStat('page_open_tick',this.pageOpenTick,false) | |
this.setnStat('user_status',this.userStatus,false); | |
this.setnStat('userid',this.userid,false); | |
this.speedObj = {num:0,sum:0}; | |
}, | |
setnStat:function(key,value,isTime){ | |
var staticData = this.staticData; | |
if(staticData.movie_start_tick==0&&key=='movie_stop_tick'){ | |
return false; | |
} | |
if(!this.isBufferSend){ | |
if(isTime) | |
this.statBuffer[key] = this.time(); | |
else | |
this.statBuffer[key] = value; | |
} | |
if(key == 'userid'){ | |
value *= 1; | |
} | |
if(typeof G_PLAYER_INSTANCE=='undefined'||!G_PLAYER_INSTANCE || G_CORE_INIT.isUseAcc){ | |
}else{ | |
if(isTime) | |
G_PLAYER_INSTANCE.setnStat(key,this.time()); | |
else | |
G_PLAYER_INSTANCE.setnStat(key,value); | |
} | |
if(isTime) | |
this.staticData[key] = this.time(); | |
else | |
this.staticData[key] = value; | |
if(!this.getCookie('KANKANWEBUID')){ | |
this.setWebuid(); | |
} | |
if(G_PLAYER_INSTANCE && G_PLAYER_INSTANCE.setFlvStat){ | |
G_PLAYER_INSTANCE.setFlvStat(key,value); | |
} | |
}, | |
sendnStat:function(isServer){ | |
if(this.isServer||isServer||G_CORE_INIT.isNoComponent||G_CORE_CONTROL.isServerPlay||G_CORE_CONTROL.fixServerPlay){ | |
G_CORE_STATIC.sendnStatServer(); | |
}else{ | |
G_PLAYER_INSTANCE.sendnStat(); | |
if(!G_CORE_INIT.isNoComponent&&G_CORE_STATIC.staticData.movie_start_tick>0){ | |
G_CORE_STATIC.sendkkpgv('datadrag',G_CORE_STATIC.bufSeekObj.num+'',G_CORE_STATIC.bufSeekObj.bufferTime+'',G_CORE_STATIC.staticData.session_id); | |
} | |
} | |
}, | |
f_unload:function(){ | |
G_CORE_STATIC.setnStat('player_last_event',G_CORE_STATIC.player_last_event,false); | |
if(G_CORE_STATIC.isServer){ | |
G_CORE_STATIC.sendnStatServer(); | |
} | |
if(!G_CORE_INIT.isNoComponent){ | |
G_CORE_STATIC.sendkkpgv('datadrag',G_CORE_STATIC.bufSeekObj.num+'',G_CORE_STATIC.bufSeekObj.bufferTime+'',G_CORE_STATIC.staticData.session_id); | |
} | |
/*var closeTick = G_CORE_STATIC.time(); | |
var url = 'http://kkpgv2.xunlei.com/?u=vodtimepv&u1='+encodeURIComponent(window.location.href)+'&u2='+G_CORE_STATIC.getCookie('KANKANWEBUID')+'&u3='+G_CORE_STATIC.getPeerID()+'&u4='+G_MOVIE_TYPE+'&u5='+G_CORE_STATIC.initTick+'&u6='+closeTick; | |
G_CORE_STATIC.send(url);*/ | |
}, | |
sendnStatServer:function(){ | |
var staticData = this.staticData; | |
if(staticData.session_id!=0){ | |
if(staticData.movie_start_tick>0&&staticData.movie_stop_tick==0){ | |
G_CORE_STATIC.setnStat('movie_stop_tick',null,true); | |
} | |
var u1_arr = [staticData.session_id]; | |
var u2_arr = [staticData.req_start_tick,staticData.ad_start_tick,staticData.ad_stop_tick,staticData.movie_start_tick,staticData.movie_stop_tick,staticData.buff_end_tick]; | |
var u3_arr = [staticData.fullscreen_time,staticData.full_to_nor_times,staticData.nor_to_full_times]; | |
var u4_arr = [staticData.play_interrupt_times,staticData.play_interrupt_time,staticData.drag_times,staticData.drag_time,staticData.drag_buffer_time,staticData.pause_times,staticData.pause_time]; | |
var u5_arr = [staticData.movie_id,staticData.sub_id,staticData.moviesource_id,staticData.player_type,staticData.channel_id,staticData.trigger_type,staticData.play_type,staticData.movie_format,staticData.movie_definition]; | |
var u6_arr = [staticData.flashplayer_ver]; | |
var u7_arr = [encodeURIComponent(staticData.web_url)]; //u | |
var u8_arr = [encodeURIComponent(staticData.ref_url),staticData.user_status,staticData.page_open_tick,staticData.player_loaded_tick,staticData.page_loaded_tick,staticData.userid,staticData.acc_status,staticData.acc_status1,staticData.acc_status2,staticData.acc_status_times,encodeURIComponent(staticData.acc_error),staticData.acc_bytes_p2s,staticData.acc_bytes_p2p]; | |
var u9_arr = [staticData.peerid,staticData.req_play_tick,staticData.req_data_tick,encodeURIComponent(staticData.first_refer),staticData.vod_url,staticData.ad_url,staticData.ad_play_times,staticData.movie_length,staticData.ad_play_timeout]; | |
var url = 'http://kkpgv2.xunlei.com/?u=svod&u1='+u1_arr.join(',')+'&u2='+u2_arr.join(',')+'&u3='+u3_arr.join(',')+'&u4='+u4_arr.join(',')+'&u5='+u5_arr.join(',')+'&u6='+u6_arr.join(',')+'&u7='+u7_arr.join(',')+'&u8='+u8_arr.join(',')+'&u9='+u9_arr.join(','); | |
this.send(url); | |
} | |
if(G_CORE_INIT.isNoComponent&&G_CORE_CONTROL.serverIP&&G_CORE_CONTROL.serverGCID&&this.speedObj.num>0){ | |
var u6=G_PLAYER_INSTANCE.flvGet('ppwebUse')?'12':'11'; | |
var url = 'http://kkpgv2.xunlei.com/?u=p2sspeed&u1='+parseInt(this.speedObj.sum/this.speedObj.num)+'&u2='+this.speedObj.num+'&u3='+G_CORE_CONTROL.serverIP+'&u4='+G_CORE_CONTROL.serverGCID+'&u5='+staticData.session_id+'&u6='+u6+'&rd='+this.time(); | |
this.send(url); | |
G_CORE_CONTROL.serverIP = ''; | |
G_CORE_CONTROL.serverGCID = ''; | |
} | |
}, | |
setChannelId:function(){ | |
var channelId = 0; | |
if(G_MOVIE_TYPE=='movie'){ | |
channelId = 1 | |
}else if(G_MOVIE_TYPE=='teleplay'){ | |
channelId = 2; | |
}else if(G_MOVIE_TYPE=='tv'){ | |
channelId = 3; | |
}else if(G_MOVIE_TYPE=='anime'){ | |
channelId = 4; | |
}else if(G_MOVIE_TYPE=='documentary'){ | |
channelId = 6; | |
}else if(G_MOVIE_TYPE=='push'){ | |
channelId = 7; | |
}else if(G_MOVIE_TYPE=='lesson'){ | |
channelId = 8; | |
}else if(G_MOVIE_TYPE=='vmovie'){ | |
channelId = 9; | |
} | |
if(typeof G_IS_TRAILER!='undefined'&&G_IS_TRAILER){ | |
channelId = 5; | |
} | |
if(typeof G_MOVIE_DATA.subtype!='undefined'&&G_MOVIE_DATA.subtype[G_CORE_CONTROL.currentIndex]!=1){ | |
channelId = 5; | |
} | |
this.setnStat('channel_id',channelId,false); | |
}, | |
speedUpdate:function(){ | |
var speed = G_PLAYER_INSTANCE.pobject.getDownloadSpeed(); | |
if(speed>0){ | |
this.speedObj.num++; | |
this.speedObj.sum += speed; | |
} | |
if(G_CORE_INIT.isNoComponent&&G_CORE_CONTROL.serverIP&&G_CORE_CONTROL.serverGCID){ | |
this.speedUpdate.delayCall(30000,this); | |
} | |
//G_CORE_CONTROL.serverIP = urlObj.ip; | |
//G_CORE_CONTROL.serverGCID = gcid; | |
} | |
}); | |
var KKCoreInstall = KankanCoreObj.extend({ | |
init: function(){ | |
this._super(); | |
this.extLoaded = false; | |
this.triggerType = 0; //0-no com 1-update 2-error | |
}, | |
init2:function(){ | |
if(typeof this.init2Ext!='function'){ | |
this.init2.delayCall(1000,this); | |
}else{ | |
this.init2Ext(); | |
} | |
}, | |
initBaseObj:function(){ | |
this.baseObj = null; | |
try{this.baseObj = new ActiveXObject('xoli.xoliimpl')}catch(e){} | |
} | |
}); | |
var KKCoreSubmovieCtr = KankanCoreObj.extend({ | |
init: function(){ | |
this._super(); | |
this.preDownloadFaild=0;//预加载json失败次数 | |
this.preDownloadIndex=0;//预加载子集数 | |
this.pathURL="http://kankan.xunlei.com/vod/mp4/";//子集播放页路径 | |
this.dataURL="http://movie.xunlei.com/vodjs/subdata/";//子集json数据路径 | |
this.moviedataURL="http://movie.xunlei.com/vodjs/moviedata/"; | |
this.targetIndex = 0; | |
}, | |
getSubData:function(index,callback){ | |
this.trace('getSubData :'+index); | |
this.loadJSDataByTimeslice(this.dataURL+Math.floor(parseInt(G_MOVIEID)/1000)+"\/"+G_MOVIEID+"\/"+G_MOVIE_DATA.subids[index]+"\.js", G_CORE_SUBMOVIECTR.getSubDataSuccess, [callback,index], true, 4000); | |
}, | |
getSubDataSuccess:function(obj,callback,index){ | |
if(typeof index!='undefined'&&index>=0){ | |
G_CORE_SUBMOVIECTR.targetIndex = index; | |
}else{ | |
G_CORE_SUBMOVIECTR.targetIndex = G_CORE_CONTROL.currentIndex; | |
} | |
var recall="if(typeof submoviedata_"+G_MOVIE_DATA.subids[G_CORE_SUBMOVIECTR.targetIndex]+"!= 'undefined')"; | |
recall+="G_SUBMOVIE_DATA[G_CORE_SUBMOVIECTR.targetIndex]=submoviedata_"+G_MOVIE_DATA.subids[G_CORE_SUBMOVIECTR.targetIndex]; | |
eval(recall); | |
if(typeof G_SUBMOVIE_DATA[G_CORE_SUBMOVIECTR.targetIndex].submovieid != 'undefined'){ | |
if(typeof callback =='function'){ | |
if(callback==G_CORE_CONTROL.play){ | |
G_CORE_CONTROL.play(G_CORE_SUBMOVIECTR.targetIndex); | |
G_CORE_SUBMOVIECTR.trace('getSubDataSuccess : play '+G_CORE_SUBMOVIECTR.targetIndex); | |
return true; | |
}else if(callback==G_CORE_CONTROL.playMovie){ | |
G_CORE_CONTROL.playMovie(G_CORE_SUBMOVIECTR.targetIndex); | |
G_CORE_SUBMOVIECTR.trace('getSubDataSuccess : playMovie '+G_CORE_SUBMOVIECTR.targetIndex); | |
return true; | |
} | |
} | |
_G(G_CORE_SUBMOVIECTR.targetIndex); | |
G_CORE_SUBMOVIECTR.trace('getSubDataSuccess : G '+G_CORE_SUBMOVIECTR.targetIndex); | |
}else{ | |
G_CORE_SUBMOVIECTR.trace('getSubDataSuccess:SubDataEmpty'); | |
window.location.href="http://vod.kankan.com/v/"+Math.floor(parseInt(G_MOVIEID)/1000)+"\/"+G_MOVIEID+"\/"+G_MOVIE_DATA.subids[G_CORE_SUBMOVIECTR.targetIndex]+"\.shtml?stopre=1"; | |
} | |
}, | |
preDownload:function(){ //bk | |
}, | |
loadMovieData:function(movieid,callback){ | |
var args = arguments; | |
this.loadJSData(this.moviedataURL+'/'+Math.floor(movieid/1000)+'/'+movieid+'.js'+'?rd='+this.time(),callback,args,false); | |
}, | |
loadSubData:function(isNormal,nextIndex,submovieid,callback){ | |
var args = arguments; | |
this.loadJSData(this.dataURL+Math.floor(parseInt(G_MOVIEID)/1000)+"\/"+G_MOVIEID+"\/"+submovieid+"\.js"+'?rd='+this.time(),G_CORE_SUBMOVIECTR.loadSubDataHandler,args,false); | |
}, | |
loadSubDataHandler:function(){ | |
var args = arguments; | |
var isNormal = args[0]; | |
var index = args[1]; | |
var submovieid = args[2]; | |
if(isNormal){ | |
var recall="if(typeof submoviedata_"+submovieid+"!= 'undefined')"; | |
recall+="G_SUBMOVIE_DATA["+index+"]=submoviedata_"+submovieid; | |
eval(recall); | |
}else{ | |
var recall="if(typeof submoviedata_"+submovieid+"!= 'undefined')"; | |
recall+="G_CORE_PREDOWNLOAD.predownSubData.subdata["+index+"]=submoviedata_"+submovieid; | |
eval(recall); | |
} | |
var callback = args[3]; | |
callback.apply(null, [args[4],args[5],args[6]]); | |
} | |
}); | |
var kkCoreHistory = KankanCoreObj.extend({ | |
init: function(){ | |
this._super(); | |
this.itemChar="@@"; | |
this.groupChar="|"; | |
}, | |
getHistory:function(){ | |
var latest=this.getLatestInfo(); | |
var items=this.getInfo(); | |
if(!latest){ | |
return false; | |
}else if(!latest.movie_id){ | |
return false; | |
} | |
return items; | |
}, | |
getLatestInfo:function(){ | |
var group = this.getInfo(); | |
if(group.length>0){ | |
return group[0]; | |
}else{ | |
return null; | |
} | |
}, | |
getInfo:function(){ | |
this.checkInfoFormat(); | |
var info = this.readInfo(); | |
var group = this.string2Array(info,this.groupChar); | |
var size = group.length; | |
var tmp = []; | |
for(var i=0;i<size;i++){ | |
if(group[i]!=''){ | |
tmp.push(this.formatInfo(group[i])); | |
} | |
} | |
return tmp; | |
}, | |
readInfo:function(str){ | |
return ioCtrl.ioReader("view_histroy"); | |
}, | |
checkInfoFormat:function(){ | |
var info = this.readInfo(); | |
var group = this.string2Array(info,this.groupChar); | |
var items = []; | |
if(group.length > 0){ | |
items = this.string2Array(group[0],this.itemChar); | |
if(items.length < 6){ | |
return false; | |
//this.writeInfo(""); | |
} | |
} | |
}, | |
formatInfo:function(info){ | |
var items=this.string2Array(info,this.itemChar); | |
var size=items.length; | |
if(size>10){ | |
var obj = {isLatest:true,movie_id:items[0],time:items[1],movie_name:decodeURI(items[2]),cp:items[3],ext:items[4],type:items[5],subid:items[6],subname:decodeURI(items[7]),nextid:items[8],nextname:decodeURI(items[9]),movieid:items[10],movietype:items[11],subnum:items[12],timing:items[13]}; | |
if(size>=20){ | |
obj.quality=items[19]; | |
} | |
return obj; | |
}else if(size>6){ | |
return {isLatest:true,movie_id:items[0],time:items[1],movie_name:decodeURI(items[2]),cp:items[3],ext:items[4],type:items[5],subid:items[6],subname:decodeURI(items[7]),nextid:items[8],nextname:decodeURI(items[9])}; | |
}else{ | |
return {isLatest:false,movie_id:items[0],time:items[1],movie_name:decodeURI(items[2]),cp:items[3],ext:items[4],type:items[5]}; | |
} | |
} | |
}); | |
function _G(index){ | |
if(G_CORE_CONTROL.playLock){ | |
return; | |
} | |
if(typeof G_SUBMOVIE_DATA[index].submovieid != 'undefined'){ | |
try{G_CORE_STATIC.startnStat(false);}catch(e){}; | |
G_CORE_CONTROL.currentIndex=index; | |
//hisplay mark _G | |
if(G_CORE_CONTROL.hisMovTiming>0) { | |
try{G_CORE_CONTROL._GForGotoHistoryMov(index);}catch(e){G_CORE_CONTROL.play(index);} | |
} else { | |
G_CORE_CONTROL.play(index); | |
} | |
}else{ | |
G_CORE_CONTROL.currentIndex=index; | |
G_CORE_SUBMOVIECTR.getSubData(index); | |
} | |
try{ | |
G_PLAYER_INSTANCE.closeNotice(); | |
}catch(e){}; | |
return; | |
} | |
function show_kk_player(){ | |
G_CORE_CONTROL.showPlayer(); | |
} | |
function hide_kk_player(){ | |
G_CORE_CONTROL.hidePlayer(); | |
} | |
var G_CORE_SUBMOVIECTR = new KKCoreSubmovieCtr(); | |
var G_CORE_CONTROL = new kkCoreControl(); | |
var G_CORE_STATIC = new KKCoreStatic(); | |
var G_CORE_COMMON = G_CORE_CONTROL; | |
var G_CORE_INSTALL = new KKCoreInstall(); | |
var G_CORE_SERVER = new kkCoreServer(); | |
//var G_PLAYER_INSTANCE = new kkPlayer.Player(); | |
var G_COREINNER_HISTORY = new kkCoreHistory(); | |
G_LOAD_COMPLETE = 1; | |
function $C(tagName){ | |
return G_CORE_CONTROL.$C(tagName); | |
} | |
function $P(child,parent){ | |
return G_CORE_CONTROL.$P(child,parent); | |
} | |
function $R(child,parent){ | |
return G_CORE_CONTROL.$R(child,parent) | |
} | |
function loadJSData(url, handler, args, isDestory ,charset){ | |
return KankanCoreObj.prototype.loadJSData(url, handler, args, isDestory ,charset) | |
} | |
function loadJSDataByTimeslice(url, handler, args, isDestory, interval){ | |
return KankanCoreObj.prototype.loadJSDataByTimeslice(url, handler, args, isDestory, interval); | |
} | |
function loadJSONDataByTimeslice(url, handler, args, responseObj, isDestory, _parent, interval){ | |
return KankanCoreObj.prototype.loadJSONDataByTimeslice(url, handler, args, responseObj, isDestory, _parent, interval); | |
} | |
function loadJSONData(url, handler, args, responseObj, isDestory, _parent){ | |
return KankanCoreObj.prototype.loadJSONData(url, handler, args, responseObj, isDestory, _parent); | |
} | |
function getParameter(name){ | |
return KankanCoreObj.prototype.getParameter(name); | |
} | |
function getCookie(name){ | |
return G_CORE_CONTROL.getCookie(name); | |
} | |
function setCookie(name,value,hours){ | |
return G_CORE_CONTROL.setCookie(name,value,hours); | |
} | |
function setCookieWithDomain(name, value, hours,domain) { | |
return G_CORE_CONTROL.setCookieWithDomain(name, value, hours,domain); | |
} | |
var G_CORE_DEBUG = {trace:function(){}}; | |
kkCore.Init = kkCoreInit; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment