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

/* - ++resource++carousel.js - */
// http://www.los.dk/portal_javascripts/++resource++carousel.js?original=1
(function($){
function PloneCarousel(container,opts){var carousel=this;this.parent_container=$(container);this.container=this.parent_container.find('.carousel-banners');this.banners=this.container.find('.carousel-banner');this.current_index=0;this.max_index=this.banners.length-1;this.animating=false;this.opts=opts;this.container.add(this.banners).height(opts.height).width(opts.width).css({position:'relative',overflow:'hidden'});this.banners.css({position:'absolute'});this.triggerEvent=function(name,extra_args){var args=[this];if(extra_args!=undefined){args=args.concat(extra_args)}
this.parent_container.triggerHandler(name,args)};this.shiftIndex=function(offset,old_index){old_index=(old_index==undefined)?this.current_index:old_index;var new_index=old_index+offset;if(new_index>this.max_index){new_index-=this.banners.length} else if(new_index<0){new_index+=this.banners.length}
return new_index};this.nextBanner=function(){this.animateTo(this.shiftIndex(1))};this.prevBanner=function(){this.animateTo(this.shiftIndex(-1))};this.animateTo=function(index){};this.play=function(){if(carousel.timer){clearInterval(carousel.timer)}
carousel.timer=setInterval(function(){carousel.nextBanner()},carousel.opts.delay);carousel.triggerEvent('play')};this.pause=function(){if(carousel.timer){clearInterval(carousel.timer)}
carousel.triggerEvent('pause')}};
function FadingPloneCarousel(container,opts){PloneCarousel.apply(this,[container,opts]);var carousel=this;this.animateTo=function(index){if(index==this.current_index||this.animating) return;this.triggerEvent('beforeAnimate',[this.current_index,index]);this.animating=true;this.banners.not(':eq('+index.toString()+')').fadeOut(this.opts.speed, function(){carousel.current_index=index});this.banners.eq(index).fadeIn(this.opts.speed, function(){var old_index=carousel.current_index=index;carousel.animating=false;carousel.triggerEvent('afterAnimate',[old_index,index])})}};
function SlidingPloneCarousel(container,opts){PloneCarousel.apply(this,[container,opts]);var carousel=this;this.banners.wrapAll('<div class="carousel-slider" />');this.slider=this.container.find('.carousel-slider').height(this.opts.height).width(this.opts.width * this.banners.length).css({position:'absolute',left:0,top:0});this.nextBanner=function(){this.animateTo(this.shiftIndex(1),'left')};this.prevBanner=function(){this.animateTo(this.shiftIndex(-1),'right')};this.animateTo=function(index,direction){if(index==this.current_index||this.animating) return;this.animating=true;this.triggerEvent('beforeAnimate',[this.current_index,index]);direction=(direction==undefined)?'left':direction;var shift=(direction=='left')?-carousel.current_index:carousel.max_index-carousel.current_index;this.banners.each(function(banner_index,banner){var new_index=carousel.shiftIndex(shift,banner_index);$(banner).css('left',(new_index * carousel.opts.width)).show()});var start_left=(direction=='left')?0:-this.opts.width * this.max_index;this.slider.css('left',start_left);var index_offset=this.shiftIndex(shift,index);this.slider.animate({left:-this.opts.width * index_offset},this.opts.speed,'swing', function(){var old_index=carousel.current_index=index;carousel.animating=false;carousel.triggerEvent('afterAnimate',[old_index,index])})}};$.fn.ploneCarousel=function(options){var opts=$.extend({},$.fn.ploneCarousel.defaults,options);return this.each(function(){var container=$(this);var carousel=$.fn.ploneCarousel.selectCarousel(container,opts);$.fn.ploneCarousel.initCarousel(carousel);$.fn.ploneCarousel.initPager(carousel);$.fn.ploneCarousel.initEvents(carousel)})};$.fn.ploneCarousel.defaults={speed:500,delay:8000,height:0,width:0,transition:'fade'};$.fn.ploneCarousel.selectCarousel=function(container,opts){if(opts.transition=='fade'){return new FadingPloneCarousel(container,opts)} else{return new SlidingPloneCarousel(container,opts)}};$.fn.ploneCarousel.initCarousel=function(carousel){carousel.play();carousel.parent_container.hover(carousel.pause,carousel.play);carousel.banners.eq(0).addClass('carousel-banner-active')};$.fn.ploneCarousel.initPager=function(carousel){var pager_items=carousel.parent_container.find('.carousel-pager-item');pager_items.filter(':first').addClass('carousel-pager-item-first carousel-pager-item-active');pager_items.filter(':last').addClass('carousel-pager-item-last');pager_items.click(function(){carousel.animateTo(pager_items.index($(this)));return false});carousel.parent_container.find('.carousel-pager-button-prev').click(function(){carousel.prevBanner();return false});carousel.parent_container.find('.carousel-pager-button-next').click(function(){carousel.nextBanner();return false})};$.fn.ploneCarousel.initEvents=function(carousel){var pager_items=carousel.parent_container.find('.carousel-pager-item');carousel.parent_container.bind('beforeAnimate', function(e,carousel,old_index,new_index){carousel.banners.removeClass('carousel-banner-active').eq(new_index).addClass('carousel-banner-active');pager_items.removeClass('carousel-pager-item-active').eq(new_index).addClass('carousel-pager-item-active')})}})(jQuery);

/* - ++resource++z3c.listjs/listjs.js - */
// http://www.los.dk/portal_javascripts/++resource++z3c.listjs/listjs.js?original=1
if(typeof Z3C=="undefined"||!Z3C){var Z3C={}}
Z3C.namespace=function(name){var ns=Z3C;var parts=name.split(".");if(parts[0]=="Z3C"){parts=parts.slice(1)}
for(var i=0;i<parts.length;i++){var part=parts[i];ns[part]=ns[part]||{};ns=ns[part]}
return ns};(function(){Z3C.namespace('listjs');var disconnected_editor_ids=[];var startswith=function(s,prefix){return(s.substring(0,prefix.length)==prefix)};var isNumber=function(o){return typeof o==='number'&&isFinite(o)};var renumber=function(s,nr){var i;var fragment;var fragments=s.split('.');var result=[];for(i=0;i<fragments.length;i++){fragment=fragments[i];if(isNumber(parseInt(fragment))){result[result.length]=nr.toString()} else if(startswith(fragment,'remove_')){result[result.length]='remove_'+nr.toString()} else{result[result.length]=fragment}};return result.join('.')};var renumberScript=function(s,nr,prefix){var tomatch=new RegExp(prefix+'[^"\']*','g');var potentials=s.match(tomatch);if(potentials==null){return s}
var original=potentials[0];var renumbered=renumber(original,nr);return s.replace(original,renumbered)};var getElementsByClassName=function(class_name,root_el,tag){tag=tag||'*';var result=[];var elements=root_el.getElementsByTagName(tag);for(var i=0,len=elements.length;i<len;++i){if(elements[i].className==class_name){result[result.length]=elements[i]}}
return result};var updateNumbers=function(el,nr,prefix){if(el.nodeType!=1){return}
if(el.tagName.toLowerCase()=='script'){el.text=renumberScript(el.text,nr,prefix);return}
var i;var attributes=['id','name','for'];for(i=0;i<attributes.length;i++){var attr=el.getAttribute(attributes[i]);if(attr&&startswith(attr,prefix)){el.setAttribute(attributes[i],renumber(attr,nr))}}
var onclick_attr=el.getAttribute('onclick');if(onclick_attr){el.setAttribute('onclick',renumberScript(onclick_attr,nr,prefix))}
var node=el.firstChild;while(node){updateNumbers(node,nr,prefix);node=node.nextSibling}};var updateAllNumbers=function(prefix){var table_el=document.getElementById(prefix+'.table');var els=getElementsByClassName('list_item',table_el,'tr');var i;for(i=0;i<els.length;i++){updateNumbers(els[i],i,prefix);runScripts(els[i])}
var count_el=document.getElementById(prefix+'.count');count_el.value=els.length};var disconnectEditors=function(affected_elements){if(tinyMCE){disconnected_editor_ids=[];for(var n in tinyMCE.editors){var inst=tinyMCE.editors[n];if(!inAffectedElements(inst.getElement(),affected_elements)){continue}
disconnected_editor_ids.push(inst.id);tinyMCE.execCommand('mceFocus',false,inst.id);tinyMCE.execCommand('mceRemoveControl',false,inst.id)}}};var reconnectEditors=function(){if(tinyMCE){for(i=0;i<disconnected_editor_ids.length;i++){var editor_id=disconnected_editor_ids[i];if(!tinyMCE.get(editor_id)){tinyMCE.execCommand('mceAddControl',false,editor_id)}}}};var inAffectedElements=function(el,affected_elements){for(var i=0;i<affected_elements.length;i++){if(isAncestor(affected_elements[i],el)){return true}}
return false};var isAncestor=function(a,b){while(b){if(a===b){return true}
b=b.parentNode}
return false}
var runScripts=function(e){if(e.nodeType!=1){return}
if(e.tagName.toLowerCase()=='script'){if(window.execScript){window.execScript(e.text)} else{with(window){window.eval(e.text)}}} else{var n=e.firstChild;while(n){if(n.nodeType==1){runScripts(n)}
n=n.nextSibling}}};Z3C.listjs.add=function(prefix){var table_el=document.getElementById(prefix+'.table');var template_el=document.getElementById(prefix+'.template');var template_text=template_el.value;var buttons_el=document.getElementById(prefix+'.buttons');var new_tr=document.createElement('tr');new_tr.className='list_item';buttons_el.parentNode.insertBefore(new_tr,buttons_el);var td1=document.createElement('td');var td2=document.createElement('td');var td3=document.createElement('td');new_tr.appendChild(td1);new_tr.appendChild(td2);new_tr.appendChild(td3);var cb=document.createElement('input');cb.className='editcheck';cb.type='checkbox';cb.name=prefix+'.remove_0';td1.appendChild(cb);td2.innerHTML=template_text;var div_up=document.createElement('div');var div_down=document.createElement('div');var a_up=document.createElement('a');var a_down=document.createElement('a');a_up.className='up_button';a_down.className='down_button';a_up.onclick=function(){Z3C.listjs.up(prefix,this)};a_down.onclick=function(){Z3C.listjs.down(prefix,this)};td3.appendChild(div_up);td3.appendChild(div_down);div_up.appendChild(a_up);div_down.appendChild(a_down);updateAllNumbers(prefix)};Z3C.listjs.remove=function(prefix){var table_el=document.getElementById(prefix+'.table');var els=getElementsByClassName('editcheck',table_el,'input');var i;var to_remove=[];for(i=0;i<els.length;i++){if(els[i].checked){to_remove[to_remove.length]=els[i].parentNode.parentNode}}
for(i=0;i<to_remove.length;i++){to_remove[i].parentNode.removeChild(to_remove[i])}
updateAllNumbers(prefix)};Z3C.listjs.up=function(prefix,el){while(el.className!='list_item'){el=el.parentNode}
var previous_el=el.previousSibling;while(previous_el!=null&&previous_el.className!='list_item'){previous_el=previous_el.previousSibling}
if(previous_el==null){return}
disconnectEditors([el,previous_el]);previous_el.parentNode.insertBefore(el,previous_el);updateAllNumbers(prefix);reconnectEditors()};Z3C.listjs.down=function(prefix,el){while(el.className!='list_item'){el=el.parentNode}
var next_el=el.nextSibling;while(next_el!=null&&next_el.className!='list_item'){next_el=next_el.nextSibling}
if(next_el==null){return}
disconnectEditors([el,next_el]);next_el.parentNode.insertBefore(el,next_el.nextSibling);updateAllNumbers(prefix);reconnectEditors()}})();

