/*
*	===========
*	  CoolBox
*	===========
*
*	Version: 2.0.0.4
*	Date: 20th Januari, 2010 - 10:38 GMT+1
*
*	This JavaScript function uses:	jQuery 1.3.2
*
*	(c)2009 Jelle van der Coelen. All rights reserverd
*	http://www.jellevandercoelen.com | jelle@jellevandercoelen.com
*
*	Distributed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Netherlands
*	http://creativecommons.org/licenses/by-nc-sa/3.0/nl/deed.en_US
*
*/
var tempdir  	= '/js/templates/'; 									// --- templates directory
var loaderpath  = 'http://server/molson/www/image/layout/loader.gif'; 	// --- path to loading image
var warnmsg	 	= 'Weet u zeker dat u dit scherm wilt sluiten?';		// --- message to show when closing coolbox

//eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('n w=H;n R=O;n P=0;n I=0;p 1r(){n a=0;j(1N(1s.1t)==\'1O\')a=1s.1t;J j(r.A&&r.A.B)a=r.A.B;J j(r.18&&r.18.B)a=r.18.B;1u a};p Z(){j(w){j(R==1a)w.R();J{w.11();w=H}};$(\'#S\').T()};p 1v(a,b,c,d){$(\'1w\').Q();j($.1b.1c&&/6.0/.1x(1y.1z))$(\'1A\').Q();j(w!=H)w.11();w=12 1d(a,b,c,d);w.1B()};$(r).1P(p(){$(\'A\').U(\'<s x="K" 1C="Z();"></s>\');P=u($(\'#K\').m(\'8\').1D("5",""));I=u($(\'#K\').m(\'3\').1D("5",""));j($.1b.1c)P=(P/2);$(\'.1d\').1Q(p(){R=($(v).1R(\'1S\')?1a:O);$(\'#K\').m({\'13\':\'1T\',\'V\':\'#1e\',\'L\':0.7,\'t\':1r()+\'5\'});n a=$(v).1f(\'M\');n b=$(v).1f(\'W\');j(b==H||b==\'\')b=$(v).1f(\'1g\');j(b.1E(\'?\')!=-1){X=b.1h(\'?\');X=X[1].1h(\'&\');n c=12 1U();1V(n i=0;i<X.1W;i++){n d=X[i].1h(\'=\');c[d[0]]=d[1]}};n e=0;j(b.1E(\'.1X\')!=-1)e=1;1v(a,b,c,e);1u O});$(r).1Y(p(){$(\'#K\').m(\'t\',$(r).B())});$(r).1Z(p(e){j(e.21==27)Z()})});p 1d(c,e,f,g){n h={\'M\':c,\'W\':e,\'1F\':24,\'1G\':\'25.14\',\'3\':29,\'8\':1i,\'15\':O,\'l\':O,\'C\':2a};n f=$.2b(h,f);n i=r.2c(\'K\').2d;h.q=(((I-h.3)/2)+$(r).1j());h.t=(((i-h.8)/2)+$(r).B());v.1B=p(){$(\'A\').U(\'<s x="y"></s>\');$(\'#y\').m({\'8\':h.8+\'5\',\'3\':h.3+\'5\',\'13\':\'2e\'});$(\'A\').U(\'<1H x="S" 1k="\'+2f+\'" 1g="2g" />\');$(\'#S\').m({\'q\':(((I-2h)/2)+$(r).1j()),\'t\':(((i-19)/2)+$(r).B()),\'1l\':\'1m\',\'13\':2i});j(g==0){$.15(h.1F+h.1G,{},p(a){$(\'#y\').14(a)});$(\'A\').U(\'<s x="z"></s>\');$(\'#z\').m({\'8\':(u(h.8)+20)+\'5\',\'3\':(u(h.3)+20)+\'5\',\'L\':0.4,\'1l\':\'1m\',\'V\':\'#1e\',\'t\':(h.t-10)+\'5\',\'q\':(h.q-10)+\'5\'});$(\'#y\').m({\'q\':h.q,\'t\':h.t}).1n(1i);$(\'#S\').T()}J j(g==1){n b=\'\';k=12 2j();k.1k=h.W+"?"+12 2k().2l();k.2m=p(){j(k.8>P-16){h.8=k.8;k.8=P-16;k.3=((u(k.3)*k.8)/h.8)}J j(k.3>I-16){h.3=k.3;k.3=I-16;k.8=((u(k.8)*k.3)/h.3)}h.q=(((I-k.3)/2)+$(r).1j());h.t=(((i-k.8)/2)+$(r).B());j(h.M!=H&&h.M!=\'\')n a=\'<s x="1o">\'+h.M+\'</s>\';Y=k.8;j(a)Y=u(k.8)+26;$(\'#y\').14(\'<s x="1I" 1J="V: 1K;">\'+(a!=H?a:\'\')+\'	<s x="1p">\'+\'		<s x="1L">\'+\'			<1H 1J="3: \'+k.3+\'5;8: \'+k.8+\'5;" x="2n" 1k="\'+h.W+\'" 1g="\'+h.M+\'" 1C="Z();" />\'+\'		</s>\'+\'	</s>\').m({\'8\':Y+"5",\'3\':k.3+"5"});$(\'#z\').m({\'8\':(Y+23)+"5",\'3\':(k.3+22)+"5"});h.8=Y+"5";h.3=k.3+"5";$(\'A\').U(\'<s x="z"></s>\');$(\'#z\').m({\'8\':(u(h.8)+20)+\'5\',\'3\':(u(h.3)+20)+\'5\',\'L\':0.4,\'1l\':\'1m\',\'V\':\'#1e\',\'t\':(h.t-10)+\'5\',\'q\':(h.q-10)+\'5\'});$(\'#y\').m({\'q\':h.q,\'t\':h.t}).1n(1i);$(\'#S\').T()}};v.2o=(h.2p-28);j(h.l!=O)w.l()};v.2q=p(){$(\'#1I\').m({\'3\':h.3+\'5\'});$(\'#1p\').m({\'8\':((h.8-9)-u($(\'#1o\').m(\'8\')))+\'5\'});$(\'#1o\').2r(h.M);$.15(h.W,(h.15==\'1a\'?f:{}),p(a){$(\'#1L\').14(a)})};v.l=p(){j(h.l==\'2s\'){$(\'#y\').m(\'3\',\'17\').Q().l({\'3\':h.3+\'5\'},N(h.C));$(\'#z\').m(\'3\',\'17\').Q().l({\'3\':(u(h.3)+20)+\'5\'},N(h.C))}J j(h.l==\'1n\'){$(\'#y\').Q().l({\'L\':\'1q\'},N(h.C));$(\'#z\').Q().l({\'L\':\'1q\'},N(h.C))}J j(h.l==\'2t\'){n a=(h.q+(h.3/2));$(\'#y\').m({\'q\':a+\'5\',\'3\':\'17\'}).l({\'q\':h.q+\'5\',\'3\':h.3+\'5\'},N(h.C));$(\'#z\').m({\'q\':a+\'5\',\'3\':\'17\'}).l({\'8\':(u(h.8)+20)+\'5\',\'q\':h.q-10+\'5\',\'t\':h.t-10+\'5\',\'3\':(u(h.3)+20)+\'5\'},N(h.C))}};v.2u=p(){n o=$(\'#1p\').2v();d=2w;o.l({\'D\':\'-=E\',\'F\':\'-=G\'},d).l({\'D\':\'+=E\',\'F\':\'+=G\'},d).l({\'D\':\'+=E\',\'F\':\'+=G\'},d).l({\'D\':\'-=E\',\'F\':\'-=G\'},d).l({\'D\':\'-=E\',\'F\':\'-=G\'},d).l({\'D\':\'+=E\',\'F\':\'+=G\'},d).l({\'D\':\'+=E\',\'F\':\'+=G\'},d).l({\'D\':\'-=E\',\'F\':\'-=G\'},d)};v.11=p(){$(\'#y\').T();$(\'#z\').T();$(\'1w\').1M();j($.1b.1c&&/6.0/.1x(1y.1z))$(\'1A\').1M();$(\'#K\').l({\'L\':\'1q\'},N(h.C),p(){$(v).m({\'13\':\'-1\',\'V\':\'1K\',\'L\':1,\'2x\':\'2y\'})});w=H};v.R=p(){j(2z(2A))v.11()}};',62,161,'|||width||px|||height|||||||||||if|current_img|animate|css|var||function|left|document|div|top|parseInt|this|coolbox|id|cb_container|cb_overlay|body|scrollTop|animationDelay|marginLeft|20px|marginTop|10px|null|viewport_width|else|cb_viewport|opacity|title|eval|false|viewport_height|hide|warn|cb_loader|remove|append|background|href|url|new_height|killCoolBox||kill|new|zIndex|html|post|100|0px|documentElement||true|browser|msie|CoolBox|000000|attr|alt|split|150|scrollLeft|src|position|absolute|fadeIn|cb_title|cb_window|toggle|getScrollY|window|pageYOffset|return|triggerCoolBox|object|test|navigator|userAgent|select|trigger|onclick|replace|indexOf|tempDir|type|img|cb|style|none|cb_content|show|typeof|number|ready|click|hasClass|cb_warn|1999|Array|for|length|jpg|scroll|keyup||keyCode|||tempdir|default||||350|500|extend|getElementById|offsetHeight|2000|loaderpath|Loader|220|3000|Image|Date|getTime|onload|cb_image|CurrentHeight|Height|setVars|prepend|slideIn|insideOut|shake|parent|30|display|block|confirm|warnmsg'.split('|'),0,{}))


