/**
 * Check if main.js has been initialized before ==> ERROR!!!
 */
if( typeof ( fashionation ) != 'undefined' ) {
	alert( 'ERROR: Document head, body and javascripts are included twice!\nFix composition of this document!' );
}

/**
 * Global fashionation scope
 */
var fashionation = {};

( function( $ ) {

	fashionation.log = ( function() {
		return new function() {
			var self = this;
			var loggingEnabled = false;
			var forceDisabled = false;

			this.init = function() {
				if( typeof console != "undefined" ) {
					loggingEnabled = true;
				}
			};

			this.isEnabled = function() {
				return loggingEnabled && !forceDisabled;
			};

			this.disable = function() {
				forceDisabled = true;
			};

		};
	} )();

	fashionation.log.init();

} )( jQuery );

/**
 * Javascript context bootstrapping code.
 */
( function( $ ) {
	fashionation.core = ( function() {
		return new function() {
			var self = this;

			this.init = function() {
				// Document ready - after DOM is ready but before images are
				// loaded
				$( document ).ready( function() {
					fashionation.event.trigger( 'loading.start' );
					self.initLifecycle();
					fashionation.event.trigger( 'loading.stop' );
				} );

				// Window load - after DOM is ready and images are loaded
				$( window ).load( function() {
					fashionation.event.triggerCatchUpEvent( 'page.loaded' );
				} );
			};

			this.initLifecycle = function() {
				if( !( $.browser.msie && ( parseInt( $.browser.version ) <= 8 ) ) ) {
					// ie (lt version 8) can't handle this event without error
					$( window ).bind( 'beforeunload', function() {
						fashionation.event.trigger( 'page.leaving' );
					} );
				}

				$( window ).bind( 'unload', function() {
					fashionation.event.trigger( 'page.unloaded' );
				} );

				// Trigger init of all components
				fashionation.event.triggerCatchUpEvent( 'init.components' );

				// Trigger DOM and main init ready
				fashionation.event.triggerCatchUpEvent( 'init.ready' );
			};
		};

	} )();

	fashionation.core.init();

} )( jQuery );

/**
 * An internal event system to trigger callback functions for specific events.
 * 
 * events currently known:
 * 
 * init.components - main init is ready and components may start to init
 * 
 * init.ready - dom and main initialization is finished
 * 
 * 
 * loading.start - loading/init of new content starts
 * 
 * loading.stop - loading/init of new content stops
 * 
 * page.loaded - all content (images, frames etc.) is loaded
 * 
 * page.leaving - page is beeing left by the browser (new page load starts)
 * 
 * page.unloaded - unload event of the window was fired
 * 
 * wicket.ajax.finished - called after ajax event has finished (better than
 * Wicket.Ajax.registerPostCallHandler because it is triggered only once per
 * ajax request)
 * 
 * modal.overlay.visible - modal overlay has been extracted and is visible now.
 * Parameter 1 is dom node of overlay.
 * 
 */
fashionation.event = ( function() {
	return new function() {
		var self = this;
		var callbacks = {};
		var triggeredCatchUpEvent = {};
		var postAjaxTriggerQueue = [];

		this.bind = function( event, callback ) {
			self.triggerIfCatchUpEventTriggered( event, callback );
			if( callbacks[event] ) {
				callbacks[event].push( callback );
			} else {
				callbacks[event] = [ callback ];
			}
		};

		this.triggerIfCatchUpEventTriggered = function( event, callback ) {
			try {
				var triggeredEvent = triggeredCatchUpEvent[event];
				if( !triggeredEvent ) {
					return;
				}
				if( triggeredEvent.args ) {
					callback.apply( self, triggeredEvent.args );
				} else {
					callback.apply( self );
				}
			} catch( e ) {
				if( fashionation.log.isEnabled() ) {
					alert( e );
					console.exception( e );
				} else {
					throw e;
				}
			}
		};

		this.unbind = function( event, callback ) {
			if( callbacks[event] ) {
				for( var i = 0, l = callbacks[event].length; i < l; i += 1 ) {
					if( callbacks[event][i] == callback ) {
						callbacks[event][i] = null;
					}
				}
			}
		};

		/**
		 * Triggers an event so that all bindings to the same event that are
		 * bound in the future will be triggered at binding time immediately.
		 */
		this.triggerCatchUpEvent = function( event, eventArgs ) {
			triggeredCatchUpEvent[event] = {
				args : eventArgs
			};
			self.trigger( event, eventArgs );
		};

		this.trigger = function( event, args ) {
			args = args || [];
			if( callbacks[event] ) {
				for( var i = 0, l = callbacks[event].length; i < l; i += 1 ) {
					if( callbacks[event][i] ) {
						try {
							callbacks[event][i].apply( self, args );
						} catch( e ) {
							if( fashionation.log.isEnabled() ) {
								alert( e );
								console.exception( e );
							} else {
								throw e;
							}
						}
					}
				}
			}
		};

		this.queuePostUpdateTrigger = function( event, args ) {
			if( fashionation.log.isEnabled() ) {
				console.log( 'enqueued event: ' + event + ' args: ' + args );
			}
			var record = {
			    event : event,
			    args : args
			};
			postAjaxTriggerQueue.push( record );
		};

		this.triggerPostUpdateEvents = function() {
			if( !postAjaxTriggerQueue.length ) {
				if( fashionation.log.isEnabled() ) {
					console.log( 'no post update events to trigger.' );
				}
				return;
			}
			if( fashionation.log.isEnabled() ) {
				console.log( 'all enqueued post update events triggered (' + postAjaxTriggerQueue.length + ').' );
			}
			for( var i in postAjaxTriggerQueue ) {
				var record = postAjaxTriggerQueue[i];
				self.trigger( record.event, record.args );
			}
			postAjaxTriggerQueue = [];
		};

	};
} )();


( function( $ ) {

	fashionation.loadingspinner = ( function() {
		return new function() {
			var self = this;
			var initialTimeoutTime = 1000;
			var fadeInTime = 300;
			var fadeOutTime = 50;

			this.init = function() {
			};

			this.startUpdateRequestFor = function( $elements ) {
				if( !$elements || !$elements.length ) {
					return;
				}
				$elements.each( function() {
					var $element = $( this );
					self.setSpinnerTimeout( $element );
				} );
			};

			this.setSpinnerTimeout = function( $element ) {
				var timeout = $element.data( 'loading-spinner-timeout' );
				if( timeout ) {
					return;
				}

				timeout = setTimeout( function() {
					if( !$element.length ) {
						return;
					}
					self.onSpinnerTimeout( $element );
				}, initialTimeoutTime );
				$element.data( 'loading-spinner-timeout', timeout );
			};

			this.onSpinnerTimeout = function( $element ) {
				if( !$element.length ) {
					return;
				}
				$element.data( 'loading-spinner-timeout', null );
				self.showSpinner( $element );
			};

			this.showSpinner = function( $element ) {
				if( !$element.length ) {
					return;
				}

				var $spinner = self.createSpinner( $element );
				$spinner.fadeIn( fadeInTime );
			};

			this.createSpinner = function( $element ) {
				if( !$element.length ) {
					return;
				}

				var elementDimensions = self.getDimensions( $element );
				var elementPosition = fashionation.layout.getFromPositionOffset( $element );

				var $spinner = $( '<div class="LoadingSpinner">' );
				$element.after( $spinner );

				$spinner.css( {
				    top : elementPosition.top,
				    left : elementPosition.left,
				    width : elementDimensions.width + "px",
				    height : elementDimensions.height + "px"
				} );

				var zIndex = $element.css( 'z-index' );
				if( zIndex ) {
					$spinner.css( 'z-index', zIndex + 1 );
				}

				var $registeredSpinners = $element.data( 'loading-spinner' );
				if( !$registeredSpinners ) {
					$registeredSpinners = $spinner;
				} else {
					$registeredSpinners.add( $spinner );
				}
				$element.data( 'loading-spinner', $registeredSpinners );
				return $spinner;
			};

			this.getDimensions = function( $element ) {
				if( !$element.length ) {
					return;
				}

				var width = $element.outerWidth();
				var height = $element.outerHeight();
				if( ( width <= 0 ) || ( height <= 0 ) ) {
					var $firstChild = $element.children( ":first" );
					if( $firstChild.length ) {
						return self.getDimensions( $firstChild );
					}
				}
				return {
				    width : width,
				    height : height,
				    offset : $element.offset()
				};
			};

			this.finishUpdateRequestFor = function( $elements ) {
				if( !$elements || !$elements.length ) {
					return;
				}
				$elements.each( function() {
					var $element = $( this );
					self.clearSpinnerTimeout( $element );
					self.hideSpinner( $element );
				} );
			};

			this.clearSpinnerTimeout = function( $element ) {
				var timeout = $element.data( 'loading-spinner-timeout' );
				if( timeout == null ) {
					return;
				}
				clearTimeout( timeout );
				$element.data( 'loading-spinner-timeout', null );
				if( fashionation.log.isEnabled() ) {
					console.log( 'spinner: cleared timeout' );
				}
			};

			this.hideSpinner = function( $element ) {
				var $spinner = $element.data( 'loading-spinner' );
				$element.data( 'loading-spinner', null );
				if( !$spinner || !$spinner.length ) {
					return;
				}
				if( fashionation.log.isEnabled() ) {
					console.log( 'spinner: removed spinner' );
				}
				$spinner.stop( true, true ).fadeOut( fadeOutTime, function() {
					$( this ).remove();
				} );
			};
		};
	} )();

	// init this component
	fashionation.event.bind( 'init.components', function() {
		fashionation.loadingspinner.init();
	} );

} )( jQuery );

( function( $ ) {
	fashionation.columnsplitter = ( function() {
		return new function() {
			var self = this;

			this.init = function() {
				self.splitColumns();
				fashionation.event.bind( 'wicket.ajax.finished', self.splitColumns );
			};

			this.splitColumns = function() {
				var $columns = $( '.split-into-columns' );
				// avoid browser script timeout abortion with timed method call:
				var index = 1;
				$columns.each( function() {
					var domCol = this;
					window.setTimeout( function() {
						self.splitColumn.apply( domCol );
					}, index++ );
				} );
			};

			this.splitColumn = function() {
				var $column = $( this );
				var dataCount = $column.attr( 'data-count' );
				if( dataCount <= 1 ) {
					return;
				}
				var dataClass = $column.attr( 'data-column-class' );
				var dataLastColumnClass = $column.attr( 'data-lastcolumn-class' );
				var dataMinSplitHeight = $column.attr( 'data-min-split-height' );
				var isWeighted = $column.attr( 'data-weighted' ) === 'true';

				$column.addClass( dataClass );
				if( dataMinSplitHeight != null ) {
					var estimatedHeight = self.getEstimatedInnerHeight( $column );
					if( estimatedHeight < dataMinSplitHeight ) {
						$column.removeClass( 'split-into-columns' );
						$column.removeClass( dataClass );
						return;
					}
				}

				self.createParentDivIfHasId( $column );
				var $children = $column.children();
				$children.detach();

				$column.removeClass( 'split-into-columns' );
				$splitColumns = self.createSplitColumns( $column, dataCount, dataLastColumnClass );

				self.distributeChildren( $children, $splitColumns, isWeighted );
				var $testContainer = $( '#columnSplitterTestContainer' );
				if( $testContainer.length ) {
					$testContainer.remove();
				}
			};

			this.getRealOuterHeight = function( $child ) {
				var $testContainer = self.provideTestContainer();
				$testContainer.append( $child );
				return $child.outerHeight( true );
			};

			this.getEstimatedInnerHeight = function( $element ) {
				if( $element.is( ':visible' ) ) {
					return $element.height();
				}
				var $testContainer = self.provideTestContainer();
				var $placeholder = $( '<div/>' );
				$element.replaceWith( $placeholder );
				$testContainer.append( $element );
				var height = $element.height();
				$placeholder.replaceWith( $element );
				return height;
			};

			this.provideTestContainer = function() {
				var $testContainer = $( '#columnSplitterTestContainer' );
				if( !$testContainer.length ) {
					$testContainer = $( '<div id="columnSplitterTestContainer"/>' );
					$testContainer.css( {
					    'position' : 'absolute',
					    'top' : '-10000px',
					    'left' : '-10000px'
					} );
					$( 'body > .PageContainer > .MainContent' ).append( $testContainer );
				}
				return $testContainer;
			};

			this.createParentDivIfHasId = function( $column ) {
				var idAttr = $column.attr( 'id' );
				if( !idAttr ) {
					return;
				}
				var $parentDiv = $( '<div class="Clearfix"/>' ).appendTo( $column.parent() );
				$parentDiv.attr( 'id', idAttr );
				$column.appendTo( $parentDiv );
				$column.removeAttr( 'id' );
			};

			this.createSplitColumns = function( $column, columnNumber, lastColumnClass ) {
				var $splitColumns = new Array();
				$splitColumns[0] = $column;
				var $lastColumn = $column;
				for( var i = 1; i < columnNumber; i++ ) {
					var $newColumn = $column.clone();
					$splitColumns[i] = $newColumn;
					$lastColumn.after( $newColumn );
					if( i == columnNumber - 1 ) {
						$newColumn.addClass( lastColumnClass );
					}
					$lastColumn = $newColumn;
				}
				return $splitColumns;
			};

			this.distributeChildren = function( $children, $splitColumns, isWeighted ) {
				var isColumnVisible = $splitColumns[0].is( ':visible' );
				var totalHeight = 0;

				var childrenHeights = null;
				if( isWeighted ) {
					childrenHeights = new Array();
					$children.each( function() {
						var $child = $( this );
						var currentHeight = 0;
						if( !isColumnVisible ) {
							currentHeight = self.getRealOuterHeight( $child );
						}
						$child.appendTo( $splitColumns[0] );
						if( isColumnVisible ) {
							currentHeight = $child.outerHeight( true );
						}
						if( currentHeight <= 0 ) {
							currentHeight = 1;
						}
						totalHeight += currentHeight;
						childrenHeights.push( currentHeight );
					} );
				} else {
					totalHeight = $children.length;
				}

				var heightPerColumn = Math.ceil( totalHeight / $splitColumns.length );
				var accumulatedHeight = 0;
				var columnIndex = 0;
				var childIndex = 0;
				$children.each( function() {
					var $child = $( this );
					var currentHeight = 1;
					if( isWeighted ) {
						currentHeight = childrenHeights[childIndex];
					}
					if( !isWeighted || ( columnIndex > 0 ) ) {
						$child.appendTo( $splitColumns[columnIndex] );
					}
					accumulatedHeight += currentHeight;
					childIndex++;
					if( ( accumulatedHeight >= heightPerColumn ) && ( columnIndex < $splitColumns.length - 1 ) ) {
						accumulatedHeight = 0;
						columnIndex++;
					}
				} );
			};

		};
	} )();

	// init this component
	fashionation.event.bind( 'init.components', function() {
		fashionation.columnsplitter.init();
	} );

} )( jQuery );

