
/* 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 -----
 */

/* ----- register_function.js ----- */
// http://rnzfb.org.nz/portal_javascripts/register_function.js?original=1
var bugRiddenCrashPronePieceOfJunk=(navigator.userAgent.indexOf('MSIE 5')!=-1&&navigator.userAgent.indexOf('Mac')!=-1)
var W3CDOM=(!bugRiddenCrashPronePieceOfJunk&&document.getElementsByTagName&&document.createElement);
function registerEventListener(elem,event,func){if(elem.addEventListener){elem.addEventListener(event,func,false);return true} else if(elem.attachEvent){var result=elem.attachEvent("on"+event,func);return result}
return false}
function unRegisterEventListener(elem,event,func){if(elem.removeEventListener){elem.removeEventListener(event,func,false);return true} else if(elem.detachEvent){var result=elem.detachEvent("on"+event,func);return result}
return false}
function registerPloneFunction(func){registerEventListener(window,"load",func)}
function unRegisterPloneFunction(func){unRegisterEventListener(window,"load",func)}
function getContentArea(){if(W3CDOM){var node=document.getElementById('region-content');if(!node){node=document.getElementById('content')}
return node}}


/* ----- plone_javascript_variables.js ----- */
// http://rnzfb.org.nz/portal_javascripts/plone_javascript_variables.js?original=1
var portal_url='http://rnzfb.org.nz';var form_modified_message='Your form has not been saved. All changes you have made will be lost.';var form_resubmit_message='Your already clicked the submit button. Do you really want to submit this form again?';

/* ----- nodeutilities.js ----- */
// http://rnzfb.org.nz/portal_javascripts/nodeutilities.js?original=1
function wrapNode(node,wrappertype,wrapperclass){var wrapper=document.createElement(wrappertype)
wrapper.className=wrapperclass;var innerNode=node.parentNode.replaceChild(wrapper,node);wrapper.appendChild(innerNode)};
function nodeContained(innernode,outernode){var node=innernode.parentNode;while(node!=document){if(node==outernode){return true}
node=node.parentNode}
return false};
function findContainer(node,func){while(node!=null){if(func(node)){return node}
node=node.parentNode}
return false};
function hasClassName(node,class_name){return new RegExp('\\b'+class_name+'\\b').test(node.className)};
function addClassName(node,class_name){if(!node.className){node.className=class_name} else if(!hasClassName(node,class_name)){var className=node.className+" "+class_name;node.className=className.split(/\s+/).join(' ')}};
function removeClassName(node,class_name){var className=node.className;if(className){className=className.replace(new RegExp('\\b'+class_name+'\\b'),'');className=className.replace(/\s+/g,' ');node.className=className.replace(/\s+$/g,'')}};
function replaceClassName(node,old_class,new_class,ignore_missing){if(ignore_missing&&!hasClassName(node,old_class)){addClassName(node,new_class)} else{var className=node.className;if(className){className=className.replace(new RegExp('\\b'+old_class+'\\b'),new_class);className=className.replace(/\s+/g,' ');node.className=className.replace(/\s+$/g,'')}}};
function walkTextNodes(node,func,data){if(!node){return false}
if(node.hasChildNodes){for(var i=0;i<node.childNodes.length;i++){walkTextNodes(node.childNodes[i],func,data)}
if(node.nodeType==3){func(node,data)}}};
function getInnerTextCompatible(node){var result=new Array();walkTextNodes(node,
function(n,d){d.push(n.nodeValue)},result);return result.join("")};
function getInnerTextFast(node){if(node.innerText){return node.innerText} else{return getInnerTextCompatible(node)}};
function sortNodes(nodes,fetch_func,cmp_func){if(!W3CDOM){return false};var SortNodeWrapper=function(node){this.value=fetch_func(node);this.cloned_node=node.cloneNode(true);this.toString=function(){if(this.value.toString){return this.value.toString()} else{return this.value}}}
var items=new Array();for(var i=0;i<nodes.length;i++){items.push(new SortNodeWrapper(nodes[i]))}
if(cmp_func){items.sort(cmp_func)} else{items.sort()}
for(var i=0;i<items.length;i++){var dest=nodes[i];dest.parentNode.replaceChild(items[i].cloned_node,dest)}};