//init
var coolbox  		= null;
var warn	 		= false;
var viewport_height = 0;
var viewport_width  = 0;
var current_coolbox = null;
/*======================================*/
/*	common functions					*/ 
/*======================================*/
// --- getScrollY is used to correctly position the cb_viewport in IE (also used in FF, but isn't necessary)
function getScrollY()
{
	var scrOfY = 0;
	
	if(typeof(window.pageYOffset) == 'number')
		scrOfY = window.pageYOffset;
	else if(document.body && document.body.scrollTop)
		scrOfY = document.body.scrollTop;
	else if(document.documentElement && document.documentElement.scrollTop)
		scrOfY = document.documentElement.scrollTop;

	return scrOfY;
};

// --- killCoolBox
function killCoolBox()
{
	if(coolbox)
	{
		if(warn == true)
			coolbox.warn();
		else
		{
			coolbox.kill();
			
			coolbox = null;
		};
	};
	
	$('#cb_loader').remove();
};

// --- triggerCoolBox can be called seperately
function triggerCoolBox(title, msg, options, img)
{
	$('object').hide();
	
	if($.browser.msie && /6.0/.test(navigator.userAgent))
		$('select').hide();
	
	if(coolbox != null)
		coolbox.kill();

	coolbox = new CoolBox(title, msg, options, img);
		
	coolbox.trigger();
};

