Drupal.locale = { 'pluralFormula': function ($n) { return Number(($n!=1)); }, 'strings': {"":{"An AJAX HTTP error occurred.":"Tapahtui AJAX HTTP virhe.","HTTP Result Code: !status":"HTTP koodi: !status","An AJAX HTTP request terminated abnormally.":"AJAX HTTP pyynt\u00f6 keskeytyi odottamatta.","Debugging information follows.":"Seuraavassa virhetiedot.","Path: !uri":"Polku: !url","StatusText: !statusText":"Tilanneteksti: !statusText","ResponseText: !responseText":"Vastausteksti: !responseText","ReadyState: !readyState":"ReadyState: !readyState","Loading":"Lataa","(active tab)":"(aktiivinen v\u00e4lilehti)","Hide":"Piilossa","Show":"N\u00e4yt\u00e4","Re-order rows by numerical weight instead of dragging.":"Uudelleenlajittele rivit numeerisen painon mukaan ved\u00e4-pudota toiminnon sijaan.","Show row weights":"N\u00e4yt\u00e4 rivien painokertoimet","Hide row weights":"Piilota rivien painokertoimet","Drag to re-order":"J\u00e4rjestele vet\u00e4m\u00e4ll\u00e4","Changes made in this table will not be saved until the form is submitted.":"Muutokset otetaan k\u00e4ytt\u00f6\u00f6n vasta kun valitset \u003cem\u003etallenna\u003c\/em\u003e.","Enabled":"K\u00e4yt\u00f6ss\u00e4","Hide shortcuts":"Piilota oikopolut","Select all rows in this table":"Valitse kaikki taulukon rivit","Deselect all rows in this table":"Poista kaikkien rivien valinnat","Edit":"Muokkaa","Disabled":"Ei k\u00e4yt\u00f6ss\u00e4","Configure":"M\u00e4\u00e4rittele","Done":"Tehty","Not published":"Ei julkaistu","Please wait...":"Odota hetki...","By @name on @date":"@name p\u00e4iv\u00e4n\u00e4 @date","By @name":"@name","Not in menu":"Ei valikossa","Alias: @alias":"Alias: @alias","No alias":"Ei aliasta","New revision":"Uusi versio","The changes to these blocks will not be saved until the \u003cem\u003eSave blocks\u003c\/em\u003e button is clicked.":"Lohkojen muutoksia ei tallenneta ennen kuin klikkaat \u003cem\u003eTallenna\u003c\/em\u003e-painiketta.","Show shortcuts":"N\u00e4yt\u00e4 oikopolut","This permission is inherited from the authenticated user role.":"Oikeus on periytetty k\u00e4ytt\u00e4j\u00e4roolista \"autentikoitu k\u00e4ytt\u00e4j\u00e4\".","No revision":"Ei versiota","@number comments per page":"@number kommenttia sivua kohti","Requires a title":"Vaatii otsikon","Not restricted":"Ei rajoitettu","Not customizable":"Ei mukautettavissa","Restricted to certain pages":"Rajoitettu tiettyihin sivuihin","The block cannot be placed in this region.":"Lohkoa ei voi asettaa t\u00e4h\u00e4n alueeseen.","Customize dashboard":"Kustomoi kojelautaa","Hide summary":"Piilota yhteenveto","Edit summary":"Muokkaa yhteenvetoa","Don't display post information":"\u00c4l\u00e4 n\u00e4yt\u00e4 l\u00e4hetyksen tietoja","@title dialog":"@title dialogi","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"Tiedostoa %filename ei voida ladata. Sallitu tiedostop\u00e4\u00e4tteet: %extensions.","Autocomplete popup":"Automaattisen t\u00e4ydennyksen ponnahdusikkuna","Searching for matches...":"Haetaan tuloksia..."}} };;

/*
 * Superfish v1.4.8 - jQuery menu widget
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */

;(function($){
	$.fn.superfish = function(op){

		var sf = $.fn.superfish,
			c = sf.c,
			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
			over = function(){
				var $$ = $(this), menu = getMenu($$);
				clearTimeout(menu.sfTimer);
				$$.showSuperfishUl().siblings().hideSuperfishUl();
			},
			out = function(){
				var $$ = $(this), menu = getMenu($$), o = sf.op;
				clearTimeout(menu.sfTimer);
				menu.sfTimer=setTimeout(function(){
					o.retainPath=($.inArray($$[0],o.$path)>-1);
					$$.hideSuperfishUl();
					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
				},o.delay);	
			},
			getMenu = function($menu){
				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
				sf.op = sf.o[menu.serial];
				return menu;
			},
			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
			
		return this.each(function() {
			var s = this.serial = sf.o.length;
			var o = $.extend({},sf.defaults,op);
			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
					.filter('li:has(ul)').removeClass(o.pathClass);
			});
			sf.o[s] = sf.op = o;
			
			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
				if (o.autoArrows) addArrow( $('>a:first-child',this) );
			})
			.not('.'+c.bcClass)
				.hideSuperfishUl();
			
			var $a = $('a',this);
			$a.each(function(i){
				var $li = $a.eq(i).parents('li');
				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
			});
			o.onInit.call(this);
			
		}).each(function() {
			var menuClasses = [c.menuClass];
			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
			$(this).addClass(menuClasses.join(' '));
		});
	};

	var sf = $.fn.superfish;
	sf.o = [];
	sf.op = {};
	sf.IE7fix = function(){
		var o = sf.op;
		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
			this.toggleClass(sf.c.shadowClass+'-off');
		};
	sf.c = {
		bcClass     : 'sf-breadcrumb',
		menuClass   : 'sf-js-enabled',
		anchorClass : 'sf-with-ul',
		arrowClass  : 'sf-sub-indicator',
		shadowClass : 'sf-shadow'
	};
	sf.defaults = {
		hoverClass	: 'sfHover',
		pathClass	: 'overideThisToUse',
		pathLevels	: 1,
		delay		: 800,
		animation	: {opacity:'show'},
		speed		: 'normal',
		autoArrows	: true,
		dropShadows : true,
		disableHI	: false,		// true disables hoverIntent detection
		onInit		: function(){}, // callback functions
		onBeforeShow: function(){},
		onShow		: function(){},
		onHide		: function(){}
	};
	$.fn.extend({
		hideSuperfishUl : function(){
			var o = sf.op,
				not = (o.retainPath===true) ? o.$path : '';
			o.retainPath = false;
			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
					.find('>ul').hide().css('visibility','hidden');
			o.onHide.call($ul);
			return this;
		},
		showSuperfishUl : function(){
			var o = sf.op,
				sh = sf.c.shadowClass+'-off',
				$ul = this.addClass(o.hoverClass)
					.find('>ul:hidden').css('visibility','visible');
			sf.IE7fix.call($ul);
			o.onBeforeShow.call($ul);
			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
			return this;
		}
	});

})(jQuery);
;
/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-06-19 20:25:28 -0500 (Tue, 19 Jun 2007) $
 * $Rev: 2111 $
 *
 * Version 2.1
 */
