ckplayer.js 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490
  1. /*
  2. -------------------------------------------------------------------------
  3. 说明:
  4. 正式使用时可以把该文件的注释全部去掉,节省加载时间
  5. ckplayer6.8,有问题请访问http://www.ckplayer.com
  6. 请注意,该文件为UTF-8编码,不需要改变编码即可使用于各种编码形式的网站内
  7. -------------------------------------------------------------------------
  8. 第一部分,加载插件
  9. 以下为加载的插件部份
  10. 插件的设置参数说明:
  11. 1、插件名称
  12. 2、水平对齐方式(0左,1中,2右)
  13. 3、垂直对齐方式(0上,1中,2下)
  14. 4、水平方向位置偏移量
  15. 5、垂直方向位置偏移量
  16. 6、插件的等级,0=普通图片插件且跟随控制栏隐藏而隐藏,显示而显示,1=普通图片插件且永久显示,2=swf插件,默认显示,3=swf插件,默认隐藏,swf插件都可以交互
  17. 7、插件是否绑定在控制栏上,0不绑定,1绑定,当值是1的时候该插件将会随着控制栏一起隐藏或缓动
  18. 8、插件为swf并且可交互时,默认调用的类所在的包名称,详细说明可以到帮助手册里查看,默认无
  19. 插件名称不能相同,对此的详细说明请到网站查看
  20. */
  21. function ckcpt() {
  22. var cpt = '';
  23. return cpt;
  24. }
  25. /*
  26. 插件的定义结束
  27. 以下是对播放器功能进行配置
  28. */
  29. function ckstyle() { //定义总的风格
  30. var ck = {
  31. cpath: '',
  32. /*
  33. 播放器风格压缩包文件的路径,默认的是style.swf
  34. 如果调用不出来可以试着设置成绝对路径试试
  35. 如果不知道路径并且使用的是默认配置,可以直接留空,播放器会
  36. */
  37. language: '',
  38. /*播放器所使用的语言配置文件,需要和播放器在同目录下,默认是language.xml*/
  39. flashvars: '',
  40. /*
  41. 这里是用来做为对flashvars值的补充,除了c和x二个参数以外的设置都可以在这里进行配置
  42. 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4
  43. 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3*/
  44. setup: '1,1,1,1,1,2,0,1,0,0,0,1,200,0,2,1,0,1,1,1,1,10,3,0,1,2,3000,0,0,2,0,1,1,1,1,1,1,250,0,90,0,0,0',
  45. /*
  46. 这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明:
  47. 1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型
  48. 2、是否支持单击暂停,0不支持,1是支持
  49. 3、是否支持双击全屏,0不支持,1是支持
  50. 4、在播放前置广告时是否同时加载视频,0不加载,1加载
  51. 5、广告显示的参考对象,0是参考视频区域,1是参考播放器区域
  52. 6、广告大小的调整方式,只针对swf和图片有效,视频是自动缩放的
  53. 0=自动调整大小,意思是说大的话就变小,小的话就变大
  54. 1=是大的化变小,小的话不变
  55. 2=是什么也不变,就这么大
  56. 3=是跟参考对像(第5个控制)参数设置的一样宽高
  57. 7、前置广告播放顺序,0是顺序播放,1是随机播放,>1则随机取所有广告中的(N-1)个进行播放
  58. 8、对于视频广告是否采用修正,0是不使用,1是使用,如果是1,则用户在网速慢的情况下会按设定的倒计时进行播放广告,计时结束则放正片(比较人性化),设置成0的话,则强制播放完广告才能播放正片
  59. 9、是否开启滚动文字广告,0是不开启,1是开启且不使用关闭按钮,2是开启并且使用关闭按钮,开启后将在加载视频的时候加载滚动文字广告
  60. 10、视频的调整方式
  61. 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  62. 1=是大的化变小,小的话不变
  63. 2=是什么也不变,就这么大
  64. 3=是跟参考对像(pm_video的设置)参数设置的一样宽高
  65. 11、是否在多视频时分段加载,0不是,1是
  66. 12、缩放视频时是否进行平滑处理,0不是,1是
  67. 13、视频缓冲时间,单位:毫秒,建议不超过300
  68. 14、初始图片调整方式(
  69. 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  70. 1=是大的化变小,小的话不变
  71. 2=是什么也不变,就这么大
  72. 3=是跟pm_video参数设置的一样宽高
  73. 15、暂停广告调整方式(
  74. 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  75. 1=是大的化变小,小的话不变
  76. 2=是什么也不变,就这么大
  77. 3=是跟pm_video参数设置的一样宽
  78. 16、暂停广告是否使用关闭广告设置,0不使用,1使用
  79. 17、缓冲时是否播放广告,0是不显示,1是显示并同时隐藏掉缓冲图标和进度,2是显示并不隐藏缓冲图标
  80. 18、是否支持键盘空格键控制播放和暂停0不支持,1支持
  81. 19、是否支持键盘左右方向键控制快进快退0不支持,1支持
  82. 20、是否支持键盘上下方向键控制音量0不支持,1支持
  83. 21、播放器返回js全部监听函数的等级,0-2,等级越高,返回的参数越多
  84. 0=不返回全部监听事件
  85. 1=返回监听,但不在控制台输出
  86. 2=返回监听,并且在控制台同步输出
  87. 3=返回全部监听事件,并且在参数前加上"播放器ID->",用于多播放器的监听
  88. 22、快进和快退的秒数
  89. 23、界面上图片元素加载失败重新加载次数
  90. 24、开启加载皮肤压缩文件包的加载进度提示
  91. 25、使用隐藏控制栏时显示简单进度条的功能,0是不使用,1是使用,2是只在普通状态下使用
  92. 26、控制栏隐藏设置(0不隐藏,1全屏时隐藏,2都隐藏
  93. 27、控制栏隐藏延时时间,即在鼠标离开控制栏后多少毫秒后隐藏控制栏
  94. 28、滚动文字广告左右滚动时是否采用无缝,默认0采用,1是不采用
  95. 29、0是正常状态,1是控制栏默认隐藏,播放状态下鼠标经过播放器显示控制栏,2是一直隐藏控制栏
  96. 30、在播放rtmp视频时暂停后点击播放是否采用重新链接的方式,这里一共分0-2三个等级
  97. 31、当采用网址形式(flashvars里s=1/2时)读取视频地址时是采用默认0=get方法,1=post方式
  98. 32、是否启用播放按钮和暂停按钮
  99. 33、是否启用中间暂停按钮
  100. 34、是否启用静音按钮
  101. 35、是否启用全屏按钮
  102. 36、是否启用进度调节栏,0不启用,1是启用,2是只能前进(向右拖动),3是只能后退,4是只能前进但能回到第一次拖动时的位置,5是看过的地方可以随意拖动,
  103. 37、是否启用调节音量
  104. 38、计算时间的间隔,毫秒
  105. 39、前置logo至少显示的时间,单位:毫秒
  106. 40、前置视频广告的默认音量
  107. 41、当s=3/4时加载插件是否从压缩包里加载,0不是,1是
  108. 42、加载风格是否采用加密方式传送,该功能普通用户不能使用
  109. 43、在s=1/2时,调用地址里的地址是否是相对地址(相对于调用文件),0不是,1是
  110. */
  111. pm_bg: '0x000000,100,230,180',
  112. /*播放器整体的背景配置,请注意,这里只是一个初始化的设置,如果需要真正的改动播放器的背景和最小宽高,需要在风格文件里找到相同的参数进行更改。
  113. 1、整体背景颜色
  114. 2、背景透明度
  115. 3、播放器最小宽度
  116. 4、播放器最小高度
  117. 这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数
  118. */
  119. mylogo: 'null',
  120. /*
  121. 视频加载前显示的logo文件,不使用设置成null,即mylogo='null';
  122. */
  123. pm_mylogo: '1,1,-100,-55',
  124. /*
  125. 视频加载前显示的logo文件(mylogo参数的)的位置
  126. 本软件所有的四个参数控制位置的方式全部都是统一的意思,如下
  127. 1、水平对齐方式,0是左,1是中,2是右
  128. 2、垂直对齐方式,0是上,1是中,2是下
  129. 3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面
  130. 4、垂直偏移量
  131. */
  132. logo: null, //'cklogo.png',
  133. /*
  134. 默认右上角一直显示的logo,不使用设置成null,即logo='null';
  135. */
  136. pm_logo: '2,0,-100,20',
  137. /*
  138. 播放器右上角的logo的位置
  139. 1、水平对齐方式,0是左,1是中,2是右
  140. 2、垂直对齐方式,0是上,1是中,2是下
  141. 3、水平偏移量
  142. 4、垂直偏移量
  143. 以下是播放器自带的二个插件
  144. */
  145. control_rel: 'related.swf,ckplayer/related.xml,0',
  146. /*
  147. 视频结束显示精彩视频的插件
  148. 1、视频播放结束后显示相关精彩视频的插件文件(注意,视频结束动作设置成3时(即var flashvars={e:3})有效),
  149. 2、xml文件是调用精彩视频的示例文件,可以自定义文件类型(比如asp,php,jsp,.net只要输出的是xml格式就行),实际使用中一定要注意第二个参数的路径要正确
  150. 3、第三个参数是设置配置文件的编码,0是默认的utf-8,1是gbk2312
  151. */
  152. control_pv: 'Preview.swf,105,2000',
  153. /*
  154. 视频预览插件
  155. 1、插件文件名称(该插件和上面的精彩视频的插件都是放在风格压缩包里的)
  156. 2、离进度栏的高(指的是插件的顶部离进度栏的位置)
  157. 3、延迟时间(该处设置鼠标经过进度栏停顿多少毫秒后才显示插件)
  158. 建议一定要设置延时时间,不然当鼠标在进度栏上划过的时候就会读取视频地址进行预览,很占资源
  159. */
  160. pm_repc: '',
  161. /*
  162. 视频地址替换符,该功能主要是用来做简单加密的功能,使用方法很简单,请注意,只针对f值是视频地址的时候有效,其它地方不能使用。具体的请查看http://www.ckplayer.com/manual.php?id=4#title_25
  163. */
  164. pm_spac: '|',
  165. /*
  166. 视频地址间隔符,这里主要是播放多段视频时使用普通调用方式或网址调用方式时使用的。默认使用|,如果视频地址里本身存在|的话需要另外设置一个间隔符,注意,即使只有一个视频也需要设置。另外在使用rtmp协议播放视频的时候,如果视频存在多级目录的话,这里要改成其它的符号,因为rtmp协议的视频地址多级的话也需要用到|隔开流地址和实例地址
  167. */
  168. pm_fpac: 'file->f',
  169. /*
  170. 该参数的功能是把自定义的flashvars里的变量替换成ckplayer里对应的变量,默认的参数的意思是把flashvars里的file值替换成f值,因为ckplayer里只认f值,多个替换之间用竖线隔开
  171. */
  172. pm_advtime: '2,0,-110,10,0,300,0',
  173. /*
  174. 前置广告倒计时文本位置,播放前置 广告时有个倒计时的显示文本框,这里是设置该文本框的位置和宽高,对齐方式的。一共7个参数,分别表示:
  175. 1、水平对齐方式,0是左对齐,1是中间对齐,2是右对齐
  176. 2、垂直对齐方式,0是上对齐,1是中间对齐,2是低部对齐
  177. 3、水平位置偏移量
  178. 4、垂直位置偏移量
  179. 5、文字对齐方式,0是左对齐,1是中间对齐,2是右对齐,3是默认对齐
  180. 6、文本框宽席
  181. 7、文本框高度
  182. */
  183. pm_advstatus: '1,2,2,-200,-40',
  184. /*
  185. 前置广告静音按钮,静音按钮只在是视频广告时显示,当然也可以控制不显示
  186. 1、是否显示0不显示,1显示
  187. 2、水平对齐方式
  188. 3、垂直对齐方式
  189. 4、水平偏移量
  190. 5、垂直偏移量
  191. */
  192. pm_advjp: '1,1,2,2,-100,-40',
  193. /*
  194. 前置广告跳过广告按钮的位置
  195. 1、是否显示0不显示,1是显示
  196. 2、跳过按钮触发对象(值0/1,0是直接跳转,1是触发js:function ckadjump(){})
  197. 3、水平对齐方式
  198. 4、垂直对齐方式
  199. 5、水平偏移量
  200. 6、垂直偏移量
  201. */
  202. pm_padvc: '2,0,-13,-13',
  203. /*
  204. 暂停广告的关闭按钮的位置
  205. 1、水平对齐方式
  206. 2、垂直对齐方式
  207. 3、水平偏移量
  208. 4、垂直偏移量
  209. */
  210. pm_advms: '2,2,-46,-67',
  211. /*
  212. 滚动广告关闭按钮位置
  213. 1、水平对齐方式
  214. 2、垂直对齐方式
  215. 3、水平偏移量
  216. 4、垂直偏移量
  217. */
  218. pm_zip: '1,1,-20,-8,1,0,0',
  219. /*
  220. 加载皮肤压缩包时提示文字的位置
  221. 1、水平对齐方式,0是左对齐,1是中间对齐,2是右对齐
  222. 2、垂直对齐方式,0是上对齐,1是中间对齐,2是低部对齐
  223. 3、水平位置偏移量
  224. 4、垂直位置偏移量
  225. 5、文字对齐方式,0是左对齐,1是中间对齐,2是右对齐,3是默认对齐
  226. 6、文本框宽席
  227. 7、文本框高度
  228. */
  229. //pm_advmarquee: '1,2,50,-60,50,18,0,0x000000,50,0,20,1,15,2000',
  230. pm_advmarquee: '1,2,50,-70,50,20,0,0x000000,50,0,20,1,30,2000',
  231. /*
  232. 滚动广告的控制,要使用的话需要在setup里的第9个参数设置成1
  233. 这里分二种情况,前六个参数是定位控制,第7个参数是设置定位方式(0:相对定位,1:绝对定位)
  234. 第一种情况:第7个参数是0的时候,相对定位,就是播放器长宽变化的时候,控制栏也跟着变
  235. 1、默认1:中间对齐
  236. 2、上中下对齐(0是上,1是中,2是下)
  237. 3、离左边的距离
  238. 4、Y轴偏移量
  239. 5、离右边的距离
  240. 6、高度
  241. 7、定位方式
  242. 第二种情况:第7个参数是1的时候,绝对定位,就是播放器长宽变化的时候,控制栏不跟着变,这种方式一般使用在控制栏大小不变的时候
  243. 1、左中右对齐方式(0是左,1是中间,2是右)
  244. 2、上中下对齐(0是上,1是中,2是下)
  245. 3、x偏移量
  246. 4、y偏移量
  247. 5、宽度
  248. 6、高度
  249. 7、定位方式
  250. 以上是前7个参数的作用
  251. 8、是文字广告的背景色
  252. 9、置背景色的透明度
  253. 10、控制滚动方向,0是水平滚动(包括左右),1是上下滚动(包括向上和向下)
  254. 11、移动的单位时长,即移动单位像素所需要的时长,毫秒
  255. 12、移动的单位像素,正数同左/上,负数向右/下
  256. 13、是行高,这个在设置向上或向下滚动的时候有用处
  257. 14、控制向上或向下滚动时每次停止的时间
  258. */
  259. pm_glowfilter:'1,0x01485d, 100, 6, 3, 10, 1, 0, 0',
  260. /*
  261. 滚动文字广告是否采用发光滤镜
  262. 1、是否使用发光滤镜,0是不采用,1是使用
  263. 2、(default = 0xFF0000) — 光晕颜色,采用十六进制格式 0xRRGGBB。 默认值为 0xFF0000
  264. 3、(default = 100) — 颜色的 Alpha 透明度值。 有效值为 0 到 100。 例如,25 设置透明度为 25%
  265. 4、(default = 6.0) — 水平模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
  266. 5、(default = 6.0) — 垂直模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
  267. 6、(default = 2) —光晕的强度。 该值越高,光晕的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255
  268. 7、(default = 1) — 应用滤镜的次数
  269. 8、(default = 0) — 指定发光是否为内侧发光。 值 1 指定发光是内侧发光。 值 0 指定发光是外侧发光(对象外缘周围的发光)
  270. 9、(default = 0) — 指定对象是否具有挖空效果。 值为 1 将使对象的填充变为透明,并显示文档的背景颜色
  271. */
  272. advmarquee: escape('{a href="http://www.ckplayer.com"}{font color="#FFFFFF" size="12" face="Microsoft YaHei"}这里可以放文字广告,播放器默认使用这里设置的广告内容,如果不想在这里使用可以清空这里的内容,如果想在页面中实时定义滚动文字广告内容,可以清空这里的内容,然后在页面中设置广告函数。{/font}{/a}'),
  273. /*
  274. 该处是滚动文字广告的内容,如果不想在这里设置,就把这里清空并且在页面中使用js的函数定义function ckmarqueeadv(){return '广告内容'}
  275. */
  276. mainfuntion:'',
  277. /*
  278. 当flashvars里s=3/4时,调用的函数包名称,默认为空,调用时间轴上的函数setAppObj
  279. */
  280. flashplayer:'',
  281. /*
  282. 当flashvars里的s=3/4时,也可以把swf文件放在这里
  283. */
  284. calljs:'ckplayer_status,ckadjump,playerstop,ckmarqueeadv',
  285. /*
  286. 1、全局监听返回结果的函数
  287. 2、跳过广告的函数
  288. 3、播放结束时调用的js函数
  289. 4、加载滚动文字广告的函
  290. */
  291. myweb: escape(''),
  292. /*
  293. ------------------------------------------------------------------------------------------------------------------
  294. 以下内容部份是和插件相关的配置,请注意,自定义插件以及其配置的命名方式要注意,不要和系统的相重复,不然就会替换掉系统的相关设置,删除相关插件的话也可以同时删除相关的配置
  295. ------------------------------------------------------------------------------------------------------------------
  296. 以下内容定义自定义插件的相关配置,这里也可以自定义任何自己的插件需要配置的内容,当然,如果你某个插件不使用的话,也可以删除相关的配置
  297. ------------------------------------------------------------------------------------------------------------------
  298. */
  299. cpt_lights: '',//'1',
  300. /*
  301. 该处定义是否使用开关灯,使用开灯效果时调用页面的js函数function closelights(){},关灯调用 function closelights(){};
  302. */
  303. cpt_share: '',//'ckplayer/share.xml',
  304. /*
  305. 分享插件调用的配置文件地址,此设设置成空,则不启用分享按钮
  306. 调用插件开始
  307. */
  308. cpt_list: ckcpt()
  309. /*
  310. ckcpt()是本文件最上方的定义插件的函数
  311. */
  312. }
  313. return ck;
  314. }
  315. /*
  316. html5部分开始
  317. 以下代码是支持html5的,如果你不需要,可以删除。
  318. html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛交流更改心得
  319. */
  320. (function() {
  321. var CKobject = {
  322. _K_: function(d){return document.getElementById(d);},
  323. _T_: false,
  324. _M_: false,
  325. _G_: false,
  326. _Y_: false,
  327. _I_: null,
  328. _J_: 0,
  329. _O_: {},
  330. uaMatch:function(u,rMsie,rFirefox,rOpera,rChrome,rSafari,rSafari2,mozilla,mobile){
  331. var match = rMsie.exec(u);
  332. if (match != null) {
  333. return {
  334. b: 'IE',
  335. v: match[2] || '0'
  336. }
  337. }
  338. match = rFirefox.exec(u);
  339. if (match != null) {
  340. return {
  341. b: match[1] || '',
  342. v: match[2] || '0'
  343. }
  344. }
  345. match = rOpera.exec(u);
  346. if (match != null) {
  347. return {
  348. b: match[1] || '',
  349. v: match[2] || '0'
  350. }
  351. }
  352. match = rChrome.exec(u);
  353. if (match != null) {
  354. return {
  355. b: match[1] || '',
  356. v: match[2] || '0'
  357. }
  358. }
  359. match = rSafari.exec(u);
  360. if (match != null) {
  361. return {
  362. b: match[2] || '',
  363. v: match[1] || '0'
  364. }
  365. }
  366. match = rSafari2.exec(u);
  367. if (match != null) {
  368. return {
  369. b: match[1] || '',
  370. v: match[2] || '0'
  371. }
  372. }
  373. match = mozilla.exec(u);
  374. if (match != null) {
  375. return {
  376. b: match[1] || '',
  377. v: match[2] || '0'
  378. }
  379. }
  380. match = mobile.exec(u);
  381. if (match != null) {
  382. return {
  383. b: match[1] || '',
  384. v: match[2] || '0'
  385. }
  386. }
  387. else {
  388. return {
  389. b: 'unknown',
  390. v: '0'
  391. }
  392. }
  393. },
  394. browser: function() {
  395. var u = navigator.userAgent,
  396. rMsie = /(msie\s|trident.*rv:)([\w.]+)/,
  397. rFirefox = /(firefox)\/([\w.]+)/,
  398. rOpera = /(opera).+version\/([\w.]+)/,
  399. rChrome = /(chrome)\/([\w.]+)/,
  400. rSafari = /version\/([\w.]+).*(safari)/,
  401. rSafari2 = /(safari)\/([\w.]+)/,
  402. mozilla = /(mozilla)\/([\w.]+)/,
  403. mobile = /(mobile)\/([\w.]+)/;
  404. var c = u.toLowerCase();
  405. var d = this.uaMatch(c,rMsie,rFirefox,rOpera,rChrome,rSafari,rSafari2,mozilla,mobile);
  406. if (d.b) {
  407. b = d.b;
  408. v = d.v;
  409. }
  410. return {B: b, V: v};
  411. },
  412. Platform: function() {
  413. var w = '';
  414. var u = navigator.userAgent,
  415. app = navigator.appVersion;
  416. var b = {
  417. iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
  418. iPad: u.indexOf('iPad') > -1,
  419. ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
  420. android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
  421. webKit: u.indexOf('AppleWebKit') > -1,
  422. trident: u.indexOf('Trident') > -1,
  423. gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
  424. presto: u.indexOf('Presto') > -1,
  425. mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/),
  426. webApp: u.indexOf('Safari') == -1
  427. };
  428. for (var k in b) {
  429. if (b[k]) {
  430. w = k;
  431. break;
  432. }
  433. }
  434. return w;
  435. },
  436. isHTML5:function(){
  437. return !!document.createElement('video').canPlayType;
  438. },
  439. getType:function(){
  440. return this._T_;
  441. },
  442. getVideo: function() {
  443. var v = '';
  444. var s = this._E_['v'];
  445. if (s && s.length>1) {
  446. for (var i = 0; i < s.length; i++) {
  447. var a = s[i].split('->');
  448. if (a.length >= 1 && a[0] != '') {
  449. v += '<source src="' + a[0] + '"';
  450. }
  451. if (a.length >= 2 && a[1] != '') {
  452. v += ' type="' + a[1] + '"';
  453. }
  454. v += '>';
  455. }
  456. }
  457. return v;
  458. },
  459. getVars: function(k) {
  460. var o=this._A_;
  461. if (typeof(o) == 'undefined') {
  462. return null;
  463. }
  464. if (k in o) {
  465. return o[k];
  466. } else {
  467. return null;
  468. }
  469. },
  470. getParams: function() {
  471. var p = '';
  472. if (this._A_) {
  473. if (parseInt(this.getVars('p')) == 1) {
  474. p += ' autoplay="autoplay"';
  475. }
  476. if (parseInt(this.getVars('e')) == 1) {
  477. p += ' loop="loop"';
  478. }
  479. if (parseInt(this.getVars('p')) == 2) {
  480. p += ' preload="metadata"';
  481. }
  482. if (this.getVars('i')) {
  483. p += ' poster="' + this.getVars('i') + '"';
  484. }
  485. }
  486. return p;
  487. },
  488. getpath: function(z) {
  489. var f='CDEFGHIJKLMNOPQRSTUVWXYZcdefghijklmnopqrstuvwxyz';
  490. var w=z.substr(0,1);
  491. if(f.indexOf(w)>-1 && (z.substr(0,4)==w+'://' || z.substr(0,4)==w+':\\')){
  492. return z;
  493. }
  494. var d = unescape(window.location.href).replace('file:///', '');
  495. var k = parseInt(document.location.port);
  496. var u = document.location.protocol + '//' + document.location.hostname;
  497. var l = '',
  498. e = '',
  499. t = '';
  500. var s = 0;
  501. var r = unescape(z).split('//');
  502. if (r.length > 0) {
  503. l = r[0] + '//'
  504. }
  505. var h = 'http|https|ftp|rtsp|mms|ftp|rtmp|file';
  506. var a = h.split('|');
  507. if (k != 80 && k) {
  508. u += ':' + k;
  509. }
  510. for (i = 0; i < a.length; i++) {
  511. if ((a[i] + '://') == l) {
  512. s = 1;
  513. break;
  514. }
  515. }
  516. if (s == 0) {
  517. if (z.substr(0, 1) == '/') {
  518. t = u + z;
  519. } else {
  520. e = d.substring(0, d.lastIndexOf('/') + 1).replace('\\', '/');
  521. var w = z.replace('../', './');
  522. var u = w.split('./');
  523. var n = u.length;
  524. var r = w.replace('./', '');
  525. var q = e.split('/');
  526. var j = q.length - n;
  527. for (i = 0; i < j; i++) {
  528. t += q[i] + '/';
  529. }
  530. t += r;
  531. }
  532. } else {
  533. t = z;
  534. }
  535. return t;
  536. },
  537. getXhr: function() {
  538. var x;
  539. try {
  540. x = new ActiveXObject('Msxml2.XMLHTTP');
  541. } catch(e) {
  542. try {
  543. x = new ActiveXObject('Microsoft.XMLHTTP');
  544. } catch(e) {
  545. x = false;
  546. }
  547. }
  548. if (!x && typeof XMLHttpRequest != 'undefined') {
  549. x = new XMLHttpRequest();
  550. }
  551. return x;
  552. },
  553. getX: function(){
  554. var f='ckstyle()';
  555. if (this.getVars('x') && parseInt(this.getVars('c'))!=1 ) {
  556. f=this.getVars('x')+'()';
  557. }
  558. try {
  559. if (typeof(eval(f)) == 'object') {
  560. this._X_ = eval(f);
  561. }
  562. } catch(e) {
  563. try {
  564. if (typeof(eval(ckstyle)) == 'object') {
  565. this._X_ = ckstyle();
  566. }
  567. } catch(e) {
  568. this._X_ = ckstyle();
  569. }
  570. }
  571. },
  572. getSn: function(s, n) {
  573. if(n>=0){
  574. return this._X_[s].split(',')[n];
  575. }
  576. else{
  577. return this._X_[s];
  578. }
  579. },
  580. getUrl: function(L, B) {
  581. var C = this;
  582. var b = ['get', 'utf-8'];
  583. if (L && L.length == 2) {
  584. var a = L[0];
  585. var c = L[1].split('/');
  586. if (c.length >= 2) {
  587. b[0] = c[1];
  588. }
  589. if (c.length >= 3) {
  590. b[1] = c[2];
  591. }
  592. this.ajax(b[0], b[1], a,
  593. function(s) {
  594. if (s && s != 'error') {
  595. var d = '',
  596. e = s;
  597. if (s.indexOf('}') > -1) {
  598. var f = s.split('}');
  599. for (var i = 0; i < f.length - 1; i++) {
  600. d += f[i] + '}';
  601. var h = f[i].replace('{', '').split('->');
  602. if (h.length == 2) {
  603. C._A_[h[0]] = h[1];
  604. }
  605. }
  606. e = f[f.length - 1];
  607. }
  608. C._E_['v'] = e.split(',');
  609. if (B) {
  610. C.showHtml5();
  611. } else {
  612. C.changeParams(d);
  613. C.newAdr();
  614. }
  615. }
  616. });
  617. }
  618. },
  619. getflashvars: function(s) {
  620. var v = '',
  621. i = 0;
  622. if (s) {
  623. for (var k in s) {
  624. if (i > 0) {
  625. v += '&';
  626. }
  627. if (k == 'f' && s[k] && ! this.getSn('pm_repc',-1)) {
  628. s[k] = this.getpath(s[k]);
  629. if (s[k].indexOf('&') > -1) {
  630. s[k] = encodeURIComponent(s[k]);
  631. }
  632. }
  633. if (k == 'y' && s[k]) {
  634. s[k] = this.getpath(s[k]);
  635. }
  636. v += k + '=' + s[k];
  637. i++;
  638. }
  639. }
  640. return v;
  641. },
  642. getparam: function(s) {
  643. var w = '',
  644. v = '',
  645. o = {
  646. allowScriptAccess: 'always',
  647. allowFullScreen: true,
  648. quality: 'high',
  649. bgcolor: '#000'
  650. };
  651. if (s) {
  652. for (var k in s) {
  653. o[k] = s[k];
  654. }
  655. }
  656. for (var e in o) {
  657. w += e + '="' + o[e] + '" ';
  658. v += '<param name="' + e + '" value="' + o[e] + '" />';
  659. }
  660. w = w.replace('movie=', 'src=');
  661. return {
  662. w: w,
  663. v: v
  664. };
  665. },
  666. getObjectById: function(s) {
  667. var C = this;
  668. if (C._T_) {
  669. C._V_=C._K_(s)
  670. return C ;
  671. }
  672. var x = null,
  673. y = C._K_(s),
  674. r = 'embed';
  675. if (y && y.nodeName == 'OBJECT') {
  676. if (typeof y.SetVariable != 'undefined') {
  677. x= y;
  678. } else {
  679. var z = y.getElementsByTagName(r)[0];
  680. if (z) {
  681. x= z;
  682. }
  683. }
  684. }
  685. return x;
  686. },
  687. ajax: function(b, u, s, f) {
  688. var x = this.getXhr();
  689. var a = [],
  690. m = '';
  691. if (b == 'get') {
  692. if (s.indexOf('?') > -1) {
  693. m = s + '&t=' + new Date().getTime();
  694. } else {
  695. m = s + '?t=' + new Date().getTime();
  696. }
  697. x.open('get', m);
  698. } else {
  699. a = s.split('?');
  700. s = a[0],
  701. m = a[1];
  702. x.open('post', s, true);
  703. }
  704. x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  705. x.setRequestHeader('charset', u);
  706. if (b == 'post') {
  707. x.send(m);
  708. } else {
  709. x.send(null);
  710. }
  711. x.onreadystatechange = function() {
  712. if (x.readyState == 4) {
  713. var g = x.responseText;
  714. if (g != '') {
  715. f(g);
  716. } else {
  717. f(null);
  718. }
  719. }
  720. }
  721. },
  722. addListener: function(e, f) {
  723. var o=this._V_;
  724. switch(e){
  725. case 'time':
  726. e='timeupdate';
  727. this.AT=f;
  728. f=this.addListenerTime;
  729. break;
  730. case 'totaltime':
  731. this.ATAll=f;
  732. return;
  733. break;
  734. default:
  735. break;
  736. }
  737. //console.log(typeof(f));
  738. if(typeof(f)=='string'){
  739. f=eval(f);
  740. }
  741. if (o.addEventListener) {
  742. try{
  743. o.addEventListener(e, f, false);
  744. }
  745. catch (e) {
  746. this.getNot();
  747. }
  748. }
  749. else if (o.attachEvent) {
  750. try{
  751. o.attachEvent('on' + e, f);
  752. }
  753. catch(e){
  754. this.getNot();
  755. }
  756. }
  757. else {
  758. o['on' + e] = f;
  759. }
  760. },
  761. removeListener: function( e, f) {
  762. var o=this._V_;
  763. switch(e){
  764. case 'time':
  765. e='timeupdate';
  766. this.AT=null;
  767. break;
  768. case 'totaltime':
  769. this.ATAll=null;
  770. return;
  771. break;
  772. default:
  773. break;
  774. }
  775. if(typeof(f)=='string'){
  776. f=eval(f);
  777. }
  778. if (o.removeEventListener) {
  779. try{
  780. o.removeEventListener(e, f, false);
  781. }
  782. catch(e){
  783. this.getNot();
  784. }
  785. }
  786. else if (o.detachEvent) {
  787. try{
  788. o.detachEvent('on' + e, f);
  789. }
  790. catch(e){
  791. this.getNot();
  792. }
  793. }
  794. else {
  795. o['on' + e] = null;
  796. }
  797. },
  798. Flash: function() {
  799. var f = false,v = 0;
  800. if (document.all || this.browser()['B'].toLowerCase().indexOf('ie')>-1) {
  801. try {
  802. var s = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
  803. f = true;
  804. var z = s.GetVariable('$version');
  805. v = parseInt(z.split(' ')[1].split(',')[0]);
  806. } catch(e) {}
  807. } else {
  808. if (navigator.plugins && navigator.plugins.length > 0) {
  809. var s = navigator.plugins['Shockwave Flash'];
  810. if (s) {
  811. f = true;
  812. var w = s.description.split(' ');
  813. for (var i = 0; i < w.length; ++i) {
  814. if (isNaN(parseInt(w[i]))) continue;
  815. v = parseInt(w[i]);
  816. }
  817. }
  818. }
  819. }
  820. return {
  821. f: f,
  822. v: v
  823. };
  824. },
  825. embed:function(f,d,i,w,h,b,v,e,p,j){
  826. var s=['all'];
  827. if(b){
  828. if(this.isHTML5()){
  829. this.embedHTML5(d,i,w,h,e,v,s,j);
  830. }
  831. else{
  832. this.embedSWF(f,d,i,w,h,v,p);
  833. }
  834. }
  835. else{
  836. if(this.Flash()['f'] && parseInt(this.Flash()['v'])>10){
  837. this.embedSWF(f,d,i,w,h,v,p);
  838. }
  839. else if(this.isHTML5()){
  840. this.embedHTML5(d,i,w,h,e,v,s,j);
  841. }
  842. else{
  843. this.embedSWF(f,d,i,w,h,v,p);
  844. }
  845. }
  846. },
  847. embedSWF: function(C, D, N, W, H, V, P) {
  848. if (!N) {
  849. N = 'ckplayer_a1'
  850. }
  851. if (!P) {
  852. P = {
  853. bgcolor: '#FFF',
  854. allowFullScreen: true,
  855. allowScriptAccess: 'always',
  856. wmode:'transparent'
  857. };
  858. }
  859. this._A_=V;
  860. this.getX();
  861. var u = 'undefined',
  862. g = false,
  863. j = document,
  864. r = 'http://www.macromedia.com/go/getflashplayer',
  865. t = '<a href="' + r + '" target="_blank">请点击此处下载安装最新的flash插件</a>',
  866. error = {
  867. w: '您的网页不符合w3c标准,无法显示播放器',
  868. f: '您没有安装flash插件,无法播放视频,' + t,
  869. v: '您的flash插件版本过低,无法播放视频,' + t
  870. },
  871. w3c = typeof j.getElementById != u && typeof j.getElementsByTagName != u && typeof j.createElement != u,
  872. i = 'id="' + N + '" name="' + N + '" ',
  873. s = '',
  874. l = '';
  875. P['movie'] = C;
  876. P['flashvars'] = this.getflashvars(V);
  877. if(W==-1){
  878. d=true;
  879. this._K_(D).style.width='100%';
  880. W='100%';
  881. }
  882. s += '<object pluginspage="http://www.macromedia.com/go/getflashplayer" ';
  883. s += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
  884. s += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=11,3,0,0" ';
  885. s += 'width="' + W + '" ';
  886. s += 'height="' + H + '" ';
  887. s += i;
  888. s += 'align="middle">';
  889. s += this.getparam(P)['v'];
  890. s += '<embed ';
  891. s += this.getparam(P)['w'];
  892. s += ' width="' + W + '" height="' + H + '" name="' + N + '" id="' + N + '" align="middle" ' + i;
  893. s += 'type="application/x-shockwave-flash" pluginspage="' + r + '" />';
  894. s += '</object>';
  895. if (!w3c) {
  896. l = error['w'];
  897. g = true;
  898. } else {
  899. if (!this.Flash()['f']) {
  900. l = error['f'];
  901. g = true;
  902. } else {
  903. if (this.Flash()['v'] < 11) {
  904. l = error['v'];
  905. g = true;
  906. } else {
  907. l = s;
  908. this._T_=false;
  909. }
  910. }
  911. }
  912. if (l) {
  913. this._K_(D).innerHTML = l;
  914. }
  915. if (g){
  916. this._K_(D).style.color = '#0066cc';
  917. this._K_(D).style.lineHeight = this._K_(D).style.height;
  918. this._K_(D).style.textAlign= 'center';
  919. }
  920. },
  921. embedHTML5: function(C, P, W, H, V, A, S, J) {
  922. this._E_ = {
  923. c: C,
  924. p: P,
  925. w: W,
  926. h: H,
  927. v: V,
  928. s: S,
  929. j: J==undefined || J?true:false
  930. };
  931. this._A_ = A;
  932. this.getX();
  933. b = this.browser()['B'],
  934. v = this.browser()['V'],
  935. x = v.split('.'),
  936. t = x[0],
  937. m = b + v,
  938. n = b + t,
  939. w = '',
  940. s = false,
  941. f = this.Flash()['f'],
  942. a = false;
  943. if (!S) {
  944. S = ['iPad', 'iPhone', 'ios'];
  945. }
  946. for (var i = 0; i < S.length; i++) {
  947. w = S[i];
  948. if (w.toLowerCase() == 'all') {
  949. s = true;
  950. break;
  951. }
  952. if (w.toLowerCase() == 'all+false' && !f) {
  953. s = true;
  954. break;
  955. }
  956. if (w.indexOf('+') > -1) {
  957. w = w.split('+')[0];
  958. a = true;
  959. } else {
  960. a = false;
  961. }
  962. if (this.Platform() == w || m == w || n == w || b == w) {
  963. if (a) {
  964. if (!f) {
  965. s = true;
  966. break;
  967. }
  968. }else {
  969. s = true;
  970. break;
  971. }
  972. }
  973. }
  974. if (s) {
  975. if (V) {
  976. var l = V[0].split('->');
  977. if (l && l.length == 2 && l[1].indexOf('ajax') > -1) {
  978. this.getUrl(l, true);
  979. return;
  980. }
  981. }
  982. this.showHtml5();
  983. }
  984. },
  985. status: function() {
  986. this._H_ = parseInt(this.getSn('setup', 20));
  987. var f='ckplayer_status';
  988. if (this.getSn('calljs', 0)!='') {
  989. f=this.getSn('calljs', 0);
  990. }
  991. try {
  992. if (typeof(eval(f)) == 'function') {
  993. this._L_=eval(f);
  994. this._M_=true;
  995. return true;
  996. }
  997. } catch(e) {
  998. try {
  999. if (typeof(eval(ckplayer_status)) == 'function') {
  1000. this._L_=ckplayer_status;
  1001. this._M_=true;
  1002. return true;
  1003. }
  1004. } catch(e) {
  1005. return false;
  1006. }
  1007. }
  1008. return false;
  1009. },
  1010. showHtml5: function() {
  1011. var C = this;
  1012. var p = C._E_['p'],
  1013. a = C._E_['v'],
  1014. c = C._E_['c'],
  1015. j = '',
  1016. b = false;
  1017. var s = this._E_['v'];
  1018. var w=C._E_['w'],h=C._E_['h'];
  1019. var d=false;
  1020. var r='';
  1021. if(s.length==1){
  1022. r=' src="'+s[0].split('->')[0]+'"';
  1023. }
  1024. if(w==-1){
  1025. d=true;
  1026. C._K_(c).style.width='100%';
  1027. w='100%';
  1028. }
  1029. if(w.toString().indexOf('%')>-1){
  1030. w='100%';
  1031. }
  1032. if(h.toString().indexOf('%')>-1){
  1033. h='100%';
  1034. }
  1035. if(C._E_['j']){
  1036. j=' controls="controls"';
  1037. }
  1038. var v = '<video'+j+r+' id="' + p + '" width="' + w + '" height="' + h + '"' + C.getParams() + ' webkit-playsinline>' + C.getVideo() + '</video>';
  1039. C._K_(c).innerHTML = v;
  1040. C._K_(c).style.backgroundColor = '#000';
  1041. C._V_ = C._K_(p);
  1042. if(!d){
  1043. C._K_(c).style.width=C._E_['w'].toString().indexOf('%')>-1?(C._K_(c).offsetWidth*parseInt(C._E_['w'])*0.01)+'px':C._V_.width+'px';
  1044. C._K_(c).style.height=C._E_['h'].toString().indexOf('%')>-1?(C._K_(c).offsetHeight*parseInt(C._E_['h'])*0.01)+'px':C._V_.height+'px';
  1045. }
  1046. C._P_ = false;
  1047. C._T_ = true;
  1048. if (C.getVars('loaded')!='') {
  1049. var f=C.getVars('loaded')+'()';
  1050. try {
  1051. if (typeof(eval(f)) == 'function') {
  1052. eval(f);
  1053. }
  1054. } catch(e) {
  1055. try {
  1056. if (typeof(eval(loadedHandler)) == 'function') {
  1057. loadedHandler();
  1058. }
  1059. } catch(e) {
  1060. }
  1061. }
  1062. }
  1063. C.status();
  1064. C.addListener('play', C.playHandler);
  1065. C.addListener('pause', C.playHandler);
  1066. C.addListener('error', C.errorHandler);
  1067. C.addListener('emptied', C.errorHandler);
  1068. C.addListener('loadedmetadata', C.loadedMetadataHandler);
  1069. C.addListener('ended', C.endedHandler);
  1070. C.addListener('volumechange', C.volumeChangeHandler);
  1071. if((C.getVars('m')!='' && C.getVars('m')!=null) || parseInt( C.getSn('setup', 0))>0){
  1072. C._K_(c).style.cursor='pointer';
  1073. }
  1074. if((C.getVars('m')!='' && C.getVars('m')!=null) || parseInt( C.getSn('setup', 1))==1){
  1075. C.addListener('click', C.html5Click);
  1076. }
  1077. },
  1078. addListenerTime:function(){
  1079. var C = CKobject;
  1080. if(C.AT){
  1081. C.AT(C._V_['currentTime']);
  1082. }
  1083. },
  1084. videoPlay: function() {
  1085. if (this._T_) {
  1086. this._V_.play();
  1087. }
  1088. },
  1089. videoPause: function() {
  1090. if (this._T_) {
  1091. this._V_.pause();
  1092. }
  1093. },
  1094. playOrPause: function() {
  1095. if (this._T_) {
  1096. if (this._V_.paused) {
  1097. this._V_.play();
  1098. } else {
  1099. this._V_.pause();
  1100. }
  1101. }
  1102. },
  1103. fastNext: function() {
  1104. if (this._T_) {
  1105. this._V_['currentTime'] = this._V_['currentTime'] + 10;
  1106. }
  1107. },
  1108. fastBack: function() {
  1109. if (this._T_) {
  1110. this._V_['currentTime'] = this._V_['currentTime'] - 10;
  1111. }
  1112. },
  1113. changeVolume: function(n) {
  1114. if(n<0 || n>100){
  1115. return;
  1116. }
  1117. if (this._T_) {
  1118. this._V_['volume'] = n * 0.01;
  1119. }
  1120. },
  1121. videoSeek: function(t) {
  1122. if (this._T_) {
  1123. this._V_['currentTime'] = t;
  1124. }
  1125. },
  1126. newAddress: function(u) {
  1127. var s = [];
  1128. if (u) {
  1129. s = this.isHtml5New(u);
  1130. } else {
  1131. return;
  1132. }
  1133. if (s && this._T_) {
  1134. this.changeParams(u);
  1135. var l = s[0].split('->');
  1136. if (l && l.length == 2 && l[1].indexOf('ajax') > -1) {
  1137. this.getUrl(l, false);
  1138. return;
  1139. }
  1140. this._E_['v'] = s;
  1141. this.newAdr();
  1142. }
  1143. },
  1144. quitFullScreen:function() {
  1145. if(document.cancelFullScreen) {
  1146. document.cancelFullScreen();
  1147. }
  1148. else if(document.mozCancelFullScreen) {
  1149. document.mozCancelFullScreen();
  1150. } else if(document.webkitCancelFullScreen) {
  1151. document.webkitCancelFullScreen();
  1152. }
  1153. },
  1154. changeStatus:function(n){
  1155. this._H_=n;
  1156. },
  1157. newAdr: function() {
  1158. var s = this._E_['v'];
  1159. this._V_.pause();
  1160. if(s.length==1){
  1161. this._V_.src=s[0].split('->')[0];
  1162. }
  1163. else{
  1164. this._V_['innerHTML'] = this.getVideo();
  1165. }
  1166. this._V_.load();
  1167. },
  1168. isHtml5New: function(s) {
  1169. if (s.indexOf('html5') == -1) {
  1170. return false;
  1171. }
  1172. var a = s.replace(/{/g, '');
  1173. var b = a.split('}');
  1174. var c = '';
  1175. for (var i = 0; i < b.length; i++) {
  1176. if (b[i].indexOf('html5') > -1) {
  1177. c = b[i].replace('html5->', '').split(',');
  1178. break;
  1179. }
  1180. }
  1181. return c;
  1182. },
  1183. changeParams: function(f) {
  1184. if (f) {
  1185. var a = f.replace(/{/g, '');
  1186. var b = a.split('}');
  1187. var c = '';
  1188. for (var i = 0; i < b.length; i++) {
  1189. var d = b[i].split('->');
  1190. if(d.length == 2){
  1191. switch(d[0]){
  1192. case 'p':
  1193. if(parseInt(d[1]) == 1){
  1194. this._V_.autoplay = true;
  1195. }
  1196. else if(parseInt(d[1]) == 2){
  1197. this._V_.preload = 'metadata';
  1198. }
  1199. else{
  1200. this._V_.autoplay = false;
  1201. if(this._I_!=null){
  1202. clearInterval(this._I_);
  1203. this._I_=null;
  1204. }
  1205. }
  1206. break;
  1207. case 'e':
  1208. if(parseInt(d[1]) == 1){
  1209. this._V_.loop = true;
  1210. }
  1211. else{
  1212. this._V_.loop = false;
  1213. }
  1214. break;
  1215. case 'i':
  1216. this._V_.poster = d[1];
  1217. break;
  1218. default:
  1219. break;
  1220. }
  1221. }
  1222. }
  1223. }
  1224. },
  1225. frontAdPause: function(s) {
  1226. this.getNot();
  1227. },
  1228. frontAdUnload: function() {
  1229. this.getNot();
  1230. },
  1231. changeFace: function(s) {
  1232. this.getNot();
  1233. },
  1234. plugin: function(a, b, c, d, e, f, g) {
  1235. this.getNot();
  1236. },
  1237. videoClear: function() {
  1238. this.getNot();
  1239. },
  1240. videoBrightness: function(s) {
  1241. this.getNot();
  1242. },
  1243. videoContrast: function(s) {
  1244. this.getNot();
  1245. },
  1246. videoSaturation: function(s) {
  1247. this.getNot();
  1248. },
  1249. videoSetHue: function(s) {
  1250. this.getNot();
  1251. },
  1252. videoWAndH: function(a, b) {
  1253. this.getNot();
  1254. },
  1255. videoWHXY: function(a, b, c, d) {
  1256. this.getNot();
  1257. },
  1258. changeFlashvars: function(a) {
  1259. this.getNot();
  1260. },
  1261. changeMyObject: function(a, b) {
  1262. this.getNot();
  1263. },
  1264. getMyObject: function(a, b) {
  1265. this.getNot();
  1266. },
  1267. changeeFace: function() {
  1268. this.getNot();
  1269. },
  1270. changeStyle: function(a, b) {
  1271. this.getNot();
  1272. },
  1273. promptLoad: function() {
  1274. this.getNot();
  1275. },
  1276. promptUnload: function() {
  1277. this.getNot();
  1278. },
  1279. marqueeLoad: function(a,b) {
  1280. this.getNot();
  1281. },
  1282. marqueeClose: function(s) {
  1283. this.getNot();
  1284. },
  1285. videoError: function(s) {
  1286. this.getNot();
  1287. },
  1288. formatUrl: function(s) {
  1289. this.getNot();
  1290. },
  1291. sendJS: function(s) {
  1292. this.getNot();
  1293. },
  1294. plugAttribute: function(s) {
  1295. this.getNot();
  1296. },
  1297. errorTextShow: function(s) {
  1298. this.getNot();
  1299. },
  1300. openUrl: function(s) {
  1301. window.open(s);
  1302. },
  1303. jsonParse: function(s) {
  1304. this.getNot();
  1305. },
  1306. promptShow: function(s,x,y) {
  1307. this.getNot();
  1308. },
  1309. screenShot: function(s,x,y,x2,y2) {
  1310. this.getNot();
  1311. },
  1312. fullScreen: function() {
  1313. this.getNot();
  1314. },
  1315. allowFull: function() {
  1316. this.getNot();
  1317. },
  1318. loadButton: function() {
  1319. this.getNot();
  1320. },
  1321. getFile: function() {
  1322. this.getNot();
  1323. },
  1324. textBoxShow:function() {
  1325. this.getNot();
  1326. },
  1327. loadElement: function() {
  1328. this.getNot();
  1329. },
  1330. textBoxClose: function() {
  1331. this.getNot();
  1332. },
  1333. textBoxTween: function() {
  1334. this.getNot();
  1335. },
  1336. getNot: function() {
  1337. var s='The ckplayer\'s API for HTML5 does not exist';
  1338. return s;
  1339. },
  1340. volumeChangeHandler: function() {
  1341. var C = CKobject;
  1342. if (C._V_.muted) {
  1343. C.returnStatus('volumechange:0', 1);
  1344. C._O_['volume'] = 0;
  1345. C._O_['mute'] = true;
  1346. } else {
  1347. C._O_['mute'] = false;
  1348. C._O_['volume'] = C._V_['volume'] * 100;
  1349. C.returnStatus('volumechange:'+C._V_['volume'] * 100, 1);
  1350. }
  1351. },
  1352. endedHandler: function() {
  1353. var C = CKobject;
  1354. var e=parseInt(C.getVars('e'));
  1355. C.returnStatus('ended', 1);
  1356. if(C._I_){
  1357. clearInterval(C._I_);
  1358. C._I_=null;
  1359. }
  1360. if ( e!= 0 && e !=4 && e !=6) {
  1361. return;
  1362. }
  1363. if(e==6){
  1364. this.quitFullScreen();
  1365. }
  1366. var f='playerstop()';
  1367. if (C.getSn('calljs', 2)!='') {
  1368. f=C.getSn('calljs', 2)+'()';
  1369. }
  1370. try {
  1371. if (typeof(eval(f)) == 'function') {
  1372. eval(f);
  1373. return;
  1374. }
  1375. } catch(e) {
  1376. try {
  1377. if (typeof(eval(playerstop)) == 'function') {
  1378. playerstop();
  1379. return;
  1380. }
  1381. } catch(e) {
  1382. return;
  1383. }
  1384. }
  1385. },
  1386. loadedMetadataHandler: function() {
  1387. var C = CKobject;
  1388. C.returnStatus('loadedmetadata', 1);
  1389. C._O_['totalTime'] = C._V_['duration'];
  1390. C._O_['width'] = C._V_['width'];
  1391. C._O_['height'] = C._V_['height'];
  1392. C._O_['awidth'] = C._V_['videoWidth'];
  1393. C._O_['aheight'] = C._V_['videoHeight'];
  1394. if (C._V_.defaultMuted) {
  1395. C.returnStatus('volumechange:0', 1);
  1396. C._O_['mute'] = true;
  1397. C._O_['volume'] = 0;
  1398. } else {
  1399. C._O_['mute'] = false;
  1400. C._O_['volume'] = C._V_['volume'] * 100;
  1401. C.returnStatus('volumechange:'+C._V_['volume'] * 100, 1);
  1402. }
  1403. if (parseInt(C.getVars('p')) == 1) {
  1404. C.playHandler();
  1405. }
  1406. if(C.ATAll){
  1407. C.ATAll(C._V_['duration']);
  1408. }
  1409. },
  1410. errorHandler: function() {
  1411. CKobject.returnStatus('error', 1);
  1412. },
  1413. playHandler: function() {
  1414. var C = CKobject;
  1415. if (C._V_.paused) {
  1416. C.returnStatus('pause', 1);
  1417. C.addO('play', false);
  1418. if(C._I_!=null){
  1419. clearInterval(C._I_);
  1420. C._I_=null;
  1421. }
  1422. } else {
  1423. C.returnStatus('play', 1);
  1424. C.addO('play', true);
  1425. if (!C._P_) {
  1426. C.returnStatus('play', 1);
  1427. C._P_ = true;
  1428. }
  1429. C._I_ = setInterval(C.playTime, parseInt( C.getSn('setup', 37)));
  1430. if(!C._G_){
  1431. C._G_=true;
  1432. for(var k in C._A_){
  1433. if(k=='g' && C._A_[k]){
  1434. var g=parseInt(C._A_[k]);
  1435. C.videoSeek(g);
  1436. }
  1437. }
  1438. }
  1439. if(!C._Y_){
  1440. C._Y_=true;
  1441. for(var k in C._A_){
  1442. if(k=='j' && C._A_[k]){
  1443. var j=parseInt(C._A_[k]);
  1444. if(j>0){
  1445. C._J_=j;
  1446. }
  1447. else{
  1448. C._J_=parseInt(C._O_['totalTime'])+j;
  1449. }
  1450. }
  1451. }
  1452. }
  1453. }
  1454. },
  1455. html5Click: function(){
  1456. //console.log(this);
  1457. var C = CKobject;
  1458. if(C.getVars('m')!='' && C.getVars('m')!=null){
  1459. window.open(C.getVars('m'));
  1460. }
  1461. },
  1462. returnStatus: function(s, j) {
  1463. var h = s;
  1464. if (this._H_ == 3) {
  1465. h = this._E_['p'] +'->'+ h;
  1466. }
  1467. if (this._M_ && j <= this._H_ ) {
  1468. this._L_(h);
  1469. }
  1470. },
  1471. addO: function(s, z) {
  1472. this._O_[s] = z;
  1473. },
  1474. getStatus: function() {
  1475. return this._O_;
  1476. },
  1477. playTime: function() {
  1478. var C = CKobject;
  1479. var t = C._V_['currentTime'];
  1480. C._O_['time'] = t;
  1481. if(C._J_>0 && t>C._J_){
  1482. C._J_=0;
  1483. C.videoSeek(C._O_['totaltime']);
  1484. }
  1485. C.returnStatus('time:' + t, 1);
  1486. }
  1487. }
  1488. window.CKobject = CKobject;
  1489. })();