( function( $ ) {
	fashionation.headerMenu = ( function() {
		return new function() {
			var self = this;
			var $menuRootNodes;
			var $flashNodes = new Array();
			var $menuNodes = new Array();
			var menuHoverTimeout = null;
			var menuHoverTimeoutTime = 150;
			var visibleMenuNodeIndex = null;
			var hideAllTimeout = null;
			var hideAllTimeoutTime = 600;
			var hideFlashNodeTimeoutTime = 60;
			var $extraMenuItems;
			var $extraMenu;
			var $topLevelContainer;
			var isLiveEditEnabled = false;
			var fadeOutTime = 400;
			var fadeInTime = 200;

			this.init = function() {
				self.preloadImages();
				self.checkLiveEditEnabled();
				self.setupExtraMenu();
				self.findMenuElements();
				self.activateFlashhover();
			};

			this.preloadImages = function() {
				fashionation.layout.preloadImages( '/composite_styles/com.fashionation.web.templates.base.BasePageTemplate/resources/images/', [
				        'headerMenu_bottom.png', 'headerMenu_flashhover_center.png', 'headerMenu_flashhover_left.png', 'headerMenu_flashhover_right.png',
				        'headerMenu_middle.png', 'headerMenu_top.png' ] );
			};

			this.checkLiveEditEnabled = function() {
				try {
					isLiveEditEnabled = wickettools.wcms.liveedit.isDisplayedInWCMSLiveEditBrowserIframe();
				} catch( e ) {
					isLiveEditEnabled = false;
				}
			};

			this.findMenuElements = function() {
				$menuRootNodes = $( '.PageContainer .Header .header-menu > .Nodes > .Node, .PageContainer .Header .ExtraMenu > li' );
				$topLevelContainer = fashionation.layout.getOrCreateTopLevelContainer();
			};

			this.activateFlashhover = function() {
				$menuRootNodes.mouseenter( self.onLinkMouseEnter );
				$menuRootNodes.mouseleave( self.onLinkMouseLeave );
				$menuRootNodes.mouseover( function() {
					return false;
				} );
				if( !isLiveEditEnabled ) {
					$( 'body' ).mouseenter( self.triggerHideAll );
				}
			};

			this.onLinkMouseEnter = function() {
				self.clearHideAllTimeout();
				var $node = $( this );
				var index = $menuRootNodes.index( $node );
				var $flashNode = $flashNodes[index];
				if( !$flashNode ) {
					$flashNode = self.createFlashNode( $node, index );
				}
				self.show( $flashNode );
				self.hideOtherFlashNodes( index );
				self.setMenuHoverTimeout( $node );
			};

			this.onLinkMouseLeave = function() {
				self.triggerHideAll();
			};

			this.createFlashNode = function( $node, index ) {
				var $link;
				if( $node.hasClass( 'ExtraMenuItem' ) ) {
					$link = $( '> a', $node ).clone();
				} else {
					$link = $( '> .Links > .Link a', $node ).clone();
				}
				var $flashNode = $( '<div id="headerMenuFlash-' + index + '" class="HeaderMenuFlashNode"/>' ).appendTo( $topLevelContainer );
				if( $node.hasClass( 'ExtraMenuItem' ) ) {
					$flashNode.addClass( $node.attr( 'class' ) );
				}
				$( '<span class="BGLeft"/>' ).appendTo( $flashNode );
				$link.appendTo( $( '<span class="Label"/>' ).appendTo( $flashNode ) );
				$( '<span class="BGRight"/>' ).appendTo( $flashNode );
				$flashNode.mouseenter( function() {
					self.onFlashMouseEnter( $( this ), index );
				} );
				if( !isLiveEditEnabled ) {
					$flashNode.mouseover( function() {
						return false;
					} );
				}
				$flashNode.mouseleave( self.onFlashMouseLeave );
				var $nodePosition = fashionation.layout.getPositionRelativeToPageContainer( $node );
				$flashNode.css( {
				    top : $nodePosition.top + 'px',
				    left : $nodePosition.left + 7 + 'px'
				} );
				$flashNodes[index] = $flashNode;
				return $flashNode;
			};

			this.onFlashMouseEnter = function( $flashNode, index ) {
				self.clearHideAllTimeout();
				self.hideOtherFlashNodes( index );
				self.show( $flashNode );
				self.setMenuHoverTimeout( $menuRootNodes.eq( index ) );
			};

			this.onFlashMouseLeave = function() {
				self.triggerHideAll();
			};

			this.triggerHideAll = function() {
				self.clearMenuHoverTimeout();
				if( hideAllTimeout ) {
					return;
				}
				if( visibleMenuNodeIndex ) {
					hideAllTimeout = setTimeout( self.hideAll, hideAllTimeoutTime );
				} else {
					hideAllTimeout = setTimeout( self.hideAll, hideFlashNodeTimeoutTime );
				}
			};

			this.clearHideAllTimeout = function() {
				if( hideAllTimeout ) {
					clearTimeout( hideAllTimeout );
				}
				hideAllTimeout = null;
			};

			this.hideAll = function() {
				self.clearHideAllTimeout();
				visibleMenuNodeIndex = null;
				for( var i in $flashNodes ) {
					var $node = $flashNodes[i];
					self.fadeOut( $node );
				}
				for( var i in $menuNodes ) {
					var $node = $menuNodes[i];
					self.fadeOut( $node );
				}
			};

			this.fadeIn = function( $node, callback ) {
				if( $.browser.msie && ( parseInt( $.browser.version ) <= 8 ) ) {
					self.show( $node );
					callback.apply( this );
				} else {
					$node.stop( true, true );
					if( $node.css( 'opacity' ) == 0 ) {
						$node.css( {
							display : 'block'
						} ).animate( {
							opacity : 1
						}, fadeInTime, callback );
					} else {
						$node.fadeIn( fadeInTime, callback );
					}
				}
			};

			this.fadeOut = function( $node ) {
				if( $.browser.msie && ( parseInt( $.browser.version ) <= 8 ) ) {
					$node.stop( true, true ).hide();
				} else {
					$node.stop( true, true );
					if( $node.css( 'opacity' ) > 0 ) {
						$node.animate( {
							opacity : 0
						}, fadeOutTime, function() {
							$node.css( {
								display : 'none'
							} );
						} );
					} else {
						$node.hide();
					}
				}
			};

			this.hideOtherFlashNodes = function( index ) {
				for( var i in $flashNodes ) {
					if( ( i == index ) || ( i == visibleMenuNodeIndex ) ) {
						continue;
					}
					var $node = $flashNodes[i];
					self.fadeOut( $node );
				}
			};

			this.hideOtherMenuNodes = function( index ) {
				for( var i in $menuNodes ) {
					if( i == index ) {
						continue;
					}
					var $node = $menuNodes[i];
					self.fadeOut( $node );
					var $flashNode = $flashNodes[i];
					self.fadeOut( $flashNode );
				}
			};

			this.setMenuHoverTimeout = function( $node ) {
				self.clearMenuHoverTimeout();
				menuHoverTimeout = setTimeout( function() {
					self.clearMenuHoverTimeout();
					self.onShowMenuHoverTimeout( $node );
				}, menuHoverTimeoutTime );
			};

			this.clearMenuHoverTimeout = function() {
				if( menuHoverTimeout ) {
					clearTimeout( menuHoverTimeout );
				}
				menuHoverTimeout = null;
			};

			this.onShowMenuHoverTimeout = function( $menuHoverNode ) {
				self.showMenuHover( $menuHoverNode );
			};

			this.showMenuHover = function( $menuHoverNode ) {
				var index = $menuRootNodes.index( $menuHoverNode );
				visibleMenuNodeIndex = index;

				var $menuNode = $menuNodes[index];
				if( !$menuNode ) {
					$menuNode = self.createMenuNode( $menuHoverNode, index );
				}
				if( $menuNode ) {
					self.fadeIn( $menuNode, function() {
						self.onMenuVisible( $menuNode, index );
					} );
					setTimeout( function() {
						self.enhanceMenuPanel( $menuNode );
					}, 10 );

				}
				self.hideOtherFlashNodes( index );
				self.hideOtherMenuNodes( index );
			};

			this.show = function( $node ) {
				$node.stop( true, true );
				$node.css( 'display', 'block' );
				if( $.browser.msie && ( parseInt( $.browser.version ) <= 8 ) ) {
					$node.css( 'opacity', '' );
				} else {
					$node.css( 'opacity', 1 );
				}
			};

			this.createMenuNode = function( $node, index ) {
				var $list = null;
				if( $node.hasClass( 'ExtraMenuItem' ) ) {
					$list = $( '> .Menu', $node );
				} else {
					$list = $( '> .Nodes', $node );
					$list.addClass( 'MenuTopLevelEntries' );
				}
				if( !$list.length ) {
					return null;
				}

				var $menuNode = $( '<div id="headerMenu-' + index + '" class="HeaderMenuNode"/>' );
				$menuNode.data( 'header-menu-index', index );
				$menuNode.append( $( '<div class="BGTop"/>' ) );
				if( $node.hasClass( 'ExtraMenuItem' ) ) {
					$menuNode.addClass( $node.attr( 'class' ) );
				}
				$topLevelContainer.append( $menuNode );

				var $content = $( '<div class="Content Clearfix"/>' );
				$content.append( $list );
				$menuNode.append( $content );

				$menuNode.append( $( '<div class="BGBottom"/>' ) );
				$menuNode.mouseenter( self.onMenuMouseEnter );
				if( !isLiveEditEnabled ) {
					$menuNode.mouseover( function() {
						return false;
					} );
				}
				$menuNode.mouseleave( self.onMenuMouseLeave );
				var $nodePosition = fashionation.layout.getPositionRelativeToPageContainer( $node );
				$menuNode.css( {
				    top : $nodePosition.top + 26 + 'px',
				    left : '6px'
				} );
				$menuNodes[index] = $menuNode;
				return $menuNode;
			};

			this.onMenuMouseEnter = function() {
				var $node = $( this );
				self.clearHideAllTimeout();
				self.hideOtherFlashNodes( $node.data( 'header-menu-index' ) );
				self.hideOtherMenuNodes( $node.data( 'header-menu-index' ) );
			};

			this.onMenuMouseLeave = function() {
				self.triggerHideAll();
			};

			this.onMenuVisible = function( $menuNode, index ) {
				if( visibleMenuNodeIndex != index ) {
					return;
				}
				self.hideOtherFlashNodes( index );
				self.hideOtherMenuNodes( index );

				var $flashNode = $flashNodes[index];
				self.show( $flashNode );
				self.enhanceMenuPanel( $menuNode );
			};

			this.enhanceMenuPanel = function( $menuNode ) {
				if( $menuNode.data( 'is-enhanced' ) ) {
					return;
				}
				fashionation.enhance.equalizeEachHeight( $menuNode.find( '.MenuTopLevelEntries' ).children(), 4 );
				fashionation.enhance.centerHorizontally( $menuNode.find( '.headerMenuMagazinHeaderNode, .headerMenuUnternehmenHeaderNode' ) );
				$menuNode.data( 'is-enhanced', true );
			};

			this.setupExtraMenu = function() {
				$extraMenu = $( '<ul class="ExtraMenu"></ul>' );
				$extraMenu.appendTo( $( '.PageContainer .Header' ) );
				$extraMenuItems = $( '.PageContainer .Header .ExtraMenuItem' );
				$extraMenuItems.each( self.createExtraMenuNode );
			};

			this.createExtraMenuNode = function() {
				var $extraMenuItem = $( this );
				var $extraMenuNode = $( '<li></li>' ).appendTo( $extraMenu );
				$extraMenuNode.addClass( $extraMenuItem.attr( 'class' ) );
				$extraMenuNode.append( $extraMenuItem.children() );
				$extraMenuItem.detach();
			};
		};
	} )();

	// init this component
	fashionation.event.bind( 'init.components', function() {
		fashionation.headerMenu.init();
	} );

} )( jQuery );

( function( $ ) {

	if( typeof ( exui ) == 'undefined' ) {
		exui = {};
	}

	exui.cornerstone = ( function() {
		return new function() {
			var self = this;

			this.init = function() {
			};

			this.createCornerBox = function( imagePackage, $content ) {
				var $box = $( '<div class="CornerBox"/>' );
				var $topWrapper = $( '<div class="TopWrapper"/>' ).appendTo( $box );
				$( '<div class="TopLeft"><img src="' + imagePackage + '/top_left.png"/></div>' ).appendTo( $topWrapper );
				$( '<div class="TopRight"><img src="' + imagePackage + '/top_right.png"/></div>' ).appendTo( $topWrapper );
				var $contentBox = $( '<div class="Content"/>' ).appendTo( $topWrapper );
				if( $content ) {
					$contentBox.append( $content );
				}
				var $bottomWrapper = $( '<div class="BottomWrapper"/>' ).appendTo( $box );
				$( '<div class="BottomLeft"><img src="' + imagePackage + '/bottom_left.png"/></div>' ).appendTo( $bottomWrapper );
				$( '<div class="BottomRight"><img src="' + imagePackage + '/bottom_right.png"/></div>' ).appendTo( $bottomWrapper );
				return $box;
			};

		};
	} )();

	// init this component
	$( document ).bind( 'ready', function() {
		exui.cornerstone.init();
	} );
} )( jQuery );


( function( $ ) {

	fashionation.layout = ( function() {
		return new function() {
			var self = this;
			this.cornerstoneFolder = null;

			this.init = function() {
			};

			this.preloadImage = function( src ) {
				var image = new Image();
				image.src = src;
				return image;
			};

			this.preloadImages = function( baseSrc, srcs ) {
				for( var i in srcs ) {
					var src = srcs[i];
					self.preloadImage( baseSrc + src );
				}
			};

			this.createCornerBoxOverlay = function( pattern, $content ) {
				var $box = self.createCornerBox( pattern, $content );
				$box.appendTo( self.getOrCreateTopLevelContainer() );
				return $box;
			};

			this.createCornerBox = function( pattern, $content ) {
				return exui.cornerstone.createCornerBox( self.cornerstoneFolder + '/' + pattern, $content );
			};

			this.getCornerstoneImageUri = function( pattern, imageUri ) {
				return self.cornerstoneFolder + '/' + pattern + '/' + imageUri;
			};

			this.getPositionRelativeToPageContainer = function( $element ) {
				if( $element.hasClass( 'PageContainer' ) ) {
					return {
					    top : 0,
					    left : 0
					};
				}
				if( $element.is( 'body' ) ) {
					var pageContainerPosition = $( 'body > .PageContainer' ).position();
					return {
					    top : -pageContainerPosition.top,
					    left : -pageContainerPosition.left
					};
				}
				var $position = $element.position();
				var $marginizedPosition = {
				    top : $position.top + parseInt( $element.css( 'margin-top' ) ),
				    left : $position.left + parseInt( $element.css( 'margin-left' ) )
				};

				var $offsetPosition = self.getPositionRelativeToPageContainer( $element.offsetParent() );
				return {
				    top : $offsetPosition.top + $marginizedPosition.top,
				    left : $offsetPosition.left + $marginizedPosition.left
				};
			};

			this.getFromPositionOffset = function( $element ) {
				if( $element.length !== 1 ) {
					return {
					    top : 0,
					    left : 0
					};
				}

				var $offset = $element.offset();
				try {
					var $parentOffset = $element.offsetParent().offset();
					var $position = {
					    top : $offset.top - $parentOffset.top,
					    left : $offset.left - $parentOffset.left
					};
					return $position;
				} catch( e ) {
					return $offset;
				}
			};

			this.getOrCreateTopLevelContainer = function() {
				var $topLevelContainer = $( '#topLevelContainer' );
				if( $topLevelContainer.length == 0 ) {
					$topLevelContainer = $( '<div id="topLevelContainer"/>' ).appendTo( '.PageContainer' );
				}
				return $topLevelContainer;
			};

			this.createInputFocusAndBlurBehaviour = function( $inputs ) {
				$inputs.each( function() {
					var $input = $( this );
					if( !$input.attr( 'data-default' ) || $input.data( 'inputDefaultDataMode' ) ) {
						return;
					}
					self.resetInputFocusAndBlurState( $input );
					$input.unbind( 'focus' );
					$input.focus( self.onFocusInput );
					$input.unbind( 'blur' );
					$input.blur( self.onBlurInput );
					self.attachSubmitParentFormClearDefaultValueBehaviour( $input );
					$input.data( 'inputDefaultDataMode', true );
				} );
			};

			this.resetInputFocusAndBlurState = function( $inputs ) {
				$inputs.each( function() {
					var $input = $( this );
					if( !$input.attr( 'data-default' ) ) {
						return;
					}
					self.onBlurInput.apply( $input.get( 0 ) );
				} );
			};

			this.onFocusInput = function() {
				var $input = $( this );
				self.clearInputDefaultValue( $input );
				self.showInputFalloutHint( $input );
			};

			this.clearInputDefaultValue = function( $input ) {
				var defaultTerm = $input.attr( 'data-default' );
				if( $input.val() == defaultTerm ) {
					$input.val( '' );
				}
			};

			this.showInputFalloutHint = function( $input ) {
				var defaultTerm = $input.attr( 'data-default' );
				var $falloutHint = $( '<div class="InputFalloutHint"/>' );
				var $fader = $( '<div/>' );
				var $label = $( '<span/>' );
				$label.text( defaultTerm );
				$label.append( $( '<span/>' ) );
				$fader.append( $label );
				$falloutHint.append( $fader );
				$input.parent().append( $falloutHint );

				var inputOffset = $input.position();
				$falloutHint.css( {
				    position : 'absolute',
				    top : inputOffset.top + $input.outerHeight() - 2,
				    left : inputOffset.left,
				    'font-size' : $input.css( 'font-size' ),
				    height : '0px'
				} );
				$falloutHint.animate( {
					height : '30px'
				}, 300 );
			};

			this.onBlurInput = function() {
				var $input = $( this );
				var defaultTerm = $input.attr( 'data-default' );
				if( $input.val() == '' ) {
					$input.val( defaultTerm );
				}
				var $falloutHint = $input.parent().find( '.InputFalloutHint' );
				$falloutHint.animate( {
					height : '0px'
				}, 300, function() {
					$falloutHint.remove();
				} );
			};

			this.attachSubmitParentFormClearDefaultValueBehaviour = function( $inputs ) {
				$inputs.each( function() {
					var $input = $( this );
					var $form = $input.closest( 'form' );
					$form.submit( function() {
						self.clearInputDefaultValue( $input );
					} );

					var $submitButtons = $form.find( 'input[type="submit"]' );
					$submitButtons.mouseup( function() {
						self.clearInputDefaultValue( $input );
					} );
				} );
			};

		};
	} )();

	// init this component
	fashionation.event.bind( 'init.components', function() {
		fashionation.layout.init();
	} );
} )( jQuery );


