/**
 * @author AK
 * last_modified: 2009-09-09
 * 
 * jQuery 1.3.2
 * nyroModal 1.5.0/1.5.2
 */

$(function(){ // nyroModal functions only available at domready
	if (typeof $.nyroModalManual !== 'undefined') {
		var externalWin = null;
		var date = new Date();
		
		/**
		 * modalOpenPP (modalOpenPostProcessing)
		 * 
		 * This gets calles after modal window has fully opened/loaded
		 * It handles links inside the modal content
		 * 
		 * @param {Object} elts			nyroModal elements
		 * @param {Object} settings		nyroModal settings
		 */
		function modalOpenPP(elts, settings){
			var $anchors = elts.content.find('a');
			$anchors.click(function(e){
				var url = $(this).attr('href');
				var rel = $(this).attr('rel');
				if (rel == 'external') {
					if (externalWin != null && !externalWin.closed) {
						// can't fiddle around with focus; won't work when window is opened as tab in FF
						externalWin.close();
					}
					externalWin = window.open(url,'externwalWin'+date.getTime()); // add timestamp as a workaround (FF)
				}
				else {
					if (url.indexOf('?') > -1) 
						url += '&';
					else 
						url += '?';
					url += 'requestType=modalWindow';
					$.nyroModalManual({
						url: url,
						forceType: 'form', // prevent from loading in iframe (IE)
						endShowContent: function(elts, settings) {
							modalOpenPP(elts, settings);
						},
						endRemove: function(elts, settings) {
							$('html,body').removeClass('nyroModalActive');
						}
					});
				}
				e.preventDefault();
			});
		}
		
		
		/**
		 * nyroModal main handling
		 * Default settings & processing of <a rel="modal"/> items
		 */ 
		$.fn.nyroModal.settings.closeButton = '<a href="#" class="nyroModalClose" id="nyroCloseBtn" title="sluiten">sluiten</a>';
		$.fn.nyroModal.settings.contentError = 'Uw verzoek kon niet worden verwerkt.<br />Mogelijk is het document (tijdelijk) niet beschikbaar.<br />Probeer het a.u.b. later nog eens.<br />Bij aanhoudende problemen gaarne contact opnemen met de webmaster.<br /><a href="#" class="nyroModalClose">Sluiten</a>';
		
		$("a[rel='modal']").click(function(e){
			var url = $(this).attr('href');
			if (url.indexOf('?') > -1) url += '&'; else url += '?';	
			url += 'requestType=modalWindow';
			
			$.nyroModalManual({
				url: url,
				forceTxype: 'div',
				showBackground: function(elts, settings, callback) {
					elts.bg.css({opacity:0}).fadeTo(500, 0.88, callback);
				},
				handleError: function(elts, settings){
					$('html,body').addClass('nyroModalActive');
				},
				hideLoading: function(elts, settings, callback) {					
					if (elts.error !== true) {
						$('html,body').addClass('nyroModalActive');
						//window.scrollTo(0, 0)
					}
					callback();					
				},
				_showContent: function(elts, settings, callback) {
					var closeAnchor = elts.content.find('p.bntClose a');
					closeAnchor.click(function(e){
						$.nyroModalRemove();
						e.preventDefault();
					});
					elts.loading
						.css({
							marginTop: settings.marginTopLoading+'px',
							marginLeft: settings.marginLeftLoading+'px'
						})
						.show()
						.animate({
							width: settings.width+'px',
							height: settings.height+'px',
							marginTop: settings.marginTop+'px',
							marginLeft: settings.marginLeft+'px'
						}, {duration: 350, complete: function() {
							elts.contentWrapper
								.css({
									width: settings.width+'px',
									height: settings.height+'px',
									marginTop: settings.marginTop+'px',
									marginLeft: settings.marginLeft+'px'
								})
								.show();
								elts.loading.fadeOut(200, callback);
							}
						});
				},
				_endFillContent: function() {
				},
				endShowContent: function(elts, settings){
					//console.log(this.endShowContent)
					modalOpenPP(elts, settings);					
				},
				endRemove: function(elts, settings){
					$('html,body').removeClass('nyroModalActive');
				},
				hideContent: function(elts, settings, callback){
					elts.contentWrapper
						.fadeOut(500, function(){elts.contentWrapper.hide(); callback();});
				}				
			});
			e.preventDefault();
		});
	}
});

