/* <![CDATA[ */
/**** MODIFIED BY KRISTER KARTO ON 23.03.2010, 24.03.2010
	- Added position static to background to allow scroll effects to be smoother since no js is required.
	- Added position static to display element to make it follow screen when scrolling
	- Added calulations to ensure display element is always smaller than available screen.
	- Added calculations to ensure title is never displayed
	- Added removeevents before adding new clickevent. To ensure only one box is opened. 
	- Put the whole code into one function
*****/
window.addEvent('domready',function(){									
//	runBumpbox();
});
runBumpbox = function(){
	imgstore = new Array();			
	var allBumps = $$('.bumpbox');	
	i=0;
	allBumps.each(function(e){
		content = e.get('href');
		if(content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1){
			var img = new Element('img');
			img.src = content;	
			img.setStyle('display','none');
			img.inject(document.body);
		}						   
		if(e.get('href').indexOf('^') == 0){
			var id = e.get('href').replace("^",'');
			$(id).setStyle('display','none');
		}
		e.set('id',i);
		i++;
	});
	var f = "";
	i = 0;
	$$('.bumpbox').removeEvents('click');
	$$('.bumpbox').addEvent('click',function(e){
		if(e !== null && e !== undefined){
			e.stop();
		}
		addEvents(this);
	});
}
addEvents = function(eventElement){
	var allBumps = $$('.bumpbox');	
	var newbox = false;
		if(eventElement.get('rev') != null){
			var rev = eventElement.get('rev')
		}
		content = eventElement.get('href');
		var actualID = eventElement.get('id');
		maxw = 0;
		maxh = 0;
		var title = "";
			
		if(eventElement.get('rel')!= null){
			var tmp = eventElement.get('rel').split("-");	
			maxw = tmp[0];
			maxh = tmp[1];
		}
		
		if(eventElement.get('title') != null){
			title = eventElement.get('title');
		}
		
		if(eventElement.get('href') != null){
			hr = eventElement.get('href');
		}
		
		if(maxw == 0){	maxw = 776;	}
		if(maxh == 0){	maxh = 522;	}
			
		if(content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1){
			img = new Image();
			img.src = content;
			maxw = img.width;
			maxh = img.height;
		}
		
		var w = window.getSize().x.toInt();
		var h = window.getSize().y.toInt();
		var s = window.getScrollTop();
		maxh = (maxh > h) ? h - 60 : maxh;
		var middleH = w / 2;
		var middleV = h / 2;
		var endleft = (w-maxw) / 2;
		var endtop = ((h - maxh) / 2);
		//create extra space for title if it is there. 
		endtop += (title !== '' && endtop < 40) ? (40-endtop) : 0;
		

		var t = window.getScrollTop();
		if($('grow') == null){
			var newframe = true;
			var el = new Element('div', {
				 'styles':{
					 width: '1px',
					 height: '1px',
					 position:'fixed',
					 padding:'4px',
					 background:'#FFFFFF url(ajax-loader.gif) no-repeat center center',
					 left:middleH ,
					 top:middleV,
					 display:'block',
					 'z-index':'100000'
				},
				'id': 'grow'
			}).injectInside(document.body);
			var bg = new Element('div',{
				'styles':{
					background:'#77663b',
					width:'100%',
					height:'100%',
					opacity:'0.5',
					position:'fixed',
					top: 0,
					left: 0
				},
				'id':'bg'
			}).addEvent('click',function(e){
				bg.dispose();
				$(el).getChildren().dispose();									
				eff2.start({
					'width':[maxw,1],
					'height':[maxh,1],
					'left': [endleft,middleH],
					'top':  [endtop, middleV]
				});
			}).inject(document.body);
	
			/* bg ie 6 fix */
			if(Browser.Engine.trident && Browser.Engine.version == 4){
				var bh = window.getHeight();
				$(bg).setStyle('height',bh);
			}
			
			var cl = new Element('img',{
				'styles':{
					width:'45px',
					height:'17px',
					'z-index':'100000',
					float: 'right',
					cursor : 'pointer'
				},
				'src':'/_gfx/lukk.png',
				'id':'nycloser'
			}).addEvent('click',function(e){
				bg.dispose();
				$(el).getChildren().dispose();
				eff2.start({
					'width':[maxw,1],
					'height':[maxh,1],
					'left': [endleft,middleH],
					'top':  [endtop, middleV]
				 });
			}).injectInside(el);
			if(!Browser.Engine.trident){
				window.addEvent('keyup',function(e){
					if(e.key != 'esc'){
						return true;
					}
					bg.dispose();
					$(el).getChildren().dispose();
					eff2.start({
						'width':[maxw,1],
						'height':[maxh,1],
						'left': [endleft,middleH],
						'top':  [endtop, middleV]
					 });
				});
			}else{
				document.addEvent('keyup',function(e){
					if(e.key != 'esc'){
						return true;
					}
					bg.dispose();
					$(el).getChildren().dispose();
					eff2.start({
						'width':[maxw,1],
						'height':[maxh,1],
						'left': [endleft,middleH],
						'top':  [endtop, middleV]
					});
				});
			}
		}else{
			var newframe = false;
			var el = $('grow');
			var cl = $('nycloser');
			var bg = $('bg');
			if($chk($('htmlframe'))){
				$('htmlframe').dispose();
			}
		}
		var eff3 = new Fx.Morph($('grow'), { transition: Fx.Transitions.linear, duration: 500, wait:'link',onComplete:function(){
			el.dispose();
	  	}});
		var eff2 = new Fx.Morph($('grow'), { transition: Fx.Transitions.linear, duration: 500, wait:'link', onComplete:function(){
			el.dispose();
		}});
		var eff = new Fx.Morph($('grow'), { transition: Fx.Transitions.linear, duration: 500, wait:'link', onComplete:function(){
				setcontent(content, bg, el, cl, title, rev, newframe);
			}
		});
	
		var nextID = eventElement.get('id').toInt() +1;
		if(allBumps[nextID] != null){
			var middle = (maxh - 30) / 2;
			var nx = new Element('a',{
				'styles':{
					width:'30px',
					height:'30px',
					background:'url(next.png) no-repeat center center',
					position:'absolute',
					right:'-20px',
					bottom: middle,
					'display':'none'
				},
				id:'next'
			});
			nx.addEvent('click',function(e){
				if(Browser.Engine.trident){
					if($('video') != null){
							$('video').stop();
					}
					 if($('swf') != null){
						 $('swf').dispose();
				 	 }	
				 }
				 $('bg').dispose();										 
				 $('grow').dispose();
				 var nextID = actualID.toInt();
				 nextID+=1;
				 nextID = nextID.toString();
				 $(nextID).fireEvent('click',this);
	   	    }).inject(el);
		}
		var prevID = eventElement.get('id').toInt() -1;
		if(allBumps[prevID] != null){
			var middle = (maxh - 30) / 2;
			var nx2 = new Element('a',{
				'styles':{
					width:'30px',
					height:'30px',
					background:'url(prev.png) no-repeat center center',
					position:'absolute',
					left:'-20px',
					bottom:middle,
					'display':'none'
				},
				id:'prev'
			}).addEvent('click',function(e){
				if(Browser.Engine.trident){
					if($('video') != null){
							$('video').stop();
					}
					 if($('swf') != null){
						 $('swf').dispose();
					 }	
			 	}					  
				$('bg').dispose();										 
				$('grow').dispose();
				var nextID = actualID.toInt();
				nextID-=1;
				nextID = nextID.toString();
				$(nextID).fireEvent('click',this);
			}).inject(el);
		}
		var startWidth = 1;
		var startHeight = 1;
		var startLeft = middleH;
		var startTop = middleV;
		if(!newframe){
			startWidth = maxw;
			startHeight = maxh;
			startLeft = endleft;
			startTop = endtop;
		}
		eff.start({
			'width':[startWidth,maxw],
			'height':[startHeight,maxh],
			'left': [startLeft,endleft],
			'top':  [startTop, endtop]		  
		});
	

}
setcontent = function(content, bg, el, cl, title, rev, newframe){
	if($('prev') != null){
		$('prev').setStyle('display','block');
	}
	if($('next') != null){
		$('next').setStyle('display','block');
	}
	if(content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1){
		 var img = new Element('img');
		 img.src = content;
		 maxw = img.width;
		 maxh = img.height;
		 $(img).inject(el);
	}else if(content.indexOf('.flv') == -1 && content.indexOf('.mp3') == -1 && content.indexOf(".pdf") == -1 && content.indexOf(".swf") == -1 && content.indexOf(".jpg") == -1 && content.indexOf(".gif") == -1 && content.indexOf(".png") == -1 && content.indexOf("^") == -1){
		//we have an URL, do not use iframe so we can style, rather get the content using ajax. MODDED BY KK 23.03.2010
		var p = new Element('div');
		p.setStyle('display','block');
		p.setStyle('height','100%');
		p.setStyle('width','100%');
		
/*
		p.setStyle('height',maxh-40);
		p.setStyle('width',maxw-40);
*/
		p.setAttribute('id','htmlframe');
		p.inject(el);
		var req = new Request({
			url : content,
			onComplete : function(response){
				p.set('html', response);
				runBumpbox();
			}
		}).send();
	}else if(content.indexOf(".pdf") != -1){
		var div = new Element('div',{
			'styles':{
				padding:'20px',
				height: maxh-40,
				width:maxw-40
			}
		});
		div.inject(el);
		var x = new IFrame();
		x.src = content;
		x.setStyle('width',maxw-40);
		x.setStyle('height',maxh-40);
		x.inject(div);
	}else if(content.indexOf(".swf") != -1){
		var div = new Element('div',{
			'styles':{
				padding:'20px',
				height: maxh-40,
				width:maxw-40
			},
			id: 'swf'
		}).inject(el);
		var obj = new Swiff(content, {
			id: 'video',
			width: maxw-40,
			height: maxh-40,
			container: div
		});
	}else if(content.indexOf(".flv") != -1){
		var div = new Element('div',{
			'styles':{
				padding:'20px',
				height: maxh-40,
				width:maxw-40
			}
		}).inject(el);
		var f =flowplayer(div, "flowplayer.swf", { 
			buffering : true,      
			autoplay: true,
			clip: content,
			wmode: 'transparent',
			id: 'player'
		});
	}else if(content.indexOf(".mp3") != -1){
		var div = new Element('div',{
			'styles':{
				padding:'20px',
				height: maxh-50,
				width:maxw-40,
				'z-index':'1',
				id:'flowplay'
			}
		}).inject(el);
		f =flowplayer(div, "flowplayer.swf", { 
			buffering : true,      
			autoplay: true,
			clip: content,
			wmode: 'transparent',
			plugins: { 
				myContent: { 
				url: 'flowplayer.content.swf', 
				bottom: 0, 
				width: maxw-20, 
				left:0,
				html: title, 
				onClick: function() { 
					this.hide(); 
					} 
				}
			},
			playlist:[{url:content,autoPlay:true}]
	  	});
	}else if(content.indexOf("^") == 0){
		content = content.replace("^","");
		var div = new Element('div',{
			'styles':{
				padding:'20px',
				height: 'auto',
				width:'auto',
				color:'#fff',
				overflow:'hidden'
			}
		});
		var c = $(content).get('html');
		div.set('html',c);
		div.inject(el);
	}
	if(title != ""){
		var t = new Element('div',{
			'styles':{
				'height':'20px',
				'position':'absolute',
				'top':'-41px',
				'left':'20px',
				'color':'#eee',
				'opacity':'0.9',
				'z-index':'10000',
				'background':'#000',
				'-webkit-border-radius':'5px',
				'-moz-border-radius':'5px',
				'-border-radius':'5px',
				'display':'block',
				'padding':'10px',
				'border-top':'2px solid #303132',
				'border-left':'2px solid #303132',
				'border-right':'2px solid #303132'
			}
		});
		t.set('html',title);			
		t.inject(el);
		t.set('id','maindesc');
	}
	if(rev != null){
		var x1 = new Element('div',{
			'styles':{
				'width':'auto',
				'height':'20px',
				'position':'absolute',
				'left': '20px',
				'bottom': '-41px',
				'color':'#eee',
				'text-decoration':'none',
				'background':'#000',
				'-webkit-border-radius':'5px',
				'-moz-border-radius':'5px',
				'-border-radius':'5px',
				'display':'block',
				'padding':'10px',
				'border-bottom':'2px solid #303132',
				'border-left':'2px solid #303132',
				'border-right':'2px solid #303132'
			}
		}).inject(el);
		x1.set('html', rev);
		x1.set('id','addondesc');
	}
}
