/*
*	Öffnet popup LayerBox nach verschiedenen Grundtypen
*	@requires: "BenchOverlay.js" , "layerbox.css" , "/epubli_creator/progress_tour.tpl"
*	@usage: 	...  onclick="javascript: LB.openWindow(headline:string, content:string);" ..
*	@howTo	immer ganz unten zum RootNode hinzufügen, da sonst die z-indizes durcheinander kommen
*			'addToRootNode'  => array(
		*          array(
		*            'template' => FOA::getMandant()->getFile('TPL_DIR', 'epubli_creator/zoomOverlay.tpl'),
		*            'data'     => array()
		*          ),
		*          array(
		*            'template' => FOA::getMandant()->getFile('TPL_DIR', 'epubli_creator/progress_tour.tpl'),
		*            'data'     => array('cssFiles' => $moduleCSS)
		*          ),
*
*/
var LayerBoxClass = function( ) {

	var overlay;
	var self = this;

	
	
	Object.extend(this, {
	
		openWindow:   function(headline , content){
	      try {
				
					// selectboxen ausbelnden wegen ie6-bug
					$$('.styled').each(function(el)
								{
									el.hide();
								});
					var progressBox	= $('progressTour');
					self.centerItem(progressBox);
					self.overlay	= new OverlayClass(progressBox);
					$('progressBar').hide();
				   	$('progressTour').show();
					$('LBCclosingX').show();
					$('LBCcloseWindow').show();
					$('LBCinfoContent').innerHTML = content;
					$('LBCinfoContent').show();
					$('LBCprogressHeadlineInfo').firstChild.innerHTML = headline;
					$('LBCprogressHeadlineInfo').show();
					
					
				
				
	      }
	      catch(e) { 
						console.log(e.message); 
						this.closeWindow();
				}
	    },
		openContractWindow:   function(headline , content){
	      try {
				
					// selectboxen ausbelnden wegen ie6-bug
					$$('.styled').each(function(el)
								{
									el.hide();
								});
					var progressBox	= $('progressTour');
					self.centerItem(progressBox);
					self.overlay	= new OverlayClass(progressBox);
					$('progressBar').hide();
				   	$('progressTour').show();
					$('LBCclosingX').show();
					
					$('contractButtons').show();
					$('LBCinfoContent').innerHTML = content;
					$('LBCinfoContent').show();
					$('LBCprogressHeadlineInfo').firstChild.innerHTML = headline;
					$('LBCprogressHeadlineInfo').show();
					
					
				
				
	      }
	      catch(e) { 
						console.log(e.message); 
						this.closeWindow();
				}
	    }, 
		
	
	
	
	  // gibt die aktuelle bildschirmbreite[0] und höhe[1] zurück
	getWindowSize: function ()
	{
		var window_width, window_height;
		if (self.innerHeight) {	// all except Explorer
			window_width = self.innerWidth;
			window_height = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			window_width = document.documentElement.clientWidth;
			window_height = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			window_width = document.body.clientWidth;
			window_height = document.body.clientHeight;
		}
		return [ window_width , window_height ];
	},
	
	// zentriert ein Item auf dem screen
	// @params element:Element, horizontal:Boolean, vertical: Boolean
	// @default hozizontal= true, vertical = true

	centerItem: function ( element , horizontal, vertical )  {
		if ( !(horizontal) && !(vertical) ) {
			horizontal	=	true;
			vertical	  =	true;
		}
		// vertical
		if (vertical)	{
			try	{
				var heightOfElement	=	element.getHeight();
				var heightOfScreen	=	( this.getWindowSize() )[1];
				var spaceToBorder	=	Math.round( ( heightOfScreen - heightOfElement   ) / 2 ) ;
				
				var scrollTop = window.pageYOffset || document.documentElement.scrollTop || 0
				if (scrollTop>heightOfScreen) {
				  spaceToBorder = scrollTop+spaceToBorder;	 
				}
			
				spaceToBorder		=	spaceToBorder > 0 ? spaceToBorder : 0;
				
				element.setStyle ( { position : 'absolute' , top : spaceToBorder + 'px' } ); 
			} catch(e) 	{ 
				console.log(e.message); 
			}
		}
		// horizontal
		if (horizontal) {
			try {
				var widthOfElement	=	element.getWidth();
				var widthOfScreen	=	( this.getWindowSize() )[0];
				var spaceToBorder	=	( widthOfScreen - widthOfElement ) / 2 ;
				spaceToBorder		=	spaceToBorder > 0 ? spaceToBorder : 0;
				
				element.setStyle ( { position : 'absolute' , left : spaceToBorder + 'px' } ); 
			} catch(e) { 
				console.log(e.message); 
			}
		}
	},
		
		closeWindow:   function(){
	      try {
				
				
				self.overlay.closeOverlay();
				// cleanup
				var elements = $$('.slide');
				elements.push($('progressButton'));
				elements.push($('LBCcloseWindow'));
				elements.push($('LBCconfirmWarning'));
				elements.push($('progressHeadlineUpload'));
				elements.push($('LBCprogressHeadlineWarning'));
				elements.push($('LBCprogressHeadlineInfo'));
				elements.push($('LBCclosingX'));
				elements.push($('progressX'));
				elements.push($('LBCinfoContent'));
				elements.push($('LBCinfoWarning'));
				elements.push($('contractButtons'));
				elements.push($('LBCprogressHeadlineInfo'));
				elements.push($('progressBar'));
				elements.each(function(el)
								{
									//console.log(el.id);
									el.hide();
								});
				 $$('.styled').each(function(el)
								{
									el.show();
								});
	      }
	      catch(e) { console.log (e.message); }
	    }
		
	}
	)
}

var LB = new LayerBoxClass();


