Commit 160ddfc9 authored by mahui's avatar mahui

aa

parent 74b868ce
Pipeline #303 failed with stages
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/jianchayuan.iml" filepath="$PROJECT_DIR$/.idea/jianchayuan.iml" />
</modules>
</component>
</project>
\ No newline at end of file
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, main {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
\ No newline at end of file
/* --------------------------------
Primary style
-------------------------------- */
*,
*::after,
*::before {
box-sizing: border-box;
}
html {
font-size: 62.5%;
}
body {
font-size: 1.6rem;
font-family: "Jaldi", sans-serif;
color: #ffffff;
/* background-color: #a0f6aa; */
/* -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; */
}
a {
color: #a0f6aa;
text-decoration: none;
}
h1 {
text-align: center;
width: 90%;
margin: 2em auto 0;
font-size: 2.4rem;
color: #507b55;
font-weight: bold;
}
@media only screen and (min-width: 600px) {
h1 {
font-size: 3.2rem;
}
}
input {
font-family: "Jaldi", sans-serif;
font-size: 1.6rem;
}
/* --------------------------------
Main Components
-------------------------------- */
.cd-accordion-menu {
max-width: 600px;
background: rgb(52, 52, 52)
/* margin: 4em auto; */
/* box-shadow: 0 4px 40px #70ac76; */
}
.cd-accordion-menu ul {
/* by default hide all sub menus */
display: none;
}
.cd-accordion-menu li {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.cd-accordion-menu input[type=radio] {
/* hide native checkbox */
position: absolute;
opacity: 0;
}
.cd-accordion-menu label,
.cd-accordion-menu a {
position: relative;
display: block;
padding: 18px 18px 18px 64px;
background: rgb(52, 52, 52);
box-shadow: inset 0 -1px #555960;
color: #ffffff;
font-size: 1.6rem;
}
.no-touch .cd-accordion-menu label:hover,
.no-touch .cd-accordion-menu a:hover {
background: #52565d;
}
.cd-accordion-menu label::before,
.cd-accordion-menu label::after,
.cd-accordion-menu a::after {
/* icons */
content: '';
display: inline-block;
width: 16px;
height: 16px;
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
}
.cd-accordion-menu label {
cursor: pointer;
}
.cd-accordion-menu label::before,
.cd-accordion-menu label::after {
background-image: url(../img/cd-icons.svg);
background-repeat: no-repeat;
}
.cd-accordion-menu label::before {
/* arrow icon */
left: 18px;
background-position: 0 0;
-webkit-transform: translateY(-50%) rotate(-90deg);
-moz-transform: translateY(-50%) rotate(-90deg);
-ms-transform: translateY(-50%) rotate(-90deg);
-o-transform: translateY(-50%) rotate(-90deg);
transform: translateY(-50%) rotate(-90deg);
}
.cd-accordion-menu label::after {
/* folder icons */
left: 41px;
background-position: -16px 0;
}
.cd-accordion-menu a::after {
/* image icon */
left: 36px;
background: url(../img/cd-icons.svg) no-repeat -48px 0;
}
.cd-accordion-menu input[type=radio]:checked+label::before {
/* rotate arrow */
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
}
.cd-accordion-menu input[type=radio]:checked+label::after {
/* show open folder icon if item is checked */
background-position: -32px 0;
}
.cd-accordion-menu input[type=radio]:checked+label+ul,
.cd-accordion-menu input[type=radio]:checked+label:nth-of-type(n)+ul {
/* use label:nth-of-type(n) to fix a bug on safari (<= 8.0.8) with multiple adjacent-sibling selectors
show children when item is checked */
display: block;
}
.cd-accordion-menu ul label,
.cd-accordion-menu ul a {
background: #35383d;
box-shadow: inset 0 -1px #41444a;
padding-left: 82px;
}
.no-touch .cd-accordion-menu ul label:hover,
.no-touch .cd-accordion-menu ul a:hover {
background: #3c3f45;
}
.cd-accordion-menu>li:last-of-type>label,
.cd-accordion-menu>li:last-of-type>a,
.cd-accordion-menu>li>ul>li:last-of-type label,
.cd-accordion-menu>li>ul>li:last-of-type a {
box-shadow: none;
}
.cd-accordion-menu ul label::before {
left: 36px;
}
.cd-accordion-menu ul label::after,
.cd-accordion-menu ul a::after {
left: 59px;
}
.cd-accordion-menu ul ul label,
.cd-accordion-menu ul ul a {
padding-left: 100px;
}
.cd-accordion-menu ul ul label::before {
left: 54px;
}
.cd-accordion-menu ul ul label::after,
.cd-accordion-menu ul ul a::after {
left: 77px;
}
.cd-accordion-menu ul ul ul label,
.cd-accordion-menu ul ul ul a {
padding-left: 118px;
}
.cd-accordion-menu ul ul ul label::before {
left: 72px;
}
.cd-accordion-menu ul ul ul label::after,
.cd-accordion-menu ul ul ul a::after {
left: 95px;
}
@media only screen and (min-width: 600px) {
.cd-accordion-menu label,
.cd-accordion-menu a {
padding: 24px 24px 24px 82px;
font-size: 1.9rem;
}
.cd-accordion-menu label::before {
left: 24px;
}
.cd-accordion-menu label::after {
left: 53px;
}
.cd-accordion-menu ul label,
.cd-accordion-menu ul a {
padding-left: 106px;
}
.cd-accordion-menu ul label::before {
left: 48px;
}
.cd-accordion-menu ul label::after,
.cd-accordion-menu ul a::after {
left: 77px;
}
.cd-accordion-menu ul ul label,
.cd-accordion-menu ul ul a {
padding-left: 130px;
}
.cd-accordion-menu ul ul label::before {
left: 72px;
}
.cd-accordion-menu ul ul label::after,
.cd-accordion-menu ul ul a::after {
left: 101px;
}
.cd-accordion-menu ul ul ul label,
.cd-accordion-menu ul ul ul a {
padding-left: 154px;
}
.cd-accordion-menu ul ul ul label::before {
left: 96px;
}
.cd-accordion-menu ul ul ul label::after,
.cd-accordion-menu ul ul ul a::after {
left: 125px;
}
}
.cd-accordion-menu.animated label::before {
/* this class is used if you're using jquery to animate the accordion */
-webkit-transition: -webkit-transform 0.3s;
-moz-transition: -moz-transform 0.3s;
transition: transform 0.3s;
}
\ No newline at end of file
@charset "utf-8";
*
{
margin:0;
padding:0;
}
html
{
width:100%;
height:100%;
font-size:12px;
font-family:Arial, Helvetica, sans-serif;
-webkit-text-size-adjust:none;
background:#FFFFFF;
}
body
{
padding:5px;
}
select
{
height:20px;
line-height:20px;
}
.left
{
float:left;
}
.freeze
{
position:absolute;
text-align:center;
background:#343434;
color:#FFFFFF;
font-size:26px;
font-weight:bold;
filter:alpha(opacity=60);
opacity:0.6;
}
.vtop
{
vertical-align:middle;
margin-top:-1px;
}
/*插件*/
.plugin
{
width:500px;
height:300px;
}
fieldset
{
display:block;
}
/*本地配置*/
.localconfig
{
width:480px;
padding:10px;
border:1px solid #7F9DB9;
}
.localconfig .tt
{
width:125px;
}
.localconfig .txt
{
width:310px;
}
.localconfig .btn
{
width:45px;
height:22px;
line-height:18px;
}
.localconfig .sel
{
width:120px;
}
/*登录*/
.login
{
width:480px;
padding:10px;
border:1px solid #7F9DB9;
}
.login .tt
{
width:100px;
}
.login .txt
{
width:130px;
}
.login .btn
{
width:45px;
height:22px;
line-height:18px;
}
.login .btn2
{
width:100px;
height:22px;
line-height:18px;
}
.login .sel
{
width:130px;
}
.login .sel2
{
width:65px;
}
/*数字通道*/
.ipchannel
{
width:480px;
padding:10px;
border:1px solid #7F9DB9;
}
.ipchannel .btn
{
width:130px;
height:22px;
line-height:18px;
}
.ipchannel .digitaltdiv
{
height:100px;
overflow:hidden;
overflow-y:auto;
border:1px solid #7F9DB9;
font-size:11px;
}
.ipchannel .digitalchannellist th, .ipchannel .digitalchannellist td
{
padding:2px;
border:1px solid #7F9DB9;
border-collapse:collapse;
white-space:nowrap;
}
/*预览*/
.preview
{
width:450px;
padding:10px;
padding-top:0;
margin-left:10px;
border:1px solid #7F9DB9;
}
.preview .tt
{
width:60px;
}
.preview .txt
{
width:30px;
}
.preview .btn
{
width:70px;
height:22px;
line-height:18px;
}
.preview .btn2
{
width:90px;
height:22px;
line-height:18px;
}
.preview .sel
{
width:105px;
}
/*云台*/
.ptz
{
width:450px;
padding:10px;
margin-left:10px;
border:1px solid #7F9DB9;
}
.ptz .tt
{
width:60px;
}
.ptz .txt
{
width:60px;
}
.ptz .btn
{
width:45px;
height:22px;
line-height:18px;
}
.ptz .btn2
{
width:60px;
height:22px;
line-height:18px;
}
.ptz .sel
{
width:65px;
}
/*视频参数*/
.videoparam
{
width:450px;
padding:10px;
margin-left:10px;
border:1px solid #7F9DB9;
}
.videoparam .tt
{
width:60px;
}
.videoparam .txt
{
width:60px;
}
.videoparam .btn
{
width:45px;
height:22px;
line-height:18px;
}
.videoparam .sel
{
width:65px;
}
/*回放*/
.playback
{
width:450px;
padding:10px;
margin-left:10px;
border:1px solid #7F9DB9;
}
.playback .tt
{
width:60px;
}
.playback .txt
{
width:140px;
}
.playback .btn
{
width:45px;
height:22px;
line-height:18px;
}
.playback .btn2
{
width:70px;
height:22px;
line-height:18px;
}
.playback .sel
{
width:65px;
}
.playback .searchdiv
{
height:100px;
overflow:hidden;
overflow-y:auto;
border:1px solid #7F9DB9;
font-size:11px;
}
.playback .searchlist th, .playback .searchlist td
{
padding:2px;
border:1px solid #7F9DB9;
border-collapse:collapse;
white-space:nowrap;
}
/*系统维护*/
.maintain
{
width:450px;
padding:10px;
margin-left:10px;
border:1px solid #7F9DB9;
}
.maintain .tt
{
width:60px;
}
.maintain .txt
{
width:280px;
}
.maintain .btn
{
width:45px;
height:22px;
line-height:18px;
}
.maintain .btn2
{
width:100px;
height:22px;
line-height:18px;
}
.maintain .sel
{
width:65px;
}
/*操作信息*/
.operate
{
width:450px;
padding:10px;
margin-left:10px;
border:1px solid #7F9DB9;
}
.operate .opinfo
{
height:150px;
border:1px solid #7F9DB9;
overflow:auto;
}
/*事件回调*/
.callback
{
width:450px;
padding:10px;
margin-left:10px;
border:1px solid #7F9DB9;
}
.callback .cbinfo
{
height:114px;
border:1px solid #7F9DB9;
overflow:auto;
}
/*IP解析*/
.ipparse
{
width:480px;
padding:10px;
border:1px solid #7F9DB9;
}
.ipparse .tt
{
width:100px;
}
.ipparse .txt
{
width:130px;
}
.ipparse .btn
{
width:90px;
height:22px;
line-height:18px;
}
.ipparse .sel
{
width:130px;
}
\ No newline at end of file
// 初始化插件
// 全局保存当前选中窗口
var g_iWndIndex = 0; //可以不用设置这个变量,有窗口参数的接口中,不用传值,开发包会默认使用当前选择窗口
$(function() {
// 检查插件是否已经安装过
var iRet = WebVideoCtrl.I_CheckPluginInstall();
if (-2 == iRet) {
alert("您的Chrome浏览器版本过高,不支持NPAPI插件!");
return;
} else if (-1 == iRet) {
alert("您还未安装过插件,双击开发包目录里的WebComponentsKit.exe安装!");
return;
}
// 初始化插件参数及插入插件
WebVideoCtrl.I_InitPlugin(1200, 720, {
bWndFull: true, //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
iWndowType: 3,
cbSelWnd: function(xmlDoc) {
g_iWndIndex = $(xmlDoc).find("SelectWnd").eq(0).text();
var szInfo = "当前选择的窗口编号:" + g_iWndIndex;
showCBInfo(szInfo);
}
});
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
// 检查插件是否最新
if (-1 == WebVideoCtrl.I_CheckPluginVersion()) {
alert("检测到新的插件版本,双击开发包目录里的WebComponentsKit.exe升级!");
return;
}
// 窗口事件绑定
$(window).bind({
resize: function() {
var $Restart = $("#restartDiv");
if ($Restart.length > 0) {
var oSize = getWindowSize();
$Restart.css({
width: oSize.width + "px",
height: oSize.height + "px"
});
}
}
});
//初始化日期时间
var szCurTime = dateFormat(new Date(), "yyyy-MM-dd");
$("#starttime").val(szCurTime + " 00:00:00");
$("#endtime").val(szCurTime + " 23:59:59");
});
// 显示操作信息
function showOPInfo(szInfo) {
// szInfo = "<div>" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + "</div>";
// $("#opinfo").html(szInfo + $("#opinfo").html());
// console.log(szInfo);
}
// 显示回调信息
function showCBInfo(szInfo) {
szInfo = "<div>" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + "</div>";
$("#cbinfo").html(szInfo + $("#cbinfo").html());
}
// 格式化时间
function dateFormat(oDate, fmt) {
var o = {
"M+": oDate.getMonth() + 1, //月份
"d+": oDate.getDate(), //日
"h+": oDate.getHours(), //小时
"m+": oDate.getMinutes(), //分
"s+": oDate.getSeconds(), //秒
"q+": Math.floor((oDate.getMonth() + 3) / 3), //季度
"S": oDate.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (oDate.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
// 获取窗口尺寸
function getWindowSize() {
var nWidth = $(this).width() + $(this).scrollLeft(),
nHeight = $(this).height() + $(this).scrollTop();
return { width: nWidth, height: nHeight };
}
// 打开选择框 0:文件夹 1:文件
function clickOpenFileDlg(id, iType) {
var szDirPath = WebVideoCtrl.I_OpenFileDlg(iType);
if (szDirPath != -1 && szDirPath != "" && szDirPath != null) {
$("#" + id).val(szDirPath);
}
}
// 获取本地参数
function clickGetLocalCfg() {
var xmlDoc = WebVideoCtrl.I_GetLocalCfg();
$("#netsPreach").val($(xmlDoc).find("BuffNumberType").eq(0).text());
$("#wndSize").val($(xmlDoc).find("PlayWndType").eq(0).text());
$("#rulesInfo").val($(xmlDoc).find("IVSMode").eq(0).text());
$("#captureFileFormat").val($(xmlDoc).find("CaptureFileFormat").eq(0).text());
$("#packSize").val($(xmlDoc).find("PackgeSize").eq(0).text());
$("#recordPath").val($(xmlDoc).find("RecordPath").eq(0).text());
$("#downloadPath").val($(xmlDoc).find("DownloadPath").eq(0).text());
$("#previewPicPath").val($(xmlDoc).find("CapturePath").eq(0).text());
$("#playbackPicPath").val($(xmlDoc).find("PlaybackPicPath").eq(0).text());
$("#playbackFilePath").val($(xmlDoc).find("PlaybackFilePath").eq(0).text());
$("#protocolType").val($(xmlDoc).find("ProtocolType").eq(0).text());
showOPInfo("本地配置获取成功!");
}
// 设置本地参数
function clickSetLocalCfg() {
var arrXml = [],
szInfo = "";
arrXml.push("<LocalConfigInfo>");
arrXml.push("<PackgeSize>" + $("#packSize").val() + "</PackgeSize>");
arrXml.push("<PlayWndType>" + $("#wndSize").val() + "</PlayWndType>");
arrXml.push("<BuffNumberType>" + $("#netsPreach").val() + "</BuffNumberType>");
arrXml.push("<RecordPath>" + $("#recordPath").val() + "</RecordPath>");
arrXml.push("<CapturePath>" + $("#previewPicPath").val() + "</CapturePath>");
arrXml.push("<PlaybackFilePath>" + $("#playbackFilePath").val() + "</PlaybackFilePath>");
arrXml.push("<PlaybackPicPath>" + $("#playbackPicPath").val() + "</PlaybackPicPath>");
arrXml.push("<DownloadPath>" + $("#downloadPath").val() + "</DownloadPath>");
arrXml.push("<IVSMode>" + $("#rulesInfo").val() + "</IVSMode>");
arrXml.push("<CaptureFileFormat>" + $("#captureFileFormat").val() + "</CaptureFileFormat>");
arrXml.push("<ProtocolType>" + $("#protocolType").val() + "</ProtocolType>");
arrXml.push("</LocalConfigInfo>");
var iRet = WebVideoCtrl.I_SetLocalCfg(arrXml.join(""));
if (0 == iRet) {
szInfo = "本地配置设置成功!";
} else {
szInfo = "本地配置设置失败!";
}
showOPInfo(szInfo);
}
// 窗口分割数
function changeWndNum(iType) {
$(document).ready(function() {
if (iType == undefined) {
for (var i = 0; i < $(".win_show li").length; i++) {
if ($(".win_show li").eq(i).attr('bool') == 'true') {
iType = parseInt($(".win_show li").eq(i).attr('value'));
}
}
}
if ($(".win_show li").eq(iType).attr('bool') == 'false') {
for (var i = 0; i < $(".win_show li").length; i++) {
if ($(".win_show li").eq(i).attr('bool') == 'true') {
$(".win_show li").eq(i).removeClass('color_click');
}
$(".win_show li").eq(i).attr('bool', 'false');
}
$(".win_show li").eq(iType).attr('bool', 'true');
$(".win_show li").eq(iType).addClass('color_click');
}
WebVideoCtrl.I_ChangeWndNum(iType);
});
}
// 登录
function clickLogin(index) {
var szIP = $("#loginip").val(),
szPort = $("#port").val(),
szUsername = $("#username").val(),
szPassword = $("#password").val();
// console.log(szUsername, szPort, szPassword, szIP);
/*var szIP = "121.40.143.176",
szPort = "800",
szUsername = "admin",
szPassword = "xq534512";*/
if ("" == szIP || "" == szPort) {
return;
}
clickLogout();
showOPInfo(" 开始登录!");
// console.log(WebVideoCtrl.I_Login, szUsername, szPort, szPassword, szIP);
var iRet = WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, {
success: function(xmlDoc) {
//alert(12121);
changeWndNum();
showOPInfo(szIP + " 登录成功!");
console.log(" 登录成功!");
$("#ip").prepend("<option value='" + szIP + "'>" + szIP + "</option>");
setTimeout(function() {
$("#ip").val(szIP);
getChannelInfo();
}, 10);
},
error: function() {
console.log(" 登录失败!");
showOPInfo(szIP + " 登录失败!");
}
});
if (-1 == iRet) {
showOPInfo(szIP + " 已登录过!");
console.log(" 已登录过!");
}
}
// 退出
function clickLogout() {
var szIP = $("#ip").val(),
szInfo = "";
// console.log('szIP ', szIP)
if (szIP == "" || szIP == null) {
return;
}
var iRet = WebVideoCtrl.I_Logout(szIP);
if (0 == iRet) {
szInfo = "退出成功!";
$("#ip option[value='" + szIP + "']").remove();
getChannelInfo();
} else {
szInfo = "退出失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 获取设备信息
function clickGetDeviceInfo() {
var szIP = $("#ip").val();
if ("" == szIP) {
return;
}
WebVideoCtrl.I_GetDeviceInfo(szIP, {
success: function(xmlDoc) {
var arrStr = [];
arrStr.push("设备名称:" + $(xmlDoc).find("deviceName").eq(0).text() + "\r\n");
arrStr.push("设备ID:" + $(xmlDoc).find("deviceID").eq(0).text() + "\r\n");
arrStr.push("型号:" + $(xmlDoc).find("model").eq(0).text() + "\r\n");
arrStr.push("设备序列号:" + $(xmlDoc).find("serialNumber").eq(0).text() + "\r\n");
arrStr.push("MAC地址:" + $(xmlDoc).find("macAddress").eq(0).text() + "\r\n");
arrStr.push("主控版本:" + $(xmlDoc).find("firmwareVersion").eq(0).text() + " " + $(xmlDoc).find("firmwareReleasedDate").eq(0).text() + "\r\n");
arrStr.push("编码版本:" + $(xmlDoc).find("encoderVersion").eq(0).text() + " " + $(xmlDoc).find("encoderReleasedDate").eq(0).text() + "\r\n");
showOPInfo(szIP + " 获取设备信息成功!");
alert(arrStr.join(""));
},
error: function() {
showOPInfo(szIP + " 获取设备信息失败!");
}
});
}
// 获取通道
function getChannelInfo() {
var szIP = $("#ip").val(),
oSel = $("#div_ifelse>li").eq(v).children('ul').eq(0).empty();
if ("" == szIP) {
return;
}
console.log('szIP ', szIP)
// 模拟通道
WebVideoCtrl.I_GetAnalogChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("VideoInputChannel");
var index = 0;
channels_id = 0;
$.each(oChannels, function(i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text();
// if ("" == name) {
// name = "监控" + (i < 9 ? "0" + (i + 1) : (i + 1));
// }
// console.log('i ', i)
if (szIP == '192.180.8.2') {
if (i != 0 && i != 5 && i != 14 && i != 15) {
oSel.append("<li onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</li>");
index++
}
} else {
oSel.append("<li onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</li>");
index++
}
});
$("#div_ifelse .has-children").eq(v).children("input").eq(0).attr('checked', "true");
$("#div_ifelse ul").eq(v).children("li").eq(0).addClass('click_color')
loading();
showOPInfo(szIP + " 获取模拟通道成功!");
},
error: function() {
showOPInfo(szIP + " 获取模拟通道失败!");
}
});
// 数字通道
WebVideoCtrl.I_GetDigitalChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("InputProxyChannelStatus");
var index = 0;
channels_id = 0;
$.each(oChannels, function(i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text(),
online = $(this).find("online").eq(0).text();
if ("false" == online) { // 过滤禁用的数字通道
return true;
}
// if ("" == name) {
// name = "监控" + (i < 9 ? "0" + (i + 1) : (i + 1));
// }
// console.log('name ', name)
if (szIP == '192.180.8.2') {
if (i != 0 && i != 5 && i != 14 && i != 15) {
oSel.append("<li onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</li>");
index++
}
} else {
oSel.append("<li onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</li>");
index++
}
});
$("#div_ifelse .has-children").eq(v).children("input").eq(0).attr('checked', "true");
$("#div_ifelse ul").eq(v).children("li").eq(0).addClass('click_color')
loading();
showOPInfo(szIP + " 获取数字通道成功!");
},
error: function() {
showOPInfo(szIP + " 获取数字通道失败!");
}
});
// 零通道
WebVideoCtrl.I_GetZeroChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("ZeroVideoChannel");
var index = 0;
channels_id = 0;
$.each(oChannels, function(i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text();
if ("" == name) {
name = "Zero Channel " + (i < 9 ? "0" + (i + 1) : (i + 1));
}
if ("true" == $(this).find("enabled").eq(0).text()) { // 过滤禁用的零通道
oSel.append("<li onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</li>");
// $("#channels span").eq(0).addClass('color_change');
index++;
}
});
$("#div_ifelse .has-children").eq(v).children("input").eq(0).attr('checked', "true");
$("#div_ifelse ul").eq(v).children("li").eq(0).addClass('click_color');
loading();
showOPInfo(szIP + " 获取零通道成功!");
setTimeout(function() {
clickStartRealPlay();
}, 1000);
},
error: function() {
showOPInfo(szIP + " 获取零通道失败!");
}
});
}
// 获取数字通道
function clickGetDigitalChannelInfo() {
var szIP = $("#ip").val(),
iAnalogChannelNum = 0;
$("#digitalchannellist").empty();
if ("" == szIP) {
return;
}
// 模拟通道
WebVideoCtrl.I_GetAnalogChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
iAnalogChannelNum = $(xmlDoc).find("VideoInputChannel").length;
},
error: function() {
}
});
// 数字通道
WebVideoCtrl.I_GetDigitalChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("InputProxyChannelStatus");
$.each(oChannels, function() {
var id = parseInt($(this).find("id").eq(0).text(), 10),
ipAddress = $(this).find("ipAddress").eq(0).text(),
srcInputPort = $(this).find("srcInputPort").eq(0).text(),
managePortNo = $(this).find("managePortNo").eq(0).text(),
online = $(this).find("online").eq(0).text(),
proxyProtocol = $(this).find("proxyProtocol").eq(0).text();
var objTr = $("#digitalchannellist").get(0).insertRow(-1);
var objTd = objTr.insertCell(0);
objTd.innerHTML = (id - iAnalogChannelNum) < 10 ? "D0" + (id - iAnalogChannelNum) : "D" + (id - iAnalogChannelNum);
objTd = objTr.insertCell(1);
objTd.width = "25%";
objTd.innerHTML = ipAddress;
objTd = objTr.insertCell(2);
objTd.width = "15%";
objTd.innerHTML = srcInputPort;
objTd = objTr.insertCell(3);
objTd.width = "20%";
objTd.innerHTML = managePortNo;
objTd = objTr.insertCell(4);
objTd.width = "15%";
objTd.innerHTML = "true" == online ? "在线" : "离线";
objTd = objTr.insertCell(5);
objTd.width = "25%";
objTd.innerHTML = proxyProtocol;
});
showOPInfo(szIP + " 获取数字通道成功!");
},
error: function() {
showOPInfo(szIP + " 没有数字通道!");
}
});
}
function loading() {
$(document).ready(function() {
var accordionsMenu = $('.cd-accordion-menu');
if (accordionsMenu.length > 0) {
accordionsMenu.each(function() {
var accordion = $(this);
// detect change in the input[type = "checkbox"] value
// accordion.on('change', 'input[type="radio"]', function() {
// alert(11)
// var checkbox = $(this);
// console.log(checkbox.prop('checked'));
// (checkbox.prop('checked')) ? checkbox.siblings('ul').attr('style', 'display:none;').slideDown(300): checkbox.siblings('ul').attr('style', 'display:block;').slideUp(300);
// });
});
}
});
}
// 开始预览
function clickStartRealPlay() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szIP = $("#ip").val(),
iStreamType = parseInt($("#streamtype").val(), 10),
iChannelID = parseInt($("#div_ifelse ul").eq(v).children("li").eq(channels_id).attr('value'), 10),
bZeroChannel = false /*$("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false*/ ,
szInfo = "";
if ("" == szIP) {
return;
}
if (oWndInfo != null) { // 已经在播放了,先停止
WebVideoCtrl.I_Stop();
}
var iRet = WebVideoCtrl.I_StartRealPlay(szIP, {
iStreamType: iStreamType,
iChannelID: iChannelID,
bZeroChannel: bZeroChannel
});
if (0 == iRet) {
szInfo = "开始预览成功!";
} else {
szInfo = "开始预览失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 停止预览
function clickStopRealPlay() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Stop();
if (0 == iRet) {
szInfo = "停止预览成功!";
} else {
szInfo = "停止预览失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 打开声音
function clickOpenSound() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var allWndInfo = WebVideoCtrl.I_GetWindowStatus();
// 循环遍历所有窗口,如果有窗口打开了声音,先关闭
for (var i = 0, iLen = allWndInfo.length; i < iLen; i++) {
oWndInfo = allWndInfo[i];
if (oWndInfo.bSound) {
WebVideoCtrl.I_CloseSound(oWndInfo.iIndex);
break;
}
}
var iRet = WebVideoCtrl.I_OpenSound();
if (0 == iRet) {
szInfo = "打开声音成功!";
} else {
szInfo = "打开声音失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 关闭声音
function clickCloseSound() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_CloseSound();
if (0 == iRet) {
szInfo = "关闭声音成功!";
} else {
szInfo = "关闭声音失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 设置音量
function clickSetVolume() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
iVolume = parseInt($("#volume").val(), 10),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_SetVolume(iVolume);
if (0 == iRet) {
szInfo = "音量设置成功!";
} else {
szInfo = "音量设置失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 抓图
function clickCapturePic() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var szChannelID = $("#channels").val(),
szPicName = oWndInfo.szIP + "_" + szChannelID + "_" + new Date().getTime(),
iRet = WebVideoCtrl.I_CapturePic(szPicName);
if (0 == iRet) {
szInfo = "抓图成功!";
} else {
szInfo = "抓图失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 开始录像
function clickStartRecord() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var szChannelID = $("#channels").val(),
szFileName = oWndInfo.szIP + "_" + szChannelID + "_" + new Date().getTime(),
iRet = WebVideoCtrl.I_StartRecord(szFileName);
if (0 == iRet) {
szInfo = "开始录像成功!";
} else {
szInfo = "开始录像失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 停止录像
function clickStopRecord() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_StopRecord();
if (0 == iRet) {
szInfo = "停止录像成功!";
} else {
szInfo = "停止录像失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 获取对讲通道
function clickGetAudioInfo() {
var szIP = $("#ip").val();
if ("" == szIP) {
return;
}
WebVideoCtrl.I_GetAudioInfo(szIP, {
success: function(xmlDoc) {
var oAudioChannels = $(xmlDoc).find("TwoWayAudioChannel"),
oSel = $("#audiochannels").empty();
$.each(oAudioChannels, function() {
var id = $(this).find("id").eq(0).text();
oSel.append("<option value='" + id + "'>" + id + "</option>");
});
showOPInfo(szIP + " 获取对讲通道成功!");
},
error: function() {
showOPInfo(szIP + " 获取对讲通道失败!");
}
});
}
// 开始对讲
function clickStartVoiceTalk() {
var szIP = $("#ip").val(),
iAudioChannel = parseInt($("#audiochannels").val(), 10),
szInfo = "";
if ("" == szIP) {
return;
}
if (isNaN(iAudioChannel)) {
alert("请选择对讲通道!");
return;
}
var iRet = WebVideoCtrl.I_StartVoiceTalk(szIP, iAudioChannel);
if (0 == iRet) {
szInfo = "开始对讲成功!";
} else {
szInfo = "开始对讲失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 停止对讲
function clickStopVoiceTalk() {
var szIP = $("#ip").val(),
iRet = WebVideoCtrl.I_StopVoiceTalk(),
szInfo = "";
if ("" == szIP) {
return;
}
if (0 == iRet) {
szInfo = "停止对讲成功!";
} else {
szInfo = "停止对讲失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 启用电子放大
function clickEnableEZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_EnableEZoom();
if (0 == iRet) {
szInfo = "启用电子放大成功!";
} else {
szInfo = "启用电子放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 禁用电子放大
function clickDisableEZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_DisableEZoom();
if (0 == iRet) {
szInfo = "禁用电子放大成功!";
} else {
szInfo = "禁用电子放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 启用3D放大
function clickEnable3DZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Enable3DZoom();
if (0 == iRet) {
szInfo = "启用3D放大成功!";
} else {
szInfo = "启用3D放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 禁用3D放大
function clickDisable3DZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Disable3DZoom();
if (0 == iRet) {
szInfo = "禁用3D放大成功!";
} else {
szInfo = "禁用3D放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 全屏
function clickFullScreen() {
WebVideoCtrl.I_FullScreen(true);
}
// PTZ控制 9为自动,1,2,3,4,5,6,7,8为方向PTZ
var g_bPTZAuto = false;
function mouseDownPTZControl(iPTZIndex) {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false,
iPTZSpeed = $("#ptzspeed").val();
if (bZeroChannel) { // 零通道不支持云台
return;
}
if (oWndInfo != null) {
if (9 == iPTZIndex && g_bPTZAuto) {
iPTZSpeed = 0; // 自动开启后,速度置为0可以关闭自动
} else {
g_bPTZAuto = false; // 点击其他方向,自动肯定会被关闭
}
WebVideoCtrl.I_PTZControl(iPTZIndex, false, {
iPTZSpeed: iPTZSpeed,
success: function(xmlDoc) {
if (9 == iPTZIndex) {
g_bPTZAuto = !g_bPTZAuto;
}
showOPInfo(oWndInfo.szIP + " 开启云台成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 开启云台失败!");
}
});
}
}
// 方向PTZ停止
function mouseUpPTZControl() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(1, true, {
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 停止云台成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 停止云台失败!");
}
});
}
}
// 设置预置点
function clickSetPreset() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
iPresetID = parseInt($("#preset").val(), 10);
if (oWndInfo != null) {
WebVideoCtrl.I_SetPreset(iPresetID, {
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 设置预置点成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 设置预置点失败!");
}
});
}
}
// 调用预置点
function clickGoPreset() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
iPresetID = parseInt($("#preset").val(), 10);
if (oWndInfo != null) {
WebVideoCtrl.I_GoPreset(iPresetID, {
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调用预置点成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调用预置点失败!");
}
});
}
}
// 搜索录像
var iSearchTimes = 0;
// 慢放
function clickPlaySlow() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_PlaySlow();
if (0 == iRet) {
szInfo = "慢放成功!";
} else {
szInfo = "慢放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 快放
function clickPlayFast() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_PlayFast();
if (0 == iRet) {
szInfo = "快放成功!";
} else {
szInfo = "快放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 暂停
function clickPause() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Pause();
if (0 == iRet) {
szInfo = "暂停成功!";
} else {
szInfo = "暂停失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
function clickRecordSearch(iType) {
var szIP = $("#loginip").val(),
iChannelID = parseInt($("#div_ifelse ul").eq(v).children("li").eq(channels_id).attr('value'), 10),
bZeroChannel = false,
szStartTime = $("#starttime").val(),
szEndTime = $("#endtime").val();
if ("" == szIP) {
return;
}
if (bZeroChannel) { // 零通道不支持录像搜索
return;
}
if (0 == iType) { // 首次搜索
$("#searchlist").empty();
iSearchTimes = 0;
}
WebVideoCtrl.I_RecordSearch(szIP, iChannelID, szStartTime, szEndTime, {
iSearchPos: iSearchTimes * 40,
success: function(xmlDoc) {
if ("MORE" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
for (var i = 0, nLen = $(xmlDoc).find("searchMatchItem").length; i < nLen; i++) {
var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text();
if (szPlaybackURI.indexOf("name=") < 0) {
break;
}
var szStartTime = $(xmlDoc).find("startTime").eq(i).text();
var szEndTime = $(xmlDoc).find("endTime").eq(i).text();
var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size="));
var objTr = $("#searchlist").get(0).insertRow(-1);
var objTd = objTr.insertCell(0);
objTd.id = "downloadTd" + i;
objTd.innerHTML = iSearchTimes * 40 + (i + 1);
objTd = objTr.insertCell(1);
objTd.width = "30%";
objTd.innerHTML = szFileName;
objTd = objTr.insertCell(2);
objTd.width = "30%";
objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(3);
objTd.width = "30%";
objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(4);
objTd.width = "10%";
objTd.innerHTML = "<a href='javascript:;' onclick='clickStartDownloadRecord(" + i + ");'>下载</a>";
$("#downloadTd" + i).data("playbackURI", szPlaybackURI);
}
iSearchTimes++;
clickRecordSearch(1); // 继续搜索
} else if ("OK" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
var iLength = $(xmlDoc).find("searchMatchItem").length;
for (var i = 0; i < iLength; i++) {
var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text();
if (szPlaybackURI.indexOf("name=") < 0) {
break;
}
var szStartTime = $(xmlDoc).find("startTime").eq(i).text();
var szEndTime = $(xmlDoc).find("endTime").eq(i).text();
var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size="));
var objTr = $("#searchlist").get(0).insertRow(-1);
var objTd = objTr.insertCell(0);
objTd.id = "downloadTd" + i;
objTd.innerHTML = iSearchTimes * 40 + (i + 1);
objTd = objTr.insertCell(1);
objTd.width = "30%";
objTd.innerHTML = szFileName;
objTd = objTr.insertCell(2);
objTd.width = "30%";
objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(3);
objTd.width = "30%";
objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(4);
objTd.width = "10%";
objTd.innerHTML = "<a href='javascript:;' onclick='clickStartDownloadRecord(" + i + ");'>下载</a>";
$("#downloadTd" + i).data("playbackURI", szPlaybackURI);
}
showOPInfo(szIP + " 搜索录像文件成功!");
} else if ("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
setTimeout(function() {
showOPInfo(szIP + " 没有录像文件!");
}, 50);
}
},
error: function() {
showOPInfo(szIP + " 搜索录像文件失败!");
}
});
}
// 开始回放
function clickStartPlayback() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szIP = $("#loginip").val(),
iChannelID = parseInt($("#div_ifelse ul").eq(v).children("li").eq(channels_id).attr('value'), 10),
bZeroChannel = false /*$("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false*/ ,
szStartTime = $("#starttime").val(),
szEndTime = $("#endtime").val(),
szInfo = "",
bChecked = false,
iRet = -1;
var obj={'szIP':szIP,'iChannelID':iChannelID,'szStartTime':szStartTime,'szEndTime':szEndTime}
// alert(JSON.stringify(obj));
if ("" == szIP) {
return;
}
if (bZeroChannel) { // 零通道不支持回放
return;
}
if (oWndInfo != null) { // 已经在播放了,先停止
WebVideoCtrl.I_Stop();
}
if (bChecked) { // 启用转码回放
var oTransCodeParam = {
TransFrameRate: "14", // 0:全帧率,5:1,6:2,7:4,8:6,9:8,10:10,11:12,12:16,14:15,15:18,13:20,16:22
TransResolution: "1", // 255:Auto,3:4CIF,2:QCIF,1:CIF
TransBitrate: "19" // 2:32K,3:48K,4:64K,5:80K,6:96K,7:128K,8:160K,9:192K,10:224K,11:256K,12:320K,13:384K,14:448K,15:512K,16:640K,17:768K,18:896K,19:1024K,20:1280K,21:1536K,22:1792K,23:2048K,24:3072K,25:4096K,26:8192K
};
iRet = WebVideoCtrl.I_StartPlayback(szIP, {
iChannelID: iChannelID,
szStartTime: szStartTime,
szEndTime: szEndTime,
oTransCodeParam: oTransCodeParam
});
} else {
iRet = WebVideoCtrl.I_StartPlayback(szIP, {
iChannelID: iChannelID,
szStartTime: szStartTime,
szEndTime: szEndTime
});
}
if (0 == iRet) {
szInfo = "开始回放成功!";
} else {
szInfo = "开始回放失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 停止回放
function clickStopPlayback() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Stop();
if (0 == iRet) {
szInfo = "停止回放成功!";
} else {
szInfo = "停止回放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 开始倒放
function clickReversePlayback() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szIP = $("#ip").val(),
bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false,
iChannelID = $("#channels").val(),
szStartTime = $("#starttime").val(),
szEndTime = $("#endtime").val(),
szInfo = "";
if ("" == szIP) {
return;
}
if (bZeroChannel) { // 零通道不支持回放
return;
}
if (oWndInfo != null) { // 已经在播放了,先停止
WebVideoCtrl.I_Stop();
}
var iRet = WebVideoCtrl.I_ReversePlayback(szIP, {
iChannelID: iChannelID,
szStartTime: szStartTime,
szEndTime: szEndTime
});
if (0 == iRet) {
szInfo = "开始倒放成功!";
} else {
szInfo = "开始倒放失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 单帧
function clickFrame() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Frame();
if (0 == iRet) {
szInfo = "单帧播放成功!";
} else {
szInfo = "单帧播放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 恢复
function clickResume() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Resume();
if (0 == iRet) {
szInfo = "恢复成功!";
} else {
szInfo = "恢复失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// OSD时间
function clickGetOSDTime() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
var szTime = WebVideoCtrl.I_GetOSDTime();
if (szTime != -1) {
$("#osdtime").val(szTime);
showOPInfo(oWndInfo.szIP + " 获取OSD时间成功!");
} else {
showOPInfo(oWndInfo.szIP + " 获取OSD时间失败!");
}
}
}
// 下载录像
var iDownloadID = -1;
var tDownloadProcess = 0;
function clickStartDownloadRecord(i) {
var szIP = $("#ip").val(),
szChannelID = $("#channels").val(),
szFileName = szIP + "_" + szChannelID + "_" + new Date().getTime(),
szPlaybackURI = $("#downloadTd" + i).data("playbackURI");
if ("" == szIP) {
return;
}
iDownloadID = WebVideoCtrl.I_StartDownloadRecord(szIP, szPlaybackURI, szFileName);
if (iDownloadID < 0) {
var iErrorValue = WebVideoCtrl.I_GetLastError();
if (34 == iErrorValue) {
showOPInfo(szIP + " 已下载!");
} else if (33 == iErrorValue) {
showOPInfo(szIP + " 空间不足!");
} else {
showOPInfo(szIP + " 下载失败!");
}
} else {
$("<div id='downProcess' class='freeze'></div>").appendTo("body");
tDownloadProcess = setInterval("downProcess(" + i + ")", 1000);
}
}
// 下载进度
function downProcess() {
var iStatus = WebVideoCtrl.I_GetDownloadStatus(iDownloadID);
if (0 == iStatus) {
$("#downProcess").css({
width: $("#searchlist").width() + "px",
height: "100px",
lineHeight: "100px",
left: $("#searchlist").offset().left + "px",
top: $("#searchlist").offset().top + "px"
});
var iProcess = WebVideoCtrl.I_GetDownloadProgress(iDownloadID);
if (iProcess < 0) {
clearInterval(tDownloadProcess);
tDownloadProcess = 0;
m_iDownloadID = -1;
} else if (iProcess < 100) {
$("#downProcess").text(iProcess + "%");
} else {
$("#downProcess").text("100%");
setTimeout(function() {
$("#downProcess").remove();
}, 1000);
WebVideoCtrl.I_StopDownloadRecord(iDownloadID);
showOPInfo("录像下载完成");
clearInterval(tDownloadProcess);
tDownloadProcess = 0;
m_iDownloadID = -1;
}
} else {
WebVideoCtrl.I_StopDownloadRecord(iDownloadID);
clearInterval(tDownloadProcess);
tDownloadProcess = 0;
iDownloadID = -1;
}
}
// 导出配置文件
function clickExportDeviceConfig() {
var szIP = $("#ip").val(),
szInfo = "";
if ("" == szIP) {
return;
}
var iRet = WebVideoCtrl.I_ExportDeviceConfig(szIP);
if (0 == iRet) {
szInfo = "导出配置文件成功!";
} else {
szInfo = "导出配置文件失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 导入配置文件
function clickImportDeviceConfig() {
var szIP = $("#ip").val(),
szFileName = $("#configFile").val();
if ("" == szIP) {
return;
}
if ("" == szFileName) {
alert("请选择配置文件!");
return;
}
var iRet = WebVideoCtrl.I_ImportDeviceConfig(szIP, szFileName);
if (0 == iRet) {
WebVideoCtrl.I_Restart(szIP, {
success: function(xmlDoc) {
$("<div id='restartDiv' class='freeze'>重启中...</div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
setTimeout("reconnect('" + szIP + "')", 20000);
},
error: function() {
showOPInfo(szIP + " 重启失败!");
}
});
} else {
showOPInfo(szIP + " 导入失败!");
}
}
// 重连
function reconnect(szIP) {
WebVideoCtrl.I_Reconnect(szIP, {
success: function(xmlDoc) {
$("#restartDiv").remove();
},
error: function() {
setTimeout(function() { reconnect(szIP); }, 5000);
}
});
}
// 开始升级
m_tUpgrade = 0;
function clickStartUpgrade(szIP) {
var szIP = $("#ip").val(),
szFileName = $("#upgradeFile").val();
if ("" == szIP) {
return;
}
if ("" == szFileName) {
alert("请选择升级文件!");
return;
}
var iRet = WebVideoCtrl.I_StartUpgrade(szIP, szFileName);
if (0 == iRet) {
m_tUpgrade = setInterval("getUpgradeStatus('" + szIP + "')", 1000);
} else {
showOPInfo(szIP + " 升级失败!");
}
}
// 获取升级状态
function getUpgradeStatus(szIP) {
var iStatus = WebVideoCtrl.I_UpgradeStatus();
if (iStatus == 0) {
var iProcess = WebVideoCtrl.I_UpgradeProgress();
if (iProcess < 0) {
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
showOPInfo(szIP + " 获取进度失败!");
return;
} else if (iProcess < 100) {
if (0 == $("#restartDiv").length) {
$("<div id='restartDiv' class='freeze'></div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
}
$("#restartDiv").text(iProcess + "%");
} else {
WebVideoCtrl.I_StopUpgrade();
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
$("#restartDiv").remove();
WebVideoCtrl.I_Restart(szIP, {
success: function(xmlDoc) {
$("<div id='restartDiv' class='freeze'>重启中...</div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
setTimeout("reconnect('" + szIP + "')", 20000);
},
error: function() {
showOPInfo(szIP + " 重启失败!");
}
});
}
} else if (iStatus == 1) {
WebVideoCtrl.I_StopUpgrade();
showOPInfo(szIP + " 升级失败!");
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
} else if (iStatus == 2) {
mWebVideoCtrl.I_StopUpgrade();
showOPInfo(szIP + " 语言不匹配!");
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
} else {
mWebVideoCtrl.I_StopUpgrade();
showOPInfo(szIP + " 获取状态失败!");
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
}
}
// 检查插件版本
function clickCheckPluginVersion() {
var iRet = WebVideoCtrl.I_CheckPluginVersion();
if (0 == iRet) {
alert("您的插件版本已经是最新的!");
} else {
alert("检测到新的插件版本!");
}
}
// 远程配置库
function clickRemoteConfig() {
var szIP = $("#ip").val(),
iDevicePort = parseInt($("#deviceport").val(), 10) || "",
szInfo = "";
if ("" == szIP) {
return;
}
var iRet = WebVideoCtrl.I_RemoteConfig(szIP, {
iDevicePort: iDevicePort,
iLan: 1
});
if (-1 == iRet) {
szInfo = "调用远程配置库失败!";
} else {
szInfo = "调用远程配置库成功!";
}
showOPInfo(szIP + " " + szInfo);
}
function clickRestoreDefault() {
var szIP = $("#ip").val(),
szMode = "basic";
WebVideoCtrl.I_RestoreDefault(szIP, szMode, {
timeout: 30000,
success: function(xmlDoc) {
$("#restartDiv").remove();
showOPInfo(szIP + " 恢复默认参数成功!");
//恢复完成后需要重启
WebVideoCtrl.I_Restart(szIP, {
success: function(xmlDoc) {
$("<div id='restartDiv' class='freeze'>重启中...</div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
setTimeout("reconnect('" + szIP + "')", 20000);
},
error: function() {
showOPInfo(szIP + " 重启失败!");
}
});
},
error: function() {
showOPInfo(szIP + " 恢复默认参数失败!");
}
});
}
function PTZZoomIn() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(10, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调焦+成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调焦+失败!");
}
});
}
}
function PTZZoomout() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(11, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调焦-成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调焦-失败!");
}
});
}
}
function PTZZoomStop() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(11, true, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调焦停止成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调焦停止失败!");
}
});
}
}
function PTZFocusIn() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(12, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 聚焦+成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 聚焦+失败!");
}
});
}
}
function PTZFoucusOut() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(13, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 聚焦-成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 聚焦-失败!");
}
});
}
}
function PTZFoucusStop() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(12, true, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 聚焦停止成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 聚焦停止失败!");
}
});
}
}
function PTZIrisIn() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(14, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 光圈+成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 光圈+失败!");
}
});
}
}
function PTZIrisOut() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(15, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 光圈-成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 光圈-失败!");
}
});
}
}
function PTZIrisStop() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(14, true, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 光圈停止成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 光圈停止失败!");
}
});
}
}
dateFormat = function(oDate, fmt) {
var o = {
"M+": oDate.getMonth() + 1, //月份
"d+": oDate.getDate(), //日
"h+": oDate.getHours(), //小时
"m+": oDate.getMinutes(), //分
"s+": oDate.getSeconds(), //秒
"q+": Math.floor((oDate.getMonth() + 3) / 3), //季度
"S": oDate.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (oDate.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
};
// 切换模式
function changeIPMode(iType) {
var arrPort = [0, 7071, 80];
$("#serverport").val(arrPort[iType]);
}
// 获取设备IP
function clickGetDeviceIP() {
var iDeviceMode = parseInt($("#devicemode").val(), 10),
szAddress = $("#serveraddress").val(),
iPort = parseInt($("#serverport").val(), 10) || 0,
szDeviceID = $("#deviceid").val(),
szDeviceInfo = "";
szDeviceInfo = WebVideoCtrl.I_GetIPInfoByMode(iDeviceMode, szAddress, iPort, szDeviceID);
if ("" == szDeviceInfo) {
showOPInfo("设备IP和端口解析失败!");
} else {
showOPInfo("设备IP和端口解析成功!");
var arrTemp = szDeviceInfo.split("-");
$("#loginip").val(arrTemp[0]);
$("#deviceport").val(arrTemp[1]);
}
}
// 初始化插件
// 全局保存当前选中窗口
var g_iWndIndex = 0; //可以不用设置这个变量,有窗口参数的接口中,不用传值,开发包会默认使用当前选择窗口
$(function() {
// 检查插件是否已经安装过
var iRet = WebVideoCtrl.I_CheckPluginInstall();
if (-2 == iRet) {
alert("您的Chrome浏览器版本过高,不支持NPAPI插件!");
return;
} else if (-1 == iRet) {
alert("您还未安装过插件,双击开发包目录里的WebComponentsKit.exe安装!");
return;
}
// 初始化插件参数及插入插件
WebVideoCtrl.I_InitPlugin(1360, 816, {
bWndFull: true, //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
iWndowType: 1,
cbSelWnd: function(xmlDoc) {
g_iWndIndex = $(xmlDoc).find("SelectWnd").eq(0).text();
var szInfo = "当前选择的窗口编号:" + g_iWndIndex;
showCBInfo(szInfo);
}
});
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
// 检查插件是否最新
if (-1 == WebVideoCtrl.I_CheckPluginVersion()) {
alert("检测到新的插件版本,双击开发包目录里的WebComponentsKit.exe升级!");
return;
}
// 窗口事件绑定
$(window).bind({
resize: function() {
var $Restart = $("#restartDiv");
if ($Restart.length > 0) {
var oSize = getWindowSize();
$Restart.css({
width: oSize.width + "px",
height: oSize.height + "px"
});
}
}
});
//初始化日期时间
var szCurTime = dateFormat(new Date(), "yyyy-MM-dd");
$("#starttime").val(szCurTime + " 00:00:00");
$("#endtime").val(szCurTime + " 23:59:59");
});
// 显示操作信息
function showOPInfo(szInfo) {
// szInfo = "<div>" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + "</div>";
// $("#opinfo").html(szInfo + $("#opinfo").html());
// console.log(szInfo);
}
// 显示回调信息
function showCBInfo(szInfo) {
szInfo = "<div>" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + "</div>";
$("#cbinfo").html(szInfo + $("#cbinfo").html());
}
// 格式化时间
function dateFormat(oDate, fmt) {
var o = {
"M+": oDate.getMonth() + 1, //月份
"d+": oDate.getDate(), //日
"h+": oDate.getHours(), //小时
"m+": oDate.getMinutes(), //分
"s+": oDate.getSeconds(), //秒
"q+": Math.floor((oDate.getMonth() + 3) / 3), //季度
"S": oDate.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (oDate.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
// 获取窗口尺寸
function getWindowSize() {
var nWidth = $(this).width() + $(this).scrollLeft(),
nHeight = $(this).height() + $(this).scrollTop();
return { width: nWidth, height: nHeight };
}
// 打开选择框 0:文件夹 1:文件
function clickOpenFileDlg(id, iType) {
var szDirPath = WebVideoCtrl.I_OpenFileDlg(iType);
if (szDirPath != -1 && szDirPath != "" && szDirPath != null) {
$("#" + id).val(szDirPath);
}
}
// 获取本地参数
function clickGetLocalCfg() {
var xmlDoc = WebVideoCtrl.I_GetLocalCfg();
$("#netsPreach").val($(xmlDoc).find("BuffNumberType").eq(0).text());
$("#wndSize").val($(xmlDoc).find("PlayWndType").eq(0).text());
$("#rulesInfo").val($(xmlDoc).find("IVSMode").eq(0).text());
$("#captureFileFormat").val($(xmlDoc).find("CaptureFileFormat").eq(0).text());
$("#packSize").val($(xmlDoc).find("PackgeSize").eq(0).text());
$("#recordPath").val($(xmlDoc).find("RecordPath").eq(0).text());
$("#downloadPath").val($(xmlDoc).find("DownloadPath").eq(0).text());
$("#previewPicPath").val($(xmlDoc).find("CapturePath").eq(0).text());
$("#playbackPicPath").val($(xmlDoc).find("PlaybackPicPath").eq(0).text());
$("#playbackFilePath").val($(xmlDoc).find("PlaybackFilePath").eq(0).text());
$("#protocolType").val($(xmlDoc).find("ProtocolType").eq(0).text());
showOPInfo("本地配置获取成功!");
}
// 设置本地参数
function clickSetLocalCfg() {
var arrXml = [],
szInfo = "";
arrXml.push("<LocalConfigInfo>");
arrXml.push("<PackgeSize>" + $("#packSize").val() + "</PackgeSize>");
arrXml.push("<PlayWndType>" + $("#wndSize").val() + "</PlayWndType>");
arrXml.push("<BuffNumberType>" + $("#netsPreach").val() + "</BuffNumberType>");
arrXml.push("<RecordPath>" + $("#recordPath").val() + "</RecordPath>");
arrXml.push("<CapturePath>" + $("#previewPicPath").val() + "</CapturePath>");
arrXml.push("<PlaybackFilePath>" + $("#playbackFilePath").val() + "</PlaybackFilePath>");
arrXml.push("<PlaybackPicPath>" + $("#playbackPicPath").val() + "</PlaybackPicPath>");
arrXml.push("<DownloadPath>" + $("#downloadPath").val() + "</DownloadPath>");
arrXml.push("<IVSMode>" + $("#rulesInfo").val() + "</IVSMode>");
arrXml.push("<CaptureFileFormat>" + $("#captureFileFormat").val() + "</CaptureFileFormat>");
arrXml.push("<ProtocolType>" + $("#protocolType").val() + "</ProtocolType>");
arrXml.push("</LocalConfigInfo>");
var iRet = WebVideoCtrl.I_SetLocalCfg(arrXml.join(""));
if (0 == iRet) {
szInfo = "本地配置设置成功!";
} else {
szInfo = "本地配置设置失败!";
}
showOPInfo(szInfo);
}
// 窗口分割数
function changeWndNum(iType) {
iType = parseInt(iType, 10);
WebVideoCtrl.I_ChangeWndNum(iType);
}
// 登录
function clickLogin() {
var szIP = $("#loginip").val(),
szPort = $("#port").val(),
szUsername = $("#username").val(),
szPassword = $("#password").val();
console.log(szUsername, szPort, szPassword, szIP);
/*var szIP = "121.40.143.176",
szPort = "800",
szUsername = "admin",
szPassword = "xq534512";*/
if ("" == szIP || "" == szPort) {
return;
}
clickLogout();
showOPInfo(" 开始登录!");
// console.log(WebVideoCtrl.I_Login, szUsername, szPort, szPassword, szIP);
var iRet = WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, {
success: function(xmlDoc) {
//alert(12121);
changeWndNum(1);
showOPInfo(szIP + " 登录成功!");
console.log(" 登录成功!");
$("#ip").prepend("<option value='" + szIP + "'>" + szIP + "</option>");
setTimeout(function() {
$("#ip").val(szIP);
getChannelInfo();
}, 10);
},
error: function() {
console.log(" 登录失败!");
showOPInfo(szIP + " 登录失败!");
}
});
if (-1 == iRet) {
showOPInfo(szIP + " 已登录过!");
console.log(" 已登录过!");
}
}
// 退出
function clickLogout() {
var szIP = $("#ip").val(),
szInfo = "";
console.log('szIP ', szIP)
if (szIP == "" || szIP == null) {
return;
}
var iRet = WebVideoCtrl.I_Logout(szIP);
if (0 == iRet) {
szInfo = "退出成功!";
$("#ip option[value='" + szIP + "']").remove();
getChannelInfo();
} else {
szInfo = "退出失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 获取设备信息
function clickGetDeviceInfo() {
var szIP = $("#ip").val();
if ("" == szIP) {
return;
}
WebVideoCtrl.I_GetDeviceInfo(szIP, {
success: function(xmlDoc) {
var arrStr = [];
arrStr.push("设备名称:" + $(xmlDoc).find("deviceName").eq(0).text() + "\r\n");
arrStr.push("设备ID:" + $(xmlDoc).find("deviceID").eq(0).text() + "\r\n");
arrStr.push("型号:" + $(xmlDoc).find("model").eq(0).text() + "\r\n");
arrStr.push("设备序列号:" + $(xmlDoc).find("serialNumber").eq(0).text() + "\r\n");
arrStr.push("MAC地址:" + $(xmlDoc).find("macAddress").eq(0).text() + "\r\n");
arrStr.push("主控版本:" + $(xmlDoc).find("firmwareVersion").eq(0).text() + " " + $(xmlDoc).find("firmwareReleasedDate").eq(0).text() + "\r\n");
arrStr.push("编码版本:" + $(xmlDoc).find("encoderVersion").eq(0).text() + " " + $(xmlDoc).find("encoderReleasedDate").eq(0).text() + "\r\n");
showOPInfo(szIP + " 获取设备信息成功!");
alert(arrStr.join(""));
},
error: function() {
showOPInfo(szIP + " 获取设备信息失败!");
}
});
}
// 获取通道
function getChannelInfo() {
var szIP = $("#ip").val(),
oSel = $("#channels").empty();
if ("" == szIP) {
return;
}
// 模拟通道
WebVideoCtrl.I_GetAnalogChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("VideoInputChannel");
var index = 0;
channels_id = 0;
$.each(oChannels, function(i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text();
// if ("" == name) {
name = "监控" + (i < 9 ? "0" + (i + 1) : (i + 1));
// }
oSel.append("<span onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</span>");
$("#channels span").eq(0).addClass('color_change');
index++
});
showOPInfo(szIP + " 获取模拟通道成功!");
},
error: function() {
showOPInfo(szIP + " 获取模拟通道失败!");
}
});
// 数字通道
WebVideoCtrl.I_GetDigitalChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("InputProxyChannelStatus");
var index = 0;
$.each(oChannels, function(i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text(),
online = $(this).find("online").eq(0).text();
if ("false" == online) { // 过滤禁用的数字通道
return true;
}
// if ("" == name) {
name = "监控" + (i < 9 ? "0" + (i + 1) : (i + 1));
// }
// console.log('name ', name)
oSel.append("<span onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</span>");
$("#channels span").eq(0).addClass('color_change');
index++
});
showOPInfo(szIP + " 获取数字通道成功!");
},
error: function() {
showOPInfo(szIP + " 获取数字通道失败!");
}
});
// 零通道
WebVideoCtrl.I_GetZeroChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("ZeroVideoChannel");
var index = 0;
$.each(oChannels, function(i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text();
if ("" == name) {
name = "Zero Channel " + (i < 9 ? "0" + (i + 1) : (i + 1));
}
if ("true" == $(this).find("enabled").eq(0).text()) { // 过滤禁用的零通道
oSel.append("<span onclick='getChannelChange(" + index + ")' value='" + id + "' bZero='false'>" + name + "</span>");
$("#channels span").eq(0).addClass('color_change');
index++;
}
});
showOPInfo(szIP + " 获取零通道成功!");
setTimeout(function() {
clickStartRealPlay();
}, 1000);
},
error: function() {
showOPInfo(szIP + " 获取零通道失败!");
}
});
}
// 获取数字通道
function clickGetDigitalChannelInfo() {
var szIP = $("#ip").val(),
iAnalogChannelNum = 0;
$("#digitalchannellist").empty();
if ("" == szIP) {
return;
}
// 模拟通道
WebVideoCtrl.I_GetAnalogChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
iAnalogChannelNum = $(xmlDoc).find("VideoInputChannel").length;
},
error: function() {
}
});
// 数字通道
WebVideoCtrl.I_GetDigitalChannelInfo(szIP, {
async: false,
success: function(xmlDoc) {
var oChannels = $(xmlDoc).find("InputProxyChannelStatus");
$.each(oChannels, function() {
var id = parseInt($(this).find("id").eq(0).text(), 10),
ipAddress = $(this).find("ipAddress").eq(0).text(),
srcInputPort = $(this).find("srcInputPort").eq(0).text(),
managePortNo = $(this).find("managePortNo").eq(0).text(),
online = $(this).find("online").eq(0).text(),
proxyProtocol = $(this).find("proxyProtocol").eq(0).text();
var objTr = $("#digitalchannellist").get(0).insertRow(-1);
var objTd = objTr.insertCell(0);
objTd.innerHTML = (id - iAnalogChannelNum) < 10 ? "D0" + (id - iAnalogChannelNum) : "D" + (id - iAnalogChannelNum);
objTd = objTr.insertCell(1);
objTd.width = "25%";
objTd.innerHTML = ipAddress;
objTd = objTr.insertCell(2);
objTd.width = "15%";
objTd.innerHTML = srcInputPort;
objTd = objTr.insertCell(3);
objTd.width = "20%";
objTd.innerHTML = managePortNo;
objTd = objTr.insertCell(4);
objTd.width = "15%";
objTd.innerHTML = "true" == online ? "在线" : "离线";
objTd = objTr.insertCell(5);
objTd.width = "25%";
objTd.innerHTML = proxyProtocol;
});
showOPInfo(szIP + " 获取数字通道成功!");
},
error: function() {
showOPInfo(szIP + " 没有数字通道!");
}
});
}
// 开始预览
function clickStartRealPlay(i) {
if (!i) {
i = 0;
}
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szIP = $("#ip").val(),
iStreamType = parseInt($("#streamtype").val(), 10),
iChannelID = parseInt($("#channels span").eq(i).attr('value'), 10),
bZeroChannel = false /*$("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false*/ ,
szInfo = "";
if ("" == szIP) {
return;
}
if (oWndInfo != null) { // 已经在播放了,先停止
WebVideoCtrl.I_Stop();
}
var iRet = WebVideoCtrl.I_StartRealPlay(szIP, {
iStreamType: iStreamType,
iChannelID: iChannelID,
bZeroChannel: bZeroChannel
});
if (0 == iRet) {
szInfo = "开始预览成功!";
} else {
szInfo = "开始预览失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 停止预览
function clickStopRealPlay() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Stop();
if (0 == iRet) {
szInfo = "停止预览成功!";
} else {
szInfo = "停止预览失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 打开声音
function clickOpenSound() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var allWndInfo = WebVideoCtrl.I_GetWindowStatus();
// 循环遍历所有窗口,如果有窗口打开了声音,先关闭
for (var i = 0, iLen = allWndInfo.length; i < iLen; i++) {
oWndInfo = allWndInfo[i];
if (oWndInfo.bSound) {
WebVideoCtrl.I_CloseSound(oWndInfo.iIndex);
break;
}
}
var iRet = WebVideoCtrl.I_OpenSound();
if (0 == iRet) {
szInfo = "打开声音成功!";
} else {
szInfo = "打开声音失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 关闭声音
function clickCloseSound() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_CloseSound();
if (0 == iRet) {
szInfo = "关闭声音成功!";
} else {
szInfo = "关闭声音失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 设置音量
function clickSetVolume() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
iVolume = parseInt($("#volume").val(), 10),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_SetVolume(iVolume);
if (0 == iRet) {
szInfo = "音量设置成功!";
} else {
szInfo = "音量设置失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 抓图
function clickCapturePic() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var szChannelID = $("#channels").val(),
szPicName = oWndInfo.szIP + "_" + szChannelID + "_" + new Date().getTime(),
iRet = WebVideoCtrl.I_CapturePic(szPicName);
if (0 == iRet) {
szInfo = "抓图成功!";
} else {
szInfo = "抓图失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 开始录像
function clickStartRecord() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var szChannelID = $("#channels").val(),
szFileName = oWndInfo.szIP + "_" + szChannelID + "_" + new Date().getTime(),
iRet = WebVideoCtrl.I_StartRecord(szFileName);
if (0 == iRet) {
szInfo = "开始录像成功!";
} else {
szInfo = "开始录像失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 停止录像
function clickStopRecord() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_StopRecord();
if (0 == iRet) {
szInfo = "停止录像成功!";
} else {
szInfo = "停止录像失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 获取对讲通道
function clickGetAudioInfo() {
var szIP = $("#ip").val();
if ("" == szIP) {
return;
}
WebVideoCtrl.I_GetAudioInfo(szIP, {
success: function(xmlDoc) {
var oAudioChannels = $(xmlDoc).find("TwoWayAudioChannel"),
oSel = $("#audiochannels").empty();
$.each(oAudioChannels, function() {
var id = $(this).find("id").eq(0).text();
oSel.append("<option value='" + id + "'>" + id + "</option>");
});
showOPInfo(szIP + " 获取对讲通道成功!");
},
error: function() {
showOPInfo(szIP + " 获取对讲通道失败!");
}
});
}
// 开始对讲
function clickStartVoiceTalk() {
var szIP = $("#ip").val(),
iAudioChannel = parseInt($("#audiochannels").val(), 10),
szInfo = "";
if ("" == szIP) {
return;
}
if (isNaN(iAudioChannel)) {
alert("请选择对讲通道!");
return;
}
var iRet = WebVideoCtrl.I_StartVoiceTalk(szIP, iAudioChannel);
if (0 == iRet) {
szInfo = "开始对讲成功!";
} else {
szInfo = "开始对讲失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 停止对讲
function clickStopVoiceTalk() {
var szIP = $("#ip").val(),
iRet = WebVideoCtrl.I_StopVoiceTalk(),
szInfo = "";
if ("" == szIP) {
return;
}
if (0 == iRet) {
szInfo = "停止对讲成功!";
} else {
szInfo = "停止对讲失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 启用电子放大
function clickEnableEZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_EnableEZoom();
if (0 == iRet) {
szInfo = "启用电子放大成功!";
} else {
szInfo = "启用电子放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 禁用电子放大
function clickDisableEZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_DisableEZoom();
if (0 == iRet) {
szInfo = "禁用电子放大成功!";
} else {
szInfo = "禁用电子放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 启用3D放大
function clickEnable3DZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Enable3DZoom();
if (0 == iRet) {
szInfo = "启用3D放大成功!";
} else {
szInfo = "启用3D放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 禁用3D放大
function clickDisable3DZoom() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Disable3DZoom();
if (0 == iRet) {
szInfo = "禁用3D放大成功!";
} else {
szInfo = "禁用3D放大失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 全屏
function clickFullScreen() {
WebVideoCtrl.I_FullScreen(true);
}
// PTZ控制 9为自动,1,2,3,4,5,6,7,8为方向PTZ
var g_bPTZAuto = false;
function mouseDownPTZControl(iPTZIndex) {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false,
iPTZSpeed = $("#ptzspeed").val();
if (bZeroChannel) { // 零通道不支持云台
return;
}
if (oWndInfo != null) {
if (9 == iPTZIndex && g_bPTZAuto) {
iPTZSpeed = 0; // 自动开启后,速度置为0可以关闭自动
} else {
g_bPTZAuto = false; // 点击其他方向,自动肯定会被关闭
}
WebVideoCtrl.I_PTZControl(iPTZIndex, false, {
iPTZSpeed: iPTZSpeed,
success: function(xmlDoc) {
if (9 == iPTZIndex) {
g_bPTZAuto = !g_bPTZAuto;
}
showOPInfo(oWndInfo.szIP + " 开启云台成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 开启云台失败!");
}
});
}
}
// 方向PTZ停止
function mouseUpPTZControl() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(1, true, {
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 停止云台成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 停止云台失败!");
}
});
}
}
// 设置预置点
function clickSetPreset() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
iPresetID = parseInt($("#preset").val(), 10);
if (oWndInfo != null) {
WebVideoCtrl.I_SetPreset(iPresetID, {
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 设置预置点成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 设置预置点失败!");
}
});
}
}
// 调用预置点
function clickGoPreset() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
iPresetID = parseInt($("#preset").val(), 10);
if (oWndInfo != null) {
WebVideoCtrl.I_GoPreset(iPresetID, {
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调用预置点成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调用预置点失败!");
}
});
}
}
// 搜索录像
var iSearchTimes = 0;
function clickRecordSearch(iType) {
var szIP = $("#ip").val(),
iChannelID = $("#channels").val(),
bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false,
szStartTime = $("#starttime").val(),
szEndTime = $("#endtime").val();
if ("" == szIP) {
return;
}
if (bZeroChannel) { // 零通道不支持录像搜索
return;
}
if (0 == iType) { // 首次搜索
$("#searchlist").empty();
iSearchTimes = 0;
}
WebVideoCtrl.I_RecordSearch(szIP, iChannelID, szStartTime, szEndTime, {
iSearchPos: iSearchTimes * 40,
success: function(xmlDoc) {
if ("MORE" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
for (var i = 0, nLen = $(xmlDoc).find("searchMatchItem").length; i < nLen; i++) {
var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text();
if (szPlaybackURI.indexOf("name=") < 0) {
break;
}
var szStartTime = $(xmlDoc).find("startTime").eq(i).text();
var szEndTime = $(xmlDoc).find("endTime").eq(i).text();
var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size="));
var objTr = $("#searchlist").get(0).insertRow(-1);
var objTd = objTr.insertCell(0);
objTd.id = "downloadTd" + i;
objTd.innerHTML = iSearchTimes * 40 + (i + 1);
objTd = objTr.insertCell(1);
objTd.width = "30%";
objTd.innerHTML = szFileName;
objTd = objTr.insertCell(2);
objTd.width = "30%";
objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(3);
objTd.width = "30%";
objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(4);
objTd.width = "10%";
objTd.innerHTML = "<a href='javascript:;' onclick='clickStartDownloadRecord(" + i + ");'>下载</a>";
$("#downloadTd" + i).data("playbackURI", szPlaybackURI);
}
iSearchTimes++;
clickRecordSearch(1); // 继续搜索
} else if ("OK" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
var iLength = $(xmlDoc).find("searchMatchItem").length;
for (var i = 0; i < iLength; i++) {
var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text();
if (szPlaybackURI.indexOf("name=") < 0) {
break;
}
var szStartTime = $(xmlDoc).find("startTime").eq(i).text();
var szEndTime = $(xmlDoc).find("endTime").eq(i).text();
var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size="));
var objTr = $("#searchlist").get(0).insertRow(-1);
var objTd = objTr.insertCell(0);
objTd.id = "downloadTd" + i;
objTd.innerHTML = iSearchTimes * 40 + (i + 1);
objTd = objTr.insertCell(1);
objTd.width = "30%";
objTd.innerHTML = szFileName;
objTd = objTr.insertCell(2);
objTd.width = "30%";
objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(3);
objTd.width = "30%";
objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", "");
objTd = objTr.insertCell(4);
objTd.width = "10%";
objTd.innerHTML = "<a href='javascript:;' onclick='clickStartDownloadRecord(" + i + ");'>下载</a>";
$("#downloadTd" + i).data("playbackURI", szPlaybackURI);
}
showOPInfo(szIP + " 搜索录像文件成功!");
} else if ("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
setTimeout(function() {
showOPInfo(szIP + " 没有录像文件!");
}, 50);
}
},
error: function() {
showOPInfo(szIP + " 搜索录像文件失败!");
}
});
}
// 开始回放
function clickStartPlayback() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szIP = $("#ip").val(),
bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false,
iChannelID = $("#channels").val(),
szStartTime = $("#starttime").val(),
szEndTime = $("#endtime").val(),
szInfo = "",
bChecked = $("#transstream").prop("checked"),
iRet = -1;
if ("" == szIP) {
return;
}
if (bZeroChannel) { // 零通道不支持回放
return;
}
if (oWndInfo != null) { // 已经在播放了,先停止
WebVideoCtrl.I_Stop();
}
if (bChecked) { // 启用转码回放
var oTransCodeParam = {
TransFrameRate: "14", // 0:全帧率,5:1,6:2,7:4,8:6,9:8,10:10,11:12,12:16,14:15,15:18,13:20,16:22
TransResolution: "1", // 255:Auto,3:4CIF,2:QCIF,1:CIF
TransBitrate: "19" // 2:32K,3:48K,4:64K,5:80K,6:96K,7:128K,8:160K,9:192K,10:224K,11:256K,12:320K,13:384K,14:448K,15:512K,16:640K,17:768K,18:896K,19:1024K,20:1280K,21:1536K,22:1792K,23:2048K,24:3072K,25:4096K,26:8192K
};
iRet = WebVideoCtrl.I_StartPlayback(szIP, {
iChannelID: iChannelID,
szStartTime: szStartTime,
szEndTime: szEndTime,
oTransCodeParam: oTransCodeParam
});
} else {
iRet = WebVideoCtrl.I_StartPlayback(szIP, {
iChannelID: iChannelID,
szStartTime: szStartTime,
szEndTime: szEndTime
});
}
if (0 == iRet) {
szInfo = "开始回放成功!";
} else {
szInfo = "开始回放失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 停止回放
function clickStopPlayback() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Stop();
if (0 == iRet) {
szInfo = "停止回放成功!";
} else {
szInfo = "停止回放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 开始倒放
function clickReversePlayback() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szIP = $("#ip").val(),
bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false,
iChannelID = $("#channels").val(),
szStartTime = $("#starttime").val(),
szEndTime = $("#endtime").val(),
szInfo = "";
if ("" == szIP) {
return;
}
if (bZeroChannel) { // 零通道不支持回放
return;
}
if (oWndInfo != null) { // 已经在播放了,先停止
WebVideoCtrl.I_Stop();
}
var iRet = WebVideoCtrl.I_ReversePlayback(szIP, {
iChannelID: iChannelID,
szStartTime: szStartTime,
szEndTime: szEndTime
});
if (0 == iRet) {
szInfo = "开始倒放成功!";
} else {
szInfo = "开始倒放失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 单帧
function clickFrame() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Frame();
if (0 == iRet) {
szInfo = "单帧播放成功!";
} else {
szInfo = "单帧播放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 暂停
function clickPause() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Pause();
if (0 == iRet) {
szInfo = "暂停成功!";
} else {
szInfo = "暂停失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 恢复
function clickResume() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_Resume();
if (0 == iRet) {
szInfo = "恢复成功!";
} else {
szInfo = "恢复失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 慢放
function clickPlaySlow() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_PlaySlow();
if (0 == iRet) {
szInfo = "慢放成功!";
} else {
szInfo = "慢放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// 快放
function clickPlayFast() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
szInfo = "";
if (oWndInfo != null) {
var iRet = WebVideoCtrl.I_PlayFast();
if (0 == iRet) {
szInfo = "快放成功!";
} else {
szInfo = "快放失败!";
}
showOPInfo(oWndInfo.szIP + " " + szInfo);
}
}
// OSD时间
function clickGetOSDTime() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
var szTime = WebVideoCtrl.I_GetOSDTime();
if (szTime != -1) {
$("#osdtime").val(szTime);
showOPInfo(oWndInfo.szIP + " 获取OSD时间成功!");
} else {
showOPInfo(oWndInfo.szIP + " 获取OSD时间失败!");
}
}
}
// 下载录像
var iDownloadID = -1;
var tDownloadProcess = 0;
function clickStartDownloadRecord(i) {
var szIP = $("#ip").val(),
szChannelID = $("#channels").val(),
szFileName = szIP + "_" + szChannelID + "_" + new Date().getTime(),
szPlaybackURI = $("#downloadTd" + i).data("playbackURI");
if ("" == szIP) {
return;
}
iDownloadID = WebVideoCtrl.I_StartDownloadRecord(szIP, szPlaybackURI, szFileName);
if (iDownloadID < 0) {
var iErrorValue = WebVideoCtrl.I_GetLastError();
if (34 == iErrorValue) {
showOPInfo(szIP + " 已下载!");
} else if (33 == iErrorValue) {
showOPInfo(szIP + " 空间不足!");
} else {
showOPInfo(szIP + " 下载失败!");
}
} else {
$("<div id='downProcess' class='freeze'></div>").appendTo("body");
tDownloadProcess = setInterval("downProcess(" + i + ")", 1000);
}
}
// 下载进度
function downProcess() {
var iStatus = WebVideoCtrl.I_GetDownloadStatus(iDownloadID);
if (0 == iStatus) {
$("#downProcess").css({
width: $("#searchlist").width() + "px",
height: "100px",
lineHeight: "100px",
left: $("#searchlist").offset().left + "px",
top: $("#searchlist").offset().top + "px"
});
var iProcess = WebVideoCtrl.I_GetDownloadProgress(iDownloadID);
if (iProcess < 0) {
clearInterval(tDownloadProcess);
tDownloadProcess = 0;
m_iDownloadID = -1;
} else if (iProcess < 100) {
$("#downProcess").text(iProcess + "%");
} else {
$("#downProcess").text("100%");
setTimeout(function() {
$("#downProcess").remove();
}, 1000);
WebVideoCtrl.I_StopDownloadRecord(iDownloadID);
showOPInfo("录像下载完成");
clearInterval(tDownloadProcess);
tDownloadProcess = 0;
m_iDownloadID = -1;
}
} else {
WebVideoCtrl.I_StopDownloadRecord(iDownloadID);
clearInterval(tDownloadProcess);
tDownloadProcess = 0;
iDownloadID = -1;
}
}
// 导出配置文件
function clickExportDeviceConfig() {
var szIP = $("#ip").val(),
szInfo = "";
if ("" == szIP) {
return;
}
var iRet = WebVideoCtrl.I_ExportDeviceConfig(szIP);
if (0 == iRet) {
szInfo = "导出配置文件成功!";
} else {
szInfo = "导出配置文件失败!";
}
showOPInfo(szIP + " " + szInfo);
}
// 导入配置文件
function clickImportDeviceConfig() {
var szIP = $("#ip").val(),
szFileName = $("#configFile").val();
if ("" == szIP) {
return;
}
if ("" == szFileName) {
alert("请选择配置文件!");
return;
}
var iRet = WebVideoCtrl.I_ImportDeviceConfig(szIP, szFileName);
if (0 == iRet) {
WebVideoCtrl.I_Restart(szIP, {
success: function(xmlDoc) {
$("<div id='restartDiv' class='freeze'>重启中...</div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
setTimeout("reconnect('" + szIP + "')", 20000);
},
error: function() {
showOPInfo(szIP + " 重启失败!");
}
});
} else {
showOPInfo(szIP + " 导入失败!");
}
}
// 重连
function reconnect(szIP) {
WebVideoCtrl.I_Reconnect(szIP, {
success: function(xmlDoc) {
$("#restartDiv").remove();
},
error: function() {
setTimeout(function() { reconnect(szIP); }, 5000);
}
});
}
// 开始升级
m_tUpgrade = 0;
function clickStartUpgrade(szIP) {
var szIP = $("#ip").val(),
szFileName = $("#upgradeFile").val();
if ("" == szIP) {
return;
}
if ("" == szFileName) {
alert("请选择升级文件!");
return;
}
var iRet = WebVideoCtrl.I_StartUpgrade(szIP, szFileName);
if (0 == iRet) {
m_tUpgrade = setInterval("getUpgradeStatus('" + szIP + "')", 1000);
} else {
showOPInfo(szIP + " 升级失败!");
}
}
// 获取升级状态
function getUpgradeStatus(szIP) {
var iStatus = WebVideoCtrl.I_UpgradeStatus();
if (iStatus == 0) {
var iProcess = WebVideoCtrl.I_UpgradeProgress();
if (iProcess < 0) {
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
showOPInfo(szIP + " 获取进度失败!");
return;
} else if (iProcess < 100) {
if (0 == $("#restartDiv").length) {
$("<div id='restartDiv' class='freeze'></div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
}
$("#restartDiv").text(iProcess + "%");
} else {
WebVideoCtrl.I_StopUpgrade();
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
$("#restartDiv").remove();
WebVideoCtrl.I_Restart(szIP, {
success: function(xmlDoc) {
$("<div id='restartDiv' class='freeze'>重启中...</div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
setTimeout("reconnect('" + szIP + "')", 20000);
},
error: function() {
showOPInfo(szIP + " 重启失败!");
}
});
}
} else if (iStatus == 1) {
WebVideoCtrl.I_StopUpgrade();
showOPInfo(szIP + " 升级失败!");
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
} else if (iStatus == 2) {
mWebVideoCtrl.I_StopUpgrade();
showOPInfo(szIP + " 语言不匹配!");
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
} else {
mWebVideoCtrl.I_StopUpgrade();
showOPInfo(szIP + " 获取状态失败!");
clearInterval(m_tUpgrade);
m_tUpgrade = 0;
}
}
// 检查插件版本
function clickCheckPluginVersion() {
var iRet = WebVideoCtrl.I_CheckPluginVersion();
if (0 == iRet) {
alert("您的插件版本已经是最新的!");
} else {
alert("检测到新的插件版本!");
}
}
// 远程配置库
function clickRemoteConfig() {
var szIP = $("#ip").val(),
iDevicePort = parseInt($("#deviceport").val(), 10) || "",
szInfo = "";
if ("" == szIP) {
return;
}
var iRet = WebVideoCtrl.I_RemoteConfig(szIP, {
iDevicePort: iDevicePort,
iLan: 1
});
if (-1 == iRet) {
szInfo = "调用远程配置库失败!";
} else {
szInfo = "调用远程配置库成功!";
}
showOPInfo(szIP + " " + szInfo);
}
function clickRestoreDefault() {
var szIP = $("#ip").val(),
szMode = "basic";
WebVideoCtrl.I_RestoreDefault(szIP, szMode, {
timeout: 30000,
success: function(xmlDoc) {
$("#restartDiv").remove();
showOPInfo(szIP + " 恢复默认参数成功!");
//恢复完成后需要重启
WebVideoCtrl.I_Restart(szIP, {
success: function(xmlDoc) {
$("<div id='restartDiv' class='freeze'>重启中...</div>").appendTo("body");
var oSize = getWindowSize();
$("#restartDiv").css({
width: oSize.width + "px",
height: oSize.height + "px",
lineHeight: oSize.height + "px",
left: 0,
top: 0
});
setTimeout("reconnect('" + szIP + "')", 20000);
},
error: function() {
showOPInfo(szIP + " 重启失败!");
}
});
},
error: function() {
showOPInfo(szIP + " 恢复默认参数失败!");
}
});
}
function PTZZoomIn() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(10, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调焦+成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调焦+失败!");
}
});
}
}
function PTZZoomout() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(11, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调焦-成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调焦-失败!");
}
});
}
}
function PTZZoomStop() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(11, true, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 调焦停止成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 调焦停止失败!");
}
});
}
}
function PTZFocusIn() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(12, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 聚焦+成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 聚焦+失败!");
}
});
}
}
function PTZFoucusOut() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(13, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 聚焦-成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 聚焦-失败!");
}
});
}
}
function PTZFoucusStop() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(12, true, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 聚焦停止成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 聚焦停止失败!");
}
});
}
}
function PTZIrisIn() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(14, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 光圈+成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 光圈+失败!");
}
});
}
}
function PTZIrisOut() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(15, false, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 光圈-成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 光圈-失败!");
}
});
}
}
function PTZIrisStop() {
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
if (oWndInfo != null) {
WebVideoCtrl.I_PTZControl(14, true, {
iWndIndex: g_iWndIndex,
success: function(xmlDoc) {
showOPInfo(oWndInfo.szIP + " 光圈停止成功!");
},
error: function() {
showOPInfo(oWndInfo.szIP + " 光圈停止失败!");
}
});
}
}
dateFormat = function(oDate, fmt) {
var o = {
"M+": oDate.getMonth() + 1, //月份
"d+": oDate.getDate(), //日
"h+": oDate.getHours(), //小时
"m+": oDate.getMinutes(), //分
"s+": oDate.getSeconds(), //秒
"q+": Math.floor((oDate.getMonth() + 3) / 3), //季度
"S": oDate.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (oDate.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
};
// 切换模式
function changeIPMode(iType) {
var arrPort = [0, 7071, 80];
$("#serverport").val(arrPort[iType]);
}
// 获取设备IP
function clickGetDeviceIP() {
var iDeviceMode = parseInt($("#devicemode").val(), 10),
szAddress = $("#serveraddress").val(),
iPort = parseInt($("#serverport").val(), 10) || 0,
szDeviceID = $("#deviceid").val(),
szDeviceInfo = "";
szDeviceInfo = WebVideoCtrl.I_GetIPInfoByMode(iDeviceMode, szAddress, iPort, szDeviceID);
if ("" == szDeviceInfo) {
showOPInfo("设备IP和端口解析失败!");
} else {
showOPInfo("设备IP和端口解析成功!");
var arrTemp = szDeviceInfo.split("-");
$("#loginip").val(arrTemp[0]);
$("#deviceport").val(arrTemp[1]);
}
}
\ No newline at end of file
/*
-------------------------------------------------------------------------
说明:
正式使用时可以把该文件的注释全部去掉,节省加载时间
ckplayer6.6,有问题请访问http://www.ckplayer.com
请注意,该文件为UTF-8编码,不需要改变编码即可使用于各种编码形式的网站内
-------------------------------------------------------------------------
第一部分,加载插件
以下为加载的插件部份
插件的设置参数说明:
1、插件名称
2、水平对齐方式(0左,1中,2右)
3、垂直对齐方式(0上,1中,2下)
4、水平方向位置偏移量
5、垂直方向位置偏移量
6、插件的等级,0=普通图片插件且跟随控制栏隐藏而隐藏,显示而显示,1=普通图片插件且永久显示,2=swf插件,默认显示,3=swf插件,默认隐藏,swf插件都可以交互
7、插件是否绑定在控制栏上,0不绑定,1绑定,当值是1的时候该插件将会随着控制栏一起隐藏或缓动
8、插件为swf并且可交互时,默认调用的类所在的包名称,详细说明可以到帮助手册里查看,默认无
插件名称不能相同,对此的详细说明请到网站查看
*/
function ckcpt() {
var cpt = '';
cpt += 'right.swf,2,1,0,0,2,0|'; //右边开关灯,调整,分享按钮的插件
cpt += 'share.swf,1,1,-180,-100,3,0|'; //分享插件
cpt += 'adjustment.swf,1,1,-180,-100,3,0|'; //调整大小和颜色的插件
return cpt;
}
/*
插件的定义结束
以下是对播放器功能进行配置
*/
function ckstyle() { //定义总的风格
var ck = {
cpath: '',
/*
播放器风格压缩包文件的路径,默认的是style.swf
如果调用不出来可以试着设置成绝对路径试试
如果不知道路径并且使用的是默认配置,可以直接留空,播放器会
*/
language: '',
/*播放器所使用的语言配置文件,需要和播放器在同目录下,默认是language.xml*/
flashvars: '',
/*
这里是用来做为对flashvars值的补充,除了c和x二个参数以外的设置都可以在这里进行配置
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
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*/
setup: '1,1,1,1,1,2,0,1,2,0,0,1,200,0,2,1,0,1,1,1,2,10,3,0,1,2,3000,0,0,0,0,1,1,1,1,1,1,250,0,90,0,0',
/*
这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明:
1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型
2、是否支持单击暂停,0不支持,1是支持
3、是否支持双击全屏,0不支持,1是支持
4、在播放前置广告时是否同时加载视频,0不加载,1加载
5、广告显示的参考对象,0是参考视频区域,1是参考播放器区域
6、广告大小的调整方式,只针对swf和图片有效,视频是自动缩放的
=0是自动调整大小,意思是说大的话就变小,小的话就变大
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟参考对像(第5个控制)参数设置的一样宽高
7、前置广告播放顺序,0是顺序播放,1是随机播放,>1则随机取所有广告中的(N-1)个进行播放
8、对于视频广告是否采用修正,0是不使用,1是使用,如果是1,则用户在网速慢的情况下会按设定的倒计时进行播放广告,计时结束则放正片(比较人性化),设置成0的话,则强制播放完广告才能播放正片
9、是否开启滚动文字广告,0是不开启,1是开启且不使用关闭按钮,2是开启并且使用关闭按钮,开启后将在加载视频的时候加载滚动文字广告
10、视频的调整方式
=0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟参考对像(pm_video的设置)参数设置的一样宽高
11、是否在多视频时分段加载,0不是,1是
12、缩放视频时是否进行平滑处理,0不是,1是
13、视频缓冲时间,单位:毫秒,建议不超过300
14、初始图片调整方式(
=0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟pm_video参数设置的一样宽高
15、暂停广告调整方式(
=0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟pm_video参数设置的一样宽
16、暂停广告是否使用关闭广告设置,0不使用,1使用
17、缓冲时是否播放广告,0是不显示,1是显示并同时隐藏掉缓冲图标和进度,2是显示并不隐藏缓冲图标
18、是否支持键盘空格键控制播放和暂停0不支持,1支持
19、是否支持键盘左右方向键控制快进快退0不支持,1支持
20、是否支持键盘上下方向键控制音量0不支持,1支持
21、播放器返回js交互函数的等级,0-2,等级越高,返回的参数越多
0是返回少量常用交互
1返回播放器在播放的时候的参数,不返回广告之类的参数
2返回全部参数
3返回全部参数,并且在参数前加上"播放器ID->",用于多播放器的监听
22、快进和快退的秒数
23、界面上图片元素加载失败重新加载次数
24、开启加载皮肤压缩文件包的加载进度提示
25、使用隐藏控制栏时显示简单进度条的功能,0是不使用,1是使用,2是只在普通状态下使用
26、控制栏隐藏设置(0不隐藏,1全屏时隐藏,2都隐藏
27、控制栏隐藏延时时间,即在鼠标离开控制栏后多少毫秒后隐藏控制栏
28、左右滚动时是否采用无缝,默认0采用,1是不采用
29、0是正常状态,1是控制栏默认隐藏,播放状态下鼠标经过播放器显示控制栏,2是一直隐藏控制栏
30、在播放rtmp视频时暂停后点击播放是否采用重新链接的方式,这里一共分0-2三个等级
31、当采用网址形式(flashvars里s=1/2时)读取视频地址时是采用默认0=get方法,1=post方式
32、是否启用播放按钮和暂停按钮
33、是否启用中间暂停按钮
34、是否启用静音按钮
35、是否启用全屏按钮
36、是否启用进度调节栏,0不启用,1是启用,2是只能前进(向右拖动),3是只能后退,4是只能前进但能回到第一次拖动时的位置,5是看过的地方可以随意拖动,
37、是否启用调节音量
38、计算时间的间隔,毫秒
39、前置logo至少显示的时间,单位:毫秒
40、前置视频广告的默认音量
41、当s=3/4时加载插件是否从压缩包里加载,0不是,1是
42、加载风格是否采用加密方式传送,该功能普通用户不能使用
*/
pm_bg: '0x000000,100,230,180',
/*播放器整体的背景配置,请注意,这里只是一个初始化的设置,如果需要真正的改动播放器的背景和最小宽高,需要在风格文件里找到相同的参数进行更改。
1、整体背景颜色
2、背景透明度
3、播放器最小宽度
4、播放器最小高度
这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数
*/
mylogo: 'logo.swf',
/*
视频加载前显示的logo文件,不使用设置成null,即mylogo='null';
*/
pm_mylogo: '1,1,-100,-55',
/*
视频加载前显示的logo文件(mylogo参数的)的位置
本软件所有的四个参数控制位置的方式全部都是统一的意思,如下
1、水平对齐方式,0是左,1是中,2是右
2、垂直对齐方式,0是上,1是中,2是下
3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面
4、垂直偏移量
*/
logo: 'cklogo.png',
/*
默认右上角一直显示的logo,不使用设置成null,即logo='null';
*/
pm_logo: '2,0,-100,20',
/*
播放器右上角的logo的位置
1、水平对齐方式,0是左,1是中,2是右
2、垂直对齐方式,0是上,1是中,2是下
3、水平偏移量
4、垂直偏移量
以下是播放器自带的二个插件
*/
control_rel: 'related.swf,ckplayer/related.xml,0',
/*
视频结束显示精彩视频的插件
1、视频播放结束后显示相关精彩视频的插件文件(注意,视频结束动作设置成3时(即var flashvars={e:3})有效),
2、xml文件是调用精彩视频的示例文件,可以自定义文件类型(比如asp,php,jsp,.net只要输出的是xml格式就行),实际使用中一定要注意第二个参数的路径要正确
3、第三个参数是设置配置文件的编码,0是默认的utf-8,1是gbk2312
*/
control_pv: 'Preview.swf,105,2000',
/*
视频预览插件
1、插件文件名称(该插件和上面的精彩视频的插件都是放在风格压缩包里的)
2、离进度栏的高(指的是插件的顶部离进度栏的位置)
3、延迟时间(该处设置鼠标经过进度栏停顿多少毫秒后才显示插件)
建议一定要设置延时时间,不然当鼠标在进度栏上划过的时候就会读取视频地址进行预览,很占资源
*/
pm_repc: '',
/*
视频地址替换符,该功能主要是用来做简单加密的功能,使用方法很简单,请注意,只针对f值是视频地址的时候有效,其它地方不能使用。具体的请查看http://www.ckplayer.com/manual.php?id=4#title_25
*/
pm_spac: '|',
/*
视频地址间隔符,这里主要是播放多段视频时使用普通调用方式或网址调用方式时使用的。默认使用|,如果视频地址里本身存在|的话需要另外设置一个间隔符,注意,即使只有一个视频也需要设置。另外在使用rtmp协议播放视频的时候,如果视频存在多级目录的话,这里要改成其它的符号,因为rtmp协议的视频地址多级的话也需要用到|隔开流地址和实例地址
*/
pm_fpac: 'file->f',
/*
该参数的功能是把自定义的flashvars里的变量替换成ckplayer里对应的变量,默认的参数的意思是把flashvars里的file值替换成f值,因为ckplayer里只认f值,多个替换之间用竖线隔开
*/
pm_advtime: '2,0,-110,10,0,300,0',
/*
前置广告倒计时文本位置,播放前置 广告时有个倒计时的显示文本框,这里是设置该文本框的位置和宽高,对齐方式的。一共7个参数,分别表示:
1、水平对齐方式,0是左对齐,1是中间对齐,2是右对齐
2、垂直对齐方式,0是上对齐,1是中间对齐,2是低部对齐
3、水平位置偏移量
4、垂直位置偏移量
5、文字对齐方式,0是左对齐,1是中间对齐,2是右对齐,3是默认对齐
6、文本框宽席
7、文本框高度
*/
pm_advstatus: '1,2,2,-200,-40',
/*
前置广告静音按钮,静音按钮只在是视频广告时显示,当然也可以控制不显示
1、是否显示0不显示,1显示
2、水平对齐方式
3、垂直对齐方式
4、水平偏移量
5、垂直偏移量
*/
pm_advjp: '1,1,2,2,-100,-40',
/*
前置广告跳过广告按钮的位置
1、是否显示0不显示,1是显示
2、跳过按钮触发对象(值0/1,0是直接跳转,1是触发js:function ckadjump(){})
3、水平对齐方式
4、垂直对齐方式
5、水平偏移量
6、垂直偏移量
*/
pm_padvc: '2,0,-10,-10',
/*
暂停广告的关闭按钮的位置
1、水平对齐方式
2、垂直对齐方式
3、水平偏移量
4、垂直偏移量
*/
pm_advms: '2,2,-46,-56',
/*
滚动广告关闭按钮位置
1、水平对齐方式
2、垂直对齐方式
3、水平偏移量
4、垂直偏移量
*/
pm_zip: '1,1,-20,-8,1,0,0',
/*
加载皮肤压缩包时提示文字的位置
1、水平对齐方式,0是左对齐,1是中间对齐,2是右对齐
2、垂直对齐方式,0是上对齐,1是中间对齐,2是低部对齐
3、水平位置偏移量
4、垂直位置偏移量
5、文字对齐方式,0是左对齐,1是中间对齐,2是右对齐,3是默认对齐
6、文本框宽席
7、文本框高度
*/
//pm_advmarquee: '1,2,50,-60,50,18,0,0x000000,50,0,20,1,15,2000',
pm_advmarquee: '1,2,50,-60,50,20,0,0x000000,50,0,20,1,30,2000',
/*
滚动广告的控制,要使用的话需要在setup里的第9个参数设置成1
这里分二种情况,前六个参数是定位控制,第7个参数是设置定位方式(0:相对定位,1:绝对定位)
第一种情况:第7个参数是0的时候,相对定位,就是播放器长宽变化的时候,控制栏也跟着变
1、默认1:中间对齐
2、上中下对齐(0是上,1是中,2是下)
3、离左边的距离
4、Y轴偏移量
5、离右边的距离
6、高度
7、定位方式
第二种情况:第7个参数是1的时候,绝对定位,就是播放器长宽变化的时候,控制栏不跟着变,这种方式一般使用在控制栏大小不变的时候
1、左中右对齐方式(0是左,1是中间,2是右)
2、上中下对齐(0是上,1是中,2是下)
3、x偏移量
4、y偏移量
5、宽度
6、高度
7、定位方式
以上是前7个参数的作用
8、是文字广告的背景色
9、置背景色的透明度
10、控制滚动方向,0是水平滚动(包括左右),1是上下滚动(包括向上和向下)
11、移动的单位时长,即移动单位像素所需要的时长,毫秒
12、移动的单位像素,正数同左/上,负数向右/下
13、是行高,这个在设置向上或向下滚动的时候有用处
14、控制向上或向下滚动时每次停止的时间
*/
pm_glowfilter:'1,0x01485d, 100, 6, 3, 10, 1, 0, 0',
/*滚动文字广告是否采用发光滤镜
1、是否使用发光滤镜,0是不采用,1是使用
2、(default = 0xFF0000) — 光晕颜色,采用十六进制格式 0xRRGGBB。 默认值为 0xFF0000
3、(default = 100) — 颜色的 Alpha 透明度值。 有效值为 0 到 100。 例如,25 设置透明度为 25%
4、(default = 6.0) — 水平模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
5、(default = 6.0) — 垂直模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
6、(default = 2) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255
7、(default = 1) — 应用滤镜的次数
8、(default = 0) — 指定发光是否为内侧发光。 值 1 指定发光是内侧发光。 值 0 指定发光是外侧发光(对象外缘周围的发光)
9、(default = 0) — 指定对象是否具有挖空效果。 值为 1 将使对象的填充变为透明,并显示文档的背景颜色
*/
advmarquee: escape(''),
/*
该处是滚动文字广告的内容,如果不想在这里设置,就把这里清空并且在页面中使用js的函数定义function ckmarqueeadv(){return '广告内容'}
*/
mainfuntion:'',
/*
当flashvars里s=3/4时,调用的函数包名称,默认为空,调用时间轴上的函数setAppObj
*/
flashplayer:'',
/*
当flashvars里的s=3/4时,也可以把swf文件放在这里
*/
calljs:'ckplayer_status,ckadjump,playerstop,ckmarqueeadv',
/*
跳过广告和播放结束时调用的js函数
*/
myweb: escape(''),
/*
------------------------------------------------------------------------------------------------------------------
以下内容部份是和插件相关的配置,请注意,自定义插件以及其配置的命名方式要注意,不要和系统的相重复,不然就会替换掉系统的相关设置,删除相关插件的话也可以同时删除相关的配置
------------------------------------------------------------------------------------------------------------------
以下内容定义自定义插件的相关配置,这里也可以自定义任何自己的插件需要配置的内容,当然,如果你某个插件不使用的话,也可以删除相关的配置
------------------------------------------------------------------------------------------------------------------
*/
cpt_lights: '1',
/*
该处定义是否使用开关灯,和right.swf插件配合作用,使用开灯效果时调用页面的js函数function closelights(){};
*/
cpt_share: 'ckplayer/share.xml',
/*
分享插件调用的配置文件地址
调用插件开始
*/
cpt_list: ckcpt()
/*
ckcpt()是本文件最上方的定义插件的函数
*/
}
return ck;
}
/*
html5部分开始
以下代码是支持html5的,如果你不需要,可以删除。
html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛交流更改心得
*/
(function() {
var CKobject = {
_K_: function(d){return document.getElementById(d);},
_T_: false,
_M_: false,
_G_: false,
_Y_: false,
_I_: null,
_J_: 0,
_O_: {},
uaMatch:function(u,rMsie,rFirefox,rOpera,rChrome,rSafari,rSafari2,mozilla,mobile){
var match = rMsie.exec(u);
if (match != null) {
return {
b: 'IE',
v: match[2] || '0'
}
}
match = rFirefox.exec(u);
if (match != null) {
return {
b: match[1] || '',
v: match[2] || '0'
}
}
match = rOpera.exec(u);
if (match != null) {
return {
b: match[1] || '',
v: match[2] || '0'
}
}
match = rChrome.exec(u);
if (match != null) {
return {
b: match[1] || '',
v: match[2] || '0'
}
}
match = rSafari.exec(u);
if (match != null) {
return {
b: match[2] || '',
v: match[1] || '0'
}
}
match = rSafari2.exec(u);
if (match != null) {
return {
b: match[1] || '',
v: match[2] || '0'
}
}
match = mozilla.exec(u);
if (match != null) {
return {
b: match[1] || '',
v: match[2] || '0'
}
}
match = mobile.exec(u);
if (match != null) {
return {
b: match[1] || '',
v: match[2] || '0'
}
}
else {
return {
b: 'unknown',
v: '0'
}
}
},
browser: function() {
var u = navigator.userAgent,
rMsie = /(msie\s|trident.*rv:)([\w.]+)/,
rFirefox = /(firefox)\/([\w.]+)/,
rOpera = /(opera).+version\/([\w.]+)/,
rChrome = /(chrome)\/([\w.]+)/,
rSafari = /version\/([\w.]+).*(safari)/,
rSafari2 = /(safari)\/([\w.]+)/,
mozilla = /(mozilla)\/([\w.]+)/,
mobile = /(mobile)\/([\w.]+)/;
var c = u.toLowerCase();
var d = this.uaMatch(c,rMsie,rFirefox,rOpera,rChrome,rSafari,rSafari2,mozilla,mobile);
if (d.b) {
b = d.b;
v = d.v;
}
return {B: b, V: v};
},
Platform: function() {
var w = '';
var u = navigator.userAgent,
app = navigator.appVersion;
var b = {
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
iPad: u.indexOf('iPad') > -1,
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
webKit: u.indexOf('AppleWebKit') > -1,
trident: u.indexOf('Trident') > -1,
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
presto: u.indexOf('Presto') > -1,
mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/),
webApp: u.indexOf('Safari') == -1
};
for (var k in b) {
if (b[k]) {
w = k;
break;
}
}
return w;
},
isHTML5:function(){
return !!document.createElement('video').canPlayType;
},
getType:function(){
return this._T_;
},
getVideo: function() {
var v = '';
var s = this._E_['v'];
if (s && s.length>1) {
for (var i = 0; i < s.length; i++) {
var a = s[i].split('->');
if (a.length >= 1 && a[0] != '') {
v += '<source src="' + a[0] + '"';
}
if (a.length >= 2 && a[1] != '') {
v += ' type="' + a[1] + '"';
}
v += '>';
}
}
return v;
},
getVars: function(k) {
var o=this._A_;
if (typeof(o) == 'undefined') {
return null;
}
if (k in o) {
return o[k];
} else {
return null;
}
},
getParams: function() {
var p = '';
if (this._A_) {
if (parseInt(this.getVars('p')) == 1) {
p += ' autoplay="autoplay"';
}
if (parseInt(this.getVars('e')) == 1) {
p += ' loop="loop"';
}
if (parseInt(this.getVars('p')) == 2) {
p += ' preload="metadata"';
}
if (this.getVars('i')) {
p += ' poster="' + this.getVars('i') + '"';
}
}
return p;
},
getpath: function(z) {
var f='CDEFGHIJKLMNOPQRSTUVWXYZcdefghijklmnopqrstuvwxyz';
var w=z.substr(0,1);
if(f.indexOf(w)>-1 && (z.substr(0,4)==w+'://' || z.substr(0,4)==w+':\\')){
return z;
}
var d = unescape(window.location.href).replace('file:///', '');
var k = parseInt(document.location.port);
var u = document.location.protocol + '//' + document.location.hostname;
var l = '',
e = '',
t = '';
var s = 0;
var r = unescape(z).split('//');
if (r.length > 0) {
l = r[0] + '//'
}
var h = 'http|https|ftp|rtsp|mms|ftp|rtmp|file';
var a = h.split('|');
if (k != 80 && k) {
u += ':' + k;
}
for (i = 0; i < a.length; i++) {
if ((a[i] + '://') == l) {
s = 1;
break;
}
}
if (s == 0) {
if (z.substr(0, 1) == '/') {
t = u + z;
} else {
e = d.substring(0, d.lastIndexOf('/') + 1).replace('\\', '/');
var w = z.replace('../', './');
var u = w.split('./');
var n = u.length;
var r = w.replace('./', '');
var q = e.split('/');
var j = q.length - n;
for (i = 0; i < j; i++) {
t += q[i] + '/';
}
t += r;
}
} else {
t = z;
}
return t;
},
getXhr: function() {
var x;
try {
x = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
try {
x = new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {
x = false;
}
}
if (!x && typeof XMLHttpRequest != 'undefined') {
x = new XMLHttpRequest();
}
return x;
},
getX: function(){
var f='ckstyle()';
if (this.getVars('x') && parseInt(this.getVars('c'))!=1 ) {
f=this.getVars('x')+'()';
}
try {
if (typeof(eval(f)) == 'object') {
this._X_ = eval(f);
}
} catch(e) {
try {
if (typeof(eval(ckstyle)) == 'object') {
this._X_ = ckstyle();
}
} catch(e) {
this._X_ = ckstyle();
}
}
},
getSn: function(s, n) {
if(n>=0){
return this._X_[s].split(',')[n];
}
else{
return this._X_[s];
}
},
getUrl: function(L, B) {
var b = ['get', 'utf-8'];
if (L && L.length == 2) {
var a = L[0];
var c = L[1].split('/');
if (c.length >= 2) {
b[0] = c[1];
}
if (c.length >= 3) {
b[1] = c[2];
}
this.ajax(b[0], b[1], a,
function(s) {
var C = CKobject;
if (s && s != 'error') {
var d = '',
e = s;
if (s.indexOf('}') > -1) {
var f = s.split('}');
for (var i = 0; i < f.length - 1; i++) {
d += f[i] + '}';
var h = f[i].replace('{', '').split('->');
if (h.length == 2) {
C._A_[h[0]] = h[1];
}
}
e = f[f.length - 1];
}
C._E_['v'] = e.split(',');
if (B) {
C.showHtml5();
} else {
C.changeParams(d);
C.newAdr();
}
}
});
}
},
getflashvars: function(s) {
var v = '',
i = 0;
if (s) {
for (var k in s) {
if (i > 0) {
v += '&';
}
if (k == 'f' && s[k] && ! this.getSn('pm_repc',-1)) {
s[k] = this.getpath(s[k]);
if (s[k].indexOf('&') > -1) {
s[k] = encodeURIComponent(s[k]);
}
}
if (k == 'y' && s[k]) {
s[k] = this.getpath(s[k]);
}
v += k + '=' + s[k];
i++;
}
}
return v;
},
getparam: function(s) {
var w = '',
v = '',
o = {
allowScriptAccess: 'always',
allowFullScreen: true,
quality: 'high',
bgcolor: '#000'
};
if (s) {
for (var k in s) {
o[k] = s[k];
}
}
for (var e in o) {
w += e + '="' + o[e] + '" ';
v += '<param name="' + e + '" value="' + o[e] + '" />';
}
w = w.replace('movie=', 'src=');
return {
w: w,
v: v
};
},
getObjectById: function(s) {
if (this._T_) {
return this;
}
var x = null,
y = this._K_(s),
r = 'embed';
if (y && y.nodeName == 'OBJECT') {
if (typeof y.SetVariable != 'undefined') {
x= y;
} else {
var z = y.getElementsByTagName(r)[0];
if (z) {
x= z;
}
}
}
return x;
},
ajax: function(b, u, s, f) {
var x = this.getXhr();
var a = [],
m = '';
if (b == 'get') {
if (s.indexOf('?') > -1) {
m = s + '&t=' + new Date().getTime();
} else {
m = s + '?t=' + new Date().getTime();
}
x.open('get', m);
} else {
a = s.split('?');
s = a[0],
m = a[1];
x.open('post', s, true);
}
x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
x.setRequestHeader('charset', u);
if (b == 'post') {
x.send(m);
} else {
x.send(null);
}
x.onreadystatechange = function() {
if (x.readyState == 4) {
var g = x.responseText;
if (g != '') {
f(g);
} else {
f(null);
}
}
}
},
addListener: function(e, f) {
var o=CKobject._V_;
if (o.addEventListener) {
try{
o.addEventListener(e, f, false);
}
catch (e) {
this.getNot();
}
}
else if (o.attachEvent) {
try{
o.attachEvent('on' + e, f);
}
catch(e){
this.getNot();
}
}
else {
o['on' + e] = f;
}
},
removeListener: function( e, f) {
var o=CKobject._V_;
if (o.removeEventListener) {
try{
o.removeEventListener(e, f, false);
}
catch(e){
this.getNot();
}
}
else if (o.detachEvent) {
try{
o.detachEvent('on' + e, f);
}
catch(e){
this.getNot();
}
}
else {
o['on' + e] = null;
}
},
Flash: function() {
var f = false,v = 0;
if (document.all || this.browser()['B'].toLowerCase().indexOf('ie')>-1) {
try {
var s = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
f = true;
var z = s.GetVariable('$version');
v = parseInt(z.split(' ')[1].split(',')[0]);
} catch(e) {}
} else {
if (navigator.plugins && navigator.plugins.length > 0) {
var s = navigator.plugins['Shockwave Flash'];
if (s) {
f = true;
var w = s.description.split(' ');
for (var i = 0; i < w.length; ++i) {
if (isNaN(parseInt(w[i]))) continue;
v = parseInt(w[i]);
}
}
}
}
return {
f: f,
v: v
};
},
embed:function(f,d,i,w,h,b,v,e,p){
var s=['all'];
if(b){
if(this.isHTML5()){
this.embedHTML5(d,i,w,h,e,v,s);
}
else{
this.embedSWF(f,d,i,w,h,v,p);
}
}
else{
if(this.Flash()['f'] && parseInt(this.Flash()['v'])>10){
this.embedSWF(f,d,i,w,h,v,p);
}
else if(this.isHTML5()){
this.embedHTML5(d,i,w,h,e,v,s);
}
else{
this.embedSWF(f,d,i,w,h,v,p);
}
}
},
embedSWF: function(C, D, N, W, H, V, P) {
if (!N) {
N = 'ckplayer_a1'
}
if (!P) {
P = {
bgcolor: '#FFF',
allowFullScreen: true,
allowScriptAccess: 'always',
wmode:'transparent'
};
}
this._A_=V;
this.getX();
var u = 'undefined',
g = false,
j = document,
r = 'http://www.macromedia.com/go/getflashplayer',
t = '<a href="' + r + '" target="_blank">请点击此处下载安装最新的flash插件</a>',
error = {
w: '您的网页不符合w3c标准,无法显示播放器',
f: '您没有安装flash插件,无法播放视频,' + t,
v: '您的flash插件版本过低,无法播放视频,' + t
},
w3c = typeof j.getElementById != u && typeof j.getElementsByTagName != u && typeof j.createElement != u,
i = 'id="' + N + '" name="' + N + '" ',
s = '',
l = '';
P['movie'] = C;
P['flashvars'] = this.getflashvars(V);
if(W==-1){
d=true;
this._K_(D).style.width='100%';
W='100%';
}
s += '<object pluginspage="http://www.macromedia.com/go/getflashplayer" ';
s += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
s += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" ';
s += 'width="' + W + '" ';
s += 'height="' + H + '" ';
s += i;
s += 'align="middle">';
s += this.getparam(P)['v'];
s += '<embed ';
s += this.getparam(P)['w'];
s += ' width="' + W + '" height="' + H + '" name="' + N + '" id="' + N + '" align="middle" ' + i;
s += 'type="application/x-shockwave-flash" pluginspage="' + r + '" />';
s += '</object>';
if (!w3c) {
l = error['w'];
g = true;
} else {
if (!this.Flash()['f']) {
l = error['f'];
g = true;
} else {
if (this.Flash()['v'] < 10) {
l = error['v'];
g = true;
} else {
l = s;
this._T_=false;
}
}
}
if (l) {
this._K_(D).innerHTML = l;
}
if (g){
this._K_(D).style.color = '#0066cc';
this._K_(D).style.lineHeight = this._K_(D).style.height;
this._K_(D).style.textAlign= 'center';
}
},
embedHTML5: function(C, P, W, H, V, A, S) {
this._E_ = {
c: C,
p: P,
w: W,
h: H,
v: V,
s: S
};
this._A_ = A;
this.getX();
b = this.browser()['B'],
v = this.browser()['V'],
x = v.split('.'),
t = x[0],
m = b + v,
n = b + t,
w = '',
s = false,
f = this.Flash()['f'],
a = false;
if (!S) {
S = ['iPad', 'iPhone', 'ios'];
}
for (var i = 0; i < S.length; i++) {
w = S[i];
if (w.toLowerCase() == 'all') {
s = true;
break;
}
if (w.toLowerCase() == 'all+false' && !f) {
s = true;
break;
}
if (w.indexOf('+') > -1) {
w = w.split('+')[0];
a = true;
} else {
a = false;
}
if (this.Platform() == w || m == w || n == w || b == w) {
if (a) {
if (!f) {
s = true;
break;
}
}else {
s = true;
break;
}
}
}
if (s) {
if (V) {
var l = V[0].split('->');
if (l && l.length == 2 && l[1].indexOf('ajax') > -1) {
this.getUrl(l, true);
return;
}
}
this.showHtml5();
}
},
status: function() {
this._H_ = parseInt(this.getSn('setup', 20));
var f='ckplayer_status';
if (this.getSn('calljs', 0)!='') {
f=this.getSn('calljs', 0);
}
try {
if (typeof(eval(f)) == 'function') {
this._L_=eval(f);
this._M_=true;
return true;
}
} catch(e) {
try {
if (typeof(eval(ckplayer_status)) == 'function') {
this._L_=ckplayer_status;
this._M_=true;
return true;
}
} catch(e) {
return false;
}
}
return false;
},
showHtml5: function() {
var C = CKobject;
var p = C._E_['p'],
a = C._E_['v'],
c = C._E_['c'],
b = false;
var s = this._E_['v'];
var w=C._E_['w'],h=C._E_['h'];
var d=false;
var r='';
if(s.length==1){
r=' src="'+s[0].split('->')[0]+'"';
}
if(w==-1){
d=true;
C._K_(c).style.width='100%';
w='100%';
}
if(w.toString().indexOf('%')>-1){
w='100%';
}
if(h.toString().indexOf('%')>-1){
h='100%';
}
var v = '<video controls'+r+' id="' + p + '" width="' + w + '" height="' + h + '"' + C.getParams() + '>' + C.getVideo() + '</video>';
C._K_(c).innerHTML = v;
C._K_(c).style.backgroundColor = '#000';
C._V_ = this._K_(p);
if(!d){
C._K_(c).style.width=this._E_['w'].toString().indexOf('%')>-1?(C._K_(c).offsetWidth*parseInt(this._E_['w'])*0.01)+'px':C._V_.width+'px';
C._K_(c).style.height=this._E_['h'].toString().indexOf('%')>-1?(C._K_(c).offsetHeight*parseInt(this._E_['h'])*0.01)+'px':C._V_.height+'px';
}
C._P_ = false;
C._T_ = true;
if (C.getVars('loaded')!='') {
var f=C.getVars('loaded')+'()';
try {
if (typeof(eval(f)) == 'function') {
eval(f);
}
} catch(e) {
try {
if (typeof(eval(loadedHandler)) == 'function') {
loadedHandler();
}
} catch(e) {
}
}
}
C.status();
C.addListener('play', C.playHandler);
C.addListener('pause', C.playHandler);
C.addListener('error', C.errorHandler);
C.addListener('emptied', C.errorHandler);
C.addListener('loadedmetadata', C.loadedMetadataHandler);
C.addListener('ended', C.endedHandler);
C.addListener('volumechange', C.volumeChangeHandler);
},
videoPlay: function() {
if (this._T_) {
this._V_.play();
}
},
videoPause: function() {
if (this._T_) {
this._V_.pause();
}
},
playOrPause: function() {
if (this._T_) {
if (this._V_.paused) {
this._V_.play();
} else {
this._V_.pause();
}
}
},
fastNext: function() {
if (this._T_) {
this._V_['currentTime'] = this._V_['currentTime'] + 10;
}
},
fastBack: function() {
if (this._T_) {
this._V_['currentTime'] = this._V_['currentTime'] - 10;
}
},
changeVolume: function(n) {
if (this._T_) {
this._V_['volume'] = n * 0.01;
}
},
videoSeek: function(t) {
if (this._T_) {
this._V_['currentTime'] = t;
}
},
newAddress: function(u) {
var s = [];
if (u) {
s = this.isHtml5New(u);
} else {
return;
}
if (s && this._T_) {
this.changeParams(u);
var l = s[0].split('->');
if (l && l.length == 2 && l[1].indexOf('ajax') > -1) {
this.getUrl(l, false);
return;
}
this._E_['v'] = s;
this.newAdr();
}
},
quitFullScreen:function() {
if(document.cancelFullScreen) {
document.cancelFullScreen();
}
else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
},
changeStatus:function(n){
this._H_=n;
},
newAdr: function() {
var s = this._E_['v'];
this._V_.pause();
if(s.length==1){
this._V_.src=s[0].split('->')[0];
}
else{
this._V_['innerHTML'] = this.getVideo();
}
this._V_.load();
},
isHtml5New: function(s) {
if (s.indexOf('html5') == -1) {
return false;
}
var a = s.replace(/{/g, '');
var b = a.split('}');
var c = '';
for (var i = 0; i < b.length; i++) {
if (b[i].indexOf('html5') > -1) {
c = b[i].replace('html5->', '').split(',');
break;
}
}
return c;
},
changeParams: function(f) {
if (f) {
var a = f.replace(/{/g, '');
var b = a.split('}');
var c = '';
for (var i = 0; i < b.length; i++) {
var d = b[i].split('->');
if(d.length == 2){
switch(d[0]){
case 'p':
if(parseInt(d[1]) == 1){
this._V_.autoplay = true;
}
else if(parseInt(d[1]) == 2){
this._V_.preload = 'metadata';
}
else{
this._V_.autoplay = false;
if(this._I_!=null){
clearInterval(this._I_);
this._I_=null;
}
}
break;
case 'e':
if(parseInt(d[1]) == 1){
this._V_.loop = true;
}
else{
this._V_.loop = false;
}
break;
case 'i':
this._V_.poster = d[1];
break;
default:
break;
}
}
}
}
},
frontAdPause: function(s) {
this.getNot();
},
frontAdUnload: function() {
this.getNot();
},
changeFace: function(s) {
this.getNot();
},
plugin: function(a, b, c, d, e, f, g) {
this.getNot();
},
videoClear: function() {
this.getNot();
},
videoBrightness: function(s) {
this.getNot();
},
videoContrast: function(s) {
this.getNot();
},
videoSaturation: function(s) {
this.getNot();
},
videoSetHue: function(s) {
this.getNot();
},
videoWAndH: function(a, b) {
this.getNot();
},
videoWHXY: function(a, b, c, d) {
this.getNot();
},
changeFlashvars: function(a) {
this.getNot();
},
changeMyObject: function(a, b) {
this.getNot();
},
getMyObject: function(a, b) {
this.getNot();
},
changeeFace: function() {
this.getNot();
},
changeStyle: function(a, b) {
this.getNot();
},
promptLoad: function() {
this.getNot();
},
promptUnload: function() {
this.getNot();
},
marqueeLoad: function(a,b) {
this.getNot();
},
marqueeClose: function(s) {
this.getNot();
},
getNot: function() {
var s='The ckplayer\'s API for HTML5 does not exist';
return s;
},
volumeChangeHandler: function() {
var C = CKobject;
if (C._V_.muted) {
C.returnStatus('volumechange:0', 1);
C._O_['volume'] = 0;
C._O_['mute'] = true;
} else {
C._O_['mute'] = false;
C._O_['volume'] = C._V_['volume'] * 100;
C.returnStatus('volumechange:'+C._V_['volume'] * 100, 1);
}
},
endedHandler: function() {
var C = CKobject;
var e=parseInt(C.getVars('e'));
C.returnStatus('ended', 1);
if(C._I_){
clearInterval(C._I_);
C._I_=null;
}
if ( e!= 0 && e !=4 && e !=6) {
return;
}
if(e==6){
this.quitFullScreen();
}
var f='playerstop()';
if (C.getSn('calljs', 2)!='') {
f=C.getSn('calljs', 2)+'()';
}
try {
if (typeof(eval(f)) == 'function') {
eval(f);
return;
}
} catch(e) {
try {
if (typeof(eval(playerstop)) == 'function') {
playerstop();
return;
}
} catch(e) {
return;
}
}
},
loadedMetadataHandler: function() {
var C = CKobject;
C.returnStatus('loadedmetadata', 1);
C._O_['totaltime'] = C._V_['duration'];
C._O_['width'] = C._V_['width'];
C._O_['height'] = C._V_['height'];
C._O_['awidth'] = C._V_['videoWidth'];
C._O_['aheight'] = C._V_['videoHeight'];
if (C._V_.defaultMuted) {
C.returnStatus('volumechange:0', 1);
C._O_['mute'] = true;
C._O_['volume'] = 0;
} else {
C._O_['mute'] = false;
C._O_['volume'] = C._V_['volume'] * 100;
C.returnStatus('volumechange:'+C._V_['volume'] * 100, 1);
}
},
errorHandler: function() {
CKobject.returnStatus('error', 1);
},
playHandler: function() {
var C = CKobject;
if (C._V_.paused) {
C.returnStatus('pause', 1);
C.addO('play', false);
if(C._I_!=null){
clearInterval(C._I_);
C._I_=null;
}
} else {
C.returnStatus('play', 1);
C.addO('play', true);
if (!C._P_) {
C.returnStatus('play', 1);
C._P_ = true;
}
C._I_ = setInterval(C.playTime, parseInt( C.getSn('setup', 37)));
if(!C._G_){
C._G_=true;
for(var k in C._A_){
if(k=='g' && C._A_[k]){
var g=parseInt(C._A_[k]);
C.videoSeek(g);
}
}
}
if(!C._Y_){
C._Y_=true;
for(var k in C._A_){
if(k=='j' && C._A_[k]){
var j=parseInt(C._A_[k]);
if(j>0){
C._J_=j;
}
else{
C._J_=parseInt(C._O_['totaltime'])+j;
}
}
}
}
}
},
returnStatus: function(s, j) {
var h = s;
if (this._H_ == 3) {
h = this._E_['p'] +'->'+ h;
}
if (this._M_ && j <= this._H_ ) {
this._L_(h);
}
},
addO: function(s, z) {
this._O_[s] = z;
},
getStatus: function() {
return this._O_;
},
playTime: function() {
var C = CKobject;
var t = C._V_['currentTime'];
C._O_['time'] = t;
if(C._J_>0 && t>C._J_){
C._J_=0;
C.videoSeek(C._O_['totaltime']);
}
C.returnStatus('time:' + t, 1);
}
}
window.CKobject = CKobject;
})();
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<ckplayer>
<style>
<cpath></cpath>
<!--
播放器风格压缩包文件的路径,默认的是style.swf
如果调用不出来可以试着设置成绝对路径试试
如果不知道路径并且使用的是默认配置,可以直接留空,播放器会自动寻找
-->
<language></language>
<!--
播放器所使用的语言配置文件,需要和播放器在同目录下,默认是language.xml
-->
<flashvars>{b->1}{p->1}</flashvars>
<!--
这里是用来做为对flashvars值的补充,除了c和x二个参数以外的设置都可以在这里进行配置
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
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
-->
<setup>1,1,1,1,1,2,0,1,2,0,0,1,200,0,2,1,0,1,1,1,0,10,3,0,1,2,3000,0,0,0,0,1,1,1,1,1,1,250,0,90,0,0</setup>
<!--
这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明:
1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型
2、是否支持单击暂停,0不支持,1是支持
3、是否支持双击全屏,0不支持,1是支持
4、在播放前置广告时是否同时加载视频,0不加载,1加载
5、广告显示的参考对象,0是参考视频区域,1是参考播放器区域
6、广告大小的调整方式,只针对swf和图片有效,视频是自动缩放的
=0是自动调整大小,意思是说大的话就变小,小的话就变大
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟参考对像(第5个控制)参数设置的一样宽高
7、前置广告播放顺序,0是顺序播放,1是随机播放,>1则随机取所有广告中的(N-1)个进行播放
8、对于视频广告是否采用修正,0是不使用,1是使用,如果是1,则用户在网速慢的情况下会按设定的倒计时进行播放广告,计时结束则放正片(比较人性化),设置成0的话,则强制播放完广告才能播放正片
9、是否开启滚动文字广告,0是不开启,1是开启且不使用关闭按钮,2是开启并且使用关闭按钮,开启后将在加载视频的时候加载滚动文字广告
10、视频的调整方式
=0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟参考对像(pm_video的设置)参数设置的一样宽高
11、是否在多视频时分段加载,0不是,1是
12、缩放视频时是否进行平滑处理,0不是,1是
13、视频缓冲时间,单位:毫秒,建议不超过300
14、初始图片调整方式(
=0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟pm_video参数设置的一样宽高
15、暂停广告调整方式(
=0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
=1是大的化变小,小的话不变
=2是什么也不变,就这么大
=3是跟pm_video参数设置的一样宽
16、暂停广告是否使用关闭广告设置,0不使用,1使用
17、缓冲时是否播放广告,0是不显示,1是显示并同时隐藏掉缓冲图标和进度,2是显示并不隐藏缓冲图标
18、是否支持键盘空格键控制播放和暂停0不支持,1支持
19、是否支持键盘左右方向键控制快进快退0不支持,1支持
20、是否支持键盘上下方向键控制音量0不支持,1支持
21、播放器返回js交互函数的等级,0-2,等级越高,返回的参数越多
0是返回少量常用交互
1返回播放器在播放的时候的参数,不返回广告之类的参数
2返回全部参数
3返回全部参数,并且在参数前加上"播放器ID->",用于多播放器的监听
22、快进和快退的秒数
23、界面上图片元素加载失败重新加载次数
24、开启加载皮肤压缩文件包的加载进度提示
25、使用隐藏控制栏时显示简单进度条的功能,0是不使用,1是使用,2是只在普通状态下使用
26、控制栏隐藏设置(0不隐藏,1全屏时隐藏,2都隐藏
27、控制栏隐藏延时时间,即在鼠标离开控制栏后多少毫秒后隐藏控制栏
28、左右滚动时是否采用无缝,默认0采用,1是不采用
29、0是正常状态,1是控制栏默认隐藏,播放状态下鼠标经过播放器显示控制栏,2是一直隐藏控制栏
30、在播放rtmp视频时暂停后点击播放是否采用重新链接的方式,这里一共分0-3四个等级
31、当采用网址形式(flashvars里s=1/2时)读取视频地址时是采用默认0=get方法,1=post方式
32、是否启用播放按钮和暂停按钮
33、是否启用中间暂停按钮
34、是否启用静音按钮
35、是否启用全屏按钮
36、是否启用进度调节栏,0不启用,1是启用,2是只能前进(向右拖动),3是只能后退,4是只能前进但能回到第一次拖动时的位置,5是看过的地方可以随意拖动,
37、是否启用调节音量
38、计算时间的间隔,毫秒
39、前置logo至少显示的时间,单位:毫秒
40、前置视频广告的默认音量
41、当s=3/4时加载插件是否从压缩包里加载,0不是,1是
42、加载风格是否采用加密方式传送,该功能普通用户不能使用
-->
<pm_bg>0x000000,100,230,180</pm_bg>
<!--播放器整体的背景配置
1、整体背景颜色
2、背景透明度
3、播放器最小宽度
4、播放器最小高度
这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数
-->
<mylogo>logo.swf</mylogo>
<!--
视频加载前显示的logo文件,不使用设置成<mylogo>null</mylogo>
-->
<pm_mylogo>1,1,-100,-55</pm_mylogo>
<!--
视频加载前显示的logo文件(mylogo参数的)的位置
本软件所有的四个参数控制位置的方式全部都是统一的意思,如下
1、水平对齐方式,0是左,1是中,2是右
2、垂直对齐方式,0是上,1是中,2是下
3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面
4、垂直偏移量
-->
<logo>cklogo.png</logo>
<!--
默认右上角一直显示的logo,不使用设置成<logo>null</logo>
-->
<pm_logo>2,0,-100,20</pm_logo>
<!--
播放器右上角的logo的位置
1、水平对齐方式,0是左,1是中,2是右
2、垂直对齐方式,0是上,1是中,2是下
3、水平偏移量
4、垂直偏移量
以下是播放器自带的二个插件
-->
<control_rel>related.swf,related.xml,0</control_rel>
<!--
1、视频播放结束后显示相关精彩视频的插件文件(注意,视频结束动作设置成3时(即var flashvars={e:3})有效),
2、xml文件是调用精彩视频的示例文件,可以自定义文件类型(比如asp,php,jsp,.net只要输出的是xml格式就行),实际使用中一定要注意第二个参数的路径要正确
3、第三个参数是设置配置文件的编码,0是默认的utf-8,1是gbk2312
-->
<control_pv>Preview.swf,105,2000</control_pv>
<!--
视频预览插件
1、插件文件名称(该插件和上面的精彩视频的插件都是放在风格压缩包里的)
2、离进度栏的高(指的是插件的顶部离进度栏的位置)
3、延迟时间(该处设置鼠标经过进度栏停顿多少毫秒后才显示插件)
建议一定要设置延时时间,不然当鼠标在进度栏上划过的时候就会读取视频地址进行预览,很占资源
-->
<pm_repc></pm_repc>
<!--
视频地址替换符,该功能主要是用来做简单加密的功能,使用方法很简单,请注意,只针对f值是视频地址的时候有效,其它地方不能使用。具体的请查看http://www.ckplayer.com/manual.php?id=4#title_25
-->
<pm_spac>|</pm_spac>
<!--
视频地址间隔符,这里主要是播放多段视频时使用普通调用方式或网址调用方式时使用的。默认使用|,如果视频地址里本身存在|的话需要另外设置一个间隔符,注意,即使只有一个视频也需要设置。另外在使用rtmp协议播放视频的时候,如果视频存在多级目录的话,这里要改成其它的符号,因为rtmp协议的视频地址多级的话也需要用到|隔开流地址和实例地址
-->
<pm_fpac>file->f</pm_fpac>
<!--
该参数的功能是把自定义的flashvars里的变量替换成ckplayer里对应的变量,默认的参数的意思是把flashvars里的file值替换成f值,因为ckplayer里只认f值,多个替换之间用竖线隔开
-->
<pm_advtime>2,0,-110,10,0,300,0</pm_advtime>
<!--
前置广告倒计时文本位置,播放前置 广告时有个倒计时的显示文本框,这里是设置该文本框的位置和宽高,对齐方式的。一共7个参数,分别表示:
1、水平对齐方式,0是左对齐,1是中间对齐,2是右对齐
2、垂直对齐方式,0是上对齐,1是中间对齐,2是低部对齐
3、水平位置偏移量
4、垂直位置偏移量
5、文字对齐方式,0是左对齐,1是中间对齐,2是右对齐,3是默认对齐
6、文本框宽席
7、文本框高度
-->
<pm_advstatus>1,2,2,-200,-40</pm_advstatus>
<!--
前置广告静音按钮,静音按钮只在是视频广告时显示,当然也可以控制不显示
1、是否显示0不显示,1显示
2、水平对齐方式
3、垂直对齐方式
4、水平偏移量
5、垂直偏移量
-->
<pm_advjp>1,0,2,2,-100,-40</pm_advjp>
<!--
前置广告跳过广告按钮的位置
1、是否显示0不显示,1是显示
2、跳过按钮触发对象(值0/1,0是直接跳转,1是触发js:function ckadjump(){})
3、水平对齐方式
4、垂直对齐方式
5、水平偏移量
6、垂直偏移量
-->
<pm_padvc>2,0,-10,-10</pm_padvc>
<!--
暂停广告的关闭按钮的位置
1、水平对齐方式
2、垂直对齐方式
3、水平偏移量
4、垂直偏移量
-->
<pm_advms>2,2,-46,-56</pm_advms>
<!--
滚动广告关闭按钮位置
1、水平对齐方式
2、垂直对齐方式
3、水平偏移量
4、垂直偏移量
-->
<pm_zip>1,1,-20,-8,1,0,0</pm_zip>
<!--
加载皮肤压缩包时提示文字的位置
1、水平对齐方式,0是左对齐,1是中间对齐,2是右对齐
2、垂直对齐方式,0是上对齐,1是中间对齐,2是低部对齐
3、水平位置偏移量
4、垂直位置偏移量
5、文字对齐方式,0是左对齐,1是中间对齐,2是右对齐,3是默认对齐
6、文本框宽席
7、文本框高度
-->
<pm_advmarquee>1,2,50,-60,50,18,0,0x000000,50,0,20,1,30,2000</pm_advmarquee>
<!--
滚动广告的控制,要使用的话需要在setup里的第9个参数设置成1
这里分二种情况,前六个参数是定位控制,第7个参数是设置定位方式(0:相对定位,1:绝对定位)
第一种情况:第7个参数是0的时候,相对定位,就是播放器长宽变化的时候,控制栏也跟着变
1、默认1:中间对齐
2、上中下对齐(0是上,1是中,2是下)
3、离左边的距离
4、Y轴偏移量
5、离右边的距离
6、高度
7、定位方式
第二种情况:第7个参数是1的时候,绝对定位,就是播放器长宽变化的时候,控制栏不跟着变,这种方式一般使用在控制栏大小不变的时候
1、左中右对齐方式(0是左,1是中间,2是右)
2、上中下对齐(0是上,1是中,2是下)
3、x偏移量
4、y偏移量
5、宽度
6、高度
7、定位方式
以上是前7个参数的作用
8、是文字广告的背景色
9、置背景色的透明度
10、控制滚动方向,0是水平滚动(包括左右),1是上下滚动(包括向上和向下)
11、移动的单位时长,即移动单位像素所需要的时长,毫秒
12、移动的单位像素,正数同左/上,负数向右/下
13、是行高,这个在设置向上或向下滚动的时候有用处
14、控制向上或向下滚动时每次停止的时间
-->
<pm_glowfilter>0,0x01485d, 100, 6, 3, 10, 1, 0, 0</pm_glowfilter>
<!--滚动文字广告是否采用发光滤镜
1、是否使用发光滤镜,0是不采用,1是使用
2、(default = 0xFF0000) — 光晕颜色,采用十六进制格式 0xRRGGBB。 默认值为 0xFF0000
3、(default = 100) — 颜色的 Alpha 透明度值。 有效值为 0 到 100。 例如,25 设置透明度为 25%
4、(default = 6.0) — 水平模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
5、(default = 6.0) — 垂直模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
6、(default = 2) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255
7、(default = 1) — 应用滤镜的次数
8、(default = 0) — 指定发光是否为内侧发光。 值 1 指定发光是内侧发光。 值 0 指定发光是外侧发光(对象外缘周围的发光)
9、(default = 0) — 指定对象是否具有挖空效果。 值为 1 将使对象的填充变为透明,并显示文档的背景颜色背景颜色。
-->
<advmarquee>{a href='http://www.ckplayer.com'}{font color='#FFFFFF' size='12'}这里可以放文字广告,为什么要在这里放呢,{/font}{/a}{a href='http://www.ckplayer.com'}{font color='#FFFFFF' size='12'}是因为如果你想在站外调用视频并且有文字广告的话,{/a}{br}就得在这里才能被加载,在js里是不能补加载的,{br}默认使用这里的广告,如果不想在这里使用可以清空这里的内容</advmarquee>
<!--
该处是滚动文字广告的内容,如果不想在这里设置,就把这里清空并且在页面中使用js的函数定义function ckmarqueeadv(){return '广告内容'}
-->
<mainfuntion></mainfuntion>
<!--
当flashvars里s=3/4时,调用的函数包名称,默认为空,调用时间轴上的函数setAppObj
-->
<flashplayer></flashplayer>
<!--
当flashvars里的s=3/4时,也可以把swf文件放在这里
-->
<calljs>ckplayer_status,ckadjump,playerstop,ckmarqueeadv</calljs>
<!--
跳过广告和播放结束时调用的js函数
-->
<myweb></myweb>
<!--
以下内容部份是和插件相关的配置,请注意,自定义插件以及其配置的命名方式要注意,不要和系统的相重复,不然就会替换掉系统的相关设置,删除相关插件的话也可以同时删除相关的配置
以下内容定义自定义插件的相关配置,这里也可以自定义任何自己的插件需要配置的内容,当然,如果你某个插件不使用的话,也可以删除相关的配置
-->
<cpt_lights>0</cpt_lights>
<!--
该处定义是否使用开关灯,和right.swf插件配合作用,使用开灯效果时调用页面的js函数function closelights(){};
-->
<cpt_share>/ckplayer/share.xml</cpt_share>
<!--
分享插件调用的配置文件地址
调用插件开始
-->
<cpt>right.swf,2,1,0,0,2,0</cpt><!--右边开关灯,调整,分享按钮的插件-->
<cpt>share.swf,1,1,-180,-100,3,0</cpt><!--分享插件-->
<cpt>adjustment.swf,1,1,-180,-100,3,0</cpt><!--调整大小和颜色的插件-->
</style>
</ckplayer>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<ckplayer>
<style>
<pr_zip>{font color='#FFFFFF' face='NSimSun'}已加载[$prtage]%{/font}</pr_zip>
<!--
加载皮肤包进度提示的文字,[$prtage]会被替换成加载百分比
-->
<pr_load>{font color='#FFFFFF' face='NSimSun'}已加载[$prtage]%{/font}</pr_load>
<!--
当调用多段视频时,并且没有配置好各段视频的时间和字节数的情况下,播放器需要先读取各段视频的元数据进行计算,此时需要显示一个加载进度告诉用户已计算的情况。
-->
<pr_noload>{font color='#FFFFFF' face='NSimSun'}加载失败{/font}</pr_noload>
<!--
加载视频失败时显示的内容
-->
<pr_buffer>{font color='#FFFFFF' face='Arial'}[$buffer]%{/font}</pr_buffer>
<!--
视频缓冲时显示的提示,[$buffer]会被替换成缓冲的百分比数字部份
-->
<pr_play>{font color='#FFFFFF' face='NSimSun'}点击播放{/font}</pr_play>
<!--
鼠标经过播放按钮时的提示,支持html
-->
<pr_pause>{font color='#FFFFFF' face='NSimSun'}点击暂停{/font}</pr_pause>
<!--
鼠标经过暂停按钮时的提示,支持html
-->
<pr_mute>{font color='#FFFFFF' face='NSimSun'}点击静音{/font}</pr_mute>
<!--
鼠标经过静音按钮时的提示,支持html
-->
<pr_nomute>{font color='#FFFFFF' face='NSimSun'}取消静音{/font}</pr_nomute>
<!--
鼠标经过取消静音按钮时的提示,支持html
-->
<pr_full>{font color='#FFFFFF' face='NSimSun'}点击全屏{/font}</pr_full>
<!--
鼠标经过全屏按钮时的提示,支持html
-->
<pr_nofull>{font color='#FFFFFF' face='NSimSun'}退出全屏{/font}</pr_nofull>
<!--
鼠标经过退出全屏按钮时的提示,支持html
-->
<pr_fastf>{font color='#FFFFFF' face='NSimSun'}快进{/font}</pr_fastf>
<!--
鼠标经过快进按钮时的提示,支持html
-->
<pr_fastr>{font color='#FFFFFF' face='NSimSun'}快退{/font}</pr_fastr>
<!--
鼠标经过快退按钮时的提示,支持html
-->
<pr_time>{font color='#FFFFFF' face='Arial'}[$Time]{/font}</pr_time>
<!--
鼠标经过进度栏时提示当前点上时间的,[$Time]会被替换成时间,支持html
-->
<pr_volume>{font color='#FFFFFF' face='NSimSun'}音量[$Volume]%{/font}</pr_volume>
<!--
鼠标经过音量调节框或调整音量时提示,[$Volume]会自动替换音量值(0-100)
-->
<pr_clockwait>{font color='#FFFFFF' face='Arial'}00:00 | 00:00{/font}</pr_clockwait>
<!--
在默认不加载视频,即m=1的时候,同时并没有设置视频的时间和字节,即o和w值的时候,pr_clock和pr_clock2里的所有内容被替换成这里设置的值
-->
<pr_live>{font color='#FFFFFF' face='NSimSun'}视频直播中{/font}</pr_live>
<!--
在直播的情况下显示的文字
-->
<pr_adv>{font color='#FFFFFF' size='12'}广告剩余:{font color='#FF0000' size='15'}{b}[$Second]{/b}{/font} 秒{/font}</pr_adv>
<!--
广告倒计时显示的内容,[$Second]将会显示倒计时的秒数
-->
</style>
</ckplayer>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<ckplayer>
<title>{font color="#FFDD00" face="新宋体"}精彩视频推荐{/font}</title>
<!--左上角的标题说明文字,支持html-->
<area>600,400,0xFFDD00,20</area>
<!--
该插件在播放中的区域控制
固定尺寸,精彩视频区域会固定大小并且保持剧中
1:宽
2:高
3:边框色
4:边框透明度
-->
<image>120,90</image>
<!--图片的宽,高-->
<distance>150,175,100</distance>
<!--
1:横排图片之间的距离,前一个图片的左边到后一个图片的左边的距离
2:竖排图片之间距离,上一个图片的上边到下一个图片的上边距离,这里需要特别注意,因为图片显示区域是总区域-40的高度,默认的即<area>的高400-40=360,所以比如你的图片想一列显示二个,则该参数需要设置成360/2=180
3:文字距离图片上方的距离
只要设置好这三个参数,图片的位置就可以固定住了
-->
<rep_title>{a href="[url]" target="_blank"}{font color="#FFFFFF" face="新宋体"}[title]{/font}{/a}</rep_title>
<!--标题替换规则-->
<style>a{color:#FFFFFF;}a:hover{color:#FF0000;}</style>
<!--文本样式-->
<size>120,42,3</size>
<!--文本的宽度,高度,行和行之间距离-->
<relatedlist>
<related>
<img>temp/1.jpg</img>
<url>http://www.ckplayer.com/index.php?id=1</url>
<title>1:这里调用的文件配置在ckplayer/related.xml里</title>
</related>
<related>
<img>temp/2.jpg</img>
<url>http://www.ckplayer.com/index.php?id=2</url>
<title>2:支持多页调用</title>
</related>
<related>
<img>temp/3.jpg</img>
<url>http://www.ckplayer.com/index.php?id=3</url>
<title>3:文本请保持在二行,不能多于三行,多于三行将不显示</title>
</related>
<related>
<img>temp/4.jpg</img>
<url>http://www.ckplayer.com/index.php?id=3</url>
<title>4:支持多行调用,多页调用</title>
</related>
<related>
<img>temp/5.jpg</img>
<url>http://www.ckplayer.com/index.php?id=2</url>
<title>5:感谢对ckplayer的支持</title>
</related>
<related>
<img>temp/6.jpg</img>
<url>http://www.ckplayer.com/index.php?id=1</url>
<title>6:最多两行,请不要超过二行</title>
</related>
<related>
<img>temp/3.jpg</img>
<url>http://www.ckplayer.com/index.php?id=1</url>
<title>7:这里调用的文件配置在ckplayer/related.xml里</title>
</related>
<related>
<img>temp/5.jpg</img>
<url>http://www.ckplayer.com/index.php?id=2</url>
<title>8:支持多页调用</title>
</related>
<related>
<img>temp/4.jpg</img>
<url>http://www.ckplayer.com/index.php?id=3</url>
<title>9:文本请保持在二行,不能多于三行,多于三行将不显示</title>
</related>
<related>
<img>temp/1.jpg</img>
<url>http://www.ckplayer.com/index.php?id=3</url>
<title>10:支持多行调用,多页调用</title>
</related>
<related>
<img>temp/2.jpg</img>
<url>http://www.ckplayer.com/index.php?id=2</url>
<title>11:感谢对ckplayer的支持</title>
</related>
<related>
<img>temp/6.jpg</img>
<url>http://www.ckplayer.com/index.php?id=1</url>
<title>12:最多两行,请不要超过二行</title>
</related>
<related>
<img>temp/5.jpg</img>
<url>http://www.ckplayer.com/index.php?id=1</url>
<title>13:这里调用的文件配置在ckplayer/related.xml里</title>
</related>
<related>
<img>temp/4.jpg</img>
<url>http://www.ckplayer.com/index.php?id=2</url>
<title>14:支持多页调用</title>
</related>
<related>
<img>temp/6.jpg</img>
<url>http://www.ckplayer.com/index.php?id=3</url>
<title>15:文本请保持在二行,不能多于三行,多于三行将不显示</title>
</related>
<related>
<img>temp/3.jpg</img>
<url>http://www.ckplayer.com/index.php?id=3</url>
<title>16:支持多行调用,多页调用</title>
</related>
<related>
<img>temp/1.jpg</img>
<url>http://www.ckplayer.com/index.php?id=2</url>
<title>17:感谢对ckplayer的支持</title>
</related>
<related>
<img>temp/2.jpg</img>
<url>http://www.ckplayer.com/index.php?id=1</url>
<title>18:最多两行,请不要超过二行</title>
</related>
</relatedlist>
</ckplayer>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<ckplayer>
<share_html>
{embed src="贵站网址,在ckplayer/share.xml里修改/ckplayer/ckplayer.swf" flashvars="[$share]" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" allowFullscreen="true" type="application/x-shockwave-flash"}{/embed}
</share_html>
<share_flash>
贵站网址/ckplayer/ckplayer.swf?[$share]
</share_flash>
<share_flashvars>
f,my_url,my_pic,a
</share_flashvars>
<share_path>ckplayer/share/</share_path><!--分享图片的文件夹地址-->
<share_replace>
</share_replace>
<share_permit>0</share_permit><!--是否有视听许可证,默认0没有,1是有-->
<share_uuid>
c25cf02c-1705-412d-bd4b-77a10b380f08
</share_uuid>
<share_button>
<share>
<id>qqmb</id>
<img>qq.png</img>
<coordinate>20,50</coordinate>
</share>
<share>
<id>sinaminiblog</id>
<img>sina.png</img>
<coordinate>101,50</coordinate>
</share>
<share>
<id>qzone</id>
<img>qzone.png</img>
<coordinate>182,50</coordinate>
</share>
<share>
<id>renren</id>
<img>rr.png</img>
<coordinate>263,50</coordinate>
</share>
<share>
<id>kaixin001</id>
<img>kaixin001.png</img>
<coordinate>20,85</coordinate>
</share>
<share>
<id>tianya</id>
<img>tianya.png</img>
<coordinate>101,85</coordinate>
</share>
<share>
<id>feixin</id>
<img>feixin.png</img>
<coordinate>182,85</coordinate>
</share>
<share>
<id>msn</id>
<img>msn.png</img>
<coordinate>263,85</coordinate>
</share>
</share_button>
</ckplayer>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ckplayer 只调用flash播放器</title>
</head>
<body>
<div id="a1"></div>
<script type="text/javascript" src="ckplayer/ckplayer.js" charset="utf-8"></script>
<script type="text/javascript">
var flashvars={
f:'m3u8.swf',
a:'http://vshare.ys7.com/hcnp/554438733_1_2_4_0_cas.ys7.com_6500.m3u8?554438733_728af9e9d078422c9d95e641b0014c11_1_8fac2d2fff714b23',
c:0,
s:4,
lv:1//注意,如果是直播,需设置lv:1
}
var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:'transparent'};
CKobject.embedSWF('ckplayer/ckplayer.swf','a1','ckplayer_a1','600','400',flashvars,params);
function closelights(){//关灯
//alert(' 本演示不支持开关灯');
}
function openlights(){//开灯
//alert(' 本演示不支持开关灯');
}
</script>
</body>
</html>
/*
该文件是从网上收集的方法,用来做开关灯的,相对于原来的程序做了一些改变,兼容了IE10
*/
var Offlights = {
create: function() {
return function() {
this.initialize.apply(this, arguments)
}
}
}
var OverLay = Offlights.create();
OverLay.prototype = {
initialize: function(options) {
this.SetOptions(options);
this.browser = (function(ua){
var a=new Object();
var b = {
msie: /msie/.test(ua) && !/opera/.test(ua),
opera: /opera/.test(ua),
safari: /webkit/.test(ua) && !/chrome/.test(ua),
firefox: /firefox/.test(ua),
chrome: /chrome/.test(ua)
};
var vMark = "";
for (var i in b) {
if (b[i]) { vMark = "safari" == i ? "version" : i; break; }
}
b.version = vMark && RegExp("(?:" + vMark + ")[\\/: ]([\\d.]+)").test(ua) ? RegExp.$1 : "0";
b.ie = b.msie;
b.ie6 = b.msie && parseInt(b.version, 10) == 6;
b.ie7 = b.msie && parseInt(b.version, 10) == 7;
b.ie8 = b.msie && parseInt(b.version, 10) == 8;
a.B=vMark;
a.V=b.version;
return a;
})(window.navigator.userAgent.toLowerCase());
this.isIE = this.browser['B']=='msie' ? true : false;
this.isIE6 = (this.isIE && this.browser['V']==6)?true:false;
this._K_ = function(id) {return "string" == typeof id ? document.getElementById(id) : id};
this.Lay = this._K_(this.options.Lay) || document.body.insertBefore(document.createElement("div"), document.body.childNodes[0]);
this.Color = this.options.Color;
this.Opacity = parseInt(this.options.Opacity);
this.zIndex = parseInt(this.options.zIndex);
with(this.Lay.style) {
display = "none";
zIndex = this.zIndex;
left = top = 0;
position = "fixed";
width = height = "100%"
}
if (this.isIE6) {
this.Lay.style.position = "absolute";
this._resize = this.Bind(this,
function() {
this.Lay.style.width = Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) + "px";
this.Lay.style.height = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + "px"
});
this.Lay.innerHTML = ''
}
},
Bind:function(object, fun) {
return function() {
return fun.apply(object, arguments)
}
},
Extend :function(destination, source) {
for (var property in source) {
destination[property] = source[property]
}
},
SetOptions: function(options) {
this.options = {
Lay: null,
Color: "#000",
Opacity: 100,
zIndex: 50
};
this.Extend(this.options, options || {})
},
Show: function() {
if (this.isIE6) {
this._resize();
window.attachEvent("onresize", this._resize)
}
with(this.Lay.style) {
this.isIE ? filter = "alpha(opacity:" + this.Opacity + ")": opacity = this.Opacity / 100;
backgroundColor = this.Color;
display = "block"
}
},
Close: function() {
this.Lay.style.display = "none";
if (this.isIE6) {
window.detachEvent("onresize", this._resize)
}
}
};
var LightBox = Offlights.create();
LightBox.prototype = {
initialize: function(options) {
this.OverLay = new OverLay(options);
},
Show: function(options) {
this.OverLay.Show();
},
Close: function() {
this.OverLay.Close();
}
};
/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery.min.map
*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;
return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&&gt(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment