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

/* - tabber-minimizer.js - */
// http://www.datenschutz-praxis.de/portal_javascripts/tabber-minimizer.js?original=1
function tabberObj(argsObj){var arg;this.div=null;this.classMain="tabber";this.classMainLive="tabberlive";this.classTab="tabbertab";this.classTabDefault="tabbertabdefault";this.classNav="tabbernav";this.classTabHide="tabbertabhide";this.classNavActive="tabberactive";this.titleElements=['h2','h3','h4','h5','h6'];this.titleElementsStripHTML=true;this.removeTitle=true;this.addLinkId=true;this.linkIdFormat='<tabberid>nav<tabnumberone>';for(arg in argsObj){this[arg]=argsObj[arg]}
this.REclassMain=new RegExp('\\b'+this.classMain+'\\b','gi');this.REclassMainLive=new RegExp('\\b'+this.classMainLive+'\\b','gi');this.REclassTab=new RegExp('\\b'+this.classTab+'\\b','gi');this.REclassTabDefault=new RegExp('\\b'+this.classTabDefault+'\\b','gi');this.REclassTabHide=new RegExp('\\b'+this.classTabHide+'\\b','gi');this.tabs=new Array();if(this.div){this.init(this.div);this.div=null}}
tabberObj.prototype.init=function(e){var childNodes,i,i2,t,defaultTab=0,DOM_ul,DOM_li,DOM_a,aId,headingElement;if(!document.getElementsByTagName){return false}
if(e.id){this.id=e.id}
this.tabs.length=0;childNodes=e.childNodes;for(i=0;i<childNodes.length;i++){if(childNodes[i].className&&childNodes[i].className.match(this.REclassTab)){t=new Object();t.div=childNodes[i];this.tabs[this.tabs.length]=t;if(childNodes[i].className.match(this.REclassTabDefault)){defaultTab=this.tabs.length-1}}}
DOM_ul=document.createElement("ul");DOM_ul.className=this.classNav;for(i=0;i<this.tabs.length;i++){t=this.tabs[i];t.headingText=t.div.title;if(this.removeTitle){t.div.title=''}
if(!t.headingText){for(i2=0;i2<this.titleElements.length;i2++){headingElement=t.div.getElementsByTagName(this.titleElements[i2])[0];if(headingElement){t.headingText=headingElement.innerHTML;if(this.titleElementsStripHTML){t.headingText.replace(/<br>/gi," ");t.headingText=t.headingText.replace(/<[^>]+>/g,"")}
break}}}
if(!t.headingText){t.headingText=i+1}
DOM_li=document.createElement("li");t.li=DOM_li;DOM_a=document.createElement("a");DOM_a.appendChild(document.createTextNode(t.headingText));DOM_a.href="javascript:void(null);";DOM_a.title=t.headingText;DOM_a.onclick=this.navClick;DOM_a.tabber=this;DOM_a.tabberIndex=i;if(this.addLinkId&&this.linkIdFormat){aId=this.linkIdFormat;aId=aId.replace(/<tabberid>/gi,this.id);aId=aId.replace(/<tabnumberzero>/gi,i);aId=aId.replace(/<tabnumberone>/gi,i+1);aId=aId.replace(/<tabtitle>/gi,t.headingText.replace(/[^a-zA-Z0-9\-]/gi,''));DOM_a.id=aId}
DOM_li.appendChild(DOM_a);DOM_ul.appendChild(DOM_li)}
e.insertBefore(DOM_ul,e.firstChild);e.className=e.className.replace(this.REclassMain,this.classMainLive);this.tabShow(defaultTab);if(typeof this.onLoad=='function'){this.onLoad({tabber:this})}
return this};tabberObj.prototype.navClick=function(event){var rVal,a,self,tabberIndex,onClickArgs;a=this;if(!a.tabber){return false}
self=a.tabber;tabberIndex=a.tabberIndex;a.blur();if(typeof self.onClick=='function'){onClickArgs={'tabber':self,'index':tabberIndex,'event':event};if(!event){onClickArgs.event=window.event}
rVal=self.onClick(onClickArgs);if(rVal===false){return false}}
self.tabShow(tabberIndex);return false};tabberObj.prototype.tabHideAll=function(){var i;for(i=0;i<this.tabs.length;i++){this.tabHide(i)}};tabberObj.prototype.tabHide=function(tabberIndex){var div;if(!this.tabs[tabberIndex]){return false}
div=this.tabs[tabberIndex].div;if(!div.className.match(this.REclassTabHide)){div.className+=' '+this.classTabHide}
this.navClearActive(tabberIndex);return this};tabberObj.prototype.tabShow=function(tabberIndex){var div;if(!this.tabs[tabberIndex]){return false}
this.tabHideAll();div=this.tabs[tabberIndex].div;div.className=div.className.replace(this.REclassTabHide,'');this.navSetActive(tabberIndex);if(typeof this.onTabDisplay=='function'){this.onTabDisplay({'tabber':this,'index':tabberIndex})}
return this};tabberObj.prototype.navSetActive=function(tabberIndex){this.tabs[tabberIndex].li.className=this.classNavActive;return this};tabberObj.prototype.navClearActive=function(tabberIndex){this.tabs[tabberIndex].li.className='';return this};
function tabberAutomatic(tabberArgs){var tempObj,divs,i;if(!tabberArgs){tabberArgs={}}
tempObj=new tabberObj(tabberArgs);divs=document.getElementsByTagName("div");for(i=0;i<divs.length;i++){if(divs[i].className&&divs[i].className.match(tempObj.REclassMain)){tabberArgs.div=divs[i];divs[i].tabber=new tabberObj(tabberArgs)}}
return this}
function tabberAutomaticOnLoad(tabberArgs){var oldOnLoad;if(!tabberArgs){tabberArgs={}}
oldOnLoad=window.onload;if(typeof window.onload!='function'){window.onload=function(){tabberAutomatic(tabberArgs)}}
else{window.onload=function(){oldOnLoad();tabberAutomatic(tabberArgs)}}}
if(typeof tabberOptions=='undefined'){tabberAutomaticOnLoad()}else{if(!tabberOptions['manualStartup']){tabberAutomaticOnLoad(tabberOptions)}}

/* - tabber_inline.js - */
// http://www.datenschutz-praxis.de/portal_javascripts/tabber_inline.js?original=1
var tabberOptions={manualStartup:true};/* \x3C is the hexcode for 'less than'(&lt;) \x3E is the hexcode for 'greater than'(&gt;) it's needed for proper XHTML validation */ document.write('\x3Cstyle type="text/css"\x3E.tabber{display:none}\x3C/style\x3E');

/* - tabberoptions.js - */
// http://www.datenschutz-praxis.de/portal_javascripts/tabberoptions.js?original=1
var tabberOptions={manualStartup:true};

/* - swfobject.js - */
// http://www.datenschutz-praxis.de/portal_javascripts/swfobject.js?original=1
if(typeof deconcept=="undefined"){var deconcept=new Object()}if(typeof deconcept.util=="undefined"){deconcept.util=new Object()}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object()}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1)}if(id){this.setAttribute("id",id)}if(w){this.setAttribute("width",w)}if(h){this.setAttribute("height",h)}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")))}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true}if(c){this.addParam("bgcolor",c)}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9)}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true)},setAttribute:function(_e,_f){this.attributes[_e]=_f},getAttribute:function(_10){return this.attributes[_10]},addParam:function(_11,_12){this.params[_11]=_12},getParams:function(){return this.params},addVariable:function(_13,_14){this.variables[_13]=_14},getVariable:function(_15){return this.variables[_15]},getVariables:function(){return this.variables},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key]}return _16},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath)}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" "}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\""}_19+="/>"}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath)}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />"}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />"}_19+="</object>"}return _19},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title)}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"))}}return false}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."))}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0])}catch(e){axo=null}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always"}catch(e){if(_23.major==6){return _23}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","))}}}return _23};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false}if(this.major>fv.major){return true}if(this.minor<fv.minor){return false}if(this.minor>fv.minor){return true}if(this.rev<fv.rev){return false}return true};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1))}}}return ""}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){}}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs)};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id]}}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;

/* - suckerfish.js - */
// http://www.datenschutz-praxis.de/portal_javascripts/suckerfish.js?original=1
function suckerfish(type,tag,parentId){if(window.attachEvent){window.attachEvent("onload", function(){var sfEls=(parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);type(sfEls)})}}
sfHover=function(sfEls){for(var i=0;i<sfEls.length;i++){sfEls[i].onmouseover=function(){this.className+=" sfhover"}
sfEls[i].onmouseout=function(){this.className=this.className.replace(new RegExp(" sfhover\\b"),"")}}}