(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};if(!$.browser.version)$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1];})(jQuery);;
﻿/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);;

// This uses Superfish 1.4.8
// (http://users.tpg.com.au/j_birch/plugins/superfish)

// Add Superfish to all Nice menus with some basic options.
(function ($) {
  $(document).ready(function() {
    $('ul.nice-menu').superfish({
      // Apply a generic hover class.
      hoverClass: 'over',
      // Disable generation of arrow mark-up.
      autoArrows: false,
      // Disable drop shadows.
      dropShadows: false,
      // Mouse delay.
      delay: Drupal.settings.nice_menus_options.delay,
      // Animation speed.
      speed: Drupal.settings.nice_menus_options.speed
    // Add in Brandon Aaron’s bgIframe plugin for IE select issues.
    // http://plugins.jquery.com/node/46/release
    }).find('ul').bgIframe({opacity:false});
    $('ul.nice-menu ul').css('display', 'none');
  });
})(jQuery);
;

if(!this.JSON){JSON={};}
(function(){function f(n){return n<10?'0'+n:n;}
if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}
var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapeable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapeable.lastIndex=0;return escapeable.test(string)?'"'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}
return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}
function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}
if(typeof rep==='function'){value=rep.call(holder,key,value);}
switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
gap+=indent;partial=[];if(typeof value.length==='number'&&!value.propertyIsEnumerable('length')){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}
v=partial.length===0?'[]':gap?'[\n'+gap+
partial.join(',\n'+gap)+'\n'+
mind+']':'['+partial.join(',')+']';gap=mind;return v;}
if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}
v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+
mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}
if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}
rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}
return str('',{'':value});};}
if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}
return reviver.call(holder,key,value);}
cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+
('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}
if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}
throw new SyntaxError('JSON.parse');};}})();;
(function ($) {
/**
  * Set image settings
  * only used if no template is choosen for the dynamic display block
  */
Drupal.behaviors.ddblockImg = {
  attach: function(context, settings) {
    for (var base in settings.ddblockImages) {
      // get variables
      var ddblockSettings = settings.ddblockImages[base];

      // if no template and CCS is used set the image dimensions here
      if (ddblockSettings.setDimensions == 'none') {
        if ((ddblockSettings.imageHeight > 0) && (ddblockSettings.imageWidth > 0 )) {
          $('#ddblock-'+ ddblockSettings.block +' .ddblock-container img:not(.ddblock-processed)', context)
          .css('height',ddblockSettings.imageHeight + 'px')
          .css('width',ddblockSettings.imageWidth + 'px')
          .addClass('ddblock-processed');
        }
        else{
          $('#ddblock-'+ ddblockSettings.block +' .slider:not(.ddblock-slider-visble-processed)', context)
          .addClass('overflow-visible')
          .addClass('ddblock-slider-visible-processed');        
        }
      }
    }
  }
};

/**
  * Set content dimensions.
  * only used if no template is choosen for the dynamic display block
  */
Drupal.behaviors.ddblockImgContainer = {
  attach: function(context, settings) {
    for (var base in settings.ddblockImageContainer) {
      // get variables
      var ddblockSettings = settings.ddblockImageContainer[base];
      // if no template and CCS is used set the content dimensions here
      if (ddblockSettings.setDimensions == 'none') {
        if ((ddblockSettings.imageContainerHeight > 12) && (ddblockSettings.imageContainerWidth > 12 )) {

          $('#ddblock-' + ddblockSettings.block  +' .ddblock-container:not(.ddblock-processed)', context)
          .css('height',ddblockSettings.imageContainerHeight + 'px')
          .css('width',ddblockSettings.imageContainerWidth + 'px')
          .css('overflow','hidden')
          .addClass('ddblock-processed');
        }
      }
    }
  }
};

/**
  * Set the cycle plugin settings.
  *
  * Examples how and what to override for your own blocks
  *   Replace ddblockCycle with the ddblockCycle[BLOCKNUMBER]
  *   Change the onBefore and onAfter functions
  *
  */
Drupal.behaviors.ddblockCycle = {
  attach: function(context, settings) {

    //helper function to clone the options object
    function CloneObject(inObj) {
      for (i in inObj) {
        this[i] = inObj[i];
      }
    }

    // cycle Plugin onBefore function to add functionality before the next slide shows up
    // can be used to add the following effects to slide-text
    // fadeOut - Fade out all matched elements by adjusting their opacity and firing an optional callback after completion.
    // slideUp - Hide all matched elements by adjusting their height and firing an optional callback after completion.
    // hide - Hide all matched elements using a graceful animation and firing an optional callback after completion.
    function onBefore(curr, next, opts, fwd) {
      if (opts.currSlide != opts.nextSlide) {
        if (opts.slideTextjQuery == 1){
          if (opts.slideTextEffectBeforeSpeed == 0) {
            opts.slideTextEffectBeforeSpeed = 1;
          };
          if (opts.slideTextEffectBeforeEasing == 'none') {
            opts.slideTextEffectBeforeEasing = '';
          };
          switch (opts.slideTextEffectBefore) {
            case "fadeOut":
              $("#ddblock-" + opts.ddblocknr + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition)
              .stop(true,true)
              .fadeOut(opts.slideTextEffectBeforeSpeed, opts.slideTextEffectBeforeEasing);
              $("#ddblock-"+ opts.ddblocknr + ' div.slide-' + opts.nextSlide + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition).css({"display":"none"});
            break;
            case "slideUp":
              $("#ddblock-"+ opts.ddblocknr + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition)
              .stop(true,true)
              .slideUp(opts.slideTextEffectBeforeSpeed, opts.slideTextEffectBeforeEasing);
//              .effect('easeOutBounce','',opts.slideTextEffectAfterSpeed);
             $("#ddblock-"+ opts.ddblocknr + ' div.slide-' + opts.nextSlide + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition).css({"display":"none"});
            break;
            default:
              $("#ddblock-"+ opts.ddblocknr + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition)
              .stop(true,true)
              .hide(opts.slideTextEffectBeforeSpeed, opts.slideTextEffectBeforeEasing);
              $("#ddblock-"+ opts.ddblocknr + ' div.slide-' + opts.nextSlide + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition).css({"display":"none"});
           }
        }
      }
    }

    // cycle Plugin onAfter function to add functionality after the next slide shows up
    // can be used to add the following effects to slide-text
    // fadein - Fade in all matched elements by adjusting their opacity and firing an optional callback after completion.
    // slideDown - Reveal all matched elements by adjusting their height and firing an optional callback after completion.
    // show - Show all matched elements using a graceful animation and firing an optional callback after completion.
    function onAfter(curr, next, opts, fwd) {
      if (opts.slideTextjQuery == 1){
        if (opts.slideTextEffectAfterSpeed == 0) {
          opts.slideTextEffectAfterSpeed = 1;
        };
        if (opts.slideTextEffectAfterEasing == 'none') {
          opts.slideTextEffectAfterEasing = '';
        };
        switch (opts.slideTextEffectAfter) {
          case "fadeIn":
            $("#ddblock-"+ opts.ddblocknr + ' ' + opts.slideTextContainer + '-'  + opts.slideTextPosition)
            .fadeIn(opts.slideTextEffectAfterSpeed, opts.slideTextEffectAfterEasing);
            $("#ddblock-"+ opts.ddblocknr + ' div.slide-' + opts.nextSlide + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition).css({"display":"none"});
          break;
          case 'slideDown':
            $("#ddblock-"+ opts.ddblocknr + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition)
            .slideDown(opts.slideTextEffectAfterSpeed, opts.slideTextEffectAfterEasing);
            $("#ddblock-"+ opts.ddblocknr + ' div.slide-' + opts.nextSlide + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition).css({"display":"none"});
          break;
          default:
            $("#ddblock-"+ opts.ddblocknr + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition)
            .show(opts.slideTextEffectAfterSpeed, opts.slideTextEffectAfterEasing);
            $("#ddblock-"+ opts.ddblocknr + ' div.slide-' + opts.nextSlide + ' ' + opts.slideTextContainer + '-' + opts.slideTextPosition).css({"display":"none"});
        }
      }
      //when scrollable pager is used set active pager-item to current slide
      if (opts.pager1 == 'scrollable-pager' && opts.myScrollable){
        opts.myScrollable.click(opts.currSlide);
      }

      // show pager count (0 of x)
      $("#ddblock-"+ opts.ddblocknr + ' ' + 'a.count').html((opts.currSlide + 1) + " of " + opts.slideCount);

      // Only show prev if previous slide exist - Only show next if next slide exist
      if (opts.pagerPrevNextLoop == 0) {
        var index = $(this).parent().children().index(this);
        $("#ddblock-"+ opts.ddblocknr + ' li.pager-prev ' + ' a.prev')[index == 0 ? 'hide' : 'show']();
        $("#ddblock-"+ opts.ddblocknr + ' li.pager-prev ' + ' a.next')[index == opts.slideCount - 1 ? 'hide' : 'show']();
      }

      // For prev/next pager in the slides. Only show prev if previous slide exist - Only show next if next slide exist

      if (opts.pager2SlideHide == 1) {
        var index = $(this).parent().children().index(this);
        $("#ddblock-"+ opts.ddblocknr + ' div.prev-container ' + 'a.prev')[index == 0 ? 'hide' : 'show']();
        $("#ddblock-"+ opts.ddblocknr + ' div.next-container ' + 'a.next')[index == opts.slideCount - 1 ? 'hide' : 'show']();
      }
    }

    i=0;
    for (var base in settings.ddblockContent) {
      // new options var for every block
      var options = new CloneObject($.fn.cycle.defaults);

      // simplify variable name
      var ddblockSettings = settings.ddblockContent[base];
      var block = ddblockSettings.block;
      var custom = ddblockSettings.custom;
      var pager = ddblockSettings.pager;
      var pager2 = ddblockSettings.pager2;
      var contentContainer = ddblockSettings.contentContainer;
      var pagerContainer = ddblockSettings.pagerContainer;

      // if not processed
      if (!$('#ddblock-' + block + '.ddblock-processed', context).size()) {

        // set transition option
        options.fx = ddblockSettings.fx;
//        options.easeOut = ddblockSettings.easeOut;
        if (ddblockSettings.easeOut != 'none') {
          options.easeOut = ddblockSettings.easeOut;
        }  
        if (ddblockSettings.easeIn != 'none') {
          options.easeIn = ddblockSettings.easeIn;
        }  

        //set delay option for the blocks at different values so they less interfere with eachother
        options.delay = i * -1000;

        // set pager. You can have only one pager per block this way
        if (pager == 'image-pager' || pager == 'number-pager' || pager == 'custom-pager' || pager == 'scrollable-pager') {
          // number pager, image pager , custom pager and scrollable pager
          options.pager = "#ddblock-" + pager + "-" + block;

          //store pager1
          options.pager1 = pager;

          if (pager == 'number-pager') {
            options.pagerAnchorBuilder = function(idx, slide) {
              // return selector string for existing anchor
              return "#ddblock-" + pager + "-" + block + " li.number-pager-item:eq(" + idx + ") a.pager-link";
            }
          }
          if (pager == 'image-pager') {
            options.pagerAnchorBuilder = function(idx, slide) {
              // return selector string for existing anchor
              return "#ddblock-" + pager + "-" + block + " li:eq(" + idx + ") a";
            }
          }
          if (pager == 'custom-pager') {
            options.pagerAnchorBuilder = function(idx, slide) {
              // return selector string for existing anchor
              return "#ddblock-" + pager + "-" + block + " " + pagerContainer + ":eq(" + idx + ") a.pager-link";
            }
          }
          if (pager == 'scrollable-pager') {
            options.pagerAnchorBuilder = function(idx, slide) {
              // return selector string for existing anchor
              return "#ddblock-" + pager + "-" + block + " " + pagerContainer + ":eq(" + idx + ") a.pager-link";
            }
          }
        } // set pager.
        if (pager == 'prev-next-pager' || pager2 == 1) {
          //store pagerPrevNextLoop
          options.pagerPrevNextLoop = ddblockSettings.pagerPrevNextLoop;
          options.prev = "#ddblock-"+ block + " .prev";
          options.next = "#ddblock-"+ block + " .next";
        }
        else {
          //set next
          if (ddblockSettings.next == 1) {
            options.next = "#ddblock-"+ block + ' ' + contentContainer;
          }
        }

        //set event which drives the pager navigation
        options.pagerEvent = ddblockSettings.pagerEvent;

        // If pager fast set use fastOnEvent pager
        options.fastOnEvent = (ddblockSettings.pagerFast == 1) ? 1 : 0;

        // pause slideshow on pager hover
        options.pauseOnPagerHover = (ddblockSettings.pagerPause == 1) ? 1 : 0;

        // disable click if pager is mouseover
        if (ddblockSettings.pagerEvent == 'mouseover') {
          if (ddblockSettings.pagerDisableClick == 1) {
            $("#ddblock-" + pager + "-" + block + " a.pager-link").click(function() {
              return false;
            });
          }
          else {
            $("#ddblock-" + pager + "-" + block + " a.pager-link").click(function() {
              location.href = this.href;
            });
          }
        }

        options.pager2SlideHide = ddblockSettings.pager2SlideHide;

        //set expression for selecting slides (if something other than all children is required)
        //options.slideExpr = contentContainer;

        //set speed of the transition (any valid fx speed value)
        options.speed = parseInt(ddblockSettings.speed);
        if (options.speed == 0) {
          options.speed = 1;
        };

        //set timeout in milliseconds between slide transitions (0 to disable auto advance)
        options.timeout = parseInt(ddblockSettings.timeOut);

        //set pause, true to enable "pause on hover"
        options.pause = (ddblockSettings.pause == 1) ? 1 : 0;

        //set custom options, custom need to start with the character {,
        //to prevent errors from a wywsiwyg editor which adds e.g. <br /> to the custom field.
        // use custom.substr(0,1) instead of custom[0] to prevent error with IE7
        if (custom && custom.substr(0,1) == '{') {
          // get the \r\n from the string
          var custom1 = custom.replace(/\r\n/gi,"");

          // parse into JSON object
          var custom2 = JSON.parse(custom1);

          // merge custom2 with options object
          jQuery.extend(true, options, custom2);
        }

        options.ddblocknr = block;
        options.before = onBefore;
        options.after = onAfter;
        options.pagerContainer = ddblockSettings.pagerContainer;

        // redefine Cycle's updateActivePagerLink function
        $.fn.cycle.updateActivePagerLink = function(pager, currSlide) {
          $(pager)
          .find('a.pager-link')
          .removeClass('activeSlide')
          .filter('a.pager-link:eq('+currSlide+')')
          .addClass('activeSlide');
          $(pager)
          .find('.custom-pager-item')
          .removeClass('active-pager-item')
          .filter('.custom-pager-item:eq('+currSlide+')')
          .addClass('active-pager-item');
          $(pager)
          .find('.scrollable-pager-item')
          .removeClass('active-pager-item')
          .filter('.scrollable-pager-item:eq('+currSlide+')')
          .addClass('active-pager-item');
        };
        
        //Basic block
        if (ddblockSettings.setDimensions == 'none') {
          //only one slide
          if (ddblockSettings.nrOfItems <= 1) {
            var $container = $('#ddblock-' + block + ' ' + contentContainer).parent();
            $container
            .css('visibility', 'visible')
            .addClass('ddblock-processed');
            $(contentContainer, $container).css('display', 'block');
            var $slideshowContainer = $('#ddblock-' + block);
            //hide the pager
            $('#ddblock-' + pager + '-' + block, $slideshowContainer).css('display', 'none');
            //hide navi, prev and next pager of scrollable pager
            if (pager == 'scrollable-pager') {
              $('.navi', $slideshowContainer).css('display', 'none');
              $('.prev', $slideshowContainer).css('display', 'none');
              $('.next', $slideshowContainer).css('display', 'none');
            }
          }
          //more than one slide
          else {
            var $container = $('#ddblock-' + block + ' ' + contentContainer).parent();
            $container
            .cycle(options)
            .css('height',ddblockSettings.Height + 'px')
            .css('width',ddblockSettings.Width + 'px')
            .css('overflow', ddblockSettings.overflow)
            .css('visibility', 'visible')
            .addClass('ddblock-processed');
            $('#ddblock-' + block).css('visibility', 'visible');
          }
        }
        // advanced block
        else {
          if (ddblockSettings.slideTextjQuery == 1) {
            //set slidetext options
            options.slideTextContainer = ddblockSettings.slideTextContainer;
            options.slideTextPosition = ddblockSettings.slideTextPosition;
            options.slideTextEffectBefore = ddblockSettings.slideTextEffectBefore;
            options.slideTextEffectBeforeSpeed = ddblockSettings.slideTextEffectBeforeSpeed;
            options.slideTextEffectBeforeEasing = ddblockSettings.slideTextEffectBeforeEasing;
            options.slideTextEffectAfter = ddblockSettings.slideTextEffectAfterEasing;
            options.slideTextEffectAfterSpeed = ddblockSettings.slideTextEffectAfterSpeed;
            options.slideTextEffectAfterEasing = ddblockSettings.slideTextEffectAfterEasing;
            options.slideTextjQuery = ddblockSettings.slideTextjQuery;
          }

          if (pager == 'scrollable-pager') {
            // set scrollableVertical to true when pager at left of right right, otherwise the scrollableVertical to false
            if (ddblockSettings.pagerPosition == 'left' || ddblockSettings.pagerPosition == 'right') {
               scrollableVertical = true;
            }
            else {
              scrollableVertical = false;
            }
            // create one scrollable element and return the API by enabling the "api" property
            if ($('#ddblock-scrollable-pager-' + block).length > 0){
              var myScrollable = $('#ddblock-scrollable-pager-' + block).scrollable({

                // number of items vissible in scrollable pager
                size: ddblockSettings.nrOfPagerItems,

                //vertical slideshow
                vertical: scrollableVertical,

                circular: true,

                //nextitem navigation, default used
                next: '.next',

                //previtem navigation, default used
                prev: '.prev',

                //enable api property
                api: true

              });
              if (myScrollable) {
                //set first slide as activate slide in scrollable pager
                myScrollable.click(0);

                //set myScrollable cycle option to scrollable API to use in onafter
                options.myScrollable = myScrollable;

                //set total nr of pager items
                options.nrOfPagerItems = ddblockSettings.nrOfPagerItems;
              }
            }
          }

          //only one slide
          if (ddblockSettings.nrOfItems <= 1) {
            //Use the parent of the slides as the parent container so the children function
            //can be used for the second pager
            var $container = $('#ddblock-' + block + ' ' + contentContainer).parent();
            $container
            .css('visibility', 'visible')
            .addClass('ddblock-processed');
            $(contentContainer, $container).css('display', 'block');
            var $slideshowContainer = $('#ddblock-' + block);
            //hide the pager
            $('#ddblock-' + pager + '-' + block, $slideshowContainer).css('display', 'none');
            //hide navi, prev and next pager of scrollable pager
            if (pager == 'scrollable-pager') {
              $('.navi', $slideshowContainer).css('display', 'none');
              $('.prev', $slideshowContainer).css('display', 'none');
              $('.next', $slideshowContainer).css('display', 'none');
            }
          }
          //more then one slide
          else {
            var $container = $('#ddblock-' + block + ' ' + contentContainer).parent();
            $container
            .cycle(options)
            .css('visibility', 'visible')
            .addClass('ddblock-processed');
          }
        }  // advanced block
      } // if not processed
      i++;
    } // for settings.ddblockContent
  } // attach
}; // drupal.behaviors

})(jQuery);
;

