
/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* XXX ERROR -- could not find '++resource++jquery-1.3.2.js'*/

/* - ++resource++tools.tooltip-1.1.2.js - */
// http://www.gazette.co.za/portal_javascripts/++resource++tools.tooltip-1.1.2.js?original=1
(function($){var instances=[];$.tools=$.tools||{};$.tools.tooltip={version:'1.1.2',conf:{effect:'toggle',fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:['top','center'],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"},api:false},addEffect: function(name,loadFn,hideFn){effects[name]=[loadFn,hideFn]}};var effects={toggle:[
function(done){var conf=this.getConf(),tip=this.getTip(),o=conf.opacity;if(o<1){tip.css({opacity:o})}
tip.show();done.call()},
function(done){this.getTip().hide();done.call()}],fade:[
function(done){this.getTip().fadeIn(this.getConf().fadeInSpeed,done)},
function(done){this.getTip().fadeOut(this.getConf().fadeOutSpeed,done)}]};
function Tooltip(trigger,conf){var self=this,$self=$(this);trigger.data("tooltip",self);var tip=trigger.next();if(conf.tip){tip=$(conf.tip);if(tip.length>1){tip=trigger.nextAll(conf.tip).eq(0);if(!tip.length){tip=trigger.parent().nextAll(conf.tip).eq(0)}}}
function getPosition(e){var top=conf.relative?trigger.position().top:trigger.offset().top,left=conf.relative?trigger.position().left:trigger.offset().left,pos=conf.position[0];top-=tip.outerHeight()-conf.offset[0];left+=trigger.outerWidth()+conf.offset[1];var height=tip.outerHeight()+trigger.outerHeight();if(pos=='center'){top+=height/2}
if(pos=='bottom'){top+=height}
pos=conf.position[1];var width=tip.outerWidth()+trigger.outerWidth();if(pos=='center'){left-=width/2}
if(pos=='left'){left-=width}
return{top:top,left:left}}
var isInput=trigger.is(":input"),isWidget=isInput&&trigger.is(":checkbox, :radio, select, :button"),type=trigger.attr("type"),evt=conf.events[type]||conf.events[isInput?(isWidget?'widget':'input'):'def'];evt=evt.split(/,\s*/);if(evt.length!=2){throw "Tooltip: bad events configuration for "+type}
trigger.bind(evt[0], function(e){if(conf.oneInstance){$.each(instances, function(){this.hide()})}
var t=tip.data("trigger");if(t&&t[0]!=this){tip.hide().stop(true,true)}
e.target=this;self.show(e);evt=conf.events.tooltip.split(/,\s*/);tip.bind(evt[0], function(){self.show(e)});if(evt[1]){tip.bind(evt[1], function(){self.hide(e)})}});trigger.bind(evt[1], function(e){self.hide(e)});if(!$.browser.msie&&!isInput&&!conf.predelay){trigger.mousemove(function(){if(!self.isShown()){trigger.triggerHandler("mouseover")}})}
if(conf.opacity<1){tip.css("opacity",conf.opacity)}
var pretimer=0,title=trigger.attr("title");if(title&&conf.cancelDefault){trigger.removeAttr("title");trigger.data("title",title)}
$.extend(self,{show: function(e){if(e){trigger=$(e.target)}
clearTimeout(tip.data("timer"));if(tip.is(":animated")||tip.is(":visible")){return self}
function show(){tip.data("trigger",trigger);var pos=getPosition(e);if(conf.tip&&title){tip.html(trigger.data("title"))}
e=e||$.Event();e.type="onBeforeShow";$self.trigger(e,[pos]);if(e.isDefaultPrevented()){return self}
pos=getPosition(e);tip.css({position:'absolute',top:pos.top,left:pos.left});var eff=effects[conf.effect];if(!eff){throw "Nonexistent effect \""+conf.effect+"\""}
eff[0].call(self, function(){e.type="onShow";$self.trigger(e)})}
if(conf.predelay){clearTimeout(pretimer);pretimer=setTimeout(show,conf.predelay)} else{show()}
return self},hide: function(e){clearTimeout(tip.data("timer"));clearTimeout(pretimer);if(!tip.is(":visible")){return}
function hide(){e=e||$.Event();e.type="onBeforeHide";$self.trigger(e);if(e.isDefaultPrevented()){return}
effects[conf.effect][1].call(self, function(){e.type="onHide";$self.trigger(e)})}
if(conf.delay&&e){tip.data("timer",setTimeout(hide,conf.delay))} else{hide()}
return self},isShown: function(){return tip.is(":visible, :animated")},getConf: function(){return conf},getTip: function(){return tip},getTrigger: function(){return trigger},bind: function(name,fn){$self.bind(name,fn);return self},onHide: function(fn){return this.bind("onHide",fn)},onBeforeShow: function(fn){return this.bind("onBeforeShow",fn)},onShow: function(fn){return this.bind("onShow",fn)},onBeforeHide: function(fn){return this.bind("onBeforeHide",fn)},unbind: function(name){$self.unbind(name);return self}});$.each(conf, function(name,fn){if($.isFunction(fn)){self.bind(name,fn)}})}
$.prototype.tooltip=function(conf){var api=this.eq(typeof conf=='number'?conf:0).data("tooltip");if(api){return api}
var globals=$.extend(true,{},$.tools.tooltip.conf);if($.isFunction(conf)){conf={onBeforeShow:conf}} else if(typeof conf=='string'){conf={tip:conf}}
conf=$.extend(true,globals,conf);if(typeof conf.position=='string'){conf.position=conf.position.split(/,?\s/)}
if(conf.lazy!==false&&(conf.lazy===true||this.length>20)){this.one("mouseover", function(e){api=new Tooltip($(this),conf);api.show(e);instances.push(api)})} else{this.each(function(){api=new Tooltip($(this),conf);instances.push(api)})}
return conf.api?api:this}})(jQuery);

/* - ++resource++footnote.js - */
// http://www.gazette.co.za/portal_javascripts/++resource++footnote.js?original=1
function makeTooltipSetter(tooltipdiv,content_element){return function(position){tooltipdiv.innerHTML=content_element.innerHTML}}
jQuery(function($){tooltipdiv=document.createElement('div');tooltipdiv.innerHTML='&nbsp;';tooltipdiv.id='plonefootnoteannotation_tooltip';$('body').append(tooltipdiv);anchors=$('p.footnote a[name]');anchors.each(function(){anchor=this;footnote=$(anchor).closest('p.footnote').get(0);references=$('a[href=#'+anchor.name+']')
references.each(function(){$(this).css('border-bottom','none');$(this).tooltip({tip:'#plonefootnoteannotation_tooltip',onBeforeShow:makeTooltipSetter(tooltipdiv,footnote),delay:500,position:'top right'})})})});