/* - tablePaginator.js - */
// http://www.datenschutz-praxis.de/portal_javascripts/tablePaginator.js?original=1
function sortCompleteCallback(tableId){tablePaginater.showPage(tableId)}
var tablePaginater={tableInfo:{},init: function(){var tables=document.getElementsByTagName('table');for(var t=0,tbl;tbl=tables[t];t++){if(!tbl.id||tbl.id==""||tbl.className.search(/paginate-([0-9]+)/)==-1) continue;tablePaginater.tableInfo[tbl.id]={rowsPerPage:tbl.className.match(/paginate-([0-9]+)/)[1],currentPage:0};tablePaginater.showPage(tbl.id,0);tablePaginater.createPageinationList(tbl.id)}},addClass: function(e,c){if(new RegExp("(^|\\s)"+c+"(\\s|$)").test(e.className)) return;e.className+=(e.className?" ":"")+c},removeClass: function(e,c){e.className=!c?"":e.className.replace(new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))","g"),"")},createPageinationList: function(tableId){var tbl=document.getElementById(tableId);var ul=document.createElement("ul");ul.className="tablePaginater";ul.id="paginateList-"+tableId;var ulc=ul.cloneNode(true);ulc.id="paginateList-"+tableId+"-clone";var rows=tablePaginater.getTableRows(tableId);var total=rows.length;var rowsPerPage
var pages=Math.max(1,Math.ceil(total/tablePaginater.tableInfo[tableId].rowsPerPage));var li=document.createElement("li");var a=document.createElement("a");a.href="#";var lic,ac;for(var i=0;i<pages;i++){lic=li.cloneNode(false);ac=a.cloneNode(true);ac.title="View page "+(i+1);ac.appendChild(document.createTextNode(i+1));lic.onclick=a.onclick=tablePaginater.show;lic.appendChild(ac);if(i==0) lic.className="currentPage";ul.appendChild(lic);lic=lic.cloneNode(true);lic.onclick=lic.getElementsByTagName("a")[0].onclick=tablePaginater.show;ulc.appendChild(lic)};if(tbl.nextSibling){tbl.parentNode.insertBefore(ul,tbl.nextSibling)} else{tbl.parentNode.appendChild(ul)};tbl.parentNode.insertBefore(ulc,tbl)},getTableRows: function(tableId){var rows=[];var tbl=document.getElementById(tableId);var tbody=tbl.getElementsByTagName('tbody');if(tbody&&tbody.length){tbody=tbody[0];rows=tbody.getElementsByTagName('tr')} else{var tmp=tbl.getElementsByTagName('tr');for(var i=tmp.length;i--;){if(tmp[i].getElementsByTagName('th')||tmp[i].parentNode.tagName=="TFOOT") continue;rows[rows.length]=tmp[i]}};return rows},showPage: function(tableId,page){if(!(tableId in tablePaginater.tableInfo)) return;var tbl=document.getElementById(tableId);var rowsPerPage=tablePaginater.tableInfo[tableId].rowsPerPage;var rows=tablePaginater.getTableRows(tableId);page=typeof page=="undefined"?tablePaginater.tableInfo[tableId].currentPage:page;var min=rowsPerPage * page;var max=Number(min)+Number(rowsPerPage);var rowStyle=tbl.className.search(/rowstyle-([\S]+)/) != -1 ? tbl.className.match(/rowstyle-([\S]+)/)[1]:false;var cnt=0;var len=rows.length;for(var i=0;i<len;i++){rows[i].style.display=(i>=min&&i<max)?"":"none";if(rowsPerPage%2&&rowStyle&&i>=min&&i<max){tablePaginater.removeClass(rows[i],rowStyle);if(cnt++%2) tablePaginater.addClass(rows[i],rowStyle)}};tablePaginater.tableInfo[tableId].currentPage=page},show: function(e){var li=(this.tagName&&this.tagName=="A")?this.parentNode:this;var tableId=li.parentNode.id.replace("paginateList-","").replace("-clone","");var cnt=0;while(li.previousSibling){li=li.previousSibling;if(li.tagName&&li.tagName.toLowerCase()=="li") cnt++};tablePaginater.showPage(tableId,cnt);var ul=document.getElementById("paginateList-"+tableId);var ulc=document.getElementById("paginateList-"+tableId+"-clone");var i=0;while(ul.childNodes[i]){ul.childNodes[i].className=ulc.childNodes[i].className=i==cnt?"currentPage":"";i++};return false}}
fdTableSort.addEvent(window,"load",tablePaginater.init);

