
var scrollLayer = {
	
	init: function() {
		$$('.scrollerBox').forEach(function(el){
			 scrollLayer.needed(el);
		});
	},
	
	needed: function(scrollerObj) {
		
		var scrollerContent = scrollerObj.getChildren()[0];
		
		// Setup defaults
			var showScrollBar = false;
			var showPadding   = false;
			
			var rteInsight	  = false;
			var swfInsight 	  = false;
			var flvInsight 	  = false;
			var movInsight	  = false;
			var imgInsight    = $ES('img', scrollerObj).length > 0 ? true:false;
			
		// Flash detection
			if (
				$ES(swfObjectLoader.css_selector, scrollerObj).length > 0 ||
				$ES('embed', scrollerObj).length > 0 ||
				$ES('object', scrollerObj).length > 0
			) {
				var embedMov = $ES('embed', scrollerObj);
				if ( String(embedMov.getProperty('src')).search(/mov/) != -1) {
					//it's mov embed
					
					var objectEl = new Element ('OBJECT', {
						'classid': 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
						'width': String(embedMov.getProperty('width')),
						'height': String(embedMov.getProperty('height')),
						'codebase': 'http://www.apple.com/qtactivex/qtplugin.cab'
					});
					
					var paramEl1 = new Element ('param', {
						'name': 'src',
						'value': String(embedMov.getProperty('src'))
					});
					
					var paramEl2 = new Element ('param', {
						'name': 'autoplay',
						'value': String(embedMov.getProperty('autoplay'))
					});
					
					var paramEl3 = new Element ('param', {
						'name': 'controller',
						'value': String(embedMov.getProperty('controller'))
					});
					
					embedMov.setProperty('pluginspage','http://www.apple.com/quicktime/download/');
					embedMov.setProperty('type','video/quicktime');
					embedMov.setProperty('plugin','quicktimeplugin');
					
					objectEl.adopt(paramEl1, paramEl2, paramEl3, embedMov);
					objectEl.inject(scrollerContent);
					
					//console.log(scrollerContent);
					movInsight = true;
				} else {
					swfInsight = true;	
				}
			}
			
		// Video detection
			if (swfInsight) {
				var soFlashVars = $E(swfObjectLoader.css_selector, scrollerObj).getText();
				if (soFlashVars.search(/flv"/) != -1) var flvInsight = true; // Check if the Type is a FLV Video
			}
			
		// News with img and Gallery detection
			var nwsInsight = $ES('.news-single-img', scrollerObj).length > 0 ? true:false;
			var galInsight = $ES('.tx-rgsmoothgallery-pi1', scrollerObj).length > 0 ? true:false;
					
		// RTE detection
			if (imgInsight) {
				$ES('img', scrollerObj).forEach( function(el) {
					if (!rteInsight) { // Ein RTE Bild gefunden = alle TRUE
						rteInsight = el.getProperty('src').search(/RTEmagic/) != -1;
					}
				});
			}
					
		// Wenn ein IMG oder SWF gefunden wurde, setze SB auf false
		// Wenn auch noch eine News+IMG enthalten ist setze SB auf true
			if ( imgInsight || swfInsight || flvInsight || rteInsight || galInsight || movInsight ) {
				if ( nwsInsight || rteInsight ) {
					showScrollBar = true;
					showPadding   = true;
				} else {
					showScrollBar = false;
					showPadding   = false;
				}
			} else {
				showScrollBar = true;
				showPadding   = true;
			}
					
		// Wenn der Inhalt Text oder News sind, ueberpruefen ob die Hoehe reicht

			 	// scrollerContent.setStyle('height','auto'); // Remove Fallback height (100%) to detect real height
			var contentPadding = 20 + 20; // Posible content padding top and left
			var scrollerHeight = scrollerObj.getStyle('height').slice(0,3);
			var maskHeight 	   = scrollerHeight - contentPadding;
			var contentHeight  = scrollerContent.offsetHeight;
			var scrollerWidth  = scrollerObj.offsetWidth;
			
			if ( showScrollBar && (contentHeight - maskHeight) > 10 ) {
				showScrollBar = true;
			} else {
				showScrollBar = false;
			}
	
		// Wenn die Scrollbar benoetigt wird nutze CCS defaults und aktiviere Sie,
		// oder schreibe neue CSS-Werte   
			if ( showScrollBar ){
				this.activateScroller(scrollerObj);			
			} else {
				scrollerContent.setStyle('overflow', 'hidden' );
				if (showPadding) {
					scrollerContent.setStyle('padding', "20px" );
					scrollerContent.setStyle('width', scrollerWidth - 40 );
					if (window.webkit) {
						scrollerContent.setStyle('width', scrollerWidth - 40.015 );
					}
				} else {
					scrollerContent.setStyle('padding', "0px" );
				}
			}
			
				//Stop Background Sound ...
			if (flvInsight) soundObj.stopAsound( 'bgSND' );
			
			// 20px beim laden ...
			if((contentHeight == 0) && (nwsInsight || rteInsight)){
				scrollerObj.setStyle('height', scrollerContent.getStyle('height'));	
			}
			
			/*
				if (contentHeight == 0) {
					console.log(" ");
					console.log(" Object >> %o", scrollerObj);
					console.log(" + SWF:%s, FLV:%s, IMG:%s, NWS:%s, RTE:%s, GAL:%s", swfInsight, flvInsight, imgInsight, nwsInsight, rteInsight, galInsight);
					console.log(" + scrollerHeight: %spx, contentHeight: %spx, maskHeight: %spx", scrollerHeight, contentHeight, maskHeight);
					console.log(" + Scrollbar:%s, Padding:%s", showScrollBar, showPadding);
				}
			*/
			
	},
	
	activateScroller: function(scrollerBox){
		new dkdMooScroller( scrollerBox.getParent().getProperty('id'));
	}
};