( function( $ ) {
	fashionation.overlays = ( function() {
		return new function() {
			var self = this;

			this.init = function() {
				self.createModalOverlaysInteraction();
				self.attachHintOverlayCloseActions();
			};

			this.hideAndRemoveOverlay = function( $overlay ) {
				self.hideOverlay( $overlay, function() {
					$overlay.remove();
				} );
			};

			this.hideOverlay = function( $overlay, finishedCallback ) {
				if( !$overlay ) {
					return;
				}
				var $scroll = $overlay.find( '.Scroll' );
				if( $scroll.length ) {
					$scroll.slideUp( 200, function() {
						self.finallyHideOverlay( $overlay, finishedCallback );
					} );
				} else {
					$overlay.fadeOut( 300, function() {
						self.finallyHideOverlay( $overlay, finishedCallback );
					} );
				}
			};

			this.finallyHideOverlay = function( $overlay, finishedCallback ) {
				$overlay.hide();
				$overlay.find( '.CornerBox' ).hide();
				if( typeof finishedCallback == 'function' ) {
					finishedCallback.apply( $overlay.get() );
				}
			};

			this.showOverlay = function( $overlay ) {

				var $scroll = $overlay.find( '.Scroll' );
				if( $scroll.length ) {
					$overlay.show();
				} else {
					$overlay.fadeIn( 300 );
				}
				$overlay.find( '.CornerBox' ).show();
				if( typeof ( $overlay.restorePosition ) === 'function' ) {
					$overlay.restorePosition();
				}
				self.adaptOverlayWidthToFullAvailableSpace( $overlay );
				if( $scroll.length ) {
					$scroll.slideDown( 200, function() {
						if( $.browser.msie && ( $scroll.find( 'ul' ).outerHeight( true ) > $scroll.innerHeight() ) ) {
							$scroll.css( {
								'overflow-y' : 'scroll'
							} );
						}
					} );
				}
			};

			this.adaptOverlayWidthToFullAvailableSpace = function( $overlay ) {
				var leftOffset = $overlay.offset().left;
				var width = $( window ).width() - leftOffset;
				$overlay.width( width );
			};

			this.createOverlayScrollContainerInside = function( $borderBoxContent ) {
				$scroll = $( '<div class="Scroll"/>' ).appendTo( $borderBoxContent );
				$scroll.slideUp( 0 );
				return $scroll;
			};

			this.createOverlayContentLabel = function( $content, text ) {
				var $label = $( '<span class="Label"/>' ).appendTo( $content );
				$label.text( text );
				return $label;
			};

			this.wrapAsOverlayContainer = function( styleClass, $cornerBox, $positionAnchor ) {
				var $overlayContainer = self.wrapWithOverlayContainerDiv( styleClass, $cornerBox );
				self.applyRelativeOverlayPosition( $overlayContainer, $positionAnchor );
				$overlayContainer.hide();
				return $overlayContainer;
			};

			this.wrapAsFixedPositionOverlayContainer = function( styleClass, $cornerBox, $positionAnchor ) {
				var $overlayContainer = self.wrapWithOverlayContainerDiv( styleClass, $cornerBox );
				self.applyFixedOverlayPosition( $overlayContainer, $positionAnchor );
				$( window ).resize( function() {
					if( $overlayContainer.is( ':visible' ) ) {
						self.applyFixedOverlayPosition( $overlayContainer, $positionAnchor );
					}
				} );
				$overlayContainer.restorePosition = function() {
					self.applyFixedOverlayPosition( $overlayContainer, $positionAnchor );
				};
				$overlayContainer.hide();
				return $overlayContainer;
			};

			this.wrapWithOverlayContainerDiv = function( styleClass, $cornerBox ) {
				var $overlayContainer = $( '<div class="' + styleClass + ' Overlay"/>' );
				$cornerBox.parent().append( $overlayContainer );
				$overlayContainer.append( $cornerBox );
				return $overlayContainer;
			};

			this.applyRelativeOverlayPosition = function( $overlayContainer, $positionAnchor ) {
				var position = fashionation.layout.getPositionRelativeToPageContainer( $positionAnchor );
				$overlayContainer.css( {
				    top : position.top + 'px',
				    left : position.left + 8 + 'px'
				} );
			};

			this.applyFixedOverlayPosition = function( $overlayContainer, $positionAnchor ) {
				var offset = $positionAnchor.offset();
				$overlayContainer.css( 'position', 'relative' );
				var $window = $( window );
				$overlayContainer.offset( {
				    top : offset.top - $window.scrollTop() + fashionation.layout.getOrCreateTopLevelContainer().offset().top,
				    left : offset.left - $window.scrollLeft() + fashionation.layout.getOrCreateTopLevelContainer().offset().left
				} );
				$overlayContainer.css( 'position', 'fixed' );
			};

			this.onOverlayClosingActiveElementClick = function() {
				var $activeElement = $( this );
				var $overlay = $activeElement.closest( '.Overlay' );
				self.hideAndRemoveOverlay( $overlay );
			};

			this.extractSelectOptionsIgnoreSelected = function( $select, $target, afterSelectCallback ) {
				var $options = $( 'option', $select );
				var $targetList = $( '<ul class="Options"/>' ).appendTo( $target );
				$options.each( function() {
					var $option = $( this );
					if( $option.is( ':selected' ) ) {
						return;
					}
					var $targetItem = $( '<li/>' ).appendTo( $targetList );
					$targetItem.text( $option.text() );
					$targetItem.attr( 'data-value', $option.val() );
					$targetItem.click( function() {
						if( $option.is( '[href]' ) ) {
							window.open( $option.attr( 'href' ) );
						}
						$select.val( $( this ).attr( 'data-value' ) );
						$select.change();
						if( typeof ( afterSelectCallback ) == 'function' ) {
							afterSelectCallback.apply( $select );
						}
					} );
				} );
				return $targetList;
			};

			this.extractSelectedOptionAsFormLabel = function( $forms, onClickCallback ) {
				$forms.each( function() {
					var $form = $( this );
					if( $form.find( '> span.Label' ).length ) {
						return;
					}
					var $selectedOption = $( 'option:selected', $form );
					$( '<span class="Label"/>' ).text( $selectedOption.text() ).appendTo( $form );
					$form.click( onClickCallback );
				} );
			};

			this.createModalOverlaysInteraction = function() {
				self.extractModalOverlays();
				fashionation.event.bind( 'wicket.ajax.finished', self.extractModalOverlays );
				self.attachModalOverlayCloseActions();
				fashionation.event.bind( 'wicket.ajax.finished', self.attachModalOverlayCloseActions );
			};

			this.extractModalOverlays = function() {
				var $overlayContents = $( 'body > .PageContainer .show-as-modal-overlay' );
				$overlayContents.each( self.extractModalOverlay );
			};

			this.extractModalOverlay = function() {
				var $overlayContent = $( this );
				if( !$overlayContent.is( '.show-as-modal-overlay' ) || $overlayContent.parent().is( '.ModalOverlay' ) ) {
					return;
				}
				$overlayContent.removeClass( 'show-as-modal-overlay' );
				var overlayUid = self.generateUid();
				$overlayContent.attr( 'data-overlay-id', overlayUid );

				var overlayClass = $overlayContent.attr( 'data-overlay-class' );

				var $curtain = $( '<div class="Curtain"/>' );
				$curtain.attr( 'data-overlay-id', overlayUid );
				$curtain.addClass( overlayClass );
				fashionation.layout.getOrCreateTopLevelContainer().append( $curtain );
				$curtain.click( self.onOverlayCurtainClick );

				var $modalOverlay = $( '<div class="ModalOverlay"/>' );
				fashionation.layout.getOrCreateTopLevelContainer().append( $modalOverlay );
				$modalOverlay.attr( 'data-overlay-id', overlayUid );
				$modalOverlay.addClass( overlayClass );

				var $contentPlaceholder = $( '<div class="overlay-placeholder"/>' );
				$contentPlaceholder.attr( 'data-overlay-id', overlayUid );
				$overlayContent.after( $contentPlaceholder );
				$modalOverlay.append( $overlayContent );

				self.showModalOverlay( $modalOverlay );
			};

			this.onOverlayCurtainClick = function() {
				var $curtain = $( this );
				var overlayUid = $curtain.attr( 'data-overlay-id' );
				var $closeAction = $( '#topLevelContainer > .ModalOverlay[data-overlay-id="' + overlayUid + '"] .overlay-close-action' );
				if( !$closeAction.length ) {
					return;
				}
				$closeAction.first().click();
			};

			this.generateUid = function() {
				var date = new Date();
				var random = Math.floor( Math.random() * 1000 );
				return date.getTime() + '_' + random;
			};

			this.showModalOverlay = function( $modalOverlay ) {
				var overlayUid = $modalOverlay.attr( 'data-overlay-id' );
				var $curtain = $( '#topLevelContainer > .Curtain[data-overlay-id="' + overlayUid + '"]' );
				if( $.browser.msie ) {
					$modalOverlay.show( self.onModalOverlayVisible );
					$curtain.show();
				} else {
					$modalOverlay.fadeIn( 300, self.onModalOverlayVisible );
					$curtain.fadeIn( 300 );
				}
			};

			this.onModalOverlayVisible = function() {
				var $overlay = $( this );
				fashionation.event.trigger( 'modal.overlay.visible', $overlay.get() );
			};

			this.fadeIn = function( $element ) {
				if( $.browser.msie ) {
					$element.show();
				} else {
					$element.fadeIn( 300 );
				}
			};

			this.attachModalOverlayCloseActions = function() {
				var $closeActions = $( '#topLevelContainer > .ModalOverlay .overlay-close-action' );
				$closeActions.each( self.attachModalOverlayCloseAction );
			};

			this.attachModalOverlayCloseAction = function() {
				var $closeAction = $( this );
				$closeAction.unbind( 'click' );
				$closeAction.click( self.onModalOverlayCloseClick );
			};

			this.onModalOverlayCloseClick = function() {
				var $closeAction = $( this );
				var $modalOverlay = $closeAction.closest( '.ModalOverlay' );
				var overlayUid = $modalOverlay.attr( 'data-overlay-id' );

				var $content = $modalOverlay.children().eq( 0 );
				var $clonedContent = $content.clone();
				$clonedContent.addClass( 'restored-overlay-content' );
				$( 'body > .PageContainer .overlay-placeholder[data-overlay-id="' + overlayUid + '"]' ).replaceWith( $clonedContent );
				$content.attr( 'id', null );
				self.hideAndRemoveModalOverlay( $modalOverlay );
			};

			this.hideAndRemoveModalOverlay = function( $modalOverlay ) {
				self.fadeOutAndRemove( $modalOverlay );
				var overlayUid = $modalOverlay.attr( 'data-overlay-id' );
				var $curtain = $( '#topLevelContainer > .Curtain[data-overlay-id="' + overlayUid + '"]' );
				self.fadeOutAndRemove( $curtain );
			};

			this.fadeOutAndRemove = function( $element ) {
				if( $.browser.msie ) {
					$element.remove();
				} else {
					$element.fadeOut( 300, function() {
						$element.remove();
					} );
				}
			};

			this.createHintOverlay = function( $overlayContent, $positionAnchor ) {
				var overlayUid = self.generateUid();
				$overlayContent.attr( 'data-overlay-id', overlayUid );

				var overlayClass = $overlayContent.attr( 'data-overlay-class' );

				var $cornerBox = fashionation.layout.createCornerBoxOverlay( 'hint' );
				$cornerBox.append( $( '<img src="' + fashionation.layout.getCornerstoneImageUri( 'hint', 'notice_arrow_down.png' ) + '"/>' ) );
				var $content = $cornerBox.find( '.Content' );

				var $scroll = self.createOverlayScrollContainerInside( $content );

				var $overlay = self.wrapAsOverlayContainer( 'Hint', $cornerBox, $positionAnchor );
				$overlay.attr( 'data-overlay-id', overlayUid );
				$overlay.addClass( overlayClass );

				var $contentPlaceholder = $( '<div class="overlay-placeholder"/>' );
				$contentPlaceholder.attr( 'data-overlay-id', overlayUid );
				$overlayContent.after( $contentPlaceholder );

				$scroll.append( $overlayContent );
				$overlay.click( function( event ) {
					if( !$( event.target ).is( 'a' ) ) {
						return false;
					}
				} );
				self.showOverlay( $overlay );
			};

			this.attachHintOverlayCloseActions = function() {
				var $closeActions = $( '#topLevelContainer > .Hint.Overlay .overlay-close-action' );
				$closeActions.live( 'click', self.onHintOverlayCloseClick );
			};

			this.onHintOverlayCloseClick = function() {
				var $closeAction = $( this );
				var $overlay = $closeAction.closest( '.Hint.Overlay' );
				var overlayUid = $overlay.attr( 'data-overlay-id' );

				var $content = $overlay.find( '.Scroll' ).children().eq( 0 );
				var $clonedContent = $content.clone();
				$clonedContent.addClass( 'restored-overlay-content' );
				$( 'body > .PageContainer .overlay-placeholder[data-overlay-id="' + overlayUid + '"]' ).replaceWith( $clonedContent );
				$content.attr( 'id', null );
				self.hideAndRemoveOverlay( $overlay );
			};

			this.createSimpleHintFrom = function( $elements ) {
				$elements.click( function() {
					var $element = $( this );
					var $existingOverlay = $element.data( 'hint-overlay' );
					if( $existingOverlay ) {
						return;
					}
					self.createSimpleHintOverlay( $element );
					return false;
				} );
			};

			this.createSimpleHintOverlay = function( $element ) {
				var $cornerBox = fashionation.layout.createCornerBoxOverlay( 'hint' );
				$cornerBox.append( $( '<img src="' + fashionation.layout.getCornerstoneImageUri( 'hint', 'notice_arrow_down.png' ) + '"/>' ) );
				var $content = $cornerBox.find( '.Content' );

				var $overlay = self.wrapAsOverlayContainer( 'Hint', $cornerBox, $element.parent() );
				$overlay.addClass( 'Simple' );

				$content.text( $element.attr( 'data-info-text' ) );
				self.showOverlay( $overlay );
				$element.data( 'hint-overlay', $overlay );
				$element.mouseleave( self.onSimpleHintActionMouseLeave );
			};

			this.onSimpleHintActionMouseLeave = function() {
				var $element = $( this );
				var $existingOverlay = $element.data( 'hint-overlay' );
				if( !$existingOverlay ) {
					return;
				}
				self.hideAndRemoveOverlay( $existingOverlay );
				$element.data( 'hint-overlay', null );
			};

		};
	} )();

	// init this component
	fashionation.event.bind( 'init.components', function() {
		fashionation.overlays.init();
	} );

} )( jQuery );

( function( $ ) {

	fashionation.enhance = ( function() {
		return new function() {
			var self = this;

			this.init = function() {
				self.applyDoubleClickPrevention();
				self.applyDefaultOnEnterSubmitActionForInputFields();
				self.fixJavaScriptBodyClass();
				self.enhanceCheckboxesWithIcons();
				self.attachToggleOpenSectionAction();
				self.addChildrenHeightsEqualizer();
			};

			this.applyDoubleClickPrevention = function() {
				$( '.prevent-double-click' ).live( 'click', function() {
					this.disabled = true;
					var element = this;
					var $element = $( this );
					setTimeout( function() {
						$element.attr( 'href', '#' );
						$element.unbind( 'click' );
						element.onclick = function() {
							return false;
						};
						element.mousedown = function() {
							return false;
						};
					}, 1 );
				} );
			};

			this.applyDefaultOnEnterSubmitActionForInputFields = function() {
				$( 'input' ).live( 'keypress', function( e ) {
					if( e.which == 13 ) {
						$( this ).closest( 'form' ).find( 'input[type="image"],input[type="submit"]' ).first().click();
						return false;
					}
				} );
			};

			this.fixJavaScriptBodyClass = function() {
				$( 'body' ).addClass( 'JavaScriptEnabled' ).removeClass( 'JavaScriptDisabled' );
			};

			this.enhanceCheckboxesWithIcons = function() {
				self.updateCheckboxesLabelState();
				fashionation.event.bind( 'wicket.ajax.finished', self.updateCheckboxesLabelState );
				self.attachCheckboxActions();
			};

			this.updateCheckboxesLabelState = function() {
				var $checkboxes = $( '.checkbox-with-icon' );
				$checkboxes.each( self.updateCheckboxLabelState );
			};

			this.updateCheckboxLabelState = function() {
				var $checkbox = $( this );
				var id = $checkbox.attr( 'id' );
				var $label = $( 'label[for="' + id + '"]' );
				if( !$label.length ) {
					return;
				}
				if( $checkbox.is( ':checked' ) ) {
					$label.addClass( 'Checked' );
				} else {
					$label.removeClass( 'Checked' );
				}
			};

			this.attachCheckboxActions = function() {
				var $checkboxes = $( '.checkbox-with-icon' );
				$checkboxes.live( 'change', self.updateCheckboxLabelState );

				$labels = $( 'label' );
				$labels.live( 'click', function() {
					var $label = $( this );
					var inputId = $label.attr( 'for' );
					if( !inputId ) {
						return;
					}
					var $input = $( '#' + inputId );
					if( !$input.is( '.checkbox-with-icon' ) ) {
						return;
					}
					$input.attr( 'checked', !$input.attr( 'checked' ) );
					$input.change();
					return false;
				} );
			};

			this.attachToggleOpenSectionAction = function() {
				var $sections = $( '.toggle-open-section' );
				var $headers = $sections.find( '.toggle-open-header' );
				$headers.live( 'click', self.onToggleOpenSectionHeaderClick );
				$sections.each( self.setToggleOpenSectionState );
			};

			this.setToggleOpenSectionState = function() {
				var $section = $( this );
				if( $section.find( '.toggle-open-content' ).is( ':visible' ) ) {
					$section.removeClass( 'Closed' );
				} else {
					$section.addClass( 'Closed' );
				}
			};

			this.onToggleOpenSectionHeaderClick = function() {
				var $header = $( this );
				var $section = $header.closest( '.toggle-open-section' );

				if( $section.find( '.toggle-open-content' ).is( ':visible' ) ) {
					self.closeToggleOpenSection( $section );
				} else {
					self.openToggleOpenSection( $section );
				}
			};

			this.openToggleOpenSection = function( $section ) {
				$section.find( '.toggle-open-content' ).slideDown( 300, function() {
					self.setToggleOpenSectionState.call( $section );
				} );
			};

			this.closeToggleOpenSection = function( $section ) {
				$section.find( '.toggle-open-content' ).slideUp( 300, function() {
					self.setToggleOpenSectionState.call( $section );
				} );
			};

			this.centerHorizontally = function( $elements ) {
				$elements.each( function() {
					var $element = $( this );
					var $parent = $element.parent();
					var parentWidth = $parent.width();
					var elementWidth = $element.width();
					var leftOffset = ( parentWidth - elementWidth ) / 2;
					$element.css( 'margin-left', leftOffset + 'px' );
				} );
			};

			this.addChildrenHeightsEqualizer = function() {
				self.equalizeAllParentsChildrenHeights();
				fashionation.event.bind( 'wicket.ajax.finished', self.equalizeAllParentsChildrenHeights );
			};

			this.equalizeAllParentsChildrenHeights = function() {
				$( '.equalize-children-height' ).each( self.equalizeChildrenHeights );
			};

			this.equalizeChildrenHeights = function() {
				var $parent = $( this );
				var groupSize = $parent.attr( 'data-equalizer-group' );
				var $children = $parent.children();
				self.equalizeEachHeight( $children, groupSize );
			};

			this.equalizeEachHeight = function( $elements, groupSize ) {
				if( !groupSize ) {
					groupSize = $elements.length;
				}
				var maxHeight = new Array();
				for( var i = 0; i < Math.floor( $elements.length / groupSize ); i++ ) {
					maxHeight[i] = 0;
				}

				var i = 0;
				$elements.each( function() {
					var height = $( this ).height();
					var groupIndex = Math.floor( i / groupSize );
					maxHeight[groupIndex] = Math.max( maxHeight[groupIndex], height );
					i++;
				} );
				var i = 0;
				$elements.each( function() {
					var $element = $( this );
					var groupIndex = Math.floor( i / groupSize );
					$element.height( maxHeight[groupIndex] );
					if( groupIndex == ( maxHeight.length - 1 ) ) {
						$element.addClass( 'LastGroup' );
					}
					i++;
				} );
			};

		};
	} )();

	// init this component
	fashionation.event.bind( 'init.components', function() {
		fashionation.enhance.init();
	} );
} )( jQuery );


if(this["interact"]==null){interact={}}interact.embedApp=function(b){for(var a=0;a<b.src.length;a++){if(interact.canEmbed(b.src[a])){interact.embed(b.src[a],b);break}}};var c=document.createElement("canvas");var v=document.createElement("video");var d=document.createElement("div");function has(f,b){for(var a=0;a<b.length;a++){if(f.style[b[a]]!==undefined){return true}}return false}var html5Features={canvas:c!=null&&c.getContext!=null,video:v!=null&&!!v.canPlayType,postMessage:window.postMessage!=null,transform:has(d,["transformProperty","WebkitTransform","MozTransform","msTransform"])};interact.canEmbed=function(a){if(a.device!=null){var f=navigator.userAgent.toLowerCase();var h=false;for(var e=0;e<a.device.length;e++){if(f.indexOf(a.device[e].toLowerCase())!=-1){h=true;break}}if(!h){return false}}switch(a.type){case"swf":return swfobject.hasFlashPlayerVersion(a.version);case"html5":a.requires=a.requires||["video","transform","canvas"];var g=true;for(var e=0;e<a.requires.length;e++){var b=a.requires[e];var j=html5Features[b];g&=(j!=null?j:has(b))}if(a.xd!=null&&a.xd.length>0){return g&&html5Features.postMessage}return g}return true};interact.embed=function(a,g){var f=document.getElementById(g.target);switch(a.type){case"swf":swfobject.embedSWF(a.src,g.target,g.width,g.height,a.version,null,g.vars,g.params);break;case"html5":while(f.childNodes.length>0){f.removeChild(f.childNodes[0])}f.style.width=g.width;f.style.height=g.height;var b=function(){var h=window.__tencms;if(a.xd!=null){for(var e=0;e<a.xd.length;e++){h.allowDomain(a.xd[e])}}h.embed(g,a)};if(a.src){interact.script(a.src,function(){b()})}else{b()}break;case"custom":a.embed(a,g);break}};interact.script=function(e,f){var b=document.getElementsByTagName("head")[0];var a=document.createElement("script");a.type="text/javascript";a.onreadystatechange=function(){if(this.readyState=="complete"){f()}};a.onload=f;a.src=e;b.appendChild(a)};window.interact=interact;