/*======================================*/
/*	document ready functions			*/ 
/*======================================*/
$(document).ready(function()
{
	// --- append viewport to determine absolute height and kill CoolBox on click event
	$('body').append('<div id="cb_viewport" onclick="killCoolBox();"></div>');
	
	viewport_height = parseInt($('#cb_viewport').css('height').replace("px", ""));
	viewport_width = parseInt($('#cb_viewport').css('width').replace("px", ""));

	if($.browser.msie)
		viewport_height = (viewport_height / 2);
	
	// --- set on click event to all elements with class CoolBox
	$('.CoolBox').click(function()
	{
		warn = ($(this).hasClass('cb_warn') ? true : false);
		
		$('#cb_viewport').css(
		{
			'zIndex': 		'1999',
			'background': 	'#000000',
			'opacity':		0.7,
			'top':			getScrollY()+'px'
		});
		
		var title = $(this).attr('title');
		var href  = $(this).attr('href');

		if(href == null || href == '')
			href = $(this).attr('alt');

		if(href.indexOf('?') != -1)
		{
			url = href.split('?');
			url = url[1].split('&');
			
			var args = new Array();
			for(var i = 0; i < url.length; i++)
			{
				var arg = url[i].split('=');
				
				args[arg[0]] = arg[1];
			};
		};
		
		var img = 0;
		
		if(href.indexOf('.jpg') != -1)
			img = 1;
		
		current_coolbox = $(this);
				
		triggerCoolBox(title, href, args, img);
		
		return false;
	});
	
	$(document).scroll(function()
	{
		$('#cb_viewport').css('top', $(document).scrollTop());
	});
	
	$(document).keyup(function(e)
	{
		if(e.keyCode == 27)
			killCoolBox();
	});
});

