var WIKIDOT = {}; var WIKIDOT = { page: function() {}, modules: function() {}, utils: function() {}, vars: function() {} } WIKIDOT.utils = { changeTextareaRowNo: function(textarea, numModifier) { var ta = $(textarea); if ((numModifier < 0 && ta.rows+numModifier >= 5) || (numModifier > 0 && ta.rows+numModifier <= 50)) { ta.rows = ta.rows + numModifier; } } } WIKIDOT.captcha = { reloadMathCaptcha: function(e) { p = new Object(); p.action = 'CaptchaAction'; p.event = 'reloadMathCaptcha'; OZONE.ajax.requestModule(null, p, function(r) { if (r.name) { var captchaBox = $j(e.target).parents('.math-captcha'); $j('img.captcha-image', captchaBox).attr('src', '/local--mathcaptcha/' + r.name); $j('input[name=mathCaptchaName]', captchaBox).val(r.name); $j('input[name=mathCaptchaResult]', captchaBox).val(''); } }); } } WIKIDOT.visuals = { /** * Creates a place in the center of the screen to place a message. */ showCenterMessage: function(text) { var body = document.getElementsByTagName('body').item(0); sDiv = document.createElement('div'); sDiv.id = 'center-message-shader'; bodyHeigh = body.offsetHeight+50; viewportHeight = YAHOO.util.Dom.getClientHeight(); height = Math.max(bodyHeigh,viewportHeight); sDiv.style.height = height+"px"; // now create the table wrapper environment for the message itself! mTable = document.createElement('table'); mTable.id = "center-message-wrapper"; mRow = document.createElement("tr"); mTd = document.createElement("td"); mRow.appendChild(mTd); mTable.appendChild(mRow); mDiv = document.createElement('div'); mDiv.id = "center-message"; mTd.appendChild(mDiv); $j(mDiv).html(text); sDiv.style.visibility = "hidden"; mTable.style.visibility = "hidden"; body.appendChild(sDiv); body.appendChild(mTable); YAHOO.util.Dom.setY("center-message-wrapper", OZONE.visuals.scrollOffsetY()); mTable.style.height = viewportHeight+"px"; $j('#center-message').fadeIn(100); sDiv.style.visibility = "visible"; mTable.style.visibility = "visible"; }, changeCenterMessage: function(text) { var $m = $j('#center-message'); $m.html(text); }, hideCenterMessage: function() { var body = document.getElementsByTagName('body').item(0); sDiv = document.getElementById("center-message-shader"); mTable = document.getElementById("center-message-wrapper"); if (sDiv != null) { body.removeChild(sDiv); body.removeChild(mTable); } } } /** * Displays simple error messages as dialogs. */ WIKIDOT.utils.handleError = function(r) { if (r.status != 'ok') { var w = new OZONE.dialogs.ErrorDialog(); if (r.status == 'no_permission') { w.title = ogettext('Permission error'); } w.content = '
'+r.message+'
'; w.show(); return false; } else { return true; } } WIKIDOT.utils.handleErrorBootstrap = function(r, modal, errorBlock) { if (!errorBlock) { var errorBlock = $j('.error-block') } errorBlock.hide(); if (r.status != 'ok') { errorBlock.find('.error-block-message').html('' + r.message + '
'); errorBlock.show(); OZONE.visuals.scrollTo('header'); modal.modal('hide'); return false; } else { return true; } } WIKIDOT.render = {}; WIKIDOT.render.printuser = function(userId, userName, wImage) { var link = 'href="javascript:;" onclick="WIKIDOT.page.listeners.userInfo('+userId+')"'; var out = ''; var proto = window.location.protocol; if (wImage == true) { out += '' + '' } out += ''+userName+''; return out; } WIKIDOT.render.fixAvatarHover = function(span) { $j(span).children('a').children('img').first().each(function() { a = $j(this).parent(); YAHOO.util.Event.addListener(a, "mouseover", WIKIDOT.render.fixAvatarHover.showHover); }); } WIKIDOT.render.fixAvatarHover.showHover = function(e) { var ac = $j("#avatar-hover-container"); if (ac.length == 0 ) { var ac = $j(''); $j('body').append(ac); } if (this.hoverAvatar == null) { // make the hover avatar element var img0 = this.getElementsByTagName("img")[0]; var newsrc = img0.src.replace(/small/, 'normal'); /* Handle gravatar too. */ newsrc = newsrc.replace(/16$/, '48'); // now create a new a element var a = document.createElement("a"); var img = document.createElement("img"); img.src = newsrc; a.className = "avatar-hover"; a.style.position = "absolute"; a.style.display = "none"; a.href = this.href; a.onclick = this.onclick; var d = document.createElement("div"); d.appendChild(img); a.appendChild(d); YAHOO.util.Dom.generateId(a); this.hoverAvatar = a; ac.append(a); YAHOO.util.Event.addListener(a, "mouseout", WIKIDOT.render.fixAvatarHover.hideHover); YAHOO.util.Event.addListener(a, "mousemove", WIKIDOT.render.fixAvatarHover.mousemove); // $j(a).hide(); } var ha = this.hoverAvatar //position the hover! var cx,cy; cx = YAHOO.util.Dom.getX(this) + 8 + 8; cy = YAHOO.util.Dom.getY(this) + 8; ha.style.display="block"; var img = ha.getElementsByTagName('img')[0]; var ih, iw; var lbind = false; if (img.height == 0) { ih = 48; iw = 48; lbind = true; YAHOO.util.Event.addListener(img, "load", function(event, ha) { var img = this; YAHOO.util.Dom.setXY(ha, [cx - (img.width/2 +8), cy - (img.height/2+8)]); }, ha); } else { ih = img.height; iw = img.width; } YAHOO.util.Dom.setXY(ha, [cx - (iw/2 +8), cy - (ih/2+8)]); $j(this.hoverAvatar).fadeIn(100); // set timer ha.lastAccess = (new Date()).getTime(); setTimeout('WIKIDOT.render.fixAvatarHover.mousemove.autoHide("'+ha.id+'")', 1000); } WIKIDOT.render.fixAvatarHover.hideHover = function(e) { var rt = YAHOO.util.Event.getRelatedTarget(e); if (!YAHOO.util.Dom.isAncestor(this, rt) && rt!=this) { $j(this).hide(); } } WIKIDOT.render.fixAvatarHover.mousemove = function(e) { this.lastAccess = (new Date()).getTime(); } WIKIDOT.render.fixAvatarHover.mousemove.autoHide = function(hoverId) { var a = $(hoverId); var now = (new Date()).getTime(); if (a.lastAccess + 3000 < now) { $j(a).hide(); } else { // check again setTimeout('WIKIDOT.render.fixAvatarHover.mousemove.autoHide("'+a.id+'")', 1000); } };