/*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/

var swfobject = function() {
	
	var UNDEF = "undefined",
		OBJECT = "object",
		SHOCKWAVE_FLASH = "Shockwave Flash",
		SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
		FLASH_MIME_TYPE = "application/x-shockwave-flash",
		EXPRESS_INSTALL_ID = "SWFObjectExprInst",
		ON_READY_STATE_CHANGE = "onreadystatechange",
		
		win = window,
		doc = document,
		nav = navigator,
		
		plugin = false,
		domLoadFnArr = [main],
		regObjArr = [],
		objIdArr = [],
		listenersArr = [],
		storedAltContent,
		storedAltContentId,
		storedCallbackFn,
		storedCallbackObj,
		isDomLoaded = false,
		isExpressInstallActive = false,
		dynamicStylesheet,
		dynamicStylesheetMedia,
		autoHideShow = true,
	
	/* Centralized function for browser feature detection
		- User agent string detection is only used when no good alternative is possible
		- Is executed directly for optimal performance
	*/	
	ua = function() {
		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
			u = nav.userAgent.toLowerCase(),
			p = nav.platform.toLowerCase(),
			windows = p ? /win/.test(p) : /win/.test(u),
			mac = p ? /mac/.test(p) : /mac/.test(u),
			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
			ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
			playerVersion = [0,0,0],
			d = null;
		if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
			d = nav.plugins[SHOCKWAVE_FLASH].description;
			if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
				plugin = true;
				ie = false; // cascaded feature detection for Internet Explorer
				d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
				playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
				playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
				playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
			}
		}
		else if (typeof win.ActiveXObject != UNDEF) {
			try {
				var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
				if (a) { // a will return null when ActiveX is disabled
					d = a.GetVariable("$version");
					if (d) {
						ie = true; // cascaded feature detection for Internet Explorer
						d = d.split(" ")[1].split(",");
						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
					}
				}
			}
			catch(e) {}
		}
		return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
	}(),
	
	/* Cross-browser onDomLoad
		- Will fire an event as soon as the DOM of a web page is loaded
		- Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
		- Regular onload serves as fallback
	*/ 
	onDomLoad = function() {
		if (!ua.w3) { return; }
		if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically 
			callDomLoadFunctions();
		}
		if (!isDomLoaded) {
			if (typeof doc.addEventListener != UNDEF) {
				doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
			}		
			if (ua.ie && ua.win) {
				doc.attachEvent(ON_READY_STATE_CHANGE, function() {
					if (doc.readyState == "complete") {
						doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
						callDomLoadFunctions();
					}
				});
				if (win == top) { // if not inside an iframe
					(function(){
						if (isDomLoaded) { return; }
						try {
							doc.documentElement.doScroll("left");
						}
						catch(e) {
							setTimeout(arguments.callee, 0);
							return;
						}
						callDomLoadFunctions();
					})();
				}
			}
			if (ua.wk) {
				(function(){
					if (isDomLoaded) { return; }
					if (!/loaded|complete/.test(doc.readyState)) {
						setTimeout(arguments.callee, 0);
						return;
					}
					callDomLoadFunctions();
				})();
			}
			addLoadEvent(callDomLoadFunctions);
		}
	}();
	
	function callDomLoadFunctions() {
		if (isDomLoaded) { return; }
		try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
			var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
			t.parentNode.removeChild(t);
		}
		catch (e) { return; }
		isDomLoaded = true;
		var dl = domLoadFnArr.length;
		for (var i = 0; i < dl; i++) {
			domLoadFnArr[i]();
		}
	}
	
	function addDomLoadEvent(fn) {
		if (isDomLoaded) {
			fn();
		}
		else { 
			domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
		}
	}
	
	/* Cross-browser onload
		- Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
		- Will fire an event as soon as a web page including all of its assets are loaded 
	 */
	function addLoadEvent(fn) {
		if (typeof win.addEventListener != UNDEF) {
			win.addEventListener("load", fn, false);
		}
		else if (typeof doc.addEventListener != UNDEF) {
			doc.addEventListener("load", fn, false);
		}
		else if (typeof win.attachEvent != UNDEF) {
			addListener(win, "onload", fn);
		}
		else if (typeof win.onload == "function") {
			var fnOld = win.onload;
			win.onload = function() {
				fnOld();
				fn();
			};
		}
		else {
			win.onload = fn;
		}
	}
	
	/* Main function
		- Will preferably execute onDomLoad, otherwise onload (as a fallback)
	*/
	function main() { 
		if (plugin) {
			testPlayerVersion();
		}
		else {
			matchVersions();
		}
	}
	
	/* Detect the Flash Player version for non-Internet Explorer browsers
		- Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
		  a. Both release and build numbers can be detected
		  b. Avoid wrong descriptions by corrupt installers provided by Adobe
		  c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
		- Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
	*/
	function testPlayerVersion() {
		var b = doc.getElementsByTagName("body")[0];
		var o = createElement(OBJECT);
		o.setAttribute("type", FLASH_MIME_TYPE);
		var t = b.appendChild(o);
		if (t) {
			var counter = 0;
			(function(){
				if (typeof t.GetVariable != UNDEF) {
					var d = t.GetVariable("$version");
					if (d) {
						d = d.split(" ")[1].split(",");
						ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
					}
				}
				else if (counter < 10) {
					counter++;
					setTimeout(arguments.callee, 10);
					return;
				}
				b.removeChild(o);
				t = null;
				matchVersions();
			})();
		}
		else {
			matchVersions();
		}
	}
	
	/* Perform Flash Player and SWF version matching; static publishing only
	*/
	function matchVersions() {
		var rl = regObjArr.length;
		if (rl > 0) {
			for (var i = 0; i < rl; i++) { // for each registered object element
				var id = regObjArr[i].id;
				var cb = regObjArr[i].callbackFn;
				var cbObj = {success:false, id:id};
				if (ua.pv[0] > 0) {
					var obj = getElementById(id);
					if (obj) {
						if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match!
							setVisibility(id, true);
							if (cb) {
								cbObj.success = true;
								cbObj.ref = getObjectById(id);
								cb(cbObj);
							}
						}
						else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported
							var att = {};
							att.data = regObjArr[i].expressInstall;
							att.width = obj.getAttribute("width") || "0";
							att.height = obj.getAttribute("height") || "0";
							if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); }
							if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); }
							// parse HTML object param element's name-value pairs
							var par = {};
							var p = obj.getElementsByTagName("param");
							var pl = p.length;
							for (var j = 0; j < pl; j++) {
								if (p[j].getAttribute("name").toLowerCase() != "movie") {
									par[p[j].getAttribute("name")] = p[j].getAttribute("value");
								}
							}
							showExpressInstall(att, par, id, cb);
						}
						else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF
							displayAltContent(obj);
							if (cb) { cb(cbObj); }
						}
					}
				}
				else {	// if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content)
					setVisibility(id, true);
					if (cb) {
						var o = getObjectById(id); // test whether there is an HTML object element or not
						if (o && typeof o.SetVariable != UNDEF) { 
							cbObj.success = true;
							cbObj.ref = o;
						}
						cb(cbObj);
					}
				}
			}
		}
	}
	
	function getObjectById(objectIdStr) {
		var r = null;
		var o = getElementById(objectIdStr);
		if (o && o.nodeName == "OBJECT") {
			if (typeof o.SetVariable != UNDEF) {
				r = o;
			}
			else {
				var n = o.getElementsByTagName(OBJECT)[0];
				if (n) {
					r = n;
				}
			}
		}
		return r;
	}
	
	/* Requirements for Adobe Express Install
		- only one instance can be active at a time
		- fp 6.0.65 or higher
		- Win/Mac OS only
		- no Webkit engines older than version 312
	*/
	function canExpressInstall() {
		return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
	}
	
	/* Show the Adobe Express Install dialog
		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
	*/
	function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
		isExpressInstallActive = true;
		storedCallbackFn = callbackFn || null;
		storedCallbackObj = {success:false, id:replaceElemIdStr};
		var obj = getElementById(replaceElemIdStr);
		if (obj) {
			if (obj.nodeName == "OBJECT") { // static publishing
				storedAltContent = abstractAltContent(obj);
				storedAltContentId = null;
			}
			else { // dynamic publishing
				storedAltContent = obj;
				storedAltContentId = replaceElemIdStr;
			}
			att.id = EXPRESS_INSTALL_ID;
			if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
			if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
				fv = "MMredirectURL=" + encodeURI(window.location).toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
			if (typeof par.flashvars != UNDEF) {
				par.flashvars += "&" + fv;
			}
			else {
				par.flashvars = fv;
			}
			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			if (ua.ie && ua.win && obj.readyState != 4) {
				var newObj = createElement("div");
				replaceElemIdStr += "SWFObjectNew";
				newObj.setAttribute("id", replaceElemIdStr);
				obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
				obj.style.display = "none";
				(function(){
					if (obj.readyState == 4) {
						obj.parentNode.removeChild(obj);
					}
					else {
						setTimeout(arguments.callee, 10);
					}
				})();
			}
			createSWF(att, par, replaceElemIdStr);
		}
	}
	
	/* Functions to abstract and display alternative content
	*/
	function displayAltContent(obj) {
		if (ua.ie && ua.win && obj.readyState != 4) {
			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			var el = createElement("div");
			obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
			el.parentNode.replaceChild(abstractAltContent(obj), el);
			obj.style.display = "none";
			(function(){
				if (obj.readyState == 4) {
					obj.parentNode.removeChild(obj);
				}
				else {
					setTimeout(arguments.callee, 10);
				}
			})();
		}
		else {
			obj.parentNode.replaceChild(abstractAltContent(obj), obj);
		}
	} 

	function abstractAltContent(obj) {
		var ac = createElement("div");
		if (ua.win && ua.ie) {
			ac.innerHTML = obj.innerHTML;
		}
		else {
			var nestedObj = obj.getElementsByTagName(OBJECT)[0];
			if (nestedObj) {
				var c = nestedObj.childNodes;
				if (c) {
					var cl = c.length;
					for (var i = 0; i < cl; i++) {
						if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
							ac.appendChild(c[i].cloneNode(true));
						}
					}
				}
			}
		}
		return ac;
	}
	
	/* Cross-browser dynamic SWF creation
	*/
	function createSWF(attObj, parObj, id) {
		var r, el = getElementById(id);
		if (ua.wk && ua.wk < 312) { return r; }
		if (el) {
			if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
				attObj.id = id;
			}
			if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
				var att = "";
				for (var i in attObj) {
					if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
						if (i.toLowerCase() == "data") {
							parObj.movie = attObj[i];
						}
						else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
							att += ' class="' + attObj[i] + '"';
						}
						else if (i.toLowerCase() != "classid") {
							att += ' ' + i + '="' + attObj[i] + '"';
						}
					}
				}
				var par = "";
				for (var j in parObj) {
					if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
						par += '<param name="' + j + '" value="' + parObj[j] + '" />';
					}
				}
				el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
				objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
				r = getElementById(attObj.id);	
			}
			else { // well-behaving browsers
				var o = createElement(OBJECT);
				o.setAttribute("type", FLASH_MIME_TYPE);
				for (var m in attObj) {
					if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
						if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
							o.setAttribute("class", attObj[m]);
						}
						else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
							o.setAttribute(m, attObj[m]);
						}
					}
				}
				for (var n in parObj) {
					if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
						createObjParam(o, n, parObj[n]);
					}
				}
				el.parentNode.replaceChild(o, el);
				r = o;
			}
		}
		return r;
	}
	
	function createObjParam(el, pName, pValue) {
		var p = createElement("param");
		p.setAttribute("name", pName);	
		p.setAttribute("value", pValue);
		el.appendChild(p);
	}
	
	/* Cross-browser SWF removal
		- Especially needed to safely and completely remove a SWF in Internet Explorer
	*/
	function removeSWF(id) {
		var obj = getElementById(id);
		if (obj && obj.nodeName == "OBJECT") {
			if (ua.ie && ua.win) {
				obj.style.display = "none";
				(function(){
					if (obj.readyState == 4) {
						removeObjectInIE(id);
					}
					else {
						setTimeout(arguments.callee, 10);
					}
				})();
			}
			else {
				obj.parentNode.removeChild(obj);
			}
		}
	}
	
	function removeObjectInIE(id) {
		var obj = getElementById(id);
		if (obj) {
			for (var i in obj) {
				if (typeof obj[i] == "function") {
					obj[i] = null;
				}
			}
			obj.parentNode.removeChild(obj);
		}
	}
	
	/* Functions to optimize JavaScript compression
	*/
	function getElementById(id) {
		var el = null;
		try {
			el = doc.getElementById(id);
		}
		catch (e) {}
		return el;
	}
	
	function createElement(el) {
		return doc.createElement(el);
	}
	
	/* Updated attachEvent function for Internet Explorer
		- Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
	*/	
	function addListener(target, eventType, fn) {
		target.attachEvent(eventType, fn);
		listenersArr[listenersArr.length] = [target, eventType, fn];
	}
	
	/* Flash Player and SWF content version matching
	*/
	function hasPlayerVersion(rv) {
		var pv = ua.pv, v = rv.split(".");
		v[0] = parseInt(v[0], 10);
		v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
		v[2] = parseInt(v[2], 10) || 0;
		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
	}
	
	/* Cross-browser dynamic CSS creation
		- Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
	*/	
	function createCSS(sel, decl, media, newStyle) {
		if (ua.ie && ua.mac) { return; }
		var h = doc.getElementsByTagName("head")[0];
		if (!h) { return; } // to also support badly authored HTML pages that lack a head element
		var m = (media && typeof media == "string") ? media : "screen";
		if (newStyle) {
			dynamicStylesheet = null;
			dynamicStylesheetMedia = null;
		}
		if (!dynamicStylesheet || dynamicStylesheetMedia != m) { 
			// create dynamic stylesheet + get a global reference to it
			var s = createElement("style");
			s.setAttribute("type", "text/css");
			s.setAttribute("media", m);
			dynamicStylesheet = h.appendChild(s);
			if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
				dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
			}
			dynamicStylesheetMedia = m;
		}
		// add style rule
		if (ua.ie && ua.win) {
			if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
				dynamicStylesheet.addRule(sel, decl);
			}
		}
		else {
			if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
				dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
			}
		}
	}
	
	function setVisibility(id, isVisible) {
		if (!autoHideShow) { return; }
		var v = isVisible ? "visible" : "hidden";
		if (isDomLoaded && getElementById(id)) {
			getElementById(id).style.visibility = v;
		}
		else {
			createCSS("#" + id, "visibility:" + v);
		}
	}

	/* Filter to avoid XSS attacks
	*/
	function urlEncodeIfNecessary(s) {
		var regex = /[\\\"<>\.;]/;
		var hasBadChars = regex.exec(s) != null;
		return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
	}
	
	/* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
	*/
	var cleanup = function() {
		if (ua.ie && ua.win) {
			window.attachEvent("onunload", function() {
				// remove listeners to avoid memory leaks
				var ll = listenersArr.length;
				for (var i = 0; i < ll; i++) {
					listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
				}
				// cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
				var il = objIdArr.length;
				for (var j = 0; j < il; j++) {
					removeSWF(objIdArr[j]);
				}
				// cleanup library's main closures to avoid memory leaks
				for (var k in ua) {
					ua[k] = null;
				}
				ua = null;
				for (var l in swfobject) {
					swfobject[l] = null;
				}
				swfobject = null;
			});
		}
	}();
	
	return {
		/* Public API
			- Reference: http://code.google.com/p/swfobject/wiki/documentation
		*/ 
		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
			if (ua.w3 && objectIdStr && swfVersionStr) {
				var regObj = {};
				regObj.id = objectIdStr;
				regObj.swfVersion = swfVersionStr;
				regObj.expressInstall = xiSwfUrlStr;
				regObj.callbackFn = callbackFn;
				regObjArr[regObjArr.length] = regObj;
				setVisibility(objectIdStr, false);
			}
			else if (callbackFn) {
				callbackFn({success:false, id:objectIdStr});
			}
		},
		
		getObjectById: function(objectIdStr) {
			if (ua.w3) {
				return getObjectById(objectIdStr);
			}
		},
		
		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
			var callbackObj = {success:false, id:replaceElemIdStr};
			if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
				setVisibility(replaceElemIdStr, false);
				addDomLoadEvent(function() {
					widthStr += ""; // auto-convert to string
					heightStr += "";
					var att = {};
					if (attObj && typeof attObj === OBJECT) {
						for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
							att[i] = attObj[i];
						}
					}
					att.data = swfUrlStr;
					att.width = widthStr;
					att.height = heightStr;
					var par = {}; 
					if (parObj && typeof parObj === OBJECT) {
						for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
							par[j] = parObj[j];
						}
					}
					if (flashvarsObj && typeof flashvarsObj === OBJECT) {
						for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
							if (typeof par.flashvars != UNDEF) {
								par.flashvars += "&" + k + "=" + flashvarsObj[k];
							}
							else {
								par.flashvars = k + "=" + flashvarsObj[k];
							}
						}
					}
					if (hasPlayerVersion(swfVersionStr)) { // create SWF
						var obj = createSWF(att, par, replaceElemIdStr);
						if (att.id == replaceElemIdStr) {
							setVisibility(replaceElemIdStr, true);
						}
						callbackObj.success = true;
						callbackObj.ref = obj;
					}
					else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
						att.data = xiSwfUrlStr;
						showExpressInstall(att, par, replaceElemIdStr, callbackFn);
						return;
					}
					else { // show alternative content
						setVisibility(replaceElemIdStr, true);
					}
					if (callbackFn) { callbackFn(callbackObj); }
				});
			}
			else if (callbackFn) { callbackFn(callbackObj);	}
		},
		
		switchOffAutoHideShow: function() {
			autoHideShow = false;
		},
		
		ua: ua,
		
		getFlashPlayerVersion: function() {
			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
		},
		
		hasFlashPlayerVersion: hasPlayerVersion,
		
		createSWF: function(attObj, parObj, replaceElemIdStr) {
			if (ua.w3) {
				return createSWF(attObj, parObj, replaceElemIdStr);
			}
			else {
				return undefined;
			}
		},
		
		showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
			if (ua.w3 && canExpressInstall()) {
				showExpressInstall(att, par, replaceElemIdStr, callbackFn);
			}
		},
		
		removeSWF: function(objElemIdStr) {
			if (ua.w3) {
				removeSWF(objElemIdStr);
			}
		},
		
		createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
			if (ua.w3) {
				createCSS(selStr, declStr, mediaStr, newStyleBoolean);
			}
		},
		
		addDomLoadEvent: addDomLoadEvent,
		
		addLoadEvent: addLoadEvent,
		
		getQueryParamValue: function(param) {
			var q = doc.location.search || doc.location.hash;
			if (q) {
				if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
				if (param == null) {
					return urlEncodeIfNecessary(q);
				}
				var pairs = q.split("&");
				for (var i = 0; i < pairs.length; i++) {
					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
						return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
					}
				}
			}
			return "";
		},
		
		// For internal usage only
		expressInstallCallback: function() {
			if (isExpressInstallActive) {
				var obj = getElementById(EXPRESS_INSTALL_ID);
				if (obj && storedAltContent) {
					obj.parentNode.replaceChild(storedAltContent, obj);
					if (storedAltContentId) {
						setVisibility(storedAltContentId, true);
						if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
					}
					if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
				}
				isExpressInstallActive = false;
			} 
		}
	};
}();


function addBookmark(url, title)
{
	if (window.sidebar)
	{
		window.sidebar.addPanel(title, url, "comment");
	}
	else if(window.opera && window.print)
	{
		var anchor = document.createElement('a');
		anchor.setAttribute('href',url);
		anchor.setAttribute('title',title);
		anchor.setAttribute('rel','sidebar');
		anchor.click();
	}
	else if(document.all)
	{
		window.external.AddFavorite(url,title);
	}
}