/* ----- cookie_functions.js ----- */
// http://rnzfb.org.nz/portal_javascripts/cookie_functions.js?original=1
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString()}else{expires=""}document.cookie=name+"="+escape(value)+expires+"; path=/;"};function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)==0){return unescape(c.substring(nameEQ.length,c.length))}}return null};

/* ----- mark_special_links.js ----- */
// http://rnzfb.org.nz/portal_javascripts/mark_special_links.js?original=1
function scanforlinks(){if(!W3CDOM){return false}contentarea=getContentArea();if(!contentarea){return false}links=contentarea.getElementsByTagName('a');for(i=0;i<links.length;i++){if((links[i].getAttribute('href'))&&(links[i].className.indexOf('link-plain')==-1)){var linkval=links[i].getAttribute('href');if(linkval.toLowerCase().indexOf(window.location.protocol+'//'+window.location.host)==0){}else if(linkval.indexOf('http:')!=0){protocols=['mailto','ftp','news','irc','h323','sip','callto','https','feed','webcal'];for(p=0;p<protocols.length;p++){if(linkval.indexOf(protocols[p]+':')==0){wrapNode(links[i],'span','link-'+protocols[p]);break}}}else{if(links[i].getElementsByTagName('img').length==0){wrapNode(links[i],'span','link-external')}}}}};registerPloneFunction(scanforlinks);

/* ----- highlightsearchterms.js ----- */
// http://rnzfb.org.nz/portal_javascripts/highlightsearchterms.js?original=1
function highlightTermInNode(node,word){var contents=node.nodeValue;var index=contents.toLowerCase().indexOf(word.toLowerCase());if(index<0){return false};var parent=node.parentNode;if(parent.className!="highlightedSearchTerm"){var hiword=document.createElement("span");hiword.className="highlightedSearchTerm";hiword.appendChild(document.createTextNode(contents.substr(index,word.length)));parent.insertBefore(document.createTextNode(contents.substr(0,index)),node);parent.insertBefore(hiword,node);parent.insertBefore(document.createTextNode(contents.substr(index+word.length)),node);parent.removeChild(node)}}function highlightSearchTerms(terms,startnode){if(!W3CDOM){return false};if(!terms){return false};if(!startnode){return false};for(var term_index=0;term_index<terms.length;term_index++){var term=terms[term_index];var term_lower=term.toLowerCase();if(term_lower!='not'&&term_lower!='and'&&term_lower!='or'){walkTextNodes(startnode,highlightTermInNode,term)}}}function getSearchTermsFromURI(uri){var query;if(typeof decodeURI!='undefined'){query=decodeURI(uri)}else if(typeof unescape!='undefined'){query=unescape(uri)}else{}var result=new Array();if(window.decodeReferrer){var referrerSearch=decodeReferrer();if(null!=referrerSearch&&referrerSearch.length>0){result=referrerSearch}}var qfinder=new RegExp("searchterm=([^&]*)","gi");var qq=qfinder.exec(query);if(qq&&qq[1]){var terms=qq[1].replace(/\+/g,' ').split(/\s+/);for(var i=0;i<terms.length;i++){if(terms[i]!=''){result.push(terms[i])}}return result}return result.length==0?false:result}function highlightSearchTermsFromURI(){if(!W3CDOM){return false};var terms=getSearchTermsFromURI(window.location.search);var contentarea=getContentArea();highlightSearchTerms(terms,contentarea)}registerPloneFunction(highlightSearchTermsFromURI);