/* - tablesort.js - */
// http://www.datenschutz-praxis.de/portal_javascripts/tablesort.js?original=1
var fdTableSort={regExp_Currency:/^[£$.¥¤]/,regExp_Number:/^(\-)?[0-9]+(\.[0-9]*)?$/,pos:-1,uniqueHash:1,thNode:null,tableId:null,tableCache:{},tmpCache:{},/*@cc_on
 /*@if (@_win32)
 colspan:"colSpan",rowspan:"rowSpan",@else @*/colspan:"colspan",rowspan:"rowspan",/*@end
 @*/addEvent: function(obj,type,fn,tmp){tmp||(tmp=true);if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event)};obj.attachEvent("on"+type,obj[type+fn])} else{obj.addEventListener(type,fn,true)}},removeEvent: function(obj,type,fn,tmp){tmp||(tmp=true);if(obj.detachEvent){obj.detachEvent("on"+type,obj[type+fn]);obj[type+fn]=null} else{obj.removeEventListener(type,fn,true)}},stopEvent: function(e){e=e||window.event;if(e.stopPropagation){e.stopPropagation();e.preventDefault()};/*@cc_on@*/
/*@if(@_win32)
 e.cancelBubble=true;e.returnValue=false;/*@end@*/
return false},initEvt: function(e){fdTableSort.init(false)},init: function(tableId){if(!document.getElementsByTagName||!document.createElement||!document.getElementById) return;var tables=tableId&&document.getElementById(tableId)?new Array(document.getElementById(tableId)):document.getElementsByTagName("table");var workArr,sortable,headers,thtext,aclone,a,span,columnNum,noArrow,colCnt,cel,allRowArr,rowArr,sortableTable,celCount,colspan,rowspan,rowLength;var onLoadTables=[];a=document.createElement("a");a.href="#";a.onkeypress=fdTableSort.keyWrapper;span=document.createElement("span");for(var k=0,tbl;tbl=tables[k];k++){if(tbl.id) fdTableSort.removeTableCache(tbl.id);if(tbl.id) fdTableSort.removeTmpCache(tbl.id);allRowArr=tbl.getElementsByTagName('thead').length?tbl.getElementsByTagName('thead')[0].getElementsByTagName('tr'):tbl.getElementsByTagName('tr');rowArr=[];sortableTable=false;for(var i=0,tr;tr=allRowArr[i];i++){if(tr.getElementsByTagName('td').length||!tr.getElementsByTagName('th').length) continue;rowArr[rowArr.length]=tr.getElementsByTagName('th');for(var j=0,th;th=rowArr[rowArr.length-1][j];j++){if(th.className.search(/sortable/)!=-1) sortableTable=true}};if(!sortableTable) continue;if(!tbl.id) tbl.id="fd-table-"+fdTableSort.uniqueHash++;sortable=false;columnNum=tbl.className.search(/sortable-onload-([0-9]+)/) != -1 ? parseInt(tbl.className.match(/sortable-onload-([0-9]+)/)[1])-1:-1;showArrow=tbl.className.search(/no-arrow/)==-1;reverse=tbl.className.search(/sortable-onload-([0-9]+)-reverse/)!=-1;rowLength=rowArr[0].length;for(var c=0;c<rowArr[0].length;c++){if(rowArr[0][c].getAttribute(fdTableSort.colspan)&&rowArr[0][c].getAttribute(fdTableSort.colspan)>1){rowLength=rowLength+(rowArr[0][c].getAttribute(fdTableSort.colspan)-1)}};workArr=new Array(rowArr.length);for(var c=rowArr.length;c--;){workArr[c]=new Array(rowLength)};for(var c=0;c<workArr.length;c++){celCount=0;for(var i=0;i<rowLength;i++){if(!workArr[c][i]){cel=rowArr[c][celCount];colspan=(cel.getAttribute(fdTableSort.colspan)>1)?cel.getAttribute(fdTableSort.colspan):1;rowspan=(cel.getAttribute(fdTableSort.rowspan)>1)?cel.getAttribute(fdTableSort.rowspan):1;for(var t=0;((t<colspan)&&((i+t)<rowLength));t++){for(var n=0;((n<rowspan)&&((c+n)<workArr.length));n++){workArr[(c+n)][(i+t)]=cel}};if(++celCount==rowArr[c].length) break}}};for(var c=0;c<workArr.length;c++){for(var i=0;i<workArr[c].length;i++){if(workArr[c][i].className.search("fd-column-")==-1&&workArr[c][i].className.search("sortable")!=-1) workArr[c][i].className=workArr[c][i].className+" fd-column-"+i;if(workArr[c][i].className.match('sortable')){workArr[c][i].className=workArr[c][i].className.replace(/forwardSort|reverseSort/,"");if(i==columnNum) sortable=workArr[c][i];thtext=fdTableSort.getInnerText(workArr[c][i]);if(workArr[c][i].getElementsByTagName&&workArr[c][i].getElementsByTagName('a').length){workArr[c][i].getElementsByTagName('a')[0].onclick=workArr[c][i].getElementsByTagName('a')[0].onkeypress=null}
while(workArr[c][i].firstChild) workArr[c][i].removeChild(workArr[c][i].firstChild);aclone=a.cloneNode(true);aclone.appendChild(document.createTextNode(thtext));aclone.title="Sort on \u201c"+thtext+"\u201d";aclone.onclick=workArr[c][i].onclick=fdTableSort.clickWrapper;workArr[c][i].appendChild(aclone);if(showArrow) workArr[c][i].appendChild(span.cloneNode(false));workArr[c][i].className=workArr[c][i].className.replace(/fd-identical|fd-not-identical/,"");fdTableSort.disableSelection(workArr[c][i]);aclone=null}}};fdTableSort.tmpCache[tbl.id]={cols:rowLength,headers:workArr};workArr=null;if(sortable){onLoadTables[onLoadTables.length]=sortable;if(reverse){onLoadTables[onLoadTables.length]=sortable}}};for(var i=0,thNode;thNode=onLoadTables[i];i++){fdTableSort.thNode=thNode;fdTableSort.initSort(false)};aclone=a.onkeypress=a=span=workArr=sortable=thNode=onLoadTables=tbl=allRowArr=rowArr=null},disableSelection: function(element){element.onselectstart=function(){return false};element.unselectable="on";element.style.MozUserSelect="none"},clickWrapper: function(e){e=e||window.event;if(fdTableSort.thNode==null){var targ=this;while(targ.tagName.toLowerCase()!="th") targ=targ.parentNode;fdTableSort.thNode=targ;fdTableSort.addSortActiveClass();setTimeout(fdTableSort.initSort,5,false)};return fdTableSort.stopEvent(e)},keyWrapper: function(e){e=e||window.event;var kc=e.keyCode!=null?e.keyCode:e.charCode;if(kc==13){var targ=this;while(targ.tagName.toLowerCase()!="th") targ=targ.parentNode;fdTableSort.thNode=targ;fdTableSort.addSortActiveClass();setTimeout(fdTableSort.initSort,5,false);return fdTableSort.stopEvent(e)};return true},jsWrapper: function(tableid,colNum){if(!fdTableSort.tmpCache[tableid]||fdTableSort.tmpCache[tableid].headers[0].length<=colNum||fdTableSort.tmpCache[tableid].headers[0][colNum].className.search(/fd-column/)==-1) return false;fdTableSort.thNode=fdTableSort.tmpCache[tableid].headers[0][colNum];fdTableSort.initSort(true)},addSortActiveClass: function(){if(fdTableSort.thNode==null) return;fdTableSort.addClass(fdTableSort.thNode,"sort-active");fdTableSort.addClass(document.getElementsByTagName('body')[0],"sort-active");var tableElem=fdTableSort.thNode;while(tableElem.tagName.toLowerCase()!='table'&&tableElem.parentNode){tableElem=tableElem.parentNode};if("sortInitiatedCallback-"+tableElem.id in window){window["sortInitiatedCallback-"+tableElem.id]()} else if("sortInitiatedCallback" in window){sortInitiatedCallback(tableElem.id)}},removeSortActiveClass: function(){fdTableSort.removeClass(fdTableSort.thNode,"sort-active");fdTableSort.removeClass(document.getElementsByTagName('body')[0],"sort-active");var tableElem=fdTableSort.thNode;while(tableElem.tagName.toLowerCase()!='table'&&tableElem.parentNode){tableElem=tableElem.parentNode};if("sortCompleteCallback-"+tableElem.id in window){window["sortCompleteCallback-"+tableElem.id]()} else if("sortCompleteCallback" in window){sortCompleteCallback(tableElem.id)}},addClass: function(e,c){if(new RegExp("(^|\\s)"+c+"(\\s|$)").test(e.className)) return;e.className+=(e.className?" ":"")+c},removeClass: function(e,c){e.className=!c?"":e.className.replace(new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))","g"),"")},prepareTableData: function(table){var data=[];var start=table.getElementsByTagName('tbody');start=start.length?start[0]:table;var trs=start.getElementsByTagName('tr');var ths=table.getElementsByTagName('th');var numberOfRows=trs.length;var numberOfCols=fdTableSort.tmpCache[table.id].cols;var data=[];var identical=new Array(numberOfCols);var identVal=new Array(numberOfCols);for(var tmp=0;tmp<numberOfCols;tmp++) identical[tmp]=true;var tr,td,th,txt,tds,col,row;var re=new RegExp(/fd-column-([0-9]+)/);var rowCnt=0;var sortableColumnNumbers=[];for(var tmp=0,th;th=ths[tmp];tmp++){if(th.className.search(re)==-1) continue;sortableColumnNumbers[sortableColumnNumbers.length]=th};for(row=0;row<numberOfRows;row++){tr=trs[row];if(tr.parentNode!=start||tr.getElementsByTagName("th").length||(tr.parentNode.tagName&&tr.parentNode.tagName.toLowerCase()=="tfoot")) continue;data[rowCnt]=[];tds=tr.getElementsByTagName('td');for(var tmp=0,th;th=sortableColumnNumbers[tmp];tmp++){col=th.className.match(re)[1];td=tds[col];txt=fdTableSort.getInnerText(td)+" ";txt=txt.replace(/^\s+/,'').replace(/\s+$/,'');if(th.className.search(/sortable-date/)!=-1){txt=fdTableSort.dateFormat(txt,th.className.search(/sortable-date-dmy/)!=-1)} else if(th.className.search(/sortable-numeric|sortable-currency/)!=-1){txt=parseFloat(txt.replace(/[^0-9\.\-]/g,''));if(isNaN(txt)) txt=""} else if(th.className.search(/sortable-text/)!=-1){txt=txt.toLowerCase()} else if(th.className.search(/sortable-keep/)!=-1){txt=rowCnt} else if(th.className.search(/sortable-([a-zA-Z\_]+)/)!=-1){if((th.className.match(/sortable-([a-zA-Z\_]+)/)[1]+"PrepareData") in window){txt=window[th.className.match(/sortable-([a-zA-Z\_]+)/)[1]+"PrepareData"](td,txt)}} else{if(txt!=""){fdTableSort.removeClass(th,"sortable");if(fdTableSort.dateFormat(txt)!=0){fdTableSort.addClass(th,"sortable-date");txt=fdTableSort.dateFormat(txt)} else if(txt.search(fdTableSort.regExp_Number)!=-1||txt.search(fdTableSort.regExp_Currency)!=-1){fdTableSort.addClass(th,"sortable-numeric");txt=parseFloat(txt.replace(/[^0-9\.\-]/g,''));if(isNaN(txt)) txt=""} else{fdTableSort.addClass(th,"sortable-text");txt=txt.toLowerCase()}}};if(rowCnt>0&&identical[col]&&identVal[col]!=txt){identical[col]=false};identVal[col]=txt;data[rowCnt][col]=txt};data[rowCnt][numberOfCols]=tr;rowCnt++}
var colStyle=table.className.search(/colstyle-([\S]+)/) != -1 ? table.className.match(/colstyle-([\S]+)/)[1]:false;var rowStyle=table.className.search(/rowstyle-([\S]+)/) != -1 ? table.className.match(/rowstyle-([\S]+)/)[1]:false;fdTableSort.tableCache[table.id]={data:data,identical:identical,colStyle:colStyle,rowStyle:rowStyle,noArrow:table.className.search(/no-arrow/)!=-1};sortableColumnNumbers=data=tr=td=th=trs=identical=identVal=null},onUnload: function(){for(tbl in fdTableSort.tableCache){fdTableSort.removeTableCache(tbl)}
for(tbl in fdTableSort.tmpCache){fdTableSort.removeTmpCache(tbl)}
fdTableSort.removeEvent(window,"load",fdTableSort.initEvt);fdTableSort.removeEvent(window,"unload",fdTableSort.onUnload);fdTableSort.tmpCache=fdTableSort.tableCache=null},removeTableCache: function(tableId){if(!(tableId in fdTableSort.tableCache)) return;var data=fdTableSort.tableCache[tableId].data;for(var i=0,row;row=data[i];i++){row[row.length-1]=null}
data=row=null;fdTableSort.tableCache[tableId]=null;delete fdTableSort.tableCache[tableId];var tbl=document.getElementById(tableId);if(!tbl) return;var ths=tbl.getElementsByTagName("th");var a;for(var i=0,th;th=ths[i];i++){a=th.getElementsByTagName("a");if(a.length) a[0].onkeypress=a[0].onclick=null;th.onclick=th.onselectstart=th=a=null}},removeTmpCache: function(tableId){if(!(tableId in fdTableSort.tmpCache)) return;var headers=fdTableSort.tmpCache[tableId].headers;var a
for(var i=0,row;row=headers[i];i++){for(var j=0,th;th=row[j];j++){a=th.getElementsByTagName("a");if(a.length) a[0].onkeypress=a[0].onclick=null;th.onclick=th.onselectstart=th=a=null}}
fdTableSort.tmpCache[tableId]=null;delete fdTableSort.tmpCache[tableId]},initSort: function(noCallback){var span;var thNode=fdTableSort.thNode;var tableElem=fdTableSort.thNode;while(tableElem.tagName.toLowerCase()!='table'&&tableElem.parentNode){tableElem=tableElem.parentNode};if(!tableElem.id||!(tableElem.id in fdTableSort.tableCache)){fdTableSort.prepareTableData(tableElem)};fdTableSort.tableId=tableElem.id;fdTableSort.pos=thNode.className.match(/fd-column-([0-9]+)/)[1];var dataObj=fdTableSort.tableCache[tableElem.id];var lastPos=dataObj.pos?dataObj.pos.className.match(/fd-column-([0-9]+)/)[1]:-1;var data=dataObj.data;var colStyle=dataObj.colStyle;var rowStyle=dataObj.rowStyle;var len1=data.length;var len2=data.length>0?data[0].length-1:0;var identical=dataObj.identical[fdTableSort.pos];var noArrow=dataObj.noArrow;if(lastPos!=fdTableSort.pos&&lastPos!=-1){var th=dataObj.pos;fdTableSort.removeClass(th,"(forwardSort|reverseSort)");if(!noArrow){span=th.getElementsByTagName('span')[0];while(span.firstChild) span.removeChild(span.firstChild)}};var classToAdd="forwardSort";if((lastPos==fdTableSort.pos&&!identical)||(thNode.className.search(/sortable-keep/)!=-1&&lastPos==-1)){data.reverse();classToAdd=thNode.className.search(/reverseSort/)!=-1?"forwardSort":"reverseSort";if(thNode.className.search(/sortable-keep/)!=-1&&lastPos==-1) fdTableSort.tableCache[tableElem.id].pos=thNode} else{fdTableSort.tableCache[tableElem.id].pos=thNode;if(!identical){if(thNode.className.match(/sortable-(numeric|currency|date|keep)/)){data.sort(fdTableSort.sortNumeric)} else if(thNode.className.match('sortable-text')){data.sort(fdTableSort.sortText)} else if(thNode.className.search(/sortable-([a-zA-Z\_]+)/) != -1 && thNode.className.match(/sortable-([a-zA-Z\_]+)/)[1] in window){data.sort(window[thNode.className.match(/sortable-([a-zA-Z\_]+)/)[1]])}}};fdTableSort.removeClass(thNode,"(forwardSort|reverseSort)");fdTableSort.addClass(thNode,classToAdd);if(!noArrow){var arrow=thNode.className.search(/forwardSort/)!=-1?" \u2193":" \u2191";span=thNode.getElementsByTagName('span')[0];while(span.firstChild) span.removeChild(span.firstChild);span.appendChild(document.createTextNode(arrow))};if(!rowStyle&&!colStyle&&identical){if(!noCallback) fdTableSort.removeSortActiveClass();fdTableSort.thNode=null;return}
var hook=tableElem.getElementsByTagName('tbody');hook=hook.length?hook[0]:tableElem;var tr,tds;var rowReg=rowStyle?new RegExp("(^|\\s*\\b[^-])"+rowStyle+"($|\\b(?=[^-]))","g"):false;var colReg=colStyle?new RegExp("(^|\\s*\\b[^-])"+colStyle+"($|\\b(?=[^-]))","g"):false;for(var i=0;i<len1;i++){tr=data[i][len2];if(colStyle){tds=tr.getElementsByTagName('td');if(lastPos!=-1){tds[lastPos].className=tds[lastPos].className.replace(colReg,"")}
fdTableSort.addClass(tds[fdTableSort.pos],colStyle);tds=null};if(!identical){if(rowStyle){if(i%2) fdTableSort.addClass(tr,rowStyle);else tr.className=tr.className.replace(rowReg,"")};hook.removeChild(tr);hook.appendChild(tr)};tr=null};if(!noCallback) fdTableSort.removeSortActiveClass();fdTableSort.thNode=hook=null},getInnerText: function(el){if(typeof el=="string"||typeof el=="undefined") return el;if(el.innerText) return el.innerText;var txt='',i;for(i=el.firstChild;i;i=i.nextSibling){if(i.nodeType==3) txt+=i.nodeValue;else if(i.nodeType==1) txt+=fdTableSort.getInnerText(i)};return txt},dateFormat: function(dateIn,favourDMY){var dateTest=[{regExp:/^(0?[1-9]|1[012])([-\/.])(0?[1-9]|[12][0-9]|3[01])([- \/.])((\d\d)?\d\d)$/,d:3,m:1,y:5},{regExp:/^(0?[1-9]|[12][0-9]|3[01])([-\/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,d:1,m:3,y:5},{regExp:/^(\d\d\d\d)([-\/.])(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])$/,d:5,m:3,y:1}];var start;var cnt=0;var numFormats=dateTest.length;while(cnt<numFormats){start=(cnt+(favourDMY?numFormats+1:numFormats))%numFormats;if(dateIn.match(dateTest[start].regExp)){res=dateIn.match(dateTest[start].regExp);y=res[dateTest[start].y];m=res[dateTest[start].m];d=res[dateTest[start].d];if(m.length==1) m="0"+String(m);if(d.length==1) d="0"+String(d);if(y.length!=4) y=(parseInt(y)<50)?"20"+String(y):"19"+String(y);return y+String(m)+d}
cnt++}
return 0},sortDate: function(a,b){var aa=a[fdTableSort.pos];var bb=b[fdTableSort.pos];return aa-bb},sortNumeric:function(a,b){var aa=a[fdTableSort.pos];var bb=b[fdTableSort.pos];if(aa==bb) return 0;if(aa===""&&!isNaN(bb)) return-1;if(bb===""&&!isNaN(aa)) return 1;return aa-bb},sortText:function(a,b){var aa=a[fdTableSort.pos];var bb=b[fdTableSort.pos];if(aa==bb) return 0;if(aa<bb) return-1;return 1}};fdTableSort.addEvent(window,"load",fdTableSort.initEvt);fdTableSort.addEvent(window,"unload",fdTableSort.onUnload);
function initialZebraStripe(){var tables=document.getElementsByTagName("table");var rowStyle,start,trs;for(var k=0,table;table=tables[k];k++){if(table.className.search(/rowstyle-([\S]+)/)==-1) continue;rowStyle=table.className.match(/rowstyle-([\S]+)/)[1];start=table.getElementsByTagName('tbody');start=start.length?start[0]:table;trs=start.getElementsByTagName('tr');for(var i=0,tr;tr=trs[i];i++){if(tr.getElementsByTagName('th').length>0||(tr.parentNode&&tr.parentNode.tagName.toLowerCase()=="tfoot")) continue;if(i%2) fdTableSort.addClass(tr,rowStyle);else fdTableSort.removeClass(tr,rowStyle);/*@cc_on
 /*@if (@_jscript_version >= 5)

/*@end
 @*/}}};fdTableSort.addEvent(window,"load",initialZebraStripe);