(function(){function iScroll(a,b){var c=this,i;c.element=typeof a=='object'?a:document.getElementById(a);c.wrapper=c.element.parentNode;c.element.style.webkitTransitionProperty='-webkit-transform';c.element.style.webkitTransitionTimingFunction='cubic-bezier(0,0,0.25,1)';c.element.style.webkitTransitionDuration='0';c.element.style.webkitTransform=translateOpen+'0,0'+translateClose;c.options={bounce:g,momentum:g,checkDOMChanges:true,topOnDOMChanges:false,hScrollbar:g,vScrollbar:g,fadeScrollbar:isIthing||!isTouch,shrinkScrollbar:isIthing||!isTouch,desktopCompatibility:false,overflow:'auto',snap:false,bounceLock:false,scrollbarColor:'rgba(0,0,0,0.5)',onScrollEnd:function(){}};if(typeof b=='object'){for(i in b){c.options[i]=b[i]}}if(c.options.desktopCompatibility){c.options.overflow='hidden'}c.onScrollEnd=c.options.onScrollEnd;delete c.options.onScrollEnd;c.wrapper.style.overflow=c.options.overflow;c.refresh();window.addEventListener('onorientationchange'in window?'orientationchange':'resize',c,false);if(isTouch||c.options.desktopCompatibility){c.element.addEventListener(START_EVENT,c,false);c.element.addEventListener(MOVE_EVENT,c,false);c.element.addEventListener(END_EVENT,c,false)}if(c.options.checkDOMChanges){c.element.addEventListener('DOMSubtreeModified',c,false)}}iScroll.prototype={x:0,y:0,enabled:true,handleEvent:function(e){var a=this;switch(e.type){case START_EVENT:a.touchStart(e);break;case MOVE_EVENT:a.touchMove(e);break;case END_EVENT:a.touchEnd(e);break;case'webkitTransitionEnd':a.transitionEnd();break;case'orientationchange':case'resize':a.refresh();break;case'DOMSubtreeModified':a.onDOMModified(e);break}},onDOMModified:function(e){var a=this;if(e.target.parentNode!=a.element){return}setTimeout(function(){a.refresh()},0);if(a.options.topOnDOMChanges&&(a.x!=0||a.y!=0)){a.scrollTo(0,0,'0')}},refresh:function(){var a=this,resetX=a.x,resetY=a.y,snap;a.scrollWidth=a.wrapper._w||a.wrapper.clientWidth;a.scrollHeight=a.wrapper._h||a.wrapper.clientHeight;a.scrollerWidth=a.element.offsetWidth;a.scrollerHeight=(this.element.measureHeight?this.element.measureHeight():a.element.offsetHeight);a.maxScrollX=a.scrollWidth-a.scrollerWidth;a.maxScrollY=a.scrollHeight-a.scrollerHeight;a.directionX=0;a.directionY=0;if(a.scrollX){if(a.maxScrollX>=0){resetX=0}else if(a.x<a.maxScrollX){resetX=a.maxScrollX}}if(a.scrollY){if(a.maxScrollY>=0){resetY=0}else if(a.y<a.maxScrollY){resetY=a.maxScrollY}}if(a.options.snap){a.maxPageX=-Math.floor(a.maxScrollX/a.scrollWidth);a.maxPageY=-Math.floor(a.maxScrollY/a.scrollHeight);snap=a.snap(resetX,resetY);resetX=snap.x;resetY=snap.y}if(resetX!=a.x||resetY!=a.y){a.setTransitionTime('0');a.setPosition(resetX,resetY,true)}a.scrollX=a.scrollerWidth>a.scrollWidth;a.scrollY=!a.options.bounceLock&&!a.scrollX||a.scrollerHeight>a.scrollHeight;if(a.options.hScrollbar&&a.scrollX){a.scrollBarX=a.scrollBarX||new scrollbar('horizontal',a.wrapper,a.options.fadeScrollbar,a.options.shrinkScrollbar,a.options.scrollbarColor);a.scrollBarX.init(a.scrollWidth,a.scrollerWidth)}else if(a.scrollBarX){a.scrollBarX=a.scrollBarX.remove()}if(a.options.vScrollbar&&a.scrollY&&a.scrollerHeight>a.scrollHeight){a.scrollBarY=a.scrollBarY||new scrollbar('vertical',a.wrapper,a.options.fadeScrollbar,a.options.shrinkScrollbar,a.options.scrollbarColor);a.scrollBarY.init(a.scrollHeight,a.scrollerHeight)}else if(a.scrollBarY){a.scrollBarY=a.scrollBarY.remove()}},setPosition:function(x,y,a){var b=this;b.x=x;b.y=y;b.element.style.webkitTransform=translateOpen+b.x+'px,'+b.y+'px'+translateClose;if(!a){if(b.scrollBarX){b.scrollBarX.setPosition(b.x)}if(b.scrollBarY){b.scrollBarY.setPosition(b.y)}}},setTransitionTime:function(a){var b=this;a=a||'0';b.element.style.webkitTransitionDuration=a;if(b.scrollBarX){b.scrollBarX.bar.style.webkitTransitionDuration=a;b.scrollBarX.wrapper.style.webkitTransitionDuration=g&&b.options.fadeScrollbar?'300ms':'0'}if(b.scrollBarY){b.scrollBarY.bar.style.webkitTransitionDuration=a;b.scrollBarY.wrapper.style.webkitTransitionDuration=g&&b.options.fadeScrollbar?'300ms':'0'}},touchStart:function(e){var a=this,matrix;if(!a.enabled){return}e.preventDefault();a.scrolling=true;a.moved=false;a.distX=0;a.distY=0;a.setTransitionTime('0');if(a.options.momentum||a.options.snap){matrix=new WebKitCSSMatrix(window.getComputedStyle(a.element).webkitTransform);if(matrix.e!=a.x||matrix.f!=a.y){document.removeEventListener('webkitTransitionEnd',a,false);a.setPosition(matrix.e,matrix.f);a.moved=true}}a.touchStartX=isTouch?e.changedTouches[0].pageX:e.pageX;a.scrollStartX=a.x;a.touchStartY=isTouch?e.changedTouches[0].pageY:e.pageY;a.scrollStartY=a.y;a.scrollStartTime=e.timeStamp;a.directionX=0;a.directionY=0},touchMove:function(e){if(!this.scrolling){return}if(this.forceNoScroll){return}var a=this,pageX=isTouch?e.changedTouches[0].pageX:e.pageX,pageY=isTouch?e.changedTouches[0].pageY:e.pageY,leftDelta=a.scrollX?pageX-a.touchStartX:0,topDelta=a.scrollY?pageY-a.touchStartY:0,newX=a.x+leftDelta,newY=a.y+topDelta;a.touchStartX=pageX;a.touchStartY=pageY;if(newX>=0||newX<a.maxScrollX){newX=a.options.bounce?Math.round(a.x+leftDelta/3):(newX>=0||a.maxScrollX>=0)?0:a.maxScrollX}if(newY>=0||newY<a.maxScrollY){newY=a.options.bounce?Math.round(a.y+topDelta/3):(newY>=0||a.maxScrollY>=0)?0:a.maxScrollY}if(a.distX+a.distY>5){if(a.distX-3>a.distY){newY=a.y;topDelta=0}else if(a.distY-3>a.distX){newX=a.x;leftDelta=0}a.setPosition(newX,newY);a.moved=true;a.directionX=leftDelta>0?-1:1;a.directionY=topDelta>0?-1:1}else{a.distX+=Math.abs(leftDelta);a.distY+=Math.abs(topDelta)}},touchEnd:function(e){if(!this.scrolling){return}var a=this,time=e.timeStamp-a.scrollStartTime,point=isTouch?e.changedTouches[0]:e,target,ev,momentumX,momentumY,newDuration=0,newPositionX=a.x,newPositionY=a.y,snap;a.scrolling=false;if(!a.moved){a.resetPosition();if(isTouch){target=point.target;while(target.nodeType!=1){target=target.parentNode}ev=document.createEvent('MouseEvents');ev.initMouseEvent('click',true,true,e.view,1,point.screenX,point.screenY,point.clientX,point.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,0,null);ev._fake=true;target.dispatchEvent(ev)}return}if(!a.options.snap&&time>250){a.resetPosition();return}if(a.options.momentum){momentumX=a.scrollX===true?a.momentum(a.x-a.scrollStartX,time,a.options.bounce?-a.x+a.scrollWidth/5:-a.x,a.options.bounce?a.x+a.scrollerWidth-a.scrollWidth+a.scrollWidth/5:a.x+a.scrollerWidth-a.scrollWidth):{dist:0,time:0};momentumY=a.scrollY===true?a.momentum(a.y-a.scrollStartY,time,a.options.bounce?-a.y+a.scrollHeight/5:-a.y,a.options.bounce?(a.maxScrollY<0?a.y+a.scrollerHeight-a.scrollHeight:0)+a.scrollHeight/5:a.y+a.scrollerHeight-a.scrollHeight):{dist:0,time:0};newDuration=Math.max(Math.max(momentumX.time,momentumY.time),1);newPositionX=a.x+momentumX.dist;newPositionY=a.y+momentumY.dist}if(a.options.snap){snap=a.snap(newPositionX,newPositionY);newPositionX=snap.x;newPositionY=snap.y;newDuration=Math.max(snap.time,newDuration)}a.scrollTo(newPositionX,newPositionY,newDuration+'ms')},transitionEnd:function(){var a=this;document.removeEventListener('webkitTransitionEnd',a,false);a.resetPosition()},resetPosition:function(){var a=this,resetX=a.x,resetY=a.y;if(a.x>=0){resetX=0}else if(a.x<a.maxScrollX){resetX=a.maxScrollX}if(a.y>=0||a.maxScrollY>0){resetY=0}else if(a.y<a.maxScrollY){resetY=a.maxScrollY}if(resetX!=a.x||resetY!=a.y){a.scrollTo(resetX,resetY)}else{if(a.moved){a.onScrollEnd();a.moved=false}if(a.scrollBarX){a.scrollBarX.hide()}if(a.scrollBarY){a.scrollBarY.hide()}}},snap:function(x,y){var a=this,time;if(a.directionX>0){x=Math.floor(x/a.scrollWidth)}else if(a.directionX<0){x=Math.ceil(x/a.scrollWidth)}else{x=Math.round(x/a.scrollWidth)}a.pageX=-x;x=x*a.scrollWidth;if(x>0){x=a.pageX=0}else if(x<a.maxScrollX){a.pageX=a.maxPageX;x=a.maxScrollX}if(a.directionY>0){y=Math.floor(y/a.scrollHeight)}else if(a.directionY<0){y=Math.ceil(y/a.scrollHeight)}else{y=Math.round(y/a.scrollHeight)}a.pageY=-y;y=y*a.scrollHeight;if(y>0){y=a.pageY=0}else if(y<a.maxScrollY){a.pageY=a.maxPageY;y=a.maxScrollY}time=Math.round(Math.max(Math.abs(a.x-x)/a.scrollWidth*500,Math.abs(a.y-y)/a.scrollHeight*500));return{x:x,y:y,time:time}},scrollTo:function(a,b,c){var d=this;if(d.x==a&&d.y==b){d.resetPosition();return}d.moved=true;d.setTransitionTime(c||'350ms');d.setPosition(a,b);if(c==='0'||c=='0s'||c=='0ms'){d.resetPosition()}else{document.addEventListener('webkitTransitionEnd',d,false)}},scrollToPage:function(a,b,c){var d=this,snap;if(!d.options.snap){d.pageX=-Math.round(d.x/d.scrollWidth);d.pageY=-Math.round(d.y/d.scrollHeight)}if(a=='next'){a=++d.pageX}else if(a=='prev'){a=--d.pageX}if(b=='next'){b=++d.pageY}else if(b=='prev'){b=--d.pageY}a=-a*d.scrollWidth;b=-b*d.scrollHeight;snap=d.snap(a,b);a=snap.x;b=snap.y;d.scrollTo(a,b,c||'500ms')},scrollToElement:function(a,b){a=typeof a=='object'?a:this.element.querySelector(a);if(!a){return}var c=this,x=c.scrollX?-a.offsetLeft:0,y=c.scrollY?-a.offsetTop:0;if(x>=0){x=0}else if(x<c.maxScrollX){x=c.maxScrollX}if(y>=0){y=0}else if(y<c.maxScrollY){y=c.maxScrollY}c.scrollTo(x,y,b)},momentum:function(a,b,c,d){var e=2.5,deceleration=1.2,speed=Math.abs(a)/b*1000,newDist=speed*speed/e/1000,newTime=0;if(a>0&&newDist>c){speed=speed*c/newDist/e;newDist=c}else if(a<0&&newDist>d){speed=speed*d/newDist/e;newDist=d}newDist=newDist*(a<0?-1:1);newTime=speed/deceleration;return{dist:Math.round(newDist),time:Math.round(newTime)}},destroy:function(a){var b=this;window.removeEventListener('onorientationchange'in window?'orientationchange':'resize',b,false);b.element.removeEventListener(START_EVENT,b,false);b.element.removeEventListener(MOVE_EVENT,b,false);b.element.removeEventListener(END_EVENT,b,false);document.removeEventListener('webkitTransitionEnd',b,false);if(b.options.checkDOMChanges){b.element.removeEventListener('DOMSubtreeModified',b,false)}if(b.scrollBarX){b.scrollBarX=b.scrollBarX.remove()}if(b.scrollBarY){b.scrollBarY=b.scrollBarY.remove()}if(a){b.wrapper.parentNode.removeChild(b.wrapper)}return null}};function scrollbar(a,b,c,d,e){var f=this,doc=document;f.dir=a;f.fade=c;f.shrink=d;f.uid=++uid;f.bar=doc.createElement('div');f.bar.style.cssText='position:absolute;top:0;left:0;-webkit-transition-timing-function:cubic-bezier(0,0,0.25,1);pointer-events:none;-webkit-transition-duration:0;-webkit-transition-delay:0;-webkit-transition-property:-webkit-transform;z-index:10;background:'+e+';'+'-webkit-transform:'+translateOpen+'0,0'+translateClose+';'+(a=='horizontal'?'-webkit-border-radius:3px 2px;min-width:6px;min-height:5px':'-webkit-border-radius:2px 3px;min-width:5px;min-height:6px');f.wrapper=doc.createElement('div');f.wrapper.style.cssText='-webkit-mask:-webkit-canvas(scrollbar'+f.uid+f.dir+');position:absolute;z-index:10;pointer-events:none;overflow:hidden;opacity:0;-webkit-transition-duration:'+(c?'300ms':'0')+';-webkit-transition-delay:0;-webkit-transition-property:opacity;'+(f.dir=='horizontal'?'bottom:2px;left:2px;right:7px;height:5px':'top:2px;right:2px;bottom:7px;width:5px;');f.wrapper.appendChild(f.bar);b.appendChild(f.wrapper)}scrollbar.prototype={init:function(a,b){var c=this,doc=document,pi=Math.PI,ctx;if(c.dir=='horizontal'){if(c.maxSize!=c.wrapper.offsetWidth){c.maxSize=c.wrapper.offsetWidth;ctx=doc.getCSSCanvasContext("2d","scrollbar"+c.uid+c.dir,c.maxSize,5);ctx.fillStyle="rgb(0,0,0)";ctx.beginPath();ctx.arc(2.5,2.5,2.5,pi/2,-pi/2,false);ctx.lineTo(c.maxSize-2.5,0);ctx.arc(c.maxSize-2.5,2.5,2.5,-pi/2,pi/2,false);ctx.closePath();ctx.fill()}}else{if(c.maxSize!=c.wrapper.offsetHeight){c.maxSize=c.wrapper.offsetHeight;ctx=doc.getCSSCanvasContext("2d","scrollbar"+c.uid+c.dir,5,c.maxSize);ctx.fillStyle="rgb(0,0,0)";ctx.beginPath();ctx.arc(2.5,2.5,2.5,pi,0,false);ctx.lineTo(5,c.maxSize-2.5);ctx.arc(2.5,c.maxSize-2.5,2.5,0,pi,false);ctx.closePath();ctx.fill()}}c.size=Math.max(Math.round(c.maxSize*c.maxSize/b),6);c.maxScroll=c.maxSize-c.size;c.toWrapperProp=c.maxScroll/(a-b);c.bar.style[c.dir=='horizontal'?'width':'height']=c.size+'px'},setPosition:function(a){var b=this;if(b.wrapper.style.opacity!='1'){b.show()}a=Math.round(b.toWrapperProp*a);if(a<0){a=b.shrink?a+a*3:0;if(b.size+a<7){a=-b.size+6}}else if(a>b.maxScroll){a=b.shrink?a+(a-b.maxScroll)*3:b.maxScroll;if(b.size+b.maxScroll-a<7){a=b.size+b.maxScroll-6}}a=b.dir=='horizontal'?translateOpen+a+'px,0'+translateClose:translateOpen+'0,'+a+'px'+translateClose;b.bar.style.webkitTransform=a},show:function(){if(g){this.wrapper.style.webkitTransitionDelay='0'}this.wrapper.style.opacity='1'},hide:function(){if(g){this.wrapper.style.webkitTransitionDelay='350ms'}this.wrapper.style.opacity='0'},remove:function(){this.wrapper.parentNode.removeChild(this.wrapper);return null}};var g=('WebKitCSSMatrix'in window&&'m11'in new WebKitCSSMatrix()),isIthing=(/iphone|ipad/gi).test(navigator.appVersion),isTouch=('ontouchstart'in window),START_EVENT=isTouch?'touchstart':'mousedown',MOVE_EVENT=isTouch?'touchmove':'mousemove',END_EVENT=isTouch?'touchend':'mouseup',translateOpen='translate'+(g?'3d(':'('),translateClose=g?',0)':')',uid=0;window._tciScroll=iScroll})();


/**
 * beforeWebtrekk is a Demo function to test interfaces
 * @type Function
 */
var beforeWebtrekk = function(){
	console.log("Send 3rd-Party Pixel before the Webtrekk Pixel with trackId "+this.trackId);
};
/**
 * afterWebtrekk is a Demo function to test interfaces
 * @type Function
 */
var afterWebtrekk = function(){
	console.log("Send 3rd-Party Pixel after the Webtrekk Pixel with trackId "+this.trackId);
};
/**
 * beforeUnloadPixel is a Demo function to test interfaces
 * @type Function
 */
var beforeUnloadPixel = function(){
	console.log("Perform something prior to sending Unload Pixel");
};
/**
 * afterUnload is a Demo function to test interfaces
 * @type Function
 */
var afterUnloadPixel = function(){
	console.log("Perform something after sending Unload Pixel");
};


/**
 * webtrekkConfig
 * 
 * global webtrekk config
 * @type Object
 */
var webtrekkConfig = {
	trackId : "438012085246723",
	trackDomain : "now.peek-cloppenburg.de",
	domain : "www.peek-cloppenburg.de",
	cookie : "1",
	contentId : ""
};


/*
 ********************* Don't change anything beyond this line ********************
 */
