
Classes.LightBoxEffect = new Class();
Classes.LightBoxEffect.prototype = {
		bg_id: '#LightBoxBG',
		form_id: '#LightBoxForm',
		
		slide_time: 400,
		flash_time: 400,
		
	__construct: function (params) {
		this.copy(params);
	},

	showFromTemplate: function(template,params){
	
		var tmp=new Array();
		for (var key in params){
			tmp.push(key+'='+params[key]);
		}
		
		var paramsPost = 'template='+template+'&'+tmp.join('&');

		ajax.callMethod('KomunikatKomponent','getMessageBody',null,paramsPost,null,
		function(http,bb) {			
			var root = http.getResponseJSON(showMessage);
			if (root) {
				LightBox.show(root['html']);
			}	
		}.bindResponse(this));
	},
	
	show: function(content){
		var formObj=$('#LightBoxForm');
		var formBG=$('#LightBoxBG');
		

		if(formObj.length==0){
			var form='<div id="LightBoxForm" style=" background-color: white; display: none; position: absolute;z-index: 100;"></div>';
			$(document.body).append(form);
			var formObj=$('#LightBoxForm');
			
			$(window).scroll(function () { 
				formObj.stop(true,true);
				LightBox.centerBlock('#LightBoxForm');
			});
		
			$(window).resize(function(){
				LightBox.centerBlock('#LightBoxForm');
				LightBox.resizeBG('#LightBoxBG');
			});
		}
		
		
		if(formBG.length==0){
		//	var bg='<div  id="LightBoxBG" style="width:100%; height: 100%; background-color: white; position: absolute; top: 0px; left:0px;  opacity:0; z-index:90;"></div>';
			var bg='<iframe  id="LightBoxBG" style="width:100%; height: 100%; background-color: white; position: absolute; top: 0px; left:0px;  opacity:0; z-index:90;" src="about:blank" >fdgdfgdf</iframe>';
			
			$(document.body).append(bg);
			var formBG=$('#LightBoxBG');
			
		/*	formBG.ready(function() {
				var body=$('#LightBoxBG').contents().find("body"); 
				
				$(body).html('loaded');
			});*/

			formBG.click(function(){
				LightBox.hide();
			});
		}
		
		LightBox.resizeBG('#LightBoxBG');

		if(formObj.css('display')=='block'){
			
			formObj.slideUp(LightBox.slide_time,function(){
				formObj.html(content);
				LightBox.centerBlock('#LightBoxForm',function(){
				$(this).slideDown(LightBox.slide_time);
				});
			//	formObj.width(formObj.children('#layer').width());
				//formObj.height(formObj.children('#layer').height());
				//$(this).slideDown(LightBox.slide_time);
			});
		}else{
			formObj.html(content);
			formBG.show();
			formBG.animate({opacity: "0.9", alpha:"1"}, LightBox.flash_time ,function(){
				LightBox.centerBlock('#LightBoxForm',function(){
					$(this).slideDown(LightBox.slide_time);
				});
			});
		}
		
	},
	
	hide: function(callback){
		$('#LightBoxForm').slideUp("slow",function(){
				$('#LightBoxBG').animate({opacity: "0", alpha:"0"},LightBox.flash_time,function(){
					$(this).hide(callback);
					//$(this).remove();
				});
		});
	},
	
	resizeBG: function(block){
		var bg=$(block);
		bg.height($(document).height());
		bg.width($(document).width());
	},

	centerBlock: function(block,callback){
		var formObj=$(block);
		//formObj.stop(true,true);
	
		var browser=new Classes.Browser();
		if(browser.isSafari){
		
			var size = LightBox.getWindowSize();
			var offset = LightBox.getWindowOffset();
		//alert(size);
			var left=(size[0]/2)-(formObj.width()/2)+offset[0];
			var top=(size[1]/2)-(formObj.height()/2)+offset[1];
		}else{
			var left=($(window).width()/2)-(formObj.width()/2)+$(window).scrollLeft( );
			var top=($(window).height()/2)-(formObj.height()/2)+$(window).scrollTop( );
			
		}

		formObj.animate({left:left+'px',top:top+'px'}, "slow",callback);
	},
	
	
	getWindowSize: function() {             
		var w = browser.isIE ? (Core.hasElement ? document.documentElement.clientWidth : document.body.clientWidth) : window.innerWidth;
		var h = browser.isIE ? (Core.hasElement ? document.documentElement.clientHeight : document.body.clientHeight) : window.innerHeight;                           
		return [w,h];
	},

	getWindowOffset: function() {             
		var offsetTop = _int((browser.isIE || browser.isOpera ? (Core.hasElement ? document.documentElement.scrollTop : document.body.scrollTop) : window.scrollY),0);
		var offsetLeft = _int((browser.isIE || browser.isOpera ? (Core.hasElement ? document.documentElement.scrollLeft : document.body.scrollLeft) : window.scrollX),0);             
		return [offsetLeft,offsetTop];
	}

};

var LightBox = new Classes.LightBoxEffect();

