var supporttouch = "ontouchend" in document;
var platform = navigator.platform;
var ua = navigator.userAgent;
var ios = /iPhone|iPad|iPod/.test(platform) && ua.indexOf( "AppleWebKit" ) > -1;
var andriod = ua.indexOf( "Android" ) > -1;
var JSLOADED = [];
var HTML5PLAYER = [];
HTML5PLAYER['apload'] = 0;
HTML5PLAYER['dpload'] = 0;
HTML5PLAYER['flvload'] = 0;
var BROWSER = {};
var USERAGENT = navigator.userAgent.toLowerCase();
browserVersion({'ie':'msie','firefox':'','chrome':'','opera':'','safari':'','mozilla':'','webkit':'','maxthon':'','qq':'qqbrowser','rv':'rv'});
if(BROWSER.safari || BROWSER.rv) {
BROWSER.firefox = true;
}
BROWSER.opera = BROWSER.opera ? opera.version() : 0;
var page = {
converthtml : function() {
var prevpage = qSel('div.pg .prev') ? qSel('div.pg .prev').href : undefined;
var nextpage = qSel('div.pg .nxt') ? qSel('div.pg .nxt').href : undefined;
var lastpage = qSel('div.pg label span') ? (qSel('div.pg label span').innerText.replace(/[^\d]/g, '') || 0) : 0;
var curpage = qSel('div.pg input') ? qSel('div.pg input').value : 1;
var multipage_url = getID('multipage_url') ? getID('multipage_url').value : undefined;
if(!lastpage) {
prevpage = qSel('div.pg .pgb a') ? qSel('div.pg .pgb a').href : undefined;
}
var prevpagehref = nextpagehref = '';
if(prevpage == undefined) {
prevpagehref = 'javascript:;" class="grey';
} else {
prevpagehref = prevpage;
}
if(nextpage == undefined) {
nextpagehref = 'javascript:;" class="grey';
} else {
nextpagehref = nextpage;
}
var selector = '';
if(lastpage) {
selector += '';
selector += '';
selector += '第'+curpage+'页';
}
var pgobj = qSel('div.pg');
pgobj.classList.remove('pg');
pgobj.classList.add('page');
pgobj.innerHTML = '上一页'+ selector +'下一页';
qSel('#dumppage').addEventListener('change', function() {
var href = (prevpage || nextpage);
var newhref = href.replace(/page=\d+/, 'page=' + this.value);
if (newhref == href) {
newhref = href.replace(/(forum|thread|article|group|blog)-(\d+)-(\d+)(-(\d+))?\.html/i, '$1-$2-' + this.value + '$4.html');
if (newhref == href && multipage_url != undefined) {
newhref = multipage_url.replace(/{page}/i, this.value);
}
}
window.location.href = newhref;
});
},
};
var scrolltop = {
obj : null,
init : function(obj) {
scrolltop.obj = obj;
var pageHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight);
var screenHeight = window.innerHeight;
var scrollType = 'bottom';
var scrollToPos = function() {
if(scrollType == 'bottom') {
window.scrollTo(0, pageHeight);
} else {
window.scrollTo(0, 0);
}
scrollfunc();
};
var scrollfunc = function() {
var newType;
if(document.documentElement.scrollTop >= 50) {
newType = 'top';
} else {
newType = 'bottom';
}
if(newType != scrollType) {
scrollType = newType;
if(newType == 'top') {
obj.classList.remove('bottom');
} else {
obj.classList.add('bottom');
}
}
};
if(pageHeight - screenHeight < 100) {
obj.style.display = 'none';
} else {
obj.addEventListener('click', scrollToPos);
document.addEventListener('scroll', scrollfunc);
scrollfunc();
}
},
};
var img = {
init : function(is_err_t) {
var errhandle = this.errorhandle;
$('img').on('load', function() {
var obj = $(this);
obj.attr('zsrc', obj.attr('src'));
if(obj.width() < 5 && obj.height() < 10 && obj.css('display') != 'none') {
return errhandle(obj, is_err_t);
}
obj.css('display', 'inline');
obj.css('visibility', 'visible');
if(obj.width() > window.innerWidth) {
obj.css('width', window.innerWidth);
}
obj.parent().find('.loading').remove();
obj.parent().find('.error_text').remove();
})
.on('error', function() {
var obj = $(this);
obj.attr('zsrc', obj.attr('src'));
errhandle(obj, is_err_t);
});
},
errorhandle : function(obj, is_err_t) {
if(obj.attr('noerror') == 'true') {
return;
}
obj.css('visibility', 'hidden');
obj.css('display', 'none');
var parentnode = obj.parent();
parentnode.find('.loading').remove();
parentnode.append('
');
var loadnums = parseInt(obj.attr('load')) || 0;
if(loadnums < 3) {
obj.attr('src', obj.attr('zsrc'));
obj.attr('load', ++loadnums);
return false;
}
if(is_err_t) {
var parentnode = obj.parent();
parentnode.find('.loading').remove();
parentnode.append('点击重新加载
');
parentnode.find('.error_text').one('click', function() {
obj.attr('load', 0).find('.error_text').remove();
parentnode.append('');
obj.attr('src', obj.attr('zsrc'));
});
}
return false;
}
};
var POPMENU = new Object;
var popup = {
init : function() {
var $this = this;
$('.popup').each(function(index, obj) {
obj = $(obj);
var pop = $(obj.attr('href'));
if(pop && pop.attr('popup')) {
pop.css({'display':'none'});
obj.on('click', function(e) {
$this.open(pop);
return false;
});
}
});
this.maskinit();
},
maskinit : function() {
var $this = this;
$('#mask').off().on('click', function() {
$this.close();
});
},
open : function(pop, type, url) {
this.close();
this.maskinit();
if(typeof pop == 'string') {
$('#ntcmsg').remove();
if(type == 'alert') {
pop = ''+ pop +''
} else if(type == 'confirm') {
pop = ''
}
$('body').append(''+ pop +'
');
pop = $('#ntcmsg');
}
if(POPMENU[pop.attr('id')]) {
$('#' + pop.attr('id') + '_popmenu').html(pop.html()).css({'height':pop.height()+'px', 'width':pop.width()+'px'});
} else {
pop.parent().append('');
}
var popupobj = $('#' + pop.attr('id') + '_popmenu');
var left = (window.innerWidth - popupobj.width()) / 2;
var top = (document.documentElement.clientHeight - popupobj.height()) / 2;
popupobj.css({'display':'block','position':'fixed','left':left,'top':top,'z-index':120,'opacity':1});
$('#mask').css({'display':'block','width':'100%','height':'100%','position':'fixed','top':'0','left':'0','background':'black','opacity':'0.2','z-index':'100'});
POPMENU[pop.attr('id')] = pop;
},
close : function() {
$('#mask').css('display', 'none');
$.each(POPMENU, function(index, obj) {
$('#' + index + '_popmenu').css('display','none');
});
}
};
var dialog = {
init : function() {
$(document).on('click', '.dialog', function() {
var obj = $(this);
popup.open('
');
$.ajax({
type : 'GET',
url : obj.attr('href') + '&inajax=1',
dataType : 'xml'
})
.success(function(s) {
popup.open(s.lastChild.firstChild.nodeValue);
evalscript(s.lastChild.firstChild.nodeValue);
})
.error(function() {
window.location.href = obj.attr('href');
popup.close();
});
return false;
});
},
};
var formdialog = {
init : function() {
$(document).on('click', '.formdialog', function() {
popup.open('
');
var obj = $(this);
var formobj = $(this.form);
var isFormData = formobj.find("input[type='file']").length > 0;
$.ajax({
type:'POST',
url:formobj.attr('action') + '&handlekey='+ formobj.attr('id') +'&inajax=1',
data:isFormData ? new FormData(formobj[0]) : formobj.serialize(),
dataType:'xml',
processData:isFormData ? false : true,
contentType:isFormData ? false : 'application/x-www-form-urlencoded; charset=UTF-8'
})
.success(function(s) {
popup.open(s.lastChild.firstChild.nodeValue);
evalscript(s.lastChild.firstChild.nodeValue);
})
.error(function() {
popup.open('表单提交异常,无法完成您的请求', 'alert');
});
return false;
});
}
};
var DISMENU = new Object;
var display = {
init : function() {
var $this = this;
$('.display').each(function(index, obj) {
obj = $(obj);
var dis = $(obj.attr('href'));
if(dis && dis.attr('display')) {
dis.css({'display':'none'});
dis.css({'z-index':'102'});
DISMENU[dis.attr('id')] = dis;
obj.on('click', function(e) {
if(in_array(e.target.tagName, ['A', 'IMG', 'INPUT'])) return;
$this.maskinit();
if(dis.attr('display') == 'true') {
dis.css('display', 'block');
dis.attr('display', 'false');
$('#mask').css({'display':'block','width':'100%','height':'100%','position':'fixed','top':'0','left':'0','background':'transparent','z-index':'100'});
}
return false;
});
}
});
},
maskinit : function() {
var $this = this;
$('#mask').off().on('touchstart', function() {
$this.hide();
});
},
hide : function() {
$('#mask').css('display', 'none');
$.each(DISMENU, function(index, obj) {
obj.css('display', 'none');
obj.attr('display', 'true');
});
}
};
function getID(id) {
return !id ? null : document.getElementById(id);
}
function qSel(sel) {
return document.querySelector(sel);
}
function qSelA(sel) {
return document.querySelectorAll(sel);
}
function mygetnativeevent(event) {
while(event && typeof event.originalEvent !== "undefined") {
event = event.originalEvent;
}
return event;
}
function evalscript(s) {
if(s.indexOf('