// -- for ie 5.5↓ encodeURI
if(typeof(encodeURI) == "undefined")
{
function encodeURI(str) {
var l = ['%00', '%01', '%02', '%03', '%04', '%05', '%06',
'%07', '%08', '%09', '%0A', '%0B', '%0C', '%0D',
'%0E', '%0F', '%10', '%11', '%12', '%13', '%14',
'%15', '%16', '%17', '%18', '%19', '%1A', '%1B',
'%1C', '%1D', '%1E', '%1F', '%20', '!', '%22',
'#', '$', '%25', '&', "'", '(', ')', '*', '+', ',',
'-', '.', '/', '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', ':', ';', '%3C', '=', '%3E', '?',
'@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '%5B', '%5C',
'%5D', '%5E', '_', '%60', 'a', 'b', 'c', 'd', 'e',
'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
'z', '%7B', '%7C', '%7D', '~', '%7F'];
var out, i, j, len, c, c2;
out = [];
len = str.length;
for (i = 0, j = 0; i < len; i++) {
c = str.charCodeAt(i);
if (c <= 0x007F) {
out[j++] = l[c];
continue;
}
else if (c <= 0x7FF) {
out[j++] = '%' + (0xC0 | ((c >> 6) & 0x1F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ( c & 0x3F)).toString(16).toUpperCase();
continue;
}
else if (c < 0xD800 || c > 0xDFFF) {
out[j++] = '%' + (0xE0 | ((c >> 12) & 0x0F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ((c >> 6) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | (c & 0x3F)).toString(16).toUpperCase();
continue;
}
else {
if (++i < len) {
c2 = str.charCodeAt(i);
if (c <= 0xDBFF && 0xDC00 <= c2 && c2 <= 0xDFFF) {
c = ((c & 0x03FF) << 10 | (c2 & 0x03FF)) + 0x010000;
if (0x010000 <= c && c <= 0x10FFFF) {
out[j++] = '%' + (0xF0 | ((c >>> 18) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ((c >>> 12) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ((c >>> 6) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | (c & 0x3F)).toString(16).toUpperCase();
continue;
}
}
}
}
}
return out.join('');
}
}
// -- for ie 5.5↓ encodeURIComponent
if(typeof(encodeURIComponent) == "undefined")
{
function encodeURIComponent(str) {
var l = ['%00', '%01', '%02', '%03', '%04', '%05', '%06',
'%07', '%08', '%09', '%0A', '%0B', '%0C', '%0D',
'%0E', '%0F', '%10', '%11', '%12', '%13', '%14',
'%15', '%16', '%17', '%18', '%19', '%1A', '%1B',
'%1C', '%1D', '%1E', '%1F', '%20', '!', '%22',
'%23', '%24', '%25', '%26', "'", '(', ')', '*', '%2B', '%2C',
'-', '.', '%2F', '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', '%3A', '%3B', '%3C', '%3D', '%3E', '%3F',
'%40', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '%5B', '%5C',
'%5D', '%5E', '_', '%60', 'a', 'b', 'c', 'd', 'e',
'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
'z', '%7B', '%7C', '%7D', '~', '%7F'];
var out, i, j, len, c;
out = [];
len = str.length;
for(i = 0, j = 0; i < len; i++) {
c = str.charCodeAt(i);
if (c <= 0x007F) {
out[j++] = l[c];
continue;
}
else if (c <= 0x7FF) {
out[j++] = '%' + (0xC0 | ((c >> 6) & 0x1F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ( c & 0x3F)).toString(16).toUpperCase();
continue;
}
else if (c < 0xD800 || c > 0xDFFF) {
out[j++] = '%' + (0xE0 | ((c >> 12) & 0x0F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ((c >> 6) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | (c & 0x3F)).toString(16).toUpperCase();
continue;
}
else {
if (++i < len) {
c2 = str.charCodeAt(i);
if (c <= 0xDBFF && 0xDC00 <= c2 && c2 <= 0xDFFF) {
c = ((c & 0x03FF) << 10 | (c2 & 0x03FF)) + 0x010000;
if (0x010000 <= c && c <= 0x10FFFF) {
out[j++] = '%' + (0xF0 | ((c >>> 18) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ((c >>> 12) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | ((c >>> 6) & 0x3F)).toString(16).toUpperCase();
out[j++] = '%' + (0x80 | (c & 0x3F)).toString(16).toUpperCase();
continue;
}
}
}
}
}
return out.join('');
}
}
// -- in_array
function in_array(a, arr) {
for(var i in arr) {
if (arr[i] == a) return true;
}
return false;
}
// -- array_merge => 返回一个arr2 后并 arr1 ,且直不等于 arr1 的数组
function array_merge(arr1, arr2) {
var arr = arr1 ;
for (var i in arr2) {
if (!in_array(arr2[i], arr)) arr.push(arr2[i]);
}
return arr;
}
// -- array_diff => 返回一个 arr1 和 arr2 中不重复的数组
function array_diff(arr1, arr2) {
var arr = new Array() ;
for (var i in arr1) {
if (!in_array(arr1[i], arr2)) arr.push(arr1[i]);
}
return arr;
}
// -- array_unique => 返回一个没有重复值的数组
function array_unique(arr) {
var ret = new Array() ;
for (var i in arr) {
if (!in_array(arr[i], ret)) ret[i] = arr[i] ;
}
return ret;
}
// -- array_keys => 返回一个所有键名数组
function array_keys(arr) {
var ret = new Array() ;
for (var i in arr) {
ret.push(i);
}
return ret;
}
// -- array_values => 返回一个所有值的数组
function aray_values(arr) {
var ret = new Array() ;
for (var i in arr) {
ret.push(arr[i]);
}
return ret;
}
// ============ sketch (return for form value) ============
function sketch(objId){
return window.document.getElementById(objId).value;
}
// ============ ajax send ============
function videoScroll(obj,cssClass,num)
{
var parentObj = obj.parentNode;
var allArray = parentObj.getElementsByTagName("div");
var _allLength = allArray.length;
var objArray = new Array();
for(var n = 1 ; n < (_allLength - 1) ; n++)
{
objArray[n-1] = allArray[n];
}
var _scrollLength = objArray.length ;
if(_scrollLength > num)
{
var _nowPage = eval(parentObj.getElementsByTagName("input")[0].value);
for(var i = 0 ; i < _scrollLength ; i++)
{
objArray[i].style.display = "none";
}
if(_nowPage == 2)
{
for(var a = 0 ; a < num ; a++)
{
objArray[a].style.display = cssClass;
}
parentObj.getElementsByTagName("input")[0].value = '1';
}
else
{
for(var b = num ; b < _scrollLength ; b++)
{
objArray[b].style.display = cssClass;
if(parentObj.getElementsByTagName("input")[1].value == 0) {
objArray[b].getElementsByTagName("img")[0].src = objArray[b].getElementsByTagName("p")[0].getElementsByTagName("a")[0].rel ;
}
}
if(parentObj.getElementsByTagName("input")[1].value == 0) parentObj.getElementsByTagName("input")[1].value = 1 ;
parentObj.getElementsByTagName("input")[0].value = '2';
}
}
else
{
return;
}
}
function makeTagsLists(tags,max_tag_len)
{
if (tags.substr(tags.length-1,1) == '/') tags = tags.substr(0,tags.length-1);
var tag_arr = tags.split("/");
var lastindex = -1; var totallen = 0;
for (var i = 0; i < tag_arr.length; i++) {
totallen += tag_arr[i].length + 1;
if (totallen > max_tag_len) { lastindex = i + 1; break; }
}
var trilingdots = true;
if (lastindex == -1) { trilingdots = false; lastindex = tag_arr.length; }
var lastlen = max_tag_len; var res = "";
for (var i = 0; i < lastindex; i++) {
if (i != lastindex-1) {
res += "" + tag_arr[i] + " ";
lastlen -= tag_arr[i].length + 1;
} else {
res += "" + tag_arr[i].substr(0, lastlen) + "";
}
}
if (trilingdots) res += "...";
return res;
}
function makeTags(parentID,tagName,num,strLength) {
for(var i=0; i < document.getElementById(parentID).getElementsByTagName("div").length ; i++) {
if(document.getElementById(parentID).getElementsByTagName("div")[i].className.indexOf("noMakeTags") >= 0 ) continue ;
var _tags = document.getElementById(parentID).getElementsByTagName("div")[i].getElementsByTagName("dl")[0].getElementsByTagName(tagName)[num] ;
var _tagsText = stripHtml(_tags.innerHTML.trim() , 'a') ;
var _tagsTextLast = makeTagsLists(_tagsText,strLength) ;
_tags.innerHTML = _tagsTextLast ;
_tags.style.display = "inline";
}
}
function loadVideos(obj,loadBefore){
var baobao = document.getElementById("videoOthersVideo") ;
var scrollObj = null ;
for(var i=0 ; i < document.getElementById("videoOthersMenu").getElementsByTagName("dt").length ; i++) {
document.getElementById("videoOthersMenu").getElementsByTagName("dt")[i].className = "" ;
}
document.getElementById("videoOthersMenu").getElementsByTagName("dt")[Math.floor(obj.id)].className = "videoOtherDown" ;
with(document.getElementById("videoOthersMenu").getElementsByTagName("dd")[0].getElementsByTagName("a")[0]) {
innerHTML = obj.name ;
href = obj.url ;
}
var videosLength = obj.videos.length ;
var loadEnd = (loadBefore == "full") ? videosLength : loadBefore ;
document.getElementById("videoOthersMenu").getElementsByTagName("dd")[0].getElementsByTagName("span")[0].innerHTML = '' + ((videosLength) ? '当前 1-' + videosLength + ' 共 ' + ((obj.total) ? obj.total : videosLength) : "当前 0") + '';
baobao.innerHTML = "" ;
if(obj.id <= 2) {
for(var i=0 ; i < videosLength ; i++){
var div1 = document.createElement("div") ;
div1.className = "videobar-showd" ;
if(i % 2 != 0) div1.style.backgroundColor = "#F4F4F4" ;
var p2 = document.createElement("p") ;
p2.innerHTML = '' ;
var dl3 = document.createElement("dl") ;
var dt4 = document.createElement("dt") ;
dt4.innerHTML = '' + obj.videos[i].title + '' ;
var dd5 = document.createElement("dd") ;
dd5.innerHTML = (obj.id == 1) ? obj.videos[i].time : '上传:' + obj.videos[i].uploader + '' ;
dl3.appendChild(dt4) ;
dl3.appendChild(dd5) ;
div1.appendChild(p2) ;
div1.appendChild(dl3) ;
if(obj.id == 2 && obj.playKey == obj.videos[i].key ) {
div1.style.backgroundColor = "#DFDFDF" ;
var dd6 = document.createElement("dd") ;
with(dd6.style) {
color = "#FF6600" ;
textIndex = "30px" ;
fontWeight = "bold" ;
}
dd6.innerHTML = "»» 正在播放" ;
dl3.appendChild(dd6) ;
scrollObj = div1 ;
}
baobao.appendChild(div1) ;
}
}
else {
for(var i=0 ; i < videosLength ; i++) {
var div1 = document.createElement("div") ;
div1.className = "videobar-showd" ;
div1.style.textIndent = "15px" ;
if(i % 2 != 0) div1.style.backgroundColor = "#F4F4F4" ;
div1.innerHTML = '' + obj.videos[i].title + ' (' + obj.videos[i].total + ')' ;
baobao.appendChild(div1) ;
}
}
if(!_scrollVideosStart && obj.id == 2) {
scrollObj.scrollIntoView(true) ;
document.documentElement.scrollTop = 0 ;
}
_scrollVideosStart = true ;
pageMessage.currentVideObj = obj ;
appleFish() ;
}
// scroll load videosPic
function scrollLoad(obj,startNum){
if(_scrollVideosStart)
return false ;
else {
var videosLength = obj.videos.length ;
for(var i=startNum ; i < videosLength ; i++){
document.getElementById("videoOthersVideo").getElementsByTagName("p")[i].getElementsByTagName("img")[0].src = obj.videos[i].pic ;
}
_scrollVideosStart = true ;
}
}
// PL next video and pre video
function plPreandNextTitle(key) {
if(key > 0)
document.getElementById("plPreVideo").title = playPlaylist.videos[key-1].title ;
if(key < playPlaylist.total-1)
document.getElementById("plNextVideo").title = playPlaylist.videos[key+1].title ;
}
// ------- index scroll channel -------
/*****
var papers_begin = true ;
var papers_height = height ;
var papers_speed = speen ;
*****/
function papers_check(obj,num) {
if(!papers_begin)clearInterval(papers_ting) ;
else papers_begin = false ;
var button_length = document.getElementById("idxNewspapers").getElementsByTagName("h5")[0].getElementsByTagName("span").length ;
for(var i=0; i < button_length ; i++){
document.getElementById("idxNewspapers").getElementsByTagName("h5")[0].getElementsByTagName("span")[i].className = ''
}
obj.className = "idxNewspapersSpe" ;
papers_end = -(num - 1) * papers_height ;
papers_ting = setInterval("papers_scroll()" , papers_speed) ;
}
function papers_scroll(){
var papers_obj = document.getElementById("idxNewspapers").getElementsByTagName("ul")[0] ;
var papers_start = (papers_obj.style.marginTop == '') ? 0 : eval(papers_obj.style.marginTop.split("p")[0]) ;
var step = (papers_end - papers_start > 0) ? Math.ceil((papers_end - papers_start)/10) : Math.floor((papers_end - papers_start)/10) ;
papers_obj.style.marginTop = papers_start + step + 'px' ;
if(papers_obj.style.marginTop.split("p")[0] == papers_end)clearInterval(papers_ting);
}
// ------- cookie -------
function getExpTime(time,type){
var expTime = new Date();
switch(type) {
case 'year' :
expTime.setFullYear(expTime.getFullYear() + time );
break ;
case 'month' :
expTime.setMonth( expTime.getMonth() + time );
break;
case 'day' :
expTime.setDate( expTime.getDate() + time );
break;
case 'hour' :
expTime.setHours( expTime.getHours() + time );
break;
}
return expTime.toGMTString();
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf(";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return decodeURIComponent(document.cookie.substring(offset, endstr));
}
function getCookie(name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen){
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal(j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return "";
}
//写入COOKIE
function setCookie(name,value,expires,path,domain,secure) {
//document.cookie = name + "=" + encodeURIComponent(value) +
document.cookie = name + "=" + encodeURIComponent(value) + //不转换
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
function delCookie(name){
var guoqu = new Date();
expiresTime = guoqu.setTime(guoqu.getTime() - 100);
setCookie(name,'',expiresTime,'/','.114ball.com') ;
setCookie('data','',expiresTime,'/','.114ball.com') ;
}
// ------- playlist -------
function setNewValue(obj){
var newValue = parseInt(obj.parentNode.getElementsByTagName("input")[0].value) ;
if( !isNaN(newValue) && newValue >= 5 && newValue <= 40 ) {
setCookie('vpp',String(newValue),getExpTime(10,'month'),'/','.114ball.com') ;
var url = window.location.href ;
window.location.href = url.replace(/&page.*/,'') ;
}
else {
setCookie('vpp', 10 , getExpTime(10,'month') , '/' ,'.114ball.com');
alert('只能输入5 - 40的整数');
}
}
// 排序
function sendPlSeq(pid){
var dtArr = document.getElementById("myvideos").getElementsByTagName("dt") ;
var plArr = new Array() ;
var url = '/user/pt.php?action=rr&p=' + pid + '&' ;
for(var i=0 ; i < dtArr.length ; i++){
var seqStart = dtArr[i].getElementsByTagName("input")[0].value ;
var seqEdit = dtArr[i].getElementsByTagName("input")[1].value - 1 ;
if(isNaN(seqEdit)) {
alert("请确定你输入的是一个数字") ;
return false ;
}
if(seqStart != seqEdit) {
var pKey = dtArr[i].parentNode.parentNode.getElementsByTagName("div")[0].getElementsByTagName("input")[1].value ;
var pSeq = seqEdit ;
while(in_array(pSeq , plArr))
pSeq++ ;
plArr[pKey] = pSeq ;
}
}
for(var i in plArr){
url += 's[' + i + ']=' + plArr[i] + '&' ;
}
window.location.href = url ;
}
function selectThisVideo(obj){
var parentObj = obj.parentNode.parentNode ;
if(obj.checked) {
parentObj.style.backgroundColor = "#DDDDDD" ;
}
else {
parentObj.style.backgroundColor = "#FFFFFF" ;
}
}
function selectAllVideos(type){
var iptArr = document.getElementById("myvideos").getElementsByTagName("input") ;
for(var i=0; i < iptArr.length ; i++){
var objIpt = iptArr[i] ;
if(objIpt.type != "checkbox") continue ;
objIpt.checked = (type) ? true : false ;
selectThisVideo(objIpt) ;
}
}
// ------- quicklist and recent watched -------
function getQlistNum(num) {
document.getElementById("qlNum").innerHTML = '(' + num + ')' ;
if(document.getElementById("qlistToolbar"))
document.getElementById("listNum").innerHTML = '(' + num + ')' ;
//document.getElementById("qlistToolbar").getElementsByTagName("em")[0].innerHTML = '(' + num + ')' ;
}
function addRecentWatched() {
var vid = pageMessage.vid ;
var name = 'rw' ;
setVidCookie(name,vid,'') ;
}
//删除单项
function delVidCookie(name,vid) {
var expiresTime = getExpTime(2,'hour')
var oldValue = getCookie(name) ;
var newValue = '' ;
var matchStr = 'v' + oldValue + 'v' ;
replaceStr = 'v' + vid + 'v' ;
newValue = matchStr.replace(replaceStr , 'v').slice(1,-1) ;
setCookie(name,newValue,expiresTime,'/','.114ball.com') ;
//删除data内容 HOO
var oldValuedata=getCookie("data") ;
var newValuedata = '' ;
datamatch=oldValuedata.substring(oldValuedata.indexOf('-'+vid+'_'),oldValuedata.indexOf('/'+vid+'*')) + '/'+vid+'*'
newValuedata=oldValuedata.replace(datamatch,"")
setCookie('data',newValuedata,expiresTime,'/','.114ball.com') ;
//删除data内容 HOO
return newValue ;
}
function setVidCookie(name,vid,video_date) {
var expiresTime = getExpTime(1,'day') ;
var oldValue = getCookie(name) ;
var newValue = ''
var newDATE = ''
if(oldValue) {
var matchStr = 'v' + oldValue + 'v' ;
if(new RegExp('v' + vid + 'v').test(matchStr))
return '' ;
if(oldValue.split('v').length >= 22) //最多22个视频
//newValue = oldValue.replace(/\d*v/,'') + 'v' + vid ; //超过替换旧数据
newValue = oldValue ;
else
newValue = oldValue + 'v' + vid ;
}
else
newValue = vid ;
setCookie(name,newValue,expiresTime,'/','.114ball.com') ; //COOKIE缘存
if(oldValue.split('v').length < 22)
{ //最多22个视频 HOO
var oldDATE=getCookie('data') ;
newDATE=video_date+'*'+oldDATE
setCookie('data',newDATE,expiresTime,'/','.114ball.com') ;//后加数据
}
return newValue ;
}
function addQlist(obj,extra) {
obj.style.backgroundImage = 'url(/video/images/qkDone.gif)' ;
if(document.getElementById("qlistToolbar")) {
if(document.getElementById("qlistToolbar").style.display == 'none')
document.getElementById("qlistToolbar").style.display = 'block' ;
}
var url = obj.parentNode.getElementsByTagName("a")[0].href ;
var pic = obj.parentNode.getElementsByTagName("img")[0].src ; //图片地址
var title = obj.parentNode.getElementsByTagName("img")[0].alt ;//标题
//var vid = url.match(/\d+/)[0] ;
var vid = url.substr(url.lastIndexOf('/')+1 , url.length)
var name = 'ql' ;
var newValue = '' ;
pic=pic.replace("http://","")
title=escape(title.substring(0,15))
var url_value=url.replace("http://www.114ball.com","")
url_value=url_value.replace("http://114ball.com","")
newValue = setVidCookie(name,vid,'-'+vid+'_'+pic+'!'+title+'!'+url_value) ;
if(newValue) {
getQlistNum(newValue.split('v').length) ;
if(document.getElementById("qlistToolbar")) {
var pic = obj.parentNode.getElementsByTagName("img")[0].src ;
var title = obj.parentNode.getElementsByTagName("img")[0].alt ;
var divnew = document.createElement('div') ;
divnew.innerHTML = '