/*======================================*/
/*	CoolBox								*/
/*======================================*/
function CoolBox(title, href, options, img)
{
	/*
	 */
	var defaults =
	{
		/*
		 */
		'title'				: title,
		'href'				: href,
		
		/*
		 */
		'tempDir'			: tempdir,
		'type'				: 'default.html',
		
		/*
		 */
		'width'				: 350,
		'height'			: 150,
		
		/*
		 */
		'post'				: false,
		
		/*
		 */
		'animate'			: false,
		'animationDelay'	: 500
	};
	
	/* 
	 */
	var options = $.extend(defaults, options);
	
	/*
	 */
	var screen_height = document.getElementById('cb_viewport').offsetHeight;
	
	defaults.left	= (((viewport_width  - defaults.width)  / 2) + $(document).scrollLeft());
	defaults.top	= (((screen_height - defaults.height) / 2) + $(document).scrollTop());

	/*
	*
	*/
	this.trigger = function()
	{
		$('body').append('<div id="cb_container"></div>');
		
		$('#cb_container').css(
		{
			'height' 	: defaults.height+'px',
			'width' 	: defaults.width+'px',
			'zIndex'	: '2000'
		});
		
		$('body').append('<img id="cb_loader" src="'+loaderpath+'" alt="Loader" />');
		
		$('#cb_loader').css(
		{
			'left':	(((viewport_width  - 220)  / 2) + $(document).scrollLeft()),
			'top':	(((screen_height - 19) / 2) + $(document).scrollTop()),
			'position':	'absolute',
			'zIndex': 3000
		});
		
		if(img == 0)
		{
			$.post(defaults.tempDir+defaults.type, {}, function(data)
			{
				$('#cb_container').html(data);
			});
			
			$('body').append('<div id="cb_overlay"></div>');
			$('#cb_overlay').css(
			{
				'height' 		: (parseInt(defaults.height) + 20)+'px',
				'width' 		: (parseInt(defaults.width) + 20)+'px',
				'opacity' 		: 0.4,
				'position' 		: 'absolute',
				'background' 	: '#000000',
				'top' 			: (defaults.top-10)+'px',
				'left' 			: (defaults.left-10)+'px'
			});
			
			$('#cb_container').css({'left': defaults.left, 'top': defaults.top}).fadeIn(150);
			
			$('#cb_loader').remove();
		}
		else if(img == 1)
		{
			var img_title = '';
			
			current_img = new Image();
			current_img.src = defaults.href+"?"+new Date().getTime();
			current_img.onload = function()
			{
				if(current_img.height > viewport_height - 100)
				{
					defaults.height = current_img.height;
					
					current_img.height = viewport_height - 100;
					
					current_img.width = ((parseInt(current_img.width) * current_img.height) / defaults.height);
				}
				else if(current_img.width > viewport_width - 100)
				{
					defaults.width = current_img.width;
					
					current_img.width = viewport_width - 100;
					
					current_img.height = ((parseInt(current_img.height) * current_img.width) / defaults.width);
				}
					
				defaults.left = (((viewport_width  - current_img.width)  / 2) + $(document).scrollLeft());
				defaults.top  = (((screen_height - current_img.height) / 2) + $(document).scrollTop());
			
				/*
				if (defaults.title != null && defaults.title != '')
					var img_title = '<div id="cb_title">'+defaults.title+'</div>';
				*/
				
				var img_title = '<div id="cb_title"><span id="close" onclick="coolbox.kill();">Sluiten</span></div>';
						
				new_height = current_img.height;
				
				if(img_title)
					new_height = parseInt(current_img.height) + 26;
				
				$('#cb_container').html
				(
					'<div id="cb" style="background: none;">'+
						(img_title != null ? img_title : '')+
					'	<div id="cb_window">'+
					'		<div id="cb_content">'+
					'			<img style="width: '+current_img.width+'px;height: '+current_img.height+'px;" id="cb_image" src="'+defaults.href+'" alt="'+defaults.title+'" onclick="killCoolBox();" />'+
					'		</div>'+
					'	</div>'
				).css(
				{
					'height': new_height+"px",
					'width': current_img.width+"px"
				});
				
				$('#cb_overlay').css(
				{
					'height': (new_height + 23)+"px",
					'width': (current_img.width + 22)+"px"
				});
				
				$('#cb_title').prepend('<a href="#" onclick="coolbox.prev();">Vorige</a> | <a href="#" onclick="coolbox.next();">Volgende</a>');
				
				defaults.height = new_height+"px";
				defaults.width = current_img.width+"px";
				
				$('body').append('<div id="cb_overlay"></div>');
				$('#cb_overlay').css(
				{
					'height' 		: (parseInt(defaults.height) + 20)+'px',
					'width' 		: (parseInt(defaults.width) + 20)+'px',
					'opacity' 		: 0.4,
					'position' 		: 'absolute',
					'background' 	: '#000000',
					'top' 			: (defaults.top-10)+'px',
					'left' 			: (defaults.left-10)+'px'
				});
				
				$('#cb_container').css({'left': defaults.left, 'top': defaults.top}).fadeIn(150);
				
				$('#cb_loader').remove();
			};
		};
		
		this.CurrentHeight = (defaults.Height - 28);
		
		if(defaults.animate != false)
			coolbox.animate();
	};
	
	/*
	*
	*/
	this.setVars = function()
	{
		$('#cb').css({'width': defaults.width+'px'});
		$('#cb_window').css({'height': ((defaults.height - 9) - parseInt($('#cb_title').css('height')))+'px'});
		$('#cb_title').prepend(defaults.title);

		$.post(defaults.href, (defaults.post == 'true' ? options : {}), function(data)
		{
			$('#cb_content').html(data);
		});
	};
	
	/*
	* 
	*/
	this.animate = function()
	{
		if (defaults.animate == 'slideIn')
		{
			$('#cb_container').css('width', '0px').hide().animate({'width': defaults.width + 'px'}, eval(defaults.animationDelay));
			$('#cb_overlay').css('width', '0px').hide().animate({'width': (parseInt(defaults.width)+20) + 'px'}, eval(defaults.animationDelay));
		}
		else if(defaults.animate == 'fadeIn')
		{
			$('#cb_container').hide().animate({'opacity': 'toggle'}, eval(defaults.animationDelay));
			$('#cb_overlay').hide().animate({'opacity': 'toggle'}, eval(defaults.animationDelay));
		}
		else if(defaults.animate == 'insideOut')
		{
			var screen_center_left = (defaults.left + (defaults.width / 2));
		
			$('#cb_container').css(
			{
				'left'		: screen_center_left + 'px',
				'width'		: '0px'
			}).animate(
			{
				'left'		: defaults.left+'px',
				'width'		: defaults.width+'px'
			}, eval(defaults.animationDelay));
			
			$('#cb_overlay').css(
			{
				'left'		: screen_center_left + 'px',
				'width'		: '0px'
			}).animate(
			{
				'height' 	: (parseInt(defaults.height) + 20)+'px',
				'left'		: defaults.left-10+'px',
				'top'		: defaults.top-10+'px',
				'width' 	: (parseInt(defaults.width) + 20)+'px'
			}, eval(defaults.animationDelay));
		};
	};
	
	/*
	*
	*/
	this.shake = function()
	{
		var o = $('#cb_window').parent();
		
		d = 30;
		
		o.animate({'marginLeft' : '-=20px', 'marginTop' : '-=10px'}, d)
		.animate({'marginLeft' : '+=20px', 'marginTop' : '+=10px'}, d)
		.animate({'marginLeft' : '+=20px', 'marginTop' : '+=10px'}, d)
		.animate({'marginLeft' : '-=20px', 'marginTop' : '-=10px'}, d)
		.animate({'marginLeft' : '-=20px', 'marginTop' : '-=10px'}, d)
		.animate({'marginLeft' : '+=20px', 'marginTop' : '+=10px'}, d)
		.animate({'marginLeft' : '+=20px', 'marginTop' : '+=10px'}, d)
		.animate({'marginLeft' : '-=20px', 'marginTop' : '-=10px'}, d);
	};
	
	/*
	*
	*/
	this.kill = function(fadeout)
	{
		$('#cb_container').remove();
		$('#cb_overlay').remove();
		
		$('object').show();
		
		if($.browser.msie && /6.0/.test(navigator.userAgent))
			$('select').show();
		
		if(fadeout != false)
		{
			$('#cb_viewport').animate({'opacity': 'toggle'}, eval(defaults.animationDelay), function()
			{
				$(this).css({
					'zIndex': '-1',
					'background': 'none',
					'opacity': 1,
					'display': 'block'
				});
			});
			
			current_coolbox = null;
		};
		
		coolbox = null;
	};
	
	/*
	* 
	*/
	this.next = function()
	{
		if(current_coolbox.next().attr('href') != null)
		{
			coolbox.kill(false);
			
			current_coolbox.next().trigger('click');
		};
	};
	
	/*
	* 
	*/
	this.prev = function()
	{
		if(current_coolbox.prev().attr('href') != null)
		{
			coolbox.kill(false);
			
			current_coolbox.prev().trigger('click');
		};
	};
	
	/*
	*
	*/
	this.warn = function()
	{
		if(confirm(warnmsg))
			this.kill();
	};
};