/* ----- se-highlight.js ----- */
// http://rnzfb.org.nz/portal_javascripts/se-highlight.js?original=1
var searchEngines=[['^http://(www)?\\.?google.*','q='],['^http://search\\.yahoo.*','p='],['^http://search\\.msn.*','q='],['^http://search\\.aol.*','userQuery='],['^http://(www\\.)?altavista.*','q='],['^http://(www\\.)?feedster.*','q='],['^http://search\\.lycos.*','query='],['^http://(www\\.)?alltheweb.*','q=']]
function decodeReferrer(ref){if(null==ref&&document.referrer){ref=document.referrer}if(!ref)return null;var seQuery='';for(var i=0;i<searchEngines.length;i++){var match=new RegExp(searchEngines[i][0],'i');if(ref.match(match)){var match=new RegExp('^.*'+searchEngines[i][1]+'([^&]+)&?.*$');seQuery=ref.replace(match,'$1');if(seQuery){seQuery=decodeURIComponent(seQuery);seQuery=seQuery.replace(/\'|"/,'');return seQuery.split(/[\s,\+\.]+/)}}}return null}

/* ----- first_input_focus.js ----- */
// http://rnzfb.org.nz/portal_javascripts/first_input_focus.js?original=1
function setFocus(){if(!W3CDOM){return false};var xre=new RegExp(/\berror\b/);for(var f=0;(formnode=document.getElementsByTagName('form').item(f));f++){for(var i=0;(node=formnode.getElementsByTagName('div').item(i));i++){if(xre.exec(node.className)){for(var j=0;(inputnode=node.getElementsByTagName('input').item(j));j++){try{if(inputnode.focus){inputnode.focus();return}}catch(e){}}}}}}registerPloneFunction(setFocus)

/* ----- ie5fixes.js ----- */
// http://rnzfb.org.nz/portal_javascripts/ie5fixes.js?original=1
function hackPush(el){this[this.length]=el}function hackPop(){var N=this.length-1,el=this[N];this.length=N
return el}function hackShift(){var one=this[0],N=this.length;for(var i=1;i<N;i++){this[i-1]=this[i]}this.length=N-1
return one}var testPushPop=new Array();if(testPushPop.push){}else{Array.prototype.push=hackPush
Array.prototype.pop=hackPop
Array.prototype.shift=hackShift}

/* ----- rnzfb_javascripts.js ----- */
// http://rnzfb.org.nz/portal_javascripts/rnzfb_javascripts.js?original=1
function readQuotedCookie(name){var value=readCookie(name);if(value!=null){if(value.charAt(0)=="'"||value.charAt(0)=='"'){return value.substring(1,value.length-1)}else{return value}}else{return null}}function replacementForNowrap(){var node=document.getElementById('head-search');wrapNode(node,'nobr','')}

/* ----- tiles.js ----- */
// http://rnzfb.org.nz/portal_javascripts/tiles.js?original=1
var DEBUG=false,message="";
function getElementsByClassName(className,parentElement){var result=new Array(),list=(parentElement||window.document.body).getElementsByTagName('*');if(list.length==0) list=(parentElement||window.document.body).all;var class_re=new RegExp('(^|\\s)'+className+'(\\s|$)');for(var i=0;i<list.length;i++) if(list[i].className.match(class_re)) result[result.length]=list[i];return result};
function add_Event(obj,evt,listener,captured){if(!obj.addEventListener) obj.attachEvent('on'+evt,listener);else obj.addEventListener(evt,listener,captured)}
function stopBubbling(e){if(!e) window.event.cancelBubble=true;else(e.stopPropagation)?e.stopPropagation():e.cancelBubble=true}
function getPrimaryLink(list){if(list.length==0) return false;var primary=new RegExp('(^|\\s)'+'primary'+'(\\s|$)');for(var i=0;i<list.length;i++) if(primary.exec(list[i].className)) return list[i];return list[0]}
function initTiles(){var tiles=getElementsByClassName("tile",window.document)
for(var i=0;i<tiles.length;i++){var tile=tiles[i],hrefs=tile.getElementsByTagName('A');var a=getPrimaryLink(hrefs);if(a){tile.style.cursor='pointer';tile.tabIndex=0;add_Event(tile,'click',new Function("e","window.location='"+a.href+"';stopBubbling(e)"),false);add_Event(tile,'mouseover',new Function("e","window.status=  '"+a.href+"';stopBubbling(e)"),false);add_Event(tile,'mouseout', function(e){window.status='';stopBubbling(e)},false)}}}
registerPloneFunction(initTiles);