var webtrekkUnloadObjects=[];var webtrekkLinktrackObjects=[];var webtrekkHeatmapObjects=[];function webtrekkUnload($a){for(i=0;i<webtrekkUnloadObjects.length;i++){if(webtrekkUnloadObjects[i].cookie=="1"&&!webtrekkUnloadObjects[i].optOut&&!webtrekkUnloadObjects[i].deactivatePixel){webtrekkUnloadObjects[i].firstParty();};if(webtrekkUnloadObjects[i].beforeUnloadPixel!=false){webtrekkUnloadObjects[i].beforeUnloadPixel();};var p="";if(webtrekkUnloadObjects[i].config.linkId){p+="&ct="+webtrekkUnloadObjects[i].wtEscape(webtrekkUnloadObjects[i].maxlen(webtrekkUnloadObjects[i].config.linkId,255));if(p){if(webtrekkUnloadObjects[i].linktrackOut){p+="&ctx=1";};var $b=webtrekkUnloadObjects[i].ccParams;if(typeof($b)=='string'&&$b!=''){p+=$b;}}};if(webtrekkUnloadObjects[i].wtEp){if(webtrekkUnloadObjects[i].wtEpEncoded){p+=webtrekkUnloadObjects[i].wtEp;}else{var $c=webtrekkUnloadObjects[i].wtEp;if(typeof($c)=='string'&&$c!=''){$c=$c.split(/;/);for(var z=0;z<$c.length;z++){if(webtrekkUnloadObjects[i].wtTypeof($c[z])){var $d=$c[z].split(/=/);if(webtrekkUnloadObjects[i].checkSC('custom')){$d[1]=webtrekkUnloadObjects[i].decrypt($d[1]);};$d[1]=webtrekkUnloadObjects[i].wtEscape($d[1]);p+='&'+$d[0]+'='+$d[1];}}}}};if(webtrekkUnloadObjects[i].formObject&&$a!="noForm"){var gatherFormsP=webtrekkUnloadObjects[i].gatherForm();if(gatherFormsP){p+="&fn="+(webtrekkUnloadObjects[i].formName?webtrekkUnloadObjects[i].formName:webtrekkUnloadObjects[i].contentId.split(";")[0])+'|'+(webtrekkUnloadObjects[i].formSubmit?"1":"0");p+="&ft="+webtrekkUnloadObjects[i].wtEscape(gatherFormsP);}};if(p!=""||webtrekkUnloadObjects[i].config.sendOnUnload){if(webtrekkUnloadObjects[i].isChrome){webtrekkUnloadObjects[i].quicksend(webtrekkUnloadObjects[i].wtEscape(webtrekkUnloadObjects[i].contentId.split(";")[0])+",1,"+webtrekkUnloadObjects[i].baseparams(),p,false,"saveRequest");}else{webtrekkUnloadObjects[i].quicksend(webtrekkUnloadObjects[i].wtEscape(webtrekkUnloadObjects[i].contentId.split(";")[0])+",1,"+webtrekkUnloadObjects[i].baseparams(),p,false,"sendRequest");};webtrekkUnloadObjects[i].config.linkId="";webtrekkUnloadObjects[i].ccParams="";webtrekkUnloadObjects[i].wtEp="";};if(webtrekkUnloadObjects[i].afterUnloadPixel!=false){webtrekkUnloadObjects[i].afterUnloadPixel();}}};function webtrekkLinktrack(e){for(z=0;z<webtrekkLinktrackObjects.length;z++){if((e.which&&e.which==1)||(e.button&&e.button==1)){var a=document.all?window.event.srcElement:this;for(var i=0;i<4;i++){if(a.tagName&&a.tagName.toLowerCase()!="a"&&a.tagName.toLowerCase()!="area"){a=a.parentElement;}};a.lname=(a.getAttribute('name')?a.getAttribute('name'):"");webtrekkLinktrackObjects[z].getCCParams(a);if(webtrekkLinktrackObjects[z].linkTrackAttribute){var tmp="";eval("tmp = (a.getAttribute(webtrekkLinktrackObjects[z].linkTrackAttribute)?a.getAttribute(webtrekkLinktrackObjects[z].linkTrackAttribute):'')");if(tmp){a.lname=tmp;}};a.lpos=0;if(!webtrekkLinktrackObjects[z].wtLength(a.lpos)&&a.tagName){c=document.links;for(d=0;d<webtrekkLinktrackObjects[z].wtLength(c);d++){if(a==c[d]){a.lpos=d+1;break;}}};if(a.lpos){if(webtrekkLinktrackObjects[z].linkTrack=="link"){var y=a.href.indexOf("//");y=(y>=0?a.href.substr(y+2):a.href);if(webtrekkLinktrackObjects[z].linkTrackPattern){if(!webtrekkLinktrackObjects[z].linkTrackReplace){webtrekkLinktrackObjects[z].linkTrackReplace="";};y=y.replace(webtrekkLinktrackObjects[z].linkTrackPattern,webtrekkLinktrackObjects[z].linkTrackReplace);};webtrekkLinktrackObjects[z].config.linkId=(a.lname?(a.lname+"."):"")+y.split("?")[0].replace(/\//g,".");var p="";if(webtrekkLinktrackObjects[z].linkTrackParams){p=webtrekkLinktrackObjects[z].linkTrackParams.replace(/;/g,",").split(",");};for(var i=0;i<p.length;i++){var v=webtrekkLinktrackObjects[z].urlParam(y,p[i],"");if(v){webtrekkLinktrackObjects[z].config.linkId+="."+p[i]+"."+v;}}}else if(webtrekkLinktrackObjects[z].linkTrack=="standard"&&a.lname){webtrekkLinktrackObjects[z].config.linkId=a.lname;};webtrekkLinktrackObjects[z].isDownloadFile=false;if(webtrekkLinktrackObjects[z].linkTrackDownloads){var $e=a.href.split(".");$e=$e.pop();var $f=webtrekkLinktrackObjects[z].linkTrackDownloads.split(";");for(i=0;i<$f.length;i++){if($f[i]==$e){webtrekkLinktrackObjects[z].isDownloadFile=true;break;}}};if(webtrekkLinktrackObjects[z].config.linkId){if(webtrekkLinktrackObjects[z].domain&&!webtrekkLinktrackObjects[z].isOwnDomain(a.href)){webtrekkLinktrackObjects[z].linktrackOut=true;}};if(webtrekkLinktrackObjects[z].isSafari||webtrekkLinktrackObjects[z].isOpera||webtrekkLinktrackObjects[z].isChrome||webtrekkLinktrackObjects[z].isDownloadFile||(webtrekkLinktrackObjects[z].linktrack_p&&a.target!=""&&a.target!="_self")){webtrekkLinktrackObjects[z].sendinfo(webtrekkLinktrackObjects[z].config);}}}}};function webtrekkHeatmapClick(e){var isOpera=(navigator.userAgent.indexOf('Opera')!=-1);var isIE=(!isOpera&&navigator.userAgent.indexOf('MSIE')!=-1);for(z=0;z<webtrekkHeatmapObjects.length;z++){var $g={left:-1,top:-1};if(document.getElementById(webtrekkHeatmapObjects[z].heatmapRefpoint)){var $h=document.getElementById(webtrekkHeatmapObjects[z].heatmapRefpoint);if(webtrekkHeatmapObjects[z].wtTypeof($h.offsetLeft)){while($h){$g.left+=$h.offsetLeft;$g.top+=$h.offsetTop;$h=$h.offsetParent;}}};var $i=0;var $j=0;if(!e){var e=window.event;};if(e.pageX||e.pageY){$i=e.pageX;$j=e.pageY;}else{if(e.clientX||e.clientY){$i=e.clientX;$j=e.clientY;if(isIE){if(document.body.scrollLeft>0||document.body.scrollTop>0){$i+=document.body.scrollLeft;$j+=document.body.scrollTop;}else{if(document.documentElement.scrollLeft>0||document.documentElement.scrollTop>0){$i+=document.documentElement.scrollLeft;$j+=document.documentElement.scrollTop;}}}}};var $k=0;if(isIE){$k=document.body.clientWidth;}else{$k=self.innerWidth-16;};var $l=true;if($i>=$k||!webtrekkHeatmapObjects[z].sentFullPixel){$l=false;};if(($g.top>=0||$g.left>=0)&&$i>$g.left&&$j>$g.top){$i='-'+($i-$g.left);$j='-'+($j-$g.top);};if($l){webtrekkHeatmapObjects[z].quicksend(webtrekkHeatmapObjects[z].wtEscape(webtrekkHeatmapObjects[z].contentId.split(";")[0])+","+$i+","+$j,'',"hm","sendRequest");}}};function webtrekkStartHeatmap(){if(typeof(wt_heatmap)!="undefined"){window.setTimeout("wt_heatmap()",1000);}else{if(typeof($m)=="undefined")$m=0;$m++;if($m<60)window.setTimeout("webtrekkStartHeatmap()",1000);}};function webtrekkStartOverlay(){if(typeof(wt_overlay)!="undefined"){wt_overlay();}else{if(typeof($n)=="undefined")$n=0;$n++;if($n<60)window.setTimeout("webtrekkStartOverlay()",1000);}};function webtrekkFormTrackInstall(){for(i=0;i<webtrekkUnloadObjects.length;i++){webtrekkUnloadObjects[i].findForm();if(!webtrekkUnloadObjects[i].formObject){continue;};for(var j=0;j<webtrekkUnloadObjects[i].formObject.elements.length;j++){var e=webtrekkUnloadObjects[i].formObject.elements[j];webtrekkUnloadObjects[i].registerEvent(e,"focus",webtrekkFormFocus);};webtrekkUnloadObjects[i].registerEvent(webtrekkUnloadObjects[i].formObject,"submit",webtrekkFormSubmit);}};function webtrekkFormSubmit(e){for(i=0;i<webtrekkUnloadObjects.length;i++){if(!webtrekkUnloadObjects[i].form){continue;};if(e.target==webtrekkUnloadObjects[i].formObject||e.srcElement==webtrekkUnloadObjects[i].formObject){webtrekkUnloadObjects[i].formSubmit=true;}}};function webtrekkFormFocus(e){var a=document.all?window.event.srcElement:e.target;if(!a.name||a.type=="submit"||a.type=="image"){return;};for(i=0;i<webtrekkUnloadObjects.length;i++){var f=webtrekkUnloadObjects[i].formObject.getAttribute('name')?webtrekkUnloadObjects[i].formObject.getAttribute('name'):webtrekkUnloadObjects[i].contentId.split(";")[0];if(webtrekkUnloadObjects[i].formAttribute){var tmp="";eval("tmp = (webtrekkUnloadObjects["+i+"].formObject.getAttribute(webtrekkUnloadObjects["+i+"].formAttribute) ? webtrekkUnloadObjects["+i+"].formObject.getAttribute(webtrekkUnloadObjects["+i+"].formAttribute):'')");if(tmp){f=tmp;}};webtrekkUnloadObjects[i].formFocus=a.name;}};function webtrekkV3($o){if(!$o){var $o=webtrekkConfig;};this.trackId=($o.trackId)?$o.trackId:(webtrekkConfig.trackId)?webtrekkConfig.trackId:false;this.trackDomain=($o.trackDomain)?$o.trackDomain:(webtrekkConfig.trackDomain)?webtrekkConfig.trackDomain:false;this.domain=($o.domain)?$o.domain:(webtrekkConfig.domain)?webtrekkConfig.domain:false;this.linkTrack=($o.linkTrack)?$o.linkTrack:(webtrekkConfig.linkTrack)?webtrekkConfig.linkTrack:false;this.linkTrackAttribute=($o.linkTrackAttribute)?$o.linkTrackAttribute:(webtrekkConfig.linkTrackAttribute)?webtrekkConfig.linkTrackAttribute:false;this.linkTrackPattern=($o.linkTrackPattern)?$o.linkTrackPattern:(webtrekkConfig.linkTrackPattern)?webtrekkConfig.linkTrackPattern:false;this.linkTrackReplace=($o.linkTrackReplace)?$o.linkTrackReplace:(webtrekkConfig.linkTrackReplace)?webtrekkConfig.linkTrackReplace:false;this.linkTrackDownloads=($o.linkTrackDownloads)?$o.linkTrackDownloads:(webtrekkConfig.linkTrackDownloads)?webtrekkConfig.linkTrackDownloads:false;this.customParameter=($o.customParameter)?$o.customParameter:(webtrekkConfig.customParameter)?webtrekkConfig.customParameter:false;this.customClickParameter=($o.customClickParameter)?$o.customClickParameter:(webtrekkConfig.customClickParameter)?webtrekkConfig.customClickParameter:false;this.customSessionParameter=($o.customSessionParameter)?$o.customSessionParameter:(webtrekkConfig.customSessionParameter)?webtrekkConfig.customSessionParameter:false;this.customTimeParameter=($o.customTimeParameter)?$o.customTimeParameter:(webtrekkConfig.customTimeParameter)?webtrekkConfig.customTimeParameter:false;this.customCampaignParameter=($o.customCampaignParameter)?$o.customCampaignParameter:(webtrekkConfig.customCampaignParameter)?webtrekkConfig.customCampaignParameter:false;this.customEcommerceParameter=($o.customEcommerceParameter)?$o.customEcommerceParameter:(webtrekkConfig.customEcommerceParameter)?webtrekkConfig.customEcommerceParameter:false;this.orderValue=($o.orderValue)?$o.orderValue:(webtrekkConfig.orderValue)?webtrekkConfig.orderValue:false;this.orderCurrency=($o.orderCurrency)?$o.orderCurrency:(webtrekkConfig.orderCurrency)?webtrekkConfig.orderCurrency:false;this.orderId=($o.orderId)?$o.orderId:(webtrekkConfig.orderId)?webtrekkConfig.orderId:false;this.product=($o.product)?$o.product:(webtrekkConfig.product)?webtrekkConfig.product:false;this.productCost=($o.productCost)?$o.productCost:(webtrekkConfig.productCost)?webtrekkConfig.productCost:false;this.productQuantity=($o.productQuantity)?$o.productQuantity:(webtrekkConfig.productQuantity)?webtrekkConfig.productQuantity:false;this.productCategory=($o.productCategory)?$o.productCategory:(webtrekkConfig.productCategory)?webtrekkConfig.productCategory:false;this.productStatus=($o.productStatus)?$o.productStatus:(webtrekkConfig.productStatus)?webtrekkConfig.productStatus:false;this.customerId=($o.customerId)?$o.customerId:(webtrekkConfig.customerId)?webtrekkConfig.customerId:false;this.crmCategory=($o.crmCategory)?$o.crmCategory:(webtrekkConfig.crmCategory)?webtrekkConfig.crmCategory:false;this.contentGroup=($o.contentGroup)?$o.contentGroup:(webtrekkConfig.contentGroup)?webtrekkConfig.contentGroup:false;this.mediaCode=($o.mediaCode)?$o.mediaCode:(webtrekkConfig.mediaCode)?webtrekkConfig.mediaCode:false;this.mediaCodeValue=($o.mediaCodeValue)?$o.mediaCodeValue:(webtrekkConfig.mediaCodeValue)?webtrekkConfig.mediaCodeValue:false;this.mediaCodeCookie=($o.mediaCodeCookie)?$o.mediaCodeCookie:(webtrekkConfig.mediaCodeCookie)?webtrekkConfig.mediaCodeCookie:false;this.campaignId=($o.campaignId)?$o.campaignId:(webtrekkConfig.campaignId)?webtrekkConfig.campaignId:false;this.campaignAction=($o.campaignAction)?$o.campaignAction:(webtrekkConfig.campaignAction)?webtrekkConfig.campaignAction:"click";this.internalSearch=($o.internalSearch)?$o.internalSearch:(webtrekkConfig.internalSearch)?webtrekkConfig.internalSearch:false;this.customSid=($o.customSid)?$o.customSid:(webtrekkConfig.customSid)?webtrekkConfig.customSid:false;this.customEid=($o.customEid)?$o.customEid:(webtrekkConfig.customEid)?webtrekkConfig.customEid:false;this.cookie=($o.cookie)?$o.cookie:(webtrekkConfig.cookie)?webtrekkConfig.cookie:"3";this.cookieEidTimeout=($o.cookieEidTimeout)?$o.cookieEidTimeout:(webtrekkConfig.cookieEidTimeout)?webtrekkConfig.cookieEidTimeout:false;this.cookieSidTimeout=($o.cookieSidTimeout)?$o.cookieSidTimeout:(webtrekkConfig.cookieSidTimeout)?webtrekkConfig.cookieSidTimeout:false;this.forceNewSession=($o.forceNewSession)?$o.forceNewSession:(webtrekkConfig.forceNewSession)?webtrekkConfig.forceNewSession:false;this.xwtip=($o.xwtip)?$o.xwtip:(webtrekkConfig.xwtip)?webtrekkConfig.xwtip:false;this.xwtua=($o.xwtua)?$o.xwtua:(webtrekkConfig.xwtua)?webtrekkConfig.xwtua:false;this.xwtrq=($o.xwtrq)?$o.xwtrq:(webtrekkConfig.xwtrq)?webtrekkConfig.xwtrq:false;this.mediaCodeFrames=($o.mediaCodeFrames)?$o.mediaCodeFrames:(webtrekkConfig.mediaCodeFrames)?webtrekkConfig.mediaCodeFrames:false;this.framesetReferrer=($o.framesetReferrer)?$o.framesetReferrer:(webtrekkConfig.framesetReferrer)?webtrekkConfig.framesetReferrer:false;this.plugins=($o.plugins&&$o.plugins!='')?$o.plugins:(webtrekkConfig.plugins&&webtrekkConfig.plugins!='')?webtrekkConfig.plugins:['Adobe Acrobat','Windows Media Player','Shockwave Flash','RealPlayer','QuickTime','Java','Silverlight'];if(typeof(this.plugins)=="string"){this.plugins=this.plugins.split(";");};this.forceHTTPS=($o.forceHTTPS)?$o.forceHTTPS:(webtrekkConfig.forceHTTPS)?webtrekkConfig.forceHTTPS:false;this.secureConfig=($o.secureConfig)?$o.secureConfig:(webtrekkConfig.secureConfig)?webtrekkConfig.secureConfig:false;this.heatmap=($o.heatmap)?$o.heatmap:(webtrekkConfig.heatmap)?webtrekkConfig.heatmap:false;this.heatmapRefpoint=($o.heatmapRefpoint)?$o.heatmapRefpoint:(webtrekkConfig.heatmapRefpoint)?webtrekkConfig.heatmapRefpoint:"wt_refpoint";this.pixelSampling=($o.pixelSampling)?$o.pixelSampling:(webtrekkConfig.pixelSampling)?webtrekkConfig.pixelSampling:false;this.form=($o.form)?$o.form:(webtrekkConfig.form)?webtrekkConfig.form:false;this.formAttribute=($o.formAttribute)?$o.formAttribute:(webtrekkConfig.formAttribute)?webtrekkConfig.formAttribute:false;this.formFieldAttribute=($o.formFieldAttribute)?$o.formFieldAttribute:(webtrekkConfig.formFieldAttribute)?webtrekkConfig.formFieldAttribute:false;this.formFullContent=($o.formFullContent)?$o.formFullContent:(webtrekkConfig.formFullContent)?webtrekkConfig.formFullContent:false;this.formAnonymous=($o.formAnonymous)?$o.formAnonymous:(webtrekkConfig.formAnonymous)?webtrekkConfig.formAnonymous:false;this.reporturl=($o.reporturl)?$o.reporturl:(webtrekkConfig.reporturl)?webtrekkConfig.reporturl:'report2.webtrekk.de/cgi-bin/wt';this.disableOverlayView=($o.disableOverlayView)?$o.disableOverlayView:(webtrekkConfig.disableOverlayView)?webtrekkConfig.disableOverlayView:false;this.version=314;this.beforeSendinfoPixel=($o.beforeSendinfoPixel)?$o.beforeSendinfoPixel:(webtrekkConfig.beforeSendinfoPixel)?webtrekkConfig.beforeSendinfoPixel:false;;this.afterSendinfoPixel=($o.afterSendinfoPixel)?$o.afterSendinfoPixel:(webtrekkConfig.afterSendinfoPixel)?webtrekkConfig.afterSendinfoPixel:false;;this.beforeUnloadPixel=($o.beforeUnloadPixel)?$o.beforeUnloadPixel:(webtrekkConfig.beforeUnloadPixel)?webtrekkConfig.beforeUnloadPixel:false;;this.afterUnloadPixel=($o.afterUnloadPixel)?$o.afterUnloadPixel:(webtrekkConfig.afterUnloadPixel)?webtrekkConfig.afterUnloadPixel:false;;this.deactivatePixel=false;this.optOut=false;this.eid=false;this.sampleCookieString=false;this.cookieOne=false;this.linkId=false;this.linktrackOut=false;this.linktrackNamedlinksOnly=true;this.ccParams=false;this.sentFullPixel=false;this.sentCampaignIds={};this.wtEp=false;this.wtEpEncoded=false;this.trackingSwitchMediaCode=false;this.trackingSwitchMediaCodeValue=false;this.trackingSwitchMediaCodeTimestamp=false;this.heatmapOn=false;this.overlayOn=false;this.gatherFormsP=false;this.formObject=false;this.formName=false;this.formFocus=false;this.formSubmit=false;this.browserLang=false;this.config=false;this.unloadInstance=webtrekkUnloadObjects.length;this.xlc=false;this.xlct=false;this.xlcv=false;this.plugin={};if(typeof(navigator.language)=="string"){this.browserLang=navigator.language.substring(0,2);}else if(typeof(navigator.userLanguage)=="string"){this.browserLang=navigator.userLanguage.substring(0,2);};this.getConfig=function(){var c={"contentId":this.contentId,"linkId":this.linkId,"sendOnUnload":false,"customParameter":this.customParameter,"customClickParameter":this.customClickParameter,"customSessionParameter":this.customSessionParameter,"customTimeParameter":this.customTimeParameter,"customCampaignParameter":this.customCampaignParameter,"customEcommerceParameter":this.customEcommerceParameter,"orderValue":this.orderValue,"orderCurrency":this.orderCurrency,"orderId":this.orderId,"product":this.product,"productCost":this.productCost,"productQuantity":this.productQuantity,"productCategory":this.productCategory,"productStatus":this.productStatus,"customerId":this.customerId,"crmCategory":this.crmCategory,"contentGroup":this.contentGroup,"campaignId":this.campaignId,"campaignAction":this.campaignAction,"internalSearch":this.internalSearch,"customSid":this.customSid,"customEid":this.customEid,"forceNewSession":this.forceNewSession,"xwtip":this.xwtip,"xwtua":this.xwtua,"xwtrq":this.xwtrq,"framesetReferrer":this.framesetReferrer,"forceHTTPS":this.forceHTTPS,"beforeSendinfoPixel":this.beforeSendinfoPixel,"afterSendinfoPixel":this.afterSendinfoPixel,"beforeUnloadPixel":this.beforeUnloadPixel,"afterUnloadPixel":this.afterUnloadPixel,"xlc":this.xlc,"xlct":this.xlct,"xlcv":this.xlcv};return c;};this.indexOf=function(a,b,c){return a.indexOf(b,c?c:0);};this.wtTypeof=function(v){return(typeof v!="undefined")?1:0;};this.wtLength=function(a){return a!="undefined"?a.length:0;};this.getTimezone=function(){return Math.round((new Date().getTimezoneOffset()/60)*(-1));};this.wtHref=function(){return this.wtLocation().href;};this.wtLocation=function(){var r=document.location;if(!document.layers&&document.getElementById){eval("try {r=top.document.location;}catch(e){r=document.location;};");}else{r=top.document.location;};return r;};this.getWebtrekkPath=function(){if(!document.layers&&document.getElementById){var $p=document.getElementsByTagName('script');for(var i=0;i<$p.length;i++){if($p[i].src.match(/webtrekk[a-z|A-Z|0-9|_]*\.js/g)){return $p[i].src.replace(/webtrekk[a-z|A-Z|0-9|_]*\.js/g,'');}}};return '';};this.include=function(s){if(!document.createElement){return false;};var $q=document.getElementsByTagName('head').item(0);var js=document.createElement('script');js.setAttribute('language','javascript');js.setAttribute('type','text/javascript');js.setAttribute('src',s);$q.appendChild(js);return true;};this.isIE=this.indexOf(navigator.appName,"Microsoft")?false:true;if(!this.isIE){this.isOpera=this.indexOf(navigator.appName,"Opera")?false:true;if(!this.isOpera){this.isSafari=(navigator.vendor.toLowerCase().indexOf("apple")!=-1)?true:false;this.isChrome=(navigator.vendor.toLowerCase().indexOf("google")!=-1)?true:false;}};this.url2contentId=function($r){if(!$r){return "no_content";};var tmp=new RegExp("//(.*)").exec($r);if(tmp.length<1){return "no_content";};var $s=tmp[1].split("?")[0].replace(/\./g,"_").replace(/\//g, ".").replace(/\.{2,};/g,".").toLowerCase();return $s.split(";")[0];};this.contentId=($o.contentId)?$o.contentId:this.url2contentId(document.location.href);this.registerEvent=function($h,e,f){if($h.addEventListener){$h.addEventListener(e,f,false);}else{if($h.attachEvent){if(e=="beforeunload"){this.unregisterEvent($h,e,f);};$h.attachEvent("on"+e,f);}}};this.unregisterEvent=function($h,e,f){if($h.removeEventListener){$h.removeEventListener(e,f,false);}else{if($h.detachEvent){$h.detachEvent("on"+e,f);}}};this.maxlen=function(v,l){if(v&&v.length>l){return v.substring(0,l-1);};return v;};this.wtEscape=function(u){if(typeof(encodeURIComponent)=='function'){return encodeURIComponent(u);};return escape(u);};this.wtUnescape=function(u){if(typeof(decodeURIComponent)=='function'){return decodeURIComponent(u);};return unescape(u);};this.decrypt=function(x){if(x){return eval("try {this.wtUnescape(x.replace(/([0-9a-fA-F][0-9a-fA-F])/g,'%$1'));}catch(e){''};");}};this.checkSC=function(x){if(typeof(this.secureConfig)!='string'){return false;};var sc=this.secureConfig.split(';');for(var i=0;i<sc.length;i++){if(sc[i]==x){return true;}};return false;};this.zeroPad=function(n,$t){var $u="000000000000"+n;return $u.substring(($u.length-$t),$u.length);};this.generateEid=function(){return '2'+this.zeroPad(Math.floor(new Date().getTime()/1000),10)+this.zeroPad(Math.floor(Math.random()*1000000),8);};this.getexpirydate=function($v){var $w;var $x=new Date();var $y=Date.parse($x);$x.setTime($y+$v*60*1000);$w=$x.toUTCString();return $w;};this.setCookie=function(name,$z,$A){var d=location.hostname;var $B="^[0-9]{1,3"+String.fromCharCode(125)+"\.[0-9]{1,3"+String.fromCharCode(125)+"\.[0-9]{1,3"+String.fromCharCode(125)+"\.[0-9]{1,3"+String.fromCharCode(125)+"$";if(d.search($B)==-1){d=location.hostname.split(".");d=d[d.length-2]+"."+d[d.length-1];};var c;if(d.split('.')[0].length<3&&typeof $A!="undefined"){c=name+"="+escape($z)+";path=/;expires="+this.getexpirydate($A);}else if(d.split('.')[0].length<3){c=name+"="+escape($z)+";path=/";}else if(typeof $A!="undefined"){c=name+"="+escape($z)+";domain="+d+";path=/;expires="+this.getexpirydate($A);}else{c=name+"="+escape($z)+";path=/;domain="+d;};document.cookie=c;};this.getCookie=function($C){var $D=""+document.cookie;var $E=$D.indexOf($C);if($E==-1||$C==""){return "";};var $F=$D.indexOf(';',$E);if($F==-1){$F=$D.length;};return unescape($D.substring($E+$C.length+1,$F));};this.optOut=(this.getCookie("webtrekkOptOut"))?true:false;if(this.optOut){this.deactivatePixel=true;};this.urlParam=function($r,$G,$H){var p=new Array();if($r.indexOf("?")>0){p=$r.substring($r.indexOf("?")+1).replace(/&amp;/g,"&").split("&");};for(var i=0;i<p.length;i++){if(p[i].indexOf($G+"=")==0){return this.wtUnescape(p[i].substring($G.length+1).replace(/\+/g,"%20"));}};return $H;};this.allUrlParam=function($G,$H){if(this.mediaCodeFrames&&this.mediaCodeFrames!=''){var lf=this.mediaCodeFrames.split(";");for(var i=0;i<lf.length;i++){var $I=false;eval("try { lFrame = eval(lf[i]) }catch(e){};");if($I&&$I!=top&&$I.location){var $J=this.urlParam($I.location.href,$G,$H);if($J!=$H){return $J;}}};return $H;}else{var topLocation="";eval("try {topLocation = top.location.href;}catch(e){topLocation=document.location.href;};");return this.urlParam(topLocation,$G,$H);}};this.linkTrackInit=function(){for(i=0;i<webtrekkLinktrackObjects.length;i++){if(this==webtrekkLinktrackObjects[i]){return;}};webtrekkLinktrackObjects.push(this);if(this.linkTrack&&this.linkTrack=="link"){this.linktrackNamedlinksOnly=false;};for(c=0;c<document.links.length;c++){var name=document.links[c].getAttribute('name');if(this.linkTrackAttribute&&this.linkTrackAttribute!=""){var tmp="";eval("tmp = (document.links[c].getAttribute(this.linkTrackAttribute)?document.links[c].getAttribute(this.linkTrackAttribute):'')");if(tmp){name=tmp;}};if(name||!this.linktrackNamedlinksOnly){this.registerEvent(document.links[c],'mousedown',webtrekkLinktrack);}}};if(this.linkTrack){this.linkTrackInit();};this.getCCParams=function(a){var p='';if(this.config.customClickParameter){var $K=(this.config.customClickParameter[a.getAttribute('name')])?this.config.customClickParameter[a.getAttribute('name')]:this.config.customClickParameter[a.id];if(!$K){$K=this.config.customClickParameter;};for(var z in $K){if(!isNaN(z)&&this.wtTypeof($K[z])&&typeof($K[z])=='string'&&$K[z]!=''){if(this.checkSC('custom')){$K[z]=this.decrypt($K[z]);};p+='&ck'+z+'='+this.wtEscape($K[z]);}}};this.ccParams=p;return;};this.plugInArray=function($L,$M){if(typeof($L)!='object'){return false;};for(var i=0;i<$L.length;i++){var $N=new RegExp($L[i].toLowerCase(),'g');if($M.toLowerCase().search($N)!=-1){return $L[i];}};return false;};this.quicksend=function($O,$P,$Q,$R){if(!this.trackDomain||!this.trackId||this.deactivatePixel){return;};if(!$Q){$Q="wt";};if(typeof(this.requestTimeout)=="undefined"){this.requestTimeout=5;};if(this.cookie=="1"){$P="&eid="+this.eid+"&one="+(this.cookieOne?"1":"0")+"&fns="+(this.forceNewSession?"1":"0")+$P;};if(this.cookie!="1"&&(this.wtTypeof(this.cookieEidTimeout)||this.wtTypeof(this.cookieSidTimeout))){if(this.wtTypeof(this.cookieEidTimeout)&&this.cookieEidTimeout!=''){$P="&cet="+this.cookieEidTimeout+$P;};if(this.wtTypeof(this.cookieSidTimeout)&&this.cookieSidTimeout!=''){$P="&cst="+this.cookieSidTimeout+$P;}};if(this.pixelSampling>0){$P+="&ps="+this.pixelSampling;};$P="&tz="+this.getTimezone()+$P;var $S=(location.protocol=="https:"?"https:":"http:");if(this.forceHTTPS){$S="https:";};var $T=$S+"//"+this.trackDomain+"/"+this.trackId+"/"+$Q+"?p="+this.version+","+$O+$P+"&eor=1";if($R=="saveRequest"&&this.cookie=="3"){if(this.getCookie("saveRequestV3")){this.setCookie("saveRequestV3",this.getCookie("saveRequestV3")+"<<>>"+$T,this.requestTimeout);}else{this.setCookie("saveRequestV3",$T,this.requestTimeout);}}else{this.sendPixel($T,$Q);};if($Q!='hm'){this.cookieOne=false;this.sentFullPixel=1;}};this.sendPixel=function($r,$Q){if(document.images){if(!this.wtTypeof($U)){var $U=new Array();};var ii=$U.length;$U[ii]=new Image();if($Q=='hm'){$U[ii].src=$r+"&hm_ts="+new Date().getTime();}else{$U[ii].src=$r;};$U[ii].onload=function(){};}else{document.write("<img src='"+$r+"' height='1' width='1'>");}};this.send=function(p,$V,ep){if($V=="link"){this.config.linkId=p;this.linkTrack="manual";this.wtEp=ep;if(this.isChrome||this.isOpera||this.isSafari){webtrekkUnload('noForm');}else{this.registerEvent(window,(this.isIE&&this.wtTypeof(window.onbeforeunload))?"beforeunload":"unload",webtrekkUnload);};return;};if($V=="click"){this.config.linkId=p;this.wtEp=ep;webtrekkUnload('noForm');return;};var $W=(p)?p:this.config.contentId;if(!$W){$W="no_content";};var $X="";var $Y=this.wtEscape($W)+",1,";$Y+=this.baseparams();var $Z=navigator.plugins.length;var $00="";if($Z>0){var $01=Array();for(var i=0;i<$Z;i++){if(navigator.plugins&&navigator.appName!='Microsoft Internet Explorer'){if(navigator.plugins[i].name=="Shockwave Flash"){$00=navigator.plugins[i].description;}else{$00=navigator.plugins[i].name;};var $02=this.plugInArray(this.plugins,$00);if($02&&!this.plugInArray($01,$02)){$01.push($02);}}};$00=$01.join("|");};if(typeof(ep)=="string"&&ep!=""){ep=ep.split(/;/);for(var z=0;z<ep.length;z++){if(this.wtTypeof(ep[z])){$d=ep[z].split(/=/);if(this.checkSC('custom')){$d[1]=this.decrypt($d[1]);};$d[1]=this.wtEscape($d[1]);$X+='&'+$d[0]+'='+$d[1];}}}else{this.wtEpEncoded=false;var $03='';if(typeof(this.config.customParameter)=='object'){for(var z in this.config.customParameter){if(!isNaN(z)&&this.wtTypeof(this.config.customParameter[z])&&typeof(this.config.customParameter[z])=='string'&&this.config.customParameter[z]!=''){if(this.checkSC('custom')){this.config.customParameter[z]=this.decrypt(this.config.customParameter[z]);};$03+='&cp'+z+'='+this.wtEscape(this.config.customParameter[z]);}}};var $04='';if(typeof(this.config.customSessionParameter)=='object'){for(var z in this.config.customSessionParameter){if(!isNaN(z)&&this.wtTypeof(this.config.customSessionParameter[z])&&typeof(this.config.customSessionParameter[z])=='string'&&this.config.customSessionParameter[z]!=''){if(this.checkSC('custom')){this.config.customSessionParameter[z]=this.decrypt(this.config.customSessionParameter[z]);};$04+='&cs'+z+'='+this.wtEscape(this.config.customSessionParameter[z]);}}};var $05='';if(typeof(this.config.customTimeParameter)=='object'){for(var z in this.config.customTimeParameter){if(!isNaN(z)&&this.wtTypeof(this.config.customTimeParameter[z])&&typeof(this.config.customTimeParameter[z])=='string'&&this.config.customTimeParameter[z]!=''){if(this.checkSC('custom')){this.config.customTimeParameter[z]=this.decrypt(this.config.customTimeParameter[z]);};$05+='&ce'+z+'='+this.wtEscape(this.config.customTimeParameter[z]);}}};var $06='';if(typeof(this.config.customEcommerceParameter)=='object'){for(var z in this.config.customEcommerceParameter){if(!isNaN(z)&&this.wtTypeof(this.config.customEcommerceParameter[z])&&typeof(this.config.customEcommerceParameter[z])=='string'&&this.config.customEcommerceParameter[z]!=''){if(this.checkSC('custom')){this.config.customEcommerceParameter[z]=this.decrypt(this.config.customEcommerceParameter[z]);};$06+='&cb'+z+'='+this.wtEscape(this.config.customEcommerceParameter[z]);}}};if(this.config.orderValue){if(this.checkSC('order')){$X+="&ov="+this.wtEscape(this.decrypt(this.config.orderValue));}else{$X+="&ov="+this.wtEscape(this.config.orderValue);}};if(this.config.orderCurrency){if(this.checkSC('order')){$X+="&cr="+this.wtEscape(this.decrypt(this.config.orderCurrency));}else{$X+="&cr="+this.wtEscape(this.config.orderCurrency);}};if(this.config.orderId){$X+="&oi="+this.wtEscape(this.config.orderId);};if(this.config.product){$X+="&ba="+this.wtEscape(this.config.product);if(this.config.productCost){$X+="&co="+this.wtEscape(this.config.productCost);};if(this.config.productQuantity){$X+="&qn="+this.wtEscape(this.config.productQuantity);};if(typeof(this.config.productCategory)=='object'){for(var z in this.config.productCategory){if(!isNaN(z)&&typeof(this.config.productCategory[z])=='string'&&this.config.productCategory[z]!=''){$X+="&ca"+z+"="+this.wtEscape(this.config.productCategory[z]);}}};if(this.config.productStatus){$X+="&st="+this.wtEscape(this.config.productStatus);}};if(this.config.customerId){$X+="&cd="+this.wtEscape(this.config.customerId);};if(typeof(this.config.crmCategory)=='object'){for(var z in this.config.crmCategory){if(!isNaN(z)&&typeof(this.config.crmCategory[z])=='string'&&this.config.crmCategory[z]!=''){$X+="&vc"+z+"="+this.wtEscape(this.config.crmCategory[z]);}}};if(this.browserLang){$X+="&la="+this.wtEscape(this.browserLang);};if(typeof(this.config.contentGroup)=='object'){for(var z in this.config.contentGroup){if(!isNaN(z)&&typeof(this.config.contentGroup[z])=='string'&&this.config.contentGroup[z]!=''){$X+="&cg"+z+"="+this.wtEscape(this.config.contentGroup[z]);}}};var $07='';if(this.config.campaignId&&!(this.config.campaignId in this.sentCampaignIds)){$X+="&mc="+this.wtEscape(this.config.campaignId);$X+="&mca="+this.config.campaignAction.substring(0,1);this.sentCampaignIds[this.config.campaignId]=true;if(typeof(this.config.customCampaignParameter)=='object'){for(var z in this.config.customCampaignParameter){if(!isNaN(z)&&this.wtTypeof(this.config.customCampaignParameter[z])&&typeof(this.config.customCampaignParameter[z])=='string'&&this.config.customCampaignParameter[z]!=''){if(this.checkSC('custom')){this.config.customCampaignParameter[z]=this.decrypt(this.config.customCampaignParameter[z]);};$07+='&cc'+z+'='+this.wtEscape(this.config.customCampaignParameter[z]);}}}};if(this.trackingSwitchMediaCode){$X+="&tmc="+this.wtEscape(this.trackingSwitchMediaCode);};if(this.trackingSwitchMediaCodeValue){$X+="&tmcv="+this.wtEscape(this.trackingSwitchMediaCodeValue);};if(this.trackingSwitchMediaCodeTimestamp){$X+="&tmct="+this.wtEscape(this.trackingSwitchMediaCodeTimestamp);};var $08="";var $09;if(typeof(wt_vt)!="undefined"){$09=wt_vt;};if(!this.wtTypeof($09)){$09=this.urlParam(location.href,'wt_vt',false);};if($09){var $0a=this.getCookie('wt_vt').split(";");for(var i=0;i<$0a.length;i++){if($0a[i].indexOf($09+'v')!=-1){$08='&wt_vt='+$0a[i].split('t')[0].split('v')[1];}}};if($08){$X+=$08;};if(this.config.internalSearch){$X+="&is="+this.wtEscape(this.maxlen(this.config.internalSearch,255));};if($03){$X+=$03;};if($07){$X+=$07;};if($05){$X+=$05;};if($06){$X+=$06;};if($04){$X+=$04;};if(this.wtTypeof(this.config.customSid)&&this.config.customSid!=''){$X+="&csid="+this.config.customSid;};if(this.wtTypeof(this.config.customEid)&&this.config.customEid!=''){$X+="&ceid="+this.config.customEid;};if(this.wtTypeof(this.config.xwtip)&&this.config.xwtip!=''){$X+="&X-WT-IP="+this.wtEscape(this.config.xwtip);};if(this.wtTypeof(this.config.xwtua)&&this.config.xwtua!=''){$X+="&X-WT-UA="+this.wtEscape(this.config.xwtua);};if(this.wtTypeof(this.config.xwtrq)&&this.config.xwtrq!=''){$X+="&X-WT-RQ="+this.wtEscape(this.config.xwtrq);}};if(this.config.linkId&&this.config.customClickParameter){var $K=(this.config.customClickParameter[this.config.linkId])?this.config.customClickParameter[this.config.linkId]:this.config.customClickParameter;for(var z in $K){if(!isNaN(z)&&this.wtTypeof($K[z])&&typeof($K[z])=='string'&&$K[z]!=''){if(this.checkSC('custom')){$K[z]=this.decrypt($K[z]);};$X+='&ck'+z+'='+this.wtEscape($K[z]);}};this.ccParams=false;};if(this.config.xlc&&this.config.xlct){if(this.config.xlc!=""||this.config.xlct!=""){if(this.config.xlcv){var $0b=this.getExtLifeCycles(this.config.xlc,this.config.xlct,this.config.xlcv);}else{var $0b=this.getExtLifeCycles(this.config.xlc,this.config.xlct);};$X+=$0b;}};if(this.config.linkId&&this.config.sendOnUnload){this.linkTrack="manual";this.wtEp=$X;this.wtEpEncoded=true;if(this.isChrome||this.isOpera||this.isSafari){webtrekkUnload('noForm');}else{this.registerEvent(window,(this.isIE&&this.wtTypeof(window.onbeforeunload))?"beforeunload":"unload",webtrekkUnload);};return;}else if(this.config.linkId){this.wtEp=$X;this.wtEpEncoded=true;webtrekkUnload('noForm');return;}else if(!this.config.contentId&&!this.config.linkId){this.config.contentId=this.contentId;this.config.linkId="wt_ignore";this.wtEp=$X;this.wtEpEncoded=true;webtrekkUnload('noForm');return;}else if(this.config.sendOnUnload){this.wtEp=$X;this.wtEpEncoded=true;if(this.isChrome||this.isOpera||this.isSafari){webtrekkUnload('noForm');}else{this.registerEvent(window,(this.isIE&&this.wtTypeof(window.onbeforeunload))?"beforeunload":"unload",webtrekkUnload);};return;};if(this.cookie=="1"){if(this.cookieOne){$X+="&np="+this.wtEscape($00);}}else{$X+="&np="+this.wtEscape($00);};this.quicksend($Y,$X,false,"sendRequest");};this.sendinfo=function(c,p,$V,ep){if(this.cookie=="1"&&!this.optOut&&!this.deactivatePixel){this.firstParty();};if(location.href.indexOf('fb_xd_fragment')!=-1){return;};if(typeof(c)=='object'){this.config=c;}else{this.config=this.getConfig();};if(!this.config.campaignId&&this.mediaCode){this.getMediaCode();};if(this.getCookie("saveRequestV3")){var $0c=this.getCookie("saveRequestV3").split("<<>>");for(var i=0;i<$0c.length;i++){this.sendPixel($0c[i],"wt");};this.setCookie("saveRequestV3","",-1000);};if(this.beforeSendinfoPixel!=false){this.beforeSendinfoPixel();};if(this.contentId!=""||p!=""||document.layers){this.send(p,$V,ep);};if(this.afterSendinfoPixel!=false){this.afterSendinfoPixel();}};this.sendinfo_media=function($0d,mk,$0e,$0f,mg,bw,$0g,$0h){if(this.wtTypeof($0i)){$0i($0d,mk,$0e,$0f,mg,bw,$0g,$0h,this.unloadInstance);}};this.sendExtLifeCycles=function($0j){if(typeof($0j)!="object"){return;};if(typeof($0j.xlc)=="undefined"&&typeof($0j.xlct)=="undefined"){return;};if($0j.xlc!=""||$0j.xlct!=""){if(typeof($0j.xlcv)!="undefined"){var $P=this.getExtLifeCycles($0j.xlc,$0j.xlct,$0j.xlcv);}else{var $P=this.getExtLifeCycles($0j.xlc,$0j.xlct);}}else{return;};this.quicksend('wt_ignore',$P,false,"sendRequest");};this.getExtLifeCycles=function(xlc,xlct,xlcv){var $0k="";var $0l=new Object();var $0m=xlc.split("|");for(var i=0;i<$0m.length;i++){var $0n=$0m[i].split(";");for(var j=0;j<$0n.length;j++){if(j==0){$0k+=this.wtEscape($0n[j]);}else{$0k+=$0n[j];};$0k+=";";};$0k=$0k.substr(0,$0k.length-1);$0k+="|";};$0k=$0k.substr(0,$0k.length-1);$0l.xlcl=this.wtEscape(xlc.split("|").length);$0l.xlct=this.wtEscape(xlct);if(typeof(xlcv)!="undefined"){$0l.xlcv=this.wtEscape(xlcv);};$0l.xlc=this.wtEscape($0k);var $P="";for(i in $0l){$P+="&"+i+"="+$0l[i];};return $P;};this.isOwnDomain=function(l){var pt='';if(this.domain){if(this.domain.toUpperCase().indexOf("REGEXP:")==0){pt=new RegExp(this.domain.substring(7),"i");if(pt.test(this.getDomain(l))){return true;}}else{var $0o=this.domain.split(';');var $0p=this.getDomain(l);for(var i=0;i<$0o.length;i++){if($0p==$0o[i]){return true;}}}}else{return false;};return false;};this.getDomain=function(l){if(typeof(l)!='string'){return '';};l=this.wtUnescape(l);l=l.split('://')[1];var rx=new RegExp('^(?:[^\/]+:\/\/)?([^\/:]+)','g');if(typeof(l)!="undefined"){l=l.match(rx);if(l[0]){return l[0].toLowerCase();}};return '';};this.baseparams=function(){var $0q=screen.width+"x"+screen.height+","+(navigator.appName!='Netscape'?screen.colorDepth:screen.pixelDepth)+",";$0q+=((navigator.cookieEnabled==true)?"1,":((navigator.cookieEnabled==false)?"0,":((document.cookie.indexOf("=")!=-1)?"1,":"0,")));$0q+=new Date().getTime()+",";var $0r=0;if(this.framesetReferrer){$0r=this.wtEscape(this.framesetReferrer);}else{if(document.referrer.length>0){$0r=this.wtEscape(document.referrer);}};if(this.sentFullPixel){$0q+="2";}else if(!this.isOwnDomain($0r)){$0q+=$0r;}else if(this.isOwnDomain($0r)){$0q+="1";}else{$0q+=$0r;};var h=0;if(!document.layers&&document.getElementById){eval("try {h = top.window.innerHeight;}catch(e){};");}else{h=top.window.innerHeight;};if(!h){eval("try {h = top.document.documentElement.clientHeight;}catch(e){};");};if(!h){eval("try {h = top.document.body.clientHeight;}catch(e){};");};var w=0;if(!document.layers&&document.getElementById){eval("try {w = top.window.innerWidth;}catch(e){};");}else{w=top.window.innerWidth;};if(!w){eval("try {w = top.document.documentElement.clientWidth;}catch(e){};");};if(!w){eval("try {w = top.document.body.clientWidth;}catch(e){};");};if(h&&h>screen.height){h=screen.height;};if(w&&w>screen.width){w=screen.width;};if(typeof(w)=='undefined'){w=-1;};if(typeof(h)=='undefined'){h=-1;};$0q+=","+w+"x"+h;$0q+=","+(navigator.javaEnabled()?"1":"0");return $0q;};this.getMediaCode=function(mc){if(!mc){if(!this.mediaCode){return false;};mc=this.mediaCode;};if(this.mediaCodeValue){v=this.mediaCodeValue.split(";");};var m=mc.split(";");this.config.campaignId="";for(var i=0;i<m.length;i++){if(this.config.campaignId!=""){this.config.campaignId+=";";};if(this.mediaCodeCookie){if(this.getCookie('wt_'+m[i].toLowerCase()+this.allUrlParam(m[i],"").toLowerCase())==''){this.config.campaignId+=m[i]+this.wtEscape("="+this.allUrlParam(m[i],""));}else{this.config.campaignId+=m[i]+"=ignore";};var $0s='';if(this.mediaCodeCookie=='eid'){$0s=60*30*24*60;};this.setCookie('wt_'+m[i].toLowerCase()+this.allUrlParam(m[i],"").toLowerCase(),1,$0s);}else{if(typeof(v)!="undefined"&&typeof(v[i])!="undefined"&&v[i]!=""){this.config.campaignId+=m[i]+this.wtEscape("="+v[i]);}else if(this.allUrlParam(m[i],"")!=""){this.config.campaignId+=m[i]+this.wtEscape("="+this.allUrlParam(m[i],""));}}}};this.heatmapOn=(this.wtHref().indexOf("wt_heatmap=1")>=0);this.overlayOn=(this.wtHref().indexOf("wt_overlay=1")>=0||document.cookie.indexOf("wt_overlay=1")>=0);if(this.wtHref().indexOf("wt_overlay=0")>=0){this.overlayOn=false;this.setCookie("wt_overlay","",-1);};var $0t=false;for(i=0;i<webtrekkHeatmapObjects.length;i++){if(this==webtrekkHeatmapObjects[i]){$0t=true;}};if(!$0t){webtrekkHeatmapObjects.push(this);};if(this.heatmap&&this.heatmap=="1"&&!this.heatmapOn){this.registerEvent(document,"mousedown",webtrekkHeatmapClick);};if(this.heatmapOn&&!this.disableOverlayView){if(this.include(location.protocol+"//"+this.reporturl+"/heatmap.pl?wt_contentId="+this.wtEscape(this.contentId.split(";")[0])+"&x="+new Date().getTime())){if(navigator.userAgent.indexOf('MSIE 6')!=-1&&navigator.userAgent.indexOf('Windows NT 5.0')!=-1){alert("Click OK to start heatmap.");};this.registerEvent(window,"load",webtrekkStartHeatmap);}};if(this.overlayOn&&!this.disableOverlayView){this.setCookie("wt_overlay","1");if(this.include(location.protocol+"//"+this.reporturl+"/overlay.pl?wt_contentId="+this.wtEscape(this.contentId.split(";")[0])+"&x="+new Date().getTime()))this.registerEvent(window,"load",webtrekkStartOverlay);};this.setPixelSampling=function($0u){if(!$0u){var $0u=this.pixelSampling;};var trackId=this.trackId.split(",")[0];var $0v=this.getCookie("wt3_sample").split(";");var $0w=false;for(var i=0;i<$0v.length;i++){if(this.indexOf($0v[i],trackId+"|"+$0u)!=-1){$0w=true;}else if(this.indexOf($0v[i],trackId+"|")!=-1){$0v[i]="";}};if(!$0w){if(Math&&Math.random&&parseInt(Math.random()*$0u)==0){$0v.push(trackId+"|"+$0u+"|1");}else{$0v.push(trackId+"|"+$0u+"|0");};var $0x=60;if(this.cookieEidTimeout){$0x=this.cookieEidTimeout;};this.setCookie("wt3_sample",$0v.join(";"),$0x*30*24*60);$0v=this.getCookie("wt3_sample");};if(this.indexOf($0v,trackId+"|"+$0u+"|1")==-1){this.deactivatePixel=true;}};if(this.pixelSampling&&!this.optOut){this.setPixelSampling();};this.firstParty=function(){var $0y=this.getCookie("wt3_sid").split(";");var $0z=this.getCookie("wt3_eid").split(";");var $0A=(this.cookieSidTimeout)?this.cookieSidTimeout:30;var $0x=(this.cookieEidTimeout)?this.cookieEidTimeout:60;var trackId=this.trackId.split(",")[0];var $0B=false;var $0C=false;for(var i=0;i<$0y.length;i++){if($0y[i].indexOf(trackId)!=-1){$0B=i;break;}};for(var i=0;i<$0z.length;i++){if($0z[i].indexOf(trackId+"|")!=-1){$0C=i;break;}};if(!$0B){$0y.push(trackId);if($0C){this.forceNewSession=true;}};if(!$0C){this.eid=this.generateEid();this.cookieOne=true;$0z.push(trackId+"|"+this.eid);this.setCookie("wt3_eid",$0z.join(";"),$0x*30*24*60);}else{this.eid=$0z[$0C].replace(trackId+"|","");};this.setCookie("wt3_sid",$0y.join(";"));};var $0D=false;for(i=0;i<webtrekkUnloadObjects.length;i++){if(this==webtrekkUnloadObjects[i]){$0D=true;}};if(!$0D){webtrekkUnloadObjects.push(this);this.registerEvent(window,(this.wtTypeof(window.onbeforeunload))?"beforeunload":"unload",webtrekkUnload);};this.findForm=function(){var f=document.forms;for(var i=0;i<f.length;i++){var cf=f[i];if(this.wtTypeof(cf.elements["wt_form"])){this.formObject=cf;return;}}};this.checkFormFocus=function($0E){if($0E==this.formFocus){return 1;};return 0;};this.getFormFieldValue=function(ff){var p=ff.name;if(this.formFieldAttribute){p='';var tmp=false;eval("tmp = (ff.getAttribute(this.formFieldAttribute) ? ff.getAttribute(this.formFieldAttribute) : '')");if(tmp){p=tmp;};if(p){p=p.replace(/[\.|;]/g,"_");}};return p;};this.gatherForm=function(){var $0F=";";if(!this.formObject){return;};var f=this.formObject;var p=f.getAttribute('name')?f.getAttribute('name'):this.contentId.split(";")[0];if(this.formAttribute){var tmp="";eval("tmp = (f.getAttribute(this.formAttribute) ? f.getAttribute(this.formAttribute) : '')");if(tmp){p=tmp;}};this.formName=p;var fl="";if(this.wtTypeof(f.elements["wt_fields"])){fl=f.elements["wt_fields"].value;};if(!fl){for(var i=0;i<f.elements.length;i++){var e=f.elements[i];if(this.getFormFieldValue(e)){fl+=this.getFormFieldValue(e)+$0F;}};fl=fl.substring(0,fl.lastIndexOf($0F))};var $0G=fl.split($0F);var $0H=$0G.length;var $0I="";if(this.formFullContent){$0I=this.formFullContent.split($0F);};var pa="";var $0J=new Array();for(var i=0;i<f.elements.length;i++){var e=f.elements[i],$z,$0K,$0L=false;if(fl){for(var j=0;j<$0H;j++){if(this.getFormFieldValue(e)==$0G[j]){$0L=true;}}}else{if(this.getFormFieldValue(e)){$0L=true;}};if($0L){$z=null;if(e.type=='select-multiple'){for(var j=0;j<e.options.length;j++){var $0M=false;if(e.options[j].selected){$0M=true;pa+=";"+this.getFormFieldValue(e).replace(/[\.|;]/g,"_")+"."+e.type+"|"+((this.formAnonymous)?"anon":e.options[j].value.replace(/[\.|;]/g,"_"))+"|"+this.checkFormFocus(e.name);};if(!$0M){$z="empty";}}};if(e.type=='select-one'){if(e.selectedIndex!=-1){$z=e.options[e.selectedIndex].value.replace(/[\.|;]/,"_");if(!$z){$z="empty";}}};if(e.type=='checkbox'){if(!e.checked){$z="empty";}else{$z=e.value.replace(/[\.|;]/,"_");}};if(e.type=='radio'){if(e.checked){$z=e.value.replace(/[\.|;]/g,"_");};$0J[$0J.length]=this.getFormFieldValue(e);};if(e.type=="password"||e.type=="text"||e.type=="textarea"){$z=(e.value?"filled_out":"empty");for(var k=0;k<$0I.length;k++){if($0I[k]==this.getFormFieldValue(e)){$z=this.maxlen(e.value,30);}};if(!$z){$z="empty";}};if($z){name=this.getFormFieldValue(e).replace(/[\.|;]/g,"_");$0K=";"+name+"."+e.type+"|";if(pa.indexOf($0K)==-1){pa+=$0K+((this.formAnonymous)?"anon":$z)+"|"+this.checkFormFocus(e.name);}}}};for(var i=0;i<$0J.length;i++){var n=";"+$0J[i].replace(/[\.|;]/g,"_")+".radio|";if(pa.indexOf(n)==-1){pa+=n+((this.formAnonymous)?"anon":"empty")+"|"+this.checkFormFocus(e.name);}};if(pa){pa=pa.substring(1);};return pa;};this.formTrackInstall=function(f){if(f){this.formObject=f;};this.form=1;webtrekkFormTrackInstall();};if(this.form){webtrekkFormTrackInstall();};this.cookieManager=function(name,$0N,$0O){var i,j;this.name=name;this.keySeperator="~";this.fieldSeparator="#";this.durationSeperator="|";this.found=false;this.expires=$0N;this.accessPath=$0O;this.rawValue="";this.fields=[];this.fieldsDuration=[];this.fieldnames=[];this.read=function(){var $0P=this.name+"=";var $0Q=document.cookie;this.rawValue=null;this.found=false;if($0Q.length>0){$0R=$0Q.indexOf($0P);if($0R!=-1){$0R+=$0P.length;end=$0Q.indexOf(";",$0R);if(end==-1){end=$0Q.length};this.rawValue=$0Q.substring($0R,end);this.found=true;}};if(this.rawValue!=null){var sl=this.rawValue.length;var $0S=0;var $0T=0;var i=0;do{$0T=this.rawValue.indexOf(this.fieldSeparator,$0S);if($0T!=-1){var $0U=this.rawValue.substring($0S,$0T).split(this.durationSeperator);var rV=$0U[0].split(this.keySeperator);this.fields[rV[0]]=unescape(rV[1]);this.fieldsDuration[rV[0]]=parseInt(unescape($0U[1]));i++;$0S=$0T+1;}}while($0T!=-1&$0T!=(this.rawValue.length-1));};return this.found;};this.getSize=function(){var $0V=new Date().getTime();var $0W="";for(i in this.fields){if(this.fieldsDuration[i]>=$0V){$0W+=escape(i)+this.keySeperator+escape(this.fields[i])+this.durationSeperator+escape(this.fieldsDuration[i])+this.fieldSeparator;}};return $0W.length;};this.write=function(){var $0V=new Date().getTime();var $0X=true;var $0W=this.name+"=";for(i in this.fields){if(this.fieldsDuration[i]>=$0V){$0W+=escape(i)+this.keySeperator+escape(this.fields[i])+this.durationSeperator+escape(this.fieldsDuration[i])+this.fieldSeparator;$0X=false;}};var $0Y=($0X)?-99999:this.expires;if($0Y!=""){if(typeof($0Y)=="number"){var $0Z=new Date();var $10=new Date();$10.setTime($0Z.getTime()+1000*60*60*24*$0Y);$0W+="; expires="+$10.toGMTString();}else{$0W+="; expires="+$0Y.toGMTString();}};if(this.accessPath!=null){$0W+="; PATH="+this.accessPath;};var d=location.hostname;var $B="^[0-9]{1,3"+String.fromCharCode(125)+"\.[0-9]{1,3"+String.fromCharCode(125)+"\.[0-9]{1,3"+String.fromCharCode(125)+"\.[0-9]{1,3"+String.fromCharCode(125)+"$";if(d.search($B)==-1){d=location.hostname.split(".");d=d[d.length-2]+"."+d[d.length-1];};$0W+="; DOMAIN="+d;document.cookie=$0W;return null;};this.remove=function(){this.expires=-10;this.write();return this.read();};this.get=function($11){var $0V=new Date().getTime();if(this.fieldsDuration[$11]>=$0V){return this.fields[$11];};return "";};this.set=function($11,$12,$A,$V,$13){if(!$A){$A=31536000;};if(!$V){$V="";};var $0V=new Date().getTime();if($V=="first"&&this.fields[$11]!=""&&this.fields[$11]!=null&&this.fieldsDuration[$11]>=$0V){return this.fields[$11];};this.fields[$11]=$12;this.fieldsDuration[$11]=$0V+(parseInt($A)*1000);if(!$13){this.write();};return $12;};this.prepare=function($11,$12,$A,$V){this.set($11,$12,$A,$V,true);};this.read();};};
/* End of webtrekk.js */

/* Kompatibilitätsmodus */
var webtrekkPixel = false;function wt_sendinfo(p, mode, ep) {if (webtrekkPixel) {for (i in webtrekk) {if (i != "plugins" && i != "sendinfo") {webtrekkPixel[i] = webtrekk[i];}}webtrekkPixel.sendinfo(false, p, mode, ep);}}

if (typeof(webtrekk) == "object") {
	webtrekkConfig = webtrekk;
	webtrekkPixel = new webtrekkV3();
	if(typeof(beforeWebtrekk) == "function"){webtrekkPixel.beforeSendinfoPixel = beforeWebtrekk;}
	if(typeof(afterWebtrekk) == "function"){webtrekkPixel.afterSendinfoPixel = afterWebtrekk;}
	if(typeof(beforeUnloadPixel) == "function"){webtrekkPixel.beforeUnloadPixel = beforeUnloadPixel;}
	if(typeof(afterUnloadPixel) == "function"){webtrekkPixel.afterUnloadPixel = afterUnloadPixel;}
	if(typeof(wt_updatePixel) == "function"){
		wt_updatePixel();
	}
	if (webtrekk.sendinfo && webtrekk.sendinfo == '1'){
		webtrekkPixel.sendinfo();
	}
}
/* End Kompatibilitätsmodus */



/*!
 * jQuery UI 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI
 */
(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
c.ui.isOverAxis(b,e,i)}})}})(jQuery);
;/*!
 * jQuery UI Widget 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Widget
 */
(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=
function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):
d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=
b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",
c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
;/*!
 * jQuery UI Mouse 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Mouse
 *
 * Depends:
 *	jquery.ui.widget.js
 */
(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
;/*
 * jQuery UI Slider 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Slider
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+
this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>");
this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle",
g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length?
(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i-
m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();
return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false;
this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b=
this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b=
this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);
c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c});
a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=
this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):
this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a];
return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a=
this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e-
g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"},
b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery);
;

/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
