sibtracker/system/skins/default.js
2019-05-18 13:46:03 +08:00

152 lines
4.9 KiB
JavaScript

function Help(section) {
q=window.open('?mod=help&section='+section, 'Help', 'scrollbars=1,resizable=1,width=450,height=400');
}
function ShowOrHide(d1, d2) {
if (d1 != '') DoDiv(d1);
if (d2 != '') DoDiv(d2);
}
function DoDiv(id) {
if ( $("#" + id).is(":hidden") ) {
$("#" + id).show(1);
} else {
$("#" + id).hide(1);
}
}
function ShowLoading( message ){
if ( message )
{
$("#loading-layer-text").html(message);
}
var setX = ( $(window).width() - $("#loading-layer").width() ) / 2;
var setY = ( $(window).height() - $("#loading-layer").height() ) / 2;
$("#loading-layer").css( {
left : setX + "px",
top : setY + "px",
position : 'fixed',
zIndex : '99'
});
$("#loading-layer").fadeTo('slow', 0.6);
};
function HideLoading( message ){
$("#loading-layer").fadeOut('slow');
};
function dropdownmenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true;
else if (e.stopPropagation) e.stopPropagation();
var menudiv = $('#dropmenudiv');
if (menudiv.is(':visible')) { clearhidemenu(); menudiv.fadeOut('fast'); return false; }
menudiv.remove();
$('body').append('<div id="dropmenudiv" style="display:none;position:absolute;z-index:100;width:165px;"></div>');
menudiv = $('#dropmenudiv');
menudiv.html(menucontents.join(""));
if (menuwidth) menudiv.width(menuwidth);
var windowx = $(document).width() - 30;
var offset = $(obj).offset();
if (windowx-offset.left < menudiv.width())
offset.left = offset.left - (menudiv.width()-$(obj).width());
menudiv.css( {
left : offset.left + "px",
top : offset.top+$(obj).height()+"px"
});
menudiv.fadeTo('fast', 0.9);
menudiv.mouseenter(function(){
clearhidemenu();
}).mouseleave(function(){
delayhidemenu();
});
$(document).one("click", function() {
hidemenu();
});
return false;
};
function hidemenu(e){
$("#dropmenudiv").fadeOut("fast");
};
function delayhidemenu(){
delayhide=setTimeout("hidemenu()",1000);
};
function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide);
};
document.onclick=hidemenu;
var horizontal_offset="9px" //horizontal offset of hint box from anchor link
/////No further editting needed
var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all
function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}
function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
}
else{
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
}
return edgeoffset
}
function showhint(menucontents, obj, e, tipwidth){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
}
}
function hidetip(e){
dropmenuobj.style.visibility="hidden"
dropmenuobj.style.left="-500px"
}
function createhintbox(){
var divblock=document.createElement("div")
divblock.setAttribute("id", "hintbox")
document.body.appendChild(divblock)
}
if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox