Index: /extensions/rv_gmaps/trunk/changelog.txt
===================================================================
--- /extensions/rv_gmaps/trunk/changelog.txt	(revision 8028)
+++ /extensions/rv_gmaps/trunk/changelog.txt	(revision 8029)
@@ -1,2 +1,5 @@
+2.1.c
+- do not use prototype anymore on the picture page (still using on map page)
+
 2.1.b
 - allow gps exif metadata synchronisation with high resolution images
Index: /extensions/rv_gmaps/trunk/template/nyroModal/jquery.nyroModal-1.6.2.js
===================================================================
--- /extensions/rv_gmaps/trunk/template/nyroModal/jquery.nyroModal-1.6.2.js	(revision 8029)
+++ /extensions/rv_gmaps/trunk/template/nyroModal/jquery.nyroModal-1.6.2.js	(revision 8029)
@@ -0,0 +1,1707 @@
+/*
+ * nyroModal - jQuery Plugin
+ * http://nyromodal.nyrodev.com
+ *
+ * Copyright (c) 2010 Cedric Nirousset (nyrodev.com)
+ * Licensed under the MIT license
+ *
+ * $Date: 2010-02-23 (Tue, 23 Feb 2010) $
+ * $version: 1.6.2
+ */
+jQuery(function($) {
+
+	// -------------------------------------------------------
+	// Private Variables
+	// -------------------------------------------------------
+
+	var userAgent = navigator.userAgent.toLowerCase();
+	var browserVersion = (userAgent.match(/.+(?:rv|webkit|khtml|opera|msie)[\/: ]([\d.]+)/ ) || [0,'0'])[1];
+
+	var isIE6 = (/msie/.test(userAgent) && !/opera/.test(userAgent) && parseInt(browserVersion) < 7 && (!window.XMLHttpRequest || typeof(XMLHttpRequest) === 'function'));
+	var body = $('body');
+
+	var currentSettings;
+	var callingSettings;
+
+	var shouldResize = false;
+
+	var gallery = {};
+
+	// To know if the fix for the Issue 10 should be applied (or has been applied)
+	var fixFF = false;
+
+	// Used for retrieve the content from an hidden div
+	var contentElt;
+	var contentEltLast;
+
+	// Contains info about nyroModal state and all div references
+	var modal = {
+		started: false,
+		ready: false,
+		dataReady: false,
+		anim: false,
+		animContent: false,
+		loadingShown: false,
+		transition: false,
+		resizing: false,
+		closing: false,
+		error: false,
+		blocker: null,
+		blockerVars: null,
+		full: null,
+		bg: null,
+		loading: null,
+		tmp: null,
+		content: null,
+		wrapper: null,
+		contentWrapper: null,
+		scripts: new Array(),
+		scriptsShown: new Array()
+	};
+
+	// Indicate of the height or the width was resized, to reinit the currentsettings related to null
+	var resized = {
+		width: false,
+		height: false,
+		windowResizing: false
+	};
+
+	var initSettingsSize = {
+		width: null,
+		height: null,
+		windowResizing: true
+	};
+
+	var windowResizeTimeout;
+
+
+	// -------------------------------------------------------
+	// Public function
+	// -------------------------------------------------------
+
+	// jQuery extension function. A paramater object could be used to overwrite the default settings
+	$.fn.nyroModal = function(settings) {
+		if (!this)
+			return false;
+		return this.each(function() {
+			var me = $(this);
+			if (this.nodeName.toLowerCase() == 'form') {
+				me
+				.unbind('submit.nyroModal')
+				.bind('submit.nyroModal', function(e) {
+					if(e.isDefaultPrevented())
+						return false;
+					if (me.data('nyroModalprocessing'))
+						return true;
+					if (this.enctype == 'multipart/form-data') {
+						processModal($.extend(settings, {
+							from: this
+						}));
+						return true;
+					}
+					e.preventDefault();
+					processModal($.extend(settings, {
+						from: this
+					}));
+					return false;
+				});
+			} else {
+				me
+				.unbind('click.nyroModal')
+				.bind('click.nyroModal', function(e) {
+					if(e.isDefaultPrevented())
+						return false;
+					e.preventDefault();
+					processModal($.extend(settings, {
+						from: this
+					}));
+					return false;
+				});
+			}
+		});
+	};
+
+	// jQuery extension function to call manually the modal. A paramater object could be used to overwrite the default settings
+	$.fn.nyroModalManual = function(settings) {
+		if (!this.length)
+			processModal(settings);
+		return this.each(function(){
+			processModal($.extend(settings, {
+				from: this
+			}));
+		});
+	};
+
+	$.nyroModalManual = function(settings) {
+		processModal(settings);
+	};
+
+	// Update the current settings
+	// object settings
+	// string deep1 first key where overwrite the settings
+	// string deep2 second key where overwrite the settings
+	$.nyroModalSettings = function(settings, deep1, deep2) {
+		setCurrentSettings(settings, deep1, deep2);
+		if (!deep1 && modal.started) {
+			if (modal.bg && settings.bgColor)
+				currentSettings.updateBgColor(modal, currentSettings, function(){});
+
+			if (modal.contentWrapper && settings.title)
+				setTitle();
+
+			if (!modal.error && (settings.windowResizing || (!modal.resizing && (('width' in settings && settings.width == currentSettings.width) || ('height' in settings && settings.height == currentSettings.height))))) {
+				modal.resizing = true;
+				if (modal.contentWrapper)
+					calculateSize(true);
+				if (modal.contentWrapper && modal.contentWrapper.is(':visible') && !modal.animContent) {
+					if (fixFF)
+						modal.content.css({position: ''});
+					currentSettings.resize(modal, currentSettings, function() {
+						currentSettings.windowResizing = false;
+						modal.resizing = false;
+						if (fixFF)
+							modal.content.css({position: 'fixed'});
+						if ($.isFunction(currentSettings.endResize))
+							currentSettings.endResize(modal, currentSettings);
+					});
+				}
+			}
+		}
+	};
+
+	// Remove the modal function
+	$.nyroModalRemove = function() {
+		removeModal();
+	};
+
+	// Go to the next image for a gallery
+	// return false if nothing was done
+	$.nyroModalNext = function() {
+		var link = getGalleryLink(1);
+		if (link)
+			return link.nyroModalManual(getCurrentSettingsNew());
+		return false;
+	};
+
+	// Go to the previous image for a gallery
+	// return false if nothing was done
+	$.nyroModalPrev = function() {
+		var link = getGalleryLink(-1);
+		if (link)
+			return link.nyroModalManual(getCurrentSettingsNew());
+		return false;
+	};
+
+
+	// -------------------------------------------------------
+	// Default Settings
+	// -------------------------------------------------------
+
+	$.fn.nyroModal.settings = {
+		debug: false, // Show the debug in the background
+
+		blocker: false, // Element which will be blocked by the modal
+		
+		windowResize: true, // indicates if the modal should resize when the window is resized
+
+		modal: false, // Esc key or click backgrdound enabling or not
+
+		type: '', // nyroModal type (form, formData, iframe, image, etc...)
+		forceType: null, // Used to force the type
+		from: '', // Dom object where the call come from
+		hash: '', // Eventual hash in the url
+
+		processHandler: null, // Handler just before the real process
+
+		selIndicator: 'nyroModalSel', // Value added when a form or Ajax is sent with a filter content
+
+		formIndicator: 'nyroModal', // Value added when a form is sent
+
+		content: null, // Raw content if type content is used
+
+		bgColor: '#000000', // Background color
+
+		ajax: {}, // Ajax option (url, data, type, success will be overwritten for a form, url and success only for an ajax call)
+
+		swf: { // Swf player options if swf type is used.
+			wmode: 'transparent'
+		},
+
+		width: null, // default Width If null, will be calculate automatically
+		height: null, // default Height If null, will be calculate automatically
+
+		minWidth: 400, // Minimum width
+		minHeight: 300, // Minimum height
+
+		resizable: true, // Indicate if the content is resizable. Will be set to false for swf
+		autoSizable: true, // Indicate if the content is auto sizable. If not, the min size will be used
+
+		padding: 25, // padding for the max modal size
+
+		regexImg: '[^\.]\.(jpg|jpeg|png|tiff|gif|bmp)\s*$', // Regex to find images
+		addImageDivTitle: false, // Indicate if the div title should be inserted
+		defaultImgAlt: 'Image', // Default alt attribute for the images
+		setWidthImgTitle: true, // Set the width to the image title
+		ltr: true, // Left to Right by default. Put to false for Hebrew or Right to Left language
+
+		gallery: null, // Gallery name if provided
+		galleryLinks: '<a href="#" class="nyroModalPrev">Prev</a><a href="#"  class="nyroModalNext">Next</a>', // Use .nyroModalPrev and .nyroModalNext to set the navigation link
+		galleryCounts: galleryCounts, // Callback to show the gallery count
+		galleryLoop: false, // Indicate if the gallery should loop
+
+		zIndexStart: 100,
+
+		cssOpt: { // Default CSS option for the nyroModal Div. Some will be overwritten or updated when using IE6
+			bg: {
+				position: 'absolute',
+				overflow: 'hidden',
+				top: 0,
+				left: 0,
+				height: '100%',
+				width: '100%'
+			},
+			wrapper: {
+				position: 'absolute',
+				top: '50%',
+				left: '50%'
+			},
+			wrapper2: {
+			},
+			content: {
+			},
+			loading: {
+				position: 'absolute',
+				top: '50%',
+				left: '50%',
+				marginTop: '-50px',
+				marginLeft: '-50px'
+			}
+		},
+
+		wrap: { // Wrapper div used to style the modal regarding the content type
+			div: '<div class="wrapper"></div>',
+			ajax: '<div class="wrapper"></div>',
+			form: '<div class="wrapper"></div>',
+			formData: '<div class="wrapper"></div>',
+			image: '<div class="wrapperImg"></div>',
+			swf: '<div class="wrapperSwf"></div>',
+			iframe: '<div class="wrapperIframe"></div>',
+			iframeForm: '<div class="wrapperIframe"></div>',
+			manual: '<div class="wrapper"></div>'
+		},
+
+		closeButton: '<a href="#" class="nyroModalClose" id="closeBut" title="close">Close</a>', // Adding automaticly as the first child of #nyroModalWrapper
+
+		title: null, // Modal title
+		titleFromIframe: true, // When using iframe in the same domain, try to get the title from it
+
+		openSelector: '.nyroModal', // selector for open a new modal. will be used to parse automaticly at page loading
+		closeSelector: '.nyroModalClose', // selector to close the modal
+
+		contentLoading: '<a href="#" class="nyroModalClose">Cancel</a>', // Loading div content
+
+		errorClass: 'error', // CSS Error class added to the loading div in case of error
+		contentError: 'The requested content cannot be loaded.<br />Please try again later.<br /><a href="#" class="nyroModalClose">Close</a>', // Content placed in the loading div in case of error
+
+		handleError: null, // Callback in case of error
+
+		showBackground: showBackground, // Show background animation function
+		hideBackground: hideBackground, // Hide background animation function
+
+		endFillContent: null, // Will be called after filling and wraping the content, before parsing closeSelector and openSelector and showing the content
+		showContent: showContent, // Show content animation function
+		endShowContent: null, // Will be called once the content is shown
+		beforeHideContent: null, // Will be called just before the modal closing
+		hideContent: hideContent, // Hide content animation function
+
+		showTransition: showTransition, // Show the transition animation (a modal is already shown and a new one is requested)
+		hideTransition: hideTransition, // Hide the transition animation to show the content
+
+		showLoading: showLoading, // show loading animation function
+		hideLoading: hideLoading, // hide loading animation function
+
+		resize: resize, // Resize animation function
+		endResize: null, // Will be called one the content is resized
+
+		updateBgColor: updateBgColor, // Change background color animation function
+
+		endRemove: null // Will be called once the modal is totally gone
+	};
+
+	// -------------------------------------------------------
+	// Private function
+	// -------------------------------------------------------
+
+	// Main function
+	function processModal(settings) {
+		if (modal.loadingShown || modal.transition || modal.anim)
+			return;
+		debug('processModal');
+		modal.started = true;
+		callingSettings = $.extend(true, settings);
+		setDefaultCurrentSettings(settings);
+		if (!modal.full)
+			modal.blockerVars = modal.blocker = null;
+		modal.error = false;
+		modal.closing = false;
+		modal.dataReady = false;
+		modal.scripts = new Array();
+		modal.scriptsShown = new Array();
+
+		currentSettings.type = fileType();
+		if (currentSettings.forceType) {
+			if (!currentSettings.content)
+				currentSettings.from = true;
+			currentSettings.type = currentSettings.forceType;
+			currentSettings.forceType = null;
+		}
+
+		if ($.isFunction(currentSettings.processHandler))
+			currentSettings.processHandler(currentSettings);
+
+		var from = currentSettings.from;
+		var url = currentSettings.url;
+
+		initSettingsSize.width = currentSettings.width;
+		initSettingsSize.height = currentSettings.height;
+
+		if (currentSettings.type == 'swf') {
+			// Swf is transforming as a raw content
+			setCurrentSettings({overflow: 'visible'}, 'cssOpt', 'content');
+			currentSettings.content = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+currentSettings.width+'" height="'+currentSettings.height+'"><param name="movie" value="'+url+'"></param>';
+			var tmp = '';
+			$.each(currentSettings.swf, function(name, val) {
+				currentSettings.content+= '<param name="'+name+'" value="'+val+'"></param>';
+				tmp+= ' '+name+'="'+val+'"';
+			});
+			currentSettings.content+= '<embed src="'+url+'" type="application/x-shockwave-flash" width="'+currentSettings.width+'" height="'+currentSettings.height+'"'+tmp+'></embed></object>';
+		}
+
+		if (from) {
+			var jFrom = $(from).blur();
+			if (currentSettings.type == 'form') {
+				var data = $(from).serializeArray();
+				data.push({name: currentSettings.formIndicator, value: 1});
+				if (currentSettings.selector)
+					data.push({name: currentSettings.selIndicator, value: currentSettings.selector.substring(1)});
+				showModal();
+				$.ajax($.extend({}, currentSettings.ajax, {
+						url: url,
+						data: data,
+						type: jFrom.attr('method') ? jFrom.attr('method') : 'get',
+						success: ajaxLoaded,
+						error: loadingError
+					}));
+				debug('Form Ajax Load: '+jFrom.attr('action'));
+			} else if (currentSettings.type == 'formData') {
+				// Form with data. We're using a hidden iframe
+				initModal();
+				jFrom.attr('target', 'nyroModalIframe');
+				jFrom.attr('action', url);
+				jFrom.prepend('<input type="hidden" name="'+currentSettings.formIndicator+'" value="1" />');
+				if (currentSettings.selector)
+					jFrom.prepend('<input type="hidden" name="'+currentSettings.selIndicator+'" value="'+currentSettings.selector.substring(1)+'" />');
+				modal.tmp.html('<iframe frameborder="0" hspace="0" name="nyroModalIframe" src="javascript:\'\';"></iframe>');
+				$('iframe', modal.tmp)
+					.css({
+						width: currentSettings.width,
+						height: currentSettings.height
+					})
+					.error(loadingError)
+					.load(formDataLoaded);
+				debug('Form Data Load: '+jFrom.attr('action'));
+				showModal();
+				showContentOrLoading();
+			} else if (currentSettings.type == 'image') {
+				debug('Image Load: '+url);
+				var title = jFrom.attr('title') || currentSettings.defaultImgAlt;
+				initModal();
+				modal.tmp.html('<img id="nyroModalImg" />').find('img').attr('alt', title);
+				modal.tmp.css({lineHeight: 0});
+				$('img', modal.tmp)
+					.error(loadingError)
+					.load(function() {
+						debug('Image Loaded: '+this.src);
+						$(this).unbind('load');
+						var w = modal.tmp.width();
+						var h = modal.tmp.height();
+						modal.tmp.css({lineHeight: ''});
+						resized.width = w;
+						resized.height = h;
+						setCurrentSettings({
+							width: w,
+							height: h,
+							imgWidth: w,
+							imgHeight: h
+						});
+						initSettingsSize.width = w;
+						initSettingsSize.height = h;
+						setCurrentSettings({overflow: 'visible'}, 'cssOpt', 'content');
+						modal.dataReady = true;
+						if (modal.loadingShown || modal.transition)
+							showContentOrLoading();
+					})
+					.attr('src', url);
+				showModal();
+			} else if (currentSettings.type == 'iframeForm') {
+				initModal();
+				modal.tmp.html('<iframe frameborder="0" hspace="0" src="javascript:\'\';" name="nyroModalIframe" id="nyroModalIframe"></iframe>');
+				debug('Iframe Form Load: '+url);
+				$('iframe', modal.tmp).eq(0)
+					.css({
+						width: '100%',
+						height: $.support.boxModel? '99%' : '100%'
+					})
+					.load(iframeLoaded);
+				modal.dataReady = true;
+				showModal();
+			} else if (currentSettings.type == 'iframe') {
+				initModal();
+				modal.tmp.html('<iframe frameborder="0" hspace="0" src="javascript:\'\';" name="nyroModalIframe" id="nyroModalIframe"></iframe>');
+				debug('Iframe Load: '+url);
+				$('iframe', modal.tmp).eq(0)
+					.css({
+						width: '100%',
+						height: $.support.boxModel? '99%' : '100%'
+					})
+					.load(iframeLoaded);
+				modal.dataReady = true;
+				showModal();
+			} else if (currentSettings.type) {
+				// Could be every other kind of type or a dom selector
+				debug('Content: '+currentSettings.type);
+				initModal();
+				modal.tmp.html(currentSettings.content);
+				var w = modal.tmp.width();
+				var h = modal.tmp.height();
+				var div = $(currentSettings.type);
+				if (div.length) {
+					setCurrentSettings({type: 'div'});
+					w = div.width();
+					h = div.height();
+					if (contentElt)
+						contentEltLast = contentElt;
+					contentElt = div;
+					modal.tmp.append(div.contents());
+				}
+				initSettingsSize.width = w;
+				initSettingsSize.height = h;
+				setCurrentSettings({
+					width: w,
+					height: h
+				});
+				if (modal.tmp.html())
+					modal.dataReady = true;
+				else
+					loadingError();
+				if (!modal.ready)
+					showModal();
+				else
+					endHideContent();
+			} else {
+				debug('Ajax Load: '+url);
+				setCurrentSettings({type: 'ajax'});
+				var data = currentSettings.ajax.data || {};
+				if (currentSettings.selector) {
+					if (typeof data == "string") {
+						data+= '&'+currentSettings.selIndicator+'='+currentSettings.selector.substring(1);
+					} else {
+						data[currentSettings.selIndicator] = currentSettings.selector.substring(1);
+					}
+				}
+				showModal();
+				$.ajax($.extend(true, currentSettings.ajax, {
+					url: url,
+					success: ajaxLoaded,
+					error: loadingError,
+					data: data
+				}));
+			}
+		} else if (currentSettings.content) {
+			// Raw content not from a DOM element
+			debug('Content: '+currentSettings.type);
+			setCurrentSettings({type: 'manual'});
+			initModal();
+			modal.tmp.html($('<div/>').html(currentSettings.content).contents());
+			if (modal.tmp.html())
+				modal.dataReady = true;
+			else
+				loadingError();
+			showModal();
+		} else {
+			// What should we show here? nothing happen
+		}
+	}
+
+	// Update the current settings
+	// object settings
+	// string deep1 first key where overwrite the settings
+	// string deep2 second key where overwrite the settings
+	function setDefaultCurrentSettings(settings) {
+		debug('setDefaultCurrentSettings');
+		currentSettings = $.extend(true, {}, $.fn.nyroModal.settings, settings);
+		setMargin();
+	}
+
+	function setCurrentSettings(settings, deep1, deep2) {
+		if (modal.started) {
+			if (deep1 && deep2) {
+				$.extend(true, currentSettings[deep1][deep2], settings);
+			} else if (deep1) {
+				$.extend(true, currentSettings[deep1], settings);
+			} else {
+				if (modal.animContent) {
+					if ('width' in settings) {
+						if (!modal.resizing) {
+							settings.setWidth = settings.width;
+							shouldResize = true;
+						}
+						delete settings['width'];
+					}
+					if ('height' in settings) {
+						if (!modal.resizing) {
+							settings.setHeight = settings.height;
+							shouldResize = true;
+						}
+						delete settings['height'];
+					}
+				}
+				$.extend(true, currentSettings, settings);
+			}
+		} else {
+			if (deep1 && deep2) {
+				$.extend(true, $.fn.nyroModal.settings[deep1][deep2], settings);
+			} else if (deep1) {
+				$.extend(true, $.fn.nyroModal.settings[deep1], settings);
+			} else {
+				$.extend(true, $.fn.nyroModal.settings, settings);
+			}
+		}
+	}
+
+	// Set the margin for postionning the element. Useful for IE6
+	function setMarginScroll() {
+		if (isIE6 && !modal.blocker) {
+			if (document.documentElement) {
+				currentSettings.marginScrollLeft = document.documentElement.scrollLeft;
+				currentSettings.marginScrollTop = document.documentElement.scrollTop;
+			} else {
+				currentSettings.marginScrollLeft = document.body.scrollLeft;
+				currentSettings.marginScrollTop = document.body.scrollTop;
+			}
+		} else {
+			currentSettings.marginScrollLeft = 0;
+			currentSettings.marginScrollTop = 0;
+		}
+	}
+
+	// Set the margin for the content
+	function setMargin() {
+		setMarginScroll();
+		currentSettings.marginLeft = -(currentSettings.width+currentSettings.borderW)/2;
+		currentSettings.marginTop = -(currentSettings.height+currentSettings.borderH)/2;
+		if (!modal.blocker) {
+			currentSettings.marginLeft+= currentSettings.marginScrollLeft;
+			currentSettings.marginTop+= currentSettings.marginScrollTop;
+		}
+	}
+
+	// Set the margin for the current loading
+	function setMarginLoading() {
+		setMarginScroll();
+		var outer = getOuter(modal.loading);
+		currentSettings.marginTopLoading = -(modal.loading.height() + outer.h.border + outer.h.padding)/2;
+		currentSettings.marginLeftLoading = -(modal.loading.width() + outer.w.border + outer.w.padding)/2;
+		if (!modal.blocker) {
+			currentSettings.marginLeftLoading+= currentSettings.marginScrollLeft;
+			currentSettings.marginTopLoading+= currentSettings.marginScrollTop;
+		}
+	}
+
+	// Set the modal Title
+	function setTitle() {
+		var title = $('h1#nyroModalTitle', modal.contentWrapper);
+		if (title.length)
+			title.text(currentSettings.title);
+		else
+			modal.contentWrapper.prepend('<h1 id="nyroModalTitle">'+currentSettings.title+'</h1>');
+	}
+
+	// Init the nyroModal div by settings the CSS elements and hide needed elements
+	function initModal() {
+		debug('initModal');
+		if (!modal.full) {
+			if (currentSettings.debug)
+				setCurrentSettings({color: 'white'}, 'cssOpt', 'bg');
+
+			var full = {
+				zIndex: currentSettings.zIndexStart,
+				position: 'fixed',
+				top: 0,
+				left: 0,
+				width: '100%',
+				height: '100%'
+			};
+
+			var contain = body;
+			var iframeHideIE = '';
+			if (currentSettings.blocker) {
+				modal.blocker = contain = $(currentSettings.blocker);
+				var pos = modal.blocker.offset();
+				var w = modal.blocker.outerWidth();
+				var h = modal.blocker.outerHeight();
+				if (isIE6) {
+					setCurrentSettings({
+						height: '100%',
+						width: '100%',
+						top: 0,
+						left: 0
+					}, 'cssOpt', 'bg');
+				}
+				modal.blockerVars = {
+					top: pos.top,
+					left: pos.left,
+					width: w,
+					height: h
+				};
+				var plusTop = (/msie/.test(userAgent) ?0:getCurCSS(body.get(0), 'borderTopWidth'));
+				var plusLeft = (/msie/.test(userAgent) ?0:getCurCSS(body.get(0), 'borderLeftWidth'));
+				full = {
+					position: 'absolute',
+					top: pos.top + plusTop,
+					left: pos.left + plusLeft,
+					width: w,
+					height: h
+				};
+			} else if (isIE6) {
+				body.css({
+					marginLeft: 0,
+					marginRight: 0
+				});
+				var w = body.width();
+				var h = $(window).height()+'px';
+				if ($(window).height() >= body.outerHeight()) {
+					h = body.outerHeight()+'px';
+				} else
+					w+= 20;
+				w += 'px';
+				body.css({
+					width: w,
+					height: h,
+					position: 'static',
+					overflow: 'hidden'
+				});
+				$('html').css({overflow: 'hidden'});
+				setCurrentSettings({
+					cssOpt: {
+						bg: {
+							position: 'absolute',
+							zIndex: currentSettings.zIndexStart+1,
+							height: '110%',
+							width: '110%',
+							top: currentSettings.marginScrollTop+'px',
+							left: currentSettings.marginScrollLeft+'px'
+						},
+						wrapper: { zIndex: currentSettings.zIndexStart+2 },
+						loading: { zIndex: currentSettings.zIndexStart+3 }
+					}
+				});
+
+				iframeHideIE = $('<iframe id="nyroModalIframeHideIe" src="javascript:\'\';"></iframe>')
+								.css($.extend({},
+									currentSettings.cssOpt.bg, {
+										opacity: 0,
+										zIndex: 50,
+										border: 'none'
+									}));
+			}
+
+			contain.append($('<div id="nyroModalFull"><div id="nyroModalBg"></div><div id="nyroModalWrapper"><div id="nyroModalContent"></div></div><div id="nyrModalTmp"></div><div id="nyroModalLoading"></div></div>').hide());
+
+			modal.full = $('#nyroModalFull')
+				.css(full)
+				.show();
+			modal.bg = $('#nyroModalBg')
+				.css($.extend({
+						backgroundColor: currentSettings.bgColor
+					}, currentSettings.cssOpt.bg))
+				.before(iframeHideIE);
+			modal.bg.bind('click.nyroModal', clickBg);
+			modal.loading = $('#nyroModalLoading')
+				.css(currentSettings.cssOpt.loading)
+				.hide();
+			modal.contentWrapper = $('#nyroModalWrapper')
+				.css(currentSettings.cssOpt.wrapper)
+				.hide();
+			modal.content = $('#nyroModalContent');
+			modal.tmp = $('#nyrModalTmp').hide();
+
+			// To stop the mousewheel if the the plugin is available
+			if ($.isFunction($.fn.mousewheel)) {
+				modal.content.mousewheel(function(e, d) {
+					var elt = modal.content.get(0);
+					if ((d > 0 && elt.scrollTop == 0) ||
+							(d < 0 && elt.scrollHeight - elt.scrollTop == elt.clientHeight)) {
+						e.preventDefault();
+						e.stopPropagation();
+					}
+				});
+			}
+
+			$(document).bind('keydown.nyroModal', keyHandler);
+			modal.content.css({width: 'auto', height: 'auto'});
+			modal.contentWrapper.css({width: 'auto', height: 'auto'});
+
+			if (!currentSettings.blocker && currentSettings.windowResize) {
+				$(window).bind('resize.nyroModal', function() {
+					window.clearTimeout(windowResizeTimeout);
+					windowResizeTimeout = window.setTimeout(windowResizeHandler, 200);
+				});
+			}
+		}
+	}
+
+	function windowResizeHandler() {
+		$.nyroModalSettings(initSettingsSize);
+	}
+
+	// Show the modal (ie: the background and then the loading if needed or the content directly)
+	function showModal() {
+		debug('showModal');
+		if (!modal.ready) {
+			initModal();
+			modal.anim = true;
+			currentSettings.showBackground(modal, currentSettings, endBackground);
+		} else {
+			modal.anim = true;
+			modal.transition = true;
+			currentSettings.showTransition(modal, currentSettings, function(){endHideContent();modal.anim=false;showContentOrLoading();});
+		}
+	}
+
+	// Called when user click on background
+	function clickBg(e) {
+		if (!currentSettings.modal)
+			removeModal();
+	}
+	
+	// Used for the escape key or the arrow in the gallery type
+	function keyHandler(e) {
+		if (e.keyCode == 27) {
+			if (!currentSettings.modal)
+				removeModal();
+		} else if (currentSettings.gallery && modal.ready && modal.dataReady && !modal.anim && !modal.transition) {
+			if (e.keyCode == 39 || e.keyCode == 40) {
+				e.preventDefault();
+				$.nyroModalNext();
+				return false;
+			} else if (e.keyCode == 37 || e.keyCode == 38) {
+				e.preventDefault();
+				$.nyroModalPrev();
+				return false;
+			}
+		}
+	}
+
+	// Determine the filetype regarding the link DOM element
+	function fileType() {
+		var from = currentSettings.from;
+
+		var url;
+
+		if (from && from.nodeName) {
+			var jFrom = $(from);
+
+			url = jFrom.attr(from.nodeName.toLowerCase() == 'form' ? 'action' : 'href');
+			if (!url)
+				url = location.href.substring(window.location.host.length+7);
+			currentSettings.url = url;
+
+			if (jFrom.attr('rev') == 'modal')
+				currentSettings.modal = true;
+
+			currentSettings.title = jFrom.attr('title');
+
+			if (from && from.rel && from.rel.toLowerCase() != 'nofollow') {
+				var indexSpace = from.rel.indexOf(' ');
+				currentSettings.gallery = indexSpace > 0 ? from.rel.substr(0, indexSpace) : from.rel;
+			}
+
+			var imgType = imageType(url, from);
+			if (imgType)
+				return imgType;
+
+			if (isSwf(url))
+				return 'swf';
+
+			var iframe = false;
+			if (from.target && from.target.toLowerCase() == '_blank' || (from.hostname && from.hostname.replace(/:\d*$/,'') != window.location.hostname.replace(/:\d*$/,''))) {
+				iframe = true;
+			}
+			if (from.nodeName.toLowerCase() == 'form') {
+				if (iframe)
+					return 'iframeForm';
+				setCurrentSettings(extractUrlSel(url));
+				if (jFrom.attr('enctype') == 'multipart/form-data')
+					return 'formData';
+				return 'form';
+			}
+			if (iframe)
+				return 'iframe';
+		} else {
+			url = currentSettings.url;
+			if (!currentSettings.content)
+				currentSettings.from = true;
+
+			if (!url)
+				return null;
+
+			if (isSwf(url))
+				return 'swf';
+
+			var reg1 = new RegExp("^http://|https://", "g");
+			if (url.match(reg1))
+				return 'iframe';
+		}
+
+		var imgType = imageType(url, from);
+		if (imgType)
+			return imgType;
+
+		var tmp = extractUrlSel(url);
+		setCurrentSettings(tmp);
+
+		if (!tmp.url)
+			return tmp.selector;
+	}
+
+	function imageType(url, from) {
+		var image = new RegExp(currentSettings.regexImg, 'i');
+		if (image.test(url)) {
+			return 'image';
+		}
+	}
+
+	function isSwf(url) {
+		var swf = new RegExp('[^\.]\.(swf)\s*$', 'i');
+		return swf.test(url);
+	}
+
+	function extractUrlSel(url) {
+		var ret = {
+			url: null,
+			selector: null
+		};
+
+		if (url) {
+			var hash = getHash(url);
+			var hashLoc = getHash(window.location.href);
+			var curLoc = window.location.href.substring(0, window.location.href.length - hashLoc.length);
+			var req = url.substring(0, url.length - hash.length);
+
+			if (req == curLoc || req == $('base').attr('href')) {
+				ret.selector = hash;
+			} else {
+				ret.url = req;
+				ret.selector = hash;
+			}
+		}
+		return ret;
+	}
+
+	// Called when the content cannot be loaded or tiemout reached
+	function loadingError() {
+		debug('loadingError');
+
+		modal.error = true;
+
+		if (!modal.ready)
+			return;
+
+		if ($.isFunction(currentSettings.handleError))
+			currentSettings.handleError(modal, currentSettings);
+
+		modal.loading
+			.addClass(currentSettings.errorClass)
+			.html(currentSettings.contentError);
+		$(currentSettings.closeSelector, modal.loading)
+			.unbind('click.nyroModal')
+			.bind('click.nyroModal', removeModal);
+		setMarginLoading();
+		modal.loading
+			.css({
+				marginTop: currentSettings.marginTopLoading+'px',
+				marginLeft: currentSettings.marginLeftLoading+'px'
+			});
+	}
+
+	// Put the content from modal.tmp to modal.content
+	function fillContent() {
+		debug('fillContent');
+		if (!modal.tmp.html())
+			return;
+
+		modal.content.html(modal.tmp.contents());
+		modal.tmp.empty();
+		wrapContent();
+
+		if (currentSettings.type == 'iframeForm') {
+			$(currentSettings.from)
+				.attr('target', 'nyroModalIframe')
+				.data('nyroModalprocessing', 1)
+				.submit()
+				.attr('target', '_blank')
+				.removeData('nyroModalprocessing');
+		}
+
+		if (!currentSettings.modal)
+			modal.wrapper.prepend(currentSettings.closeButton);
+
+		if ($.isFunction(currentSettings.endFillContent))
+			currentSettings.endFillContent(modal, currentSettings);
+
+		modal.content.append(modal.scripts);
+
+		$(currentSettings.closeSelector, modal.contentWrapper)
+			.unbind('click.nyroModal')
+			.bind('click.nyroModal', removeModal);
+		$(currentSettings.openSelector, modal.contentWrapper).nyroModal(getCurrentSettingsNew());
+	}
+
+	// Get the current settings to be used in new links
+	function getCurrentSettingsNew() {
+		return callingSettings;
+		var currentSettingsNew = $.extend(true, {}, currentSettings);
+		if (resized.width)
+			currentSettingsNew.width = null;
+		else
+			currentSettingsNew.width = initSettingsSize.width;
+		if (resized.height)
+			currentSettingsNew.height = null;
+		else
+			currentSettingsNew.height = initSettingsSize.height;
+		currentSettingsNew.cssOpt.content.overflow = 'auto';
+		return currentSettingsNew;
+	}
+
+	// Wrap the content and update the modal size if needed
+	function wrapContent() {
+		debug('wrapContent');
+
+		var wrap = $(currentSettings.wrap[currentSettings.type]);
+		modal.content.append(wrap.children().remove());
+		modal.contentWrapper.wrapInner(wrap);
+
+		if (currentSettings.gallery) {
+			// Set the action for the next and prev button (or remove them)
+			modal.content.append(currentSettings.galleryLinks);
+
+			gallery.links = $('[rel="'+currentSettings.gallery+'"], [rel^="'+currentSettings.gallery+' "]');
+			gallery.index = gallery.links.index(currentSettings.from);
+
+			if (currentSettings.galleryCounts && $.isFunction(currentSettings.galleryCounts))
+				currentSettings.galleryCounts(gallery.index + 1, gallery.links.length, modal, currentSettings);
+
+			var currentSettingsNew = getCurrentSettingsNew();
+
+			var linkPrev = getGalleryLink(-1);
+			if (linkPrev) {
+				var prev = $('.nyroModalPrev', modal.contentWrapper)
+					.attr('href', linkPrev.attr('href'))
+					.click(function(e) {
+						e.preventDefault();
+						$.nyroModalPrev();
+						return false;
+					});
+				if (isIE6 && currentSettings.type == 'swf') {
+					prev.before($('<iframe id="nyroModalIframeHideIeGalleryPrev" src="javascript:\'\';"></iframe>').css({
+											position: prev.css('position'),
+											top: prev.css('top'),
+											left: prev.css('left'),
+											width: prev.width(),
+											height: prev.height(),
+											opacity: 0,
+											border: 'none'
+										}));
+				}
+			} else {
+				$('.nyroModalPrev', modal.contentWrapper).remove();
+			}
+			var linkNext = getGalleryLink(1);
+			if (linkNext) {
+				var next = $('.nyroModalNext', modal.contentWrapper)
+					.attr('href', linkNext.attr('href'))
+					.click(function(e) {
+						e.preventDefault();
+						$.nyroModalNext();
+						return false;
+					});
+				if (isIE6 && currentSettings.type == 'swf') {
+					next.before($('<iframe id="nyroModalIframeHideIeGalleryNext" src="javascript:\'\';"></iframe>')
+									.css($.extend({}, {
+											position: next.css('position'),
+											top: next.css('top'),
+											left: next.css('left'),
+											width: next.width(),
+											height: next.height(),
+											opacity: 0,
+											border: 'none'
+										})));
+				}
+			} else {
+				$('.nyroModalNext', modal.contentWrapper).remove();
+			}
+		}
+
+		calculateSize();
+	}
+
+	function getGalleryLink(dir) {
+		if (currentSettings.gallery) {
+			if (!currentSettings.ltr)
+				dir *= -1;
+			var index = gallery.index + dir;
+			if (index >= 0 && index < gallery.links.length)
+				return gallery.links.eq(index);
+			else if (currentSettings.galleryLoop) {
+				if (index < 0)
+					return gallery.links.eq(gallery.links.length-1);
+				else
+					return gallery.links.eq(0);
+			}
+		}
+		return false;
+	}
+
+	// Calculate the size for the contentWrapper
+	function calculateSize(resizing) {
+		debug('calculateSize');
+
+		modal.wrapper = modal.contentWrapper.children('div:first');
+
+		resized.width = false;
+		resized.height = false;
+		if (false && !currentSettings.windowResizing) {
+			initSettingsSize.width = currentSettings.width;
+			initSettingsSize.height = currentSettings.height;
+		}
+
+		if (currentSettings.autoSizable && (!currentSettings.width || !currentSettings.height)) {
+			modal.contentWrapper
+				.css({
+					opacity: 0,
+					width: 'auto',
+					height: 'auto'
+				})
+				.show();
+			var tmp = {
+				width: 'auto',
+				height: 'auto'
+			};
+			if (currentSettings.width) {
+				tmp.width = currentSettings.width;
+			} else if (currentSettings.type == 'iframe') {
+				tmp.width = currentSettings.minWidth;
+			}
+
+			if (currentSettings.height) {
+				tmp.height = currentSettings.height;
+			} else if (currentSettings.type == 'iframe') {
+				tmp.height = currentSettings.minHeight;
+			}
+
+			modal.content.css(tmp);
+			if (!currentSettings.width) {
+				currentSettings.width = modal.content.outerWidth(true);
+				resized.width = true;
+			}
+			if (!currentSettings.height) {
+				currentSettings.height = modal.content.outerHeight(true);
+				resized.height = true;
+			}
+			modal.contentWrapper.css({opacity: 1});
+			if (!resizing)
+				modal.contentWrapper.hide();
+		}
+
+		if (currentSettings.type != 'image' && currentSettings.type != 'swf') {
+			currentSettings.width = Math.max(currentSettings.width, currentSettings.minWidth);
+			currentSettings.height = Math.max(currentSettings.height, currentSettings.minHeight);
+		}
+
+		var outerWrapper = getOuter(modal.contentWrapper);
+		var outerWrapper2 = getOuter(modal.wrapper);
+		var outerContent = getOuter(modal.content);
+
+		var tmp = {
+			content: {
+				width: currentSettings.width,
+				height: currentSettings.height
+			},
+			wrapper2: {
+				width: currentSettings.width + outerContent.w.total,
+				height: currentSettings.height + outerContent.h.total
+			},
+			wrapper: {
+				width: currentSettings.width + outerContent.w.total + outerWrapper2.w.total,
+				height: currentSettings.height + outerContent.h.total + outerWrapper2.h.total
+			}
+		};
+
+		if (currentSettings.resizable) {
+			var maxHeight = modal.blockerVars? modal.blockerVars.height : $(window).height()
+								- outerWrapper.h.border
+								- (tmp.wrapper.height - currentSettings.height);
+			var maxWidth = modal.blockerVars? modal.blockerVars.width : $(window).width()
+								- outerWrapper.w.border
+								- (tmp.wrapper.width - currentSettings.width);
+			maxHeight-= currentSettings.padding*2;
+			maxWidth-= currentSettings.padding*2;
+
+			if (tmp.content.height > maxHeight || tmp.content.width > maxWidth) {
+				// We're gonna resize the modal as it will goes outside the view port
+				if (currentSettings.type == 'image' || currentSettings.type == 'swf') {
+					// An image is resized proportionnaly
+					var useW = currentSettings.imgWidth?currentSettings.imgWidth : currentSettings.width;
+					var useH = currentSettings.imgHeight?currentSettings.imgHeight : currentSettings.height;
+					var diffW = tmp.content.width - useW;
+					var diffH = tmp.content.height - useH;
+						if (diffH < 0) diffH = 0;
+						if (diffW < 0) diffW = 0;
+					var calcH = maxHeight - diffH;
+					var calcW = maxWidth - diffW;
+					var ratio = Math.min(calcH/useH, calcW/useW);
+					calcW = Math.floor(useW*ratio);
+					calcH = Math.floor(useH*ratio);
+					tmp.content.height = calcH + diffH;
+					tmp.content.width = calcW + diffW;
+				} else {
+					// For an HTML content, we simply decrease the size
+					tmp.content.height = Math.min(tmp.content.height, maxHeight);
+					tmp.content.width = Math.min(tmp.content.width, maxWidth);
+				}
+				tmp.wrapper2 = {
+						width: tmp.content.width + outerContent.w.total,
+						height: tmp.content.height + outerContent.h.total
+					};
+				tmp.wrapper = {
+						width: tmp.content.width + outerContent.w.total + outerWrapper2.w.total,
+						height: tmp.content.height + outerContent.h.total + outerWrapper2.h.total
+					};
+			}
+		}
+
+		if (currentSettings.type == 'swf') {
+			$('object, embed', modal.content)
+				.attr('width', tmp.content.width)
+				.attr('height', tmp.content.height);
+		} else if (currentSettings.type == 'image') {
+			$('img', modal.content).css({
+				width: tmp.content.width,
+				height: tmp.content.height
+			});
+		}
+
+		modal.content.css($.extend({}, tmp.content, currentSettings.cssOpt.content));
+		modal.wrapper.css($.extend({}, tmp.wrapper2, currentSettings.cssOpt.wrapper2));
+
+		if (!resizing)
+			modal.contentWrapper.css($.extend({}, tmp.wrapper, currentSettings.cssOpt.wrapper));
+
+		if (currentSettings.type == 'image' && currentSettings.addImageDivTitle) {
+			// Adding the title for the image
+			$('img', modal.content).removeAttr('alt');
+			var divTitle = $('div', modal.content);
+			if (currentSettings.title != currentSettings.defaultImgAlt && currentSettings.title) {
+				if (divTitle.length == 0) {
+					divTitle = $('<div>'+currentSettings.title+'</div>');
+					modal.content.append(divTitle);
+				}
+				if (currentSettings.setWidthImgTitle) {
+					var outerDivTitle = getOuter(divTitle);
+					divTitle.css({width: (tmp.content.width + outerContent.w.padding - outerDivTitle.w.total)+'px'});
+				}
+			} else if (divTitle.length = 0) {
+				divTitle.remove();
+			}
+		}
+
+		if (currentSettings.title)
+			setTitle();
+
+		tmp.wrapper.borderW = outerWrapper.w.border;
+		tmp.wrapper.borderH = outerWrapper.h.border;
+
+		setCurrentSettings(tmp.wrapper);
+		setMargin();
+	}
+
+	function removeModal(e) {
+		debug('removeModal');
+		if (e)
+			e.preventDefault();
+		if (modal.full && modal.ready) {
+			$(document).unbind('keydown.nyroModal');
+			if (!currentSettings.blocker)
+				$(window).unbind('resize.nyroModal');
+			modal.ready = false;
+			modal.anim = true;
+			modal.closing = true;
+			if (modal.loadingShown || modal.transition) {
+				currentSettings.hideLoading(modal, currentSettings, function() {
+						modal.loading.hide();
+						modal.loadingShown = false;
+						modal.transition = false;
+						currentSettings.hideBackground(modal, currentSettings, endRemove);
+					});
+			} else {
+				if (fixFF)
+					modal.content.css({position: ''}); // Fix Issue #10, remove the attribute
+				modal.wrapper.css({overflow: 'hidden'}); // Used to fix a visual issue when hiding
+				modal.content.css({overflow: 'hidden'}); // Used to fix a visual issue when hiding
+				$('iframe', modal.content).hide(); // Fix issue 359
+				if ($.isFunction(currentSettings.beforeHideContent)) {
+					currentSettings.beforeHideContent(modal, currentSettings, function() {
+						currentSettings.hideContent(modal, currentSettings, function() {
+							endHideContent();
+							currentSettings.hideBackground(modal, currentSettings, endRemove);
+						});
+					});
+				} else {
+					currentSettings.hideContent(modal, currentSettings, function() {
+							endHideContent();
+							currentSettings.hideBackground(modal, currentSettings, endRemove);
+						});
+				}
+			}
+		}
+		if (e)
+			return false;
+	}
+
+	function showContentOrLoading() {
+		debug('showContentOrLoading');
+		if (modal.ready && !modal.anim) {
+			if (modal.dataReady) {
+				if (modal.tmp.html()) {
+					modal.anim = true;
+					if (modal.transition) {
+						fillContent();
+						modal.animContent = true;
+						currentSettings.hideTransition(modal, currentSettings, function() {
+							modal.loading.hide();
+							modal.transition = false;
+							modal.loadingShown = false;
+							endShowContent();
+						});
+					} else {
+						currentSettings.hideLoading(modal, currentSettings, function() {
+								modal.loading.hide();
+								modal.loadingShown = false;
+								fillContent();
+								setMarginLoading();
+								setMargin();
+								modal.animContent = true;
+								currentSettings.showContent(modal, currentSettings, endShowContent);
+							});
+					}
+				}
+			} else if (!modal.loadingShown && !modal.transition) {
+				modal.anim = true;
+				modal.loadingShown = true;
+				if (modal.error)
+					loadingError();
+				else
+					modal.loading.html(currentSettings.contentLoading);
+				$(currentSettings.closeSelector, modal.loading)
+					.unbind('click.nyroModal')
+					.bind('click.nyroModal', removeModal);
+				setMarginLoading();
+				currentSettings.showLoading(modal, currentSettings, function(){modal.anim=false;showContentOrLoading();});
+			}
+		}
+	}
+	
+	// -------------------------------------------------------
+	// Private Data Loaded callback
+	// -------------------------------------------------------
+
+	function ajaxLoaded(data) {
+		debug('AjaxLoaded: '+this.url);
+		
+		if (currentSettings.selector) {
+			var tmp = {};
+			var i = 0;
+			// Looking for script to store them
+			data = data
+				.replace(/\r\n/gi,'nyroModalLN')
+				.replace(/<script(.|\s)*?\/script>/gi, function(x) {
+						tmp[i] = x;
+						return '<pre style="display: none" class=nyroModalScript rel="'+(i++)+'"></pre>';
+					});
+			data = $('<div>'+data+'</div>').find(currentSettings.selector).html()
+				.replace(/<pre style="display: none;?" class="?nyroModalScript"? rel="(.?)"><\/pre>/gi, function(x, y, z) {
+					return tmp[y];
+				})
+				.replace(/nyroModalLN/gi,"\r\n");
+		}
+		modal.tmp.html(filterScripts(data));
+		if (modal.tmp.html()) {
+			modal.dataReady = true;
+			showContentOrLoading();
+		} else
+			loadingError();
+	}
+
+	function formDataLoaded() {
+		debug('formDataLoaded');
+		var jFrom = $(currentSettings.from);
+		jFrom.attr('action', jFrom.attr('action')+currentSettings.selector);
+		jFrom.attr('target', '');
+		$('input[name='+currentSettings.formIndicator+']', currentSettings.from).remove();
+		var iframe = modal.tmp.children('iframe');
+		var iframeContent = iframe.unbind('load').contents().find(currentSettings.selector || 'body').not('script[src]');
+		iframe.attr('src', 'about:blank'); // Used to stop the loading in FF
+		modal.tmp.html(iframeContent.html());
+		if (modal.tmp.html()) {
+			modal.dataReady = true;
+			showContentOrLoading();
+		} else
+			loadingError();
+	}
+	
+	function iframeLoaded() {
+		if ((window.location.hostname && currentSettings.url.indexOf(window.location.hostname) > -1)
+				||	currentSettings.url.indexOf('http://')) {
+			var iframe = $('iframe', modal.full).contents();
+			var tmp = {};
+			if (currentSettings.titleFromIframe) {
+				tmp.title = iframe.find('title').text();
+				if (!tmp.title) {
+					// for IE
+					try {
+						tmp.title = iframe.find('title').html();
+					} catch(err) {}
+				}
+			}
+			var body = iframe.find('body');
+			if (!currentSettings.height && body.height())
+				tmp.height = body.height();
+			if (!currentSettings.width && body.width())
+				tmp.width = body.width();
+			$.extend(initSettingsSize, tmp);
+			$.nyroModalSettings(tmp);
+		}
+	}
+
+	function galleryCounts(nb, total, elts, settings) {
+		if (total > 1)
+			settings.title+= (settings.title?' - ':'') +nb+'/'+total;
+	}
+
+
+	// -------------------------------------------------------
+	// Private Animation callback
+	// -------------------------------------------------------
+
+	function endHideContent() {
+		debug('endHideContent');
+		modal.anim = false;
+		if (contentEltLast) {
+			contentEltLast.append(modal.content.contents());
+			contentEltLast = null;
+		} else if (contentElt) {
+			contentElt.append(modal.content.contents());
+			contentElt= null;
+		}
+		modal.content.empty();
+
+		gallery = {};
+
+		modal.contentWrapper.hide().children().remove().empty().attr('style', '').hide();
+
+		if (modal.closing || modal.transition)
+			modal.contentWrapper.hide();
+
+		modal.contentWrapper
+			.css(currentSettings.cssOpt.wrapper)
+			.append(modal.content);
+		showContentOrLoading();
+	}
+
+	function endRemove() {
+		debug('endRemove');
+		$(document).unbind('keydown', keyHandler);
+		modal.anim = false;
+		modal.full.remove();
+		modal.full = null;
+		if (isIE6) {
+			body.css({height: '', width: '', position: '', overflow: '', marginLeft: '', marginRight: ''});
+			$('html').css({overflow: ''});
+		}
+		if ($.isFunction(currentSettings.endRemove))
+			currentSettings.endRemove(modal, currentSettings);
+	}
+
+	function endBackground() {
+		debug('endBackground');
+		modal.ready = true;
+		modal.anim = false;
+		showContentOrLoading();
+	}
+
+	function endShowContent() {
+		debug('endShowContent');
+		modal.anim = false;
+		modal.animContent = false;
+		modal.contentWrapper.css({opacity: ''}); // for the close button in IE
+		fixFF = /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) && parseFloat(browserVersion) < 1.9 && currentSettings.type != 'image';
+
+		if (fixFF)
+			modal.content.css({position: 'fixed'}); // Fix Issue #10
+		modal.content.append(modal.scriptsShown);
+
+		if(currentSettings.type == 'iframe')
+			modal.content.find('iframe').attr('src', currentSettings.url);
+
+		if ($.isFunction(currentSettings.endShowContent))
+			currentSettings.endShowContent(modal, currentSettings);
+
+		if (shouldResize) {
+			shouldResize = false;
+			$.nyroModalSettings({width: currentSettings.setWidth, height: currentSettings.setHeight});
+			delete currentSettings['setWidth'];
+			delete currentSettings['setHeight'];
+		}
+		if (resized.width)
+			setCurrentSettings({width: null});
+		if (resized.height)
+			setCurrentSettings({height: null});
+	}
+
+
+	// -------------------------------------------------------
+	// Utilities
+	// -------------------------------------------------------
+
+	// Get the selector from an url (as string)
+	function getHash(url) {
+		if (typeof url == 'string') {
+			var hashPos = url.indexOf('#');
+			if (hashPos > -1)
+				return url.substring(hashPos);
+		}
+		return '';
+	}
+
+	// Filter an html content to remove the script[src]
+	function filterScripts(data) {
+		// Removing the body, head and html tag
+		if (typeof data == 'string')
+			data = data.replace(/<\/?(html|head|body)([^>]*)>/gi, '');
+		var tmp = new Array();
+		$.each($.clean({0:data}, this.ownerDocument), function() {
+			if ($.nodeName(this, "script")) {
+				if (!this.src || $(this).attr('rel') == 'forceLoad') {
+					if ($(this).attr('rev') == 'shown')
+						modal.scriptsShown.push(this);
+					else
+						modal.scripts.push(this);
+				}
+			} else
+				tmp.push(this);
+		});
+		return tmp;
+	}
+
+	// Get the vertical and horizontal margin, padding and border dimension
+	function getOuter(elm) {
+		elm = elm.get(0);
+		var ret = {
+			h: {
+				margin: getCurCSS(elm, 'marginTop') + getCurCSS(elm, 'marginBottom'),
+				border: getCurCSS(elm, 'borderTopWidth') + getCurCSS(elm, 'borderBottomWidth'),
+				padding: getCurCSS(elm, 'paddingTop') + getCurCSS(elm, 'paddingBottom')
+			},
+			w: {
+				margin: getCurCSS(elm, 'marginLeft') + getCurCSS(elm, 'marginRight'),
+				border: getCurCSS(elm, 'borderLeftWidth') + getCurCSS(elm, 'borderRightWidth'),
+				padding: getCurCSS(elm, 'paddingLeft') + getCurCSS(elm, 'paddingRight')
+			}
+		};
+
+		ret.h.outer = ret.h.margin + ret.h.border;
+		ret.w.outer = ret.w.margin + ret.w.border;
+
+		ret.h.inner = ret.h.padding + ret.h.border;
+		ret.w.inner = ret.w.padding + ret.w.border;
+
+		ret.h.total = ret.h.outer + ret.h.padding;
+		ret.w.total = ret.w.outer + ret.w.padding;
+
+		return ret;
+	}
+
+	function getCurCSS(elm, name) {
+		var ret = parseInt($.curCSS(elm, name, true));
+		if (isNaN(ret))
+			ret = 0;
+		return ret;
+	}
+
+	// Proxy Debug function
+	function debug(msg) {
+		if ($.fn.nyroModal.settings.debug || currentSettings && currentSettings.debug)
+			nyroModalDebug(msg, modal, currentSettings || {});
+	}
+
+	// -------------------------------------------------------
+	// Default animation function
+	// -------------------------------------------------------
+
+	function showBackground(elts, settings, callback) {
+		elts.bg.css({opacity:0}).fadeTo(500, 0.75, callback);
+	}
+
+	function hideBackground(elts, settings, callback) {
+		elts.bg.fadeOut(300, callback);
+	}
+
+	function showLoading(elts, settings, callback) {
+		elts.loading
+			.css({
+				marginTop: settings.marginTopLoading+'px',
+				marginLeft: settings.marginLeftLoading+'px',
+				opacity: 0
+			})
+			.show()
+			.animate({
+				opacity: 1
+			}, {complete: callback, duration: 400});
+	}
+
+	function hideLoading(elts, settings, callback) {
+		callback();
+	}
+
+	function showContent(elts, settings, callback) {
+		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);
+				}
+			});
+	}
+
+	function hideContent(elts, settings, callback) {
+		elts.contentWrapper
+			.animate({
+				height: '50px',
+				width: '50px',
+				marginTop: (-(25+settings.borderH)/2 + settings.marginScrollTop)+'px',
+				marginLeft: (-(25+settings.borderW)/2 + settings.marginScrollLeft)+'px'
+			}, {duration: 350, complete: function() {
+				elts.contentWrapper.hide();
+				callback();
+			}});
+	}
+
+	function showTransition(elts, settings, callback) {
+		// Put the loading with the same dimensions of the current content
+		elts.loading
+			.css({
+				marginTop: elts.contentWrapper.css('marginTop'),
+				marginLeft: elts.contentWrapper.css('marginLeft'),
+				height: elts.contentWrapper.css('height'),
+				width: elts.contentWrapper.css('width'),
+				opacity: 0
+			})
+			.show()
+			.fadeTo(400, 1, function() {
+					elts.contentWrapper.hide();
+					callback();
+				});
+	}
+
+	function hideTransition(elts, settings, callback) {
+		// Place the content wrapper underneath the the loading with the right dimensions
+		elts.contentWrapper
+			.hide()
+			.css({
+				width: settings.width+'px',
+				height: settings.height+'px',
+				marginLeft: settings.marginLeft+'px',
+				marginTop: settings.marginTop+'px',
+				opacity: 1
+			});
+		elts.loading
+			.animate({
+				width: settings.width+'px',
+				height: settings.height+'px',
+				marginLeft: settings.marginLeft+'px',
+				marginTop: settings.marginTop+'px'
+			}, {complete: function() {
+					elts.contentWrapper.show();
+					elts.loading.fadeOut(400, function() {
+						elts.loading.hide();
+						callback();
+					});
+				}, duration: 350});
+	}
+
+	function resize(elts, settings, callback) {
+		elts.contentWrapper
+			.animate({
+				width: settings.width+'px',
+				height: settings.height+'px',
+				marginLeft: settings.marginLeft+'px',
+				marginTop: settings.marginTop+'px'
+			}, {complete: callback, duration: 400});
+	}
+
+	function updateBgColor(elts, settings, callback) {
+		if (!$.fx.step.backgroundColor) {
+			elts.bg.css({backgroundColor: settings.bgColor});
+			callback();
+		} else
+			elts.bg
+				.animate({
+					backgroundColor: settings.bgColor
+				}, {complete: callback, duration: 400});
+	}
+
+	// -------------------------------------------------------
+	// Default initialization
+	// -------------------------------------------------------
+
+	$($.fn.nyroModal.settings.openSelector).nyroModal();
+
+});
+
+// Default debug function, to be overwritten if needed
+//      Be aware that the settings parameter could be empty
+var tmpDebug = '';
+function nyroModalDebug(msg, elts, settings) {
+	if (elts.full && elts.bg) {
+		elts.bg.prepend(msg+'<br />'+tmpDebug);
+		tmpDebug = '';
+	} else
+		tmpDebug+= msg+'<br />';
+}
Index: /extensions/rv_gmaps/trunk/template/nyroModal/jquery.nyroModal-1.6.2.min.js
===================================================================
--- /extensions/rv_gmaps/trunk/template/nyroModal/jquery.nyroModal-1.6.2.min.js	(revision 8029)
+++ /extensions/rv_gmaps/trunk/template/nyroModal/jquery.nyroModal-1.6.2.min.js	(revision 8029)
@@ -0,0 +1,11 @@
+/*
+ * nyroModal - jQuery Plugin
+ * http://nyromodal.nyrodev.com
+ *
+ * Copyright (c) 2010 Cedric Nirousset (nyrodev.com)
+ * Licensed under the MIT license
+ *
+ * $Date: 2010-02-23 (Tue, 23 Feb 2010) $
+ * $version: 1.6.2
+ */
+jQuery(function($){var userAgent=navigator.userAgent.toLowerCase();var browserVersion=(userAgent.match(/.+(?:rv|webkit|khtml|opera|msie)[\/: ]([\d.]+)/)||[0,'0'])[1];var isIE6=(/msie/.test(userAgent)&&!/opera/.test(userAgent)&&parseInt(browserVersion)<7&&(!window.XMLHttpRequest||typeof(XMLHttpRequest)==='function'));var body=$('body');var currentSettings;var callingSettings;var shouldResize=false;var gallery={};var fixFF=false;var contentElt;var contentEltLast;var modal={started:false,ready:false,dataReady:false,anim:false,animContent:false,loadingShown:false,transition:false,resizing:false,closing:false,error:false,blocker:null,blockerVars:null,full:null,bg:null,loading:null,tmp:null,content:null,wrapper:null,contentWrapper:null,scripts:new Array(),scriptsShown:new Array()};var resized={width:false,height:false,windowResizing:false};var initSettingsSize={width:null,height:null,windowResizing:true};var windowResizeTimeout;$.fn.nyroModal=function(settings){if(!this)return false;return this.each(function(){var me=$(this);if(this.nodeName.toLowerCase()=='form'){me.unbind('submit.nyroModal').bind('submit.nyroModal',function(e){if(e.isDefaultPrevented())return false;if(me.data('nyroModalprocessing'))return true;if(this.enctype=='multipart/form-data'){processModal($.extend(settings,{from:this}));return true}e.preventDefault();processModal($.extend(settings,{from:this}));return false})}else{me.unbind('click.nyroModal').bind('click.nyroModal',function(e){if(e.isDefaultPrevented())return false;e.preventDefault();processModal($.extend(settings,{from:this}));return false})}})};$.fn.nyroModalManual=function(settings){if(!this.length)processModal(settings);return this.each(function(){processModal($.extend(settings,{from:this}))})};$.nyroModalManual=function(settings){processModal(settings)};$.nyroModalSettings=function(settings,deep1,deep2){setCurrentSettings(settings,deep1,deep2);if(!deep1&&modal.started){if(modal.bg&&settings.bgColor)currentSettings.updateBgColor(modal,currentSettings,function(){});if(modal.contentWrapper&&settings.title)setTitle();if(!modal.error&&(settings.windowResizing||(!modal.resizing&&(('width'in settings&&settings.width==currentSettings.width)||('height'in settings&&settings.height==currentSettings.height))))){modal.resizing=true;if(modal.contentWrapper)calculateSize(true);if(modal.contentWrapper&&modal.contentWrapper.is(':visible')&&!modal.animContent){if(fixFF)modal.content.css({position:''});currentSettings.resize(modal,currentSettings,function(){currentSettings.windowResizing=false;modal.resizing=false;if(fixFF)modal.content.css({position:'fixed'});if($.isFunction(currentSettings.endResize))currentSettings.endResize(modal,currentSettings)})}}}};$.nyroModalRemove=function(){removeModal()};$.nyroModalNext=function(){var link=getGalleryLink(1);if(link)return link.nyroModalManual(getCurrentSettingsNew());return false};$.nyroModalPrev=function(){var link=getGalleryLink(-1);if(link)return link.nyroModalManual(getCurrentSettingsNew());return false};$.fn.nyroModal.settings={debug:false,blocker:false,windowResize:true,modal:false,type:'',forceType:null,from:'',hash:'',processHandler:null,selIndicator:'nyroModalSel',formIndicator:'nyroModal',content:null,bgColor:'#000000',ajax:{},swf:{wmode:'transparent'},width:null,height:null,minWidth:400,minHeight:300,resizable:true,autoSizable:true,padding:25,regexImg:'[^\.]\.(jpg|jpeg|png|tiff|gif|bmp)\s*$',addImageDivTitle:false,defaultImgAlt:'Image',setWidthImgTitle:true,ltr:true,gallery:null,galleryLinks:'<a href="#" class="nyroModalPrev">Prev</a><a href="#"  class="nyroModalNext">Next</a>',galleryCounts:galleryCounts,galleryLoop:false,zIndexStart:100,cssOpt:{bg:{position:'absolute',overflow:'hidden',top:0,left:0,height:'100%',width:'100%'},wrapper:{position:'absolute',top:'50%',left:'50%'},wrapper2:{},content:{},loading:{position:'absolute',top:'50%',left:'50%',marginTop:'-50px',marginLeft:'-50px'}},wrap:{div:'<div class="wrapper"></div>',ajax:'<div class="wrapper"></div>',form:'<div class="wrapper"></div>',formData:'<div class="wrapper"></div>',image:'<div class="wrapperImg"></div>',swf:'<div class="wrapperSwf"></div>',iframe:'<div class="wrapperIframe"></div>',iframeForm:'<div class="wrapperIframe"></div>',manual:'<div class="wrapper"></div>'},closeButton:'<a href="#" class="nyroModalClose" id="closeBut" title="close">Close</a>',title:null,titleFromIframe:true,openSelector:'.nyroModal',closeSelector:'.nyroModalClose',contentLoading:'<a href="#" class="nyroModalClose">Cancel</a>',errorClass:'error',contentError:'The requested content cannot be loaded.<br />Please try again later.<br /><a href="#" class="nyroModalClose">Close</a>',handleError:null,showBackground:showBackground,hideBackground:hideBackground,endFillContent:null,showContent:showContent,endShowContent:null,beforeHideContent:null,hideContent:hideContent,showTransition:showTransition,hideTransition:hideTransition,showLoading:showLoading,hideLoading:hideLoading,resize:resize,endResize:null,updateBgColor:updateBgColor,endRemove:null};function processModal(settings){if(modal.loadingShown||modal.transition||modal.anim)return;debug('processModal');modal.started=true;callingSettings=$.extend(true,settings);setDefaultCurrentSettings(settings);if(!modal.full)modal.blockerVars=modal.blocker=null;modal.error=false;modal.closing=false;modal.dataReady=false;modal.scripts=new Array();modal.scriptsShown=new Array();currentSettings.type=fileType();if(currentSettings.forceType){if(!currentSettings.content)currentSettings.from=true;currentSettings.type=currentSettings.forceType;currentSettings.forceType=null}if($.isFunction(currentSettings.processHandler))currentSettings.processHandler(currentSettings);var from=currentSettings.from;var url=currentSettings.url;initSettingsSize.width=currentSettings.width;initSettingsSize.height=currentSettings.height;if(currentSettings.type=='swf'){setCurrentSettings({overflow:'visible'},'cssOpt','content');currentSettings.content='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+currentSettings.width+'" height="'+currentSettings.height+'"><param name="movie" value="'+url+'"></param>';var tmp='';$.each(currentSettings.swf,function(name,val){currentSettings.content+='<param name="'+name+'" value="'+val+'"></param>';tmp+=' '+name+'="'+val+'"'});currentSettings.content+='<embed src="'+url+'" type="application/x-shockwave-flash" width="'+currentSettings.width+'" height="'+currentSettings.height+'"'+tmp+'></embed></object>'}if(from){var jFrom=$(from).blur();if(currentSettings.type=='form'){var data=$(from).serializeArray();data.push({name:currentSettings.formIndicator,value:1});if(currentSettings.selector)data.push({name:currentSettings.selIndicator,value:currentSettings.selector.substring(1)});showModal();$.ajax($.extend({},currentSettings.ajax,{url:url,data:data,type:jFrom.attr('method')?jFrom.attr('method'):'get',success:ajaxLoaded,error:loadingError}));debug('Form Ajax Load: '+jFrom.attr('action'))}else if(currentSettings.type=='formData'){initModal();jFrom.attr('target','nyroModalIframe');jFrom.attr('action',url);jFrom.prepend('<input type="hidden" name="'+currentSettings.formIndicator+'" value="1" />');if(currentSettings.selector)jFrom.prepend('<input type="hidden" name="'+currentSettings.selIndicator+'" value="'+currentSettings.selector.substring(1)+'" />');modal.tmp.html('<iframe frameborder="0" hspace="0" name="nyroModalIframe" src="javascript:\'\';"></iframe>');$('iframe',modal.tmp).css({width:currentSettings.width,height:currentSettings.height}).error(loadingError).load(formDataLoaded);debug('Form Data Load: '+jFrom.attr('action'));showModal();showContentOrLoading()}else if(currentSettings.type=='image'){debug('Image Load: '+url);var title=jFrom.attr('title')||currentSettings.defaultImgAlt;initModal();modal.tmp.html('<img id="nyroModalImg" />').find('img').attr('alt',title);modal.tmp.css({lineHeight:0});$('img',modal.tmp).error(loadingError).load(function(){debug('Image Loaded: '+this.src);$(this).unbind('load');var w=modal.tmp.width();var h=modal.tmp.height();modal.tmp.css({lineHeight:''});resized.width=w;resized.height=h;setCurrentSettings({width:w,height:h,imgWidth:w,imgHeight:h});initSettingsSize.width=w;initSettingsSize.height=h;setCurrentSettings({overflow:'visible'},'cssOpt','content');modal.dataReady=true;if(modal.loadingShown||modal.transition)showContentOrLoading()}).attr('src',url);showModal()}else if(currentSettings.type=='iframeForm'){initModal();modal.tmp.html('<iframe frameborder="0" hspace="0" src="javascript:\'\';" name="nyroModalIframe" id="nyroModalIframe"></iframe>');debug('Iframe Form Load: '+url);$('iframe',modal.tmp).eq(0).css({width:'100%',height:$.support.boxModel?'99%':'100%'}).load(iframeLoaded);modal.dataReady=true;showModal()}else if(currentSettings.type=='iframe'){initModal();modal.tmp.html('<iframe frameborder="0" hspace="0" src="javascript:\'\';" name="nyroModalIframe" id="nyroModalIframe"></iframe>');debug('Iframe Load: '+url);$('iframe',modal.tmp).eq(0).css({width:'100%',height:$.support.boxModel?'99%':'100%'}).load(iframeLoaded);modal.dataReady=true;showModal()}else if(currentSettings.type){debug('Content: '+currentSettings.type);initModal();modal.tmp.html(currentSettings.content);var w=modal.tmp.width();var h=modal.tmp.height();var div=$(currentSettings.type);if(div.length){setCurrentSettings({type:'div'});w=div.width();h=div.height();if(contentElt)contentEltLast=contentElt;contentElt=div;modal.tmp.append(div.contents())}initSettingsSize.width=w;initSettingsSize.height=h;setCurrentSettings({width:w,height:h});if(modal.tmp.html())modal.dataReady=true;else loadingError();if(!modal.ready)showModal();else endHideContent()}else{debug('Ajax Load: '+url);setCurrentSettings({type:'ajax'});var data=currentSettings.ajax.data||{};if(currentSettings.selector){if(typeof data=="string"){data+='&'+currentSettings.selIndicator+'='+currentSettings.selector.substring(1)}else{data[currentSettings.selIndicator]=currentSettings.selector.substring(1)}}showModal();$.ajax($.extend(true,currentSettings.ajax,{url:url,success:ajaxLoaded,error:loadingError,data:data}))}}else if(currentSettings.content){debug('Content: '+currentSettings.type);setCurrentSettings({type:'manual'});initModal();modal.tmp.html($('<div/>').html(currentSettings.content).contents());if(modal.tmp.html())modal.dataReady=true;else loadingError();showModal()}else{}}function setDefaultCurrentSettings(settings){debug('setDefaultCurrentSettings');currentSettings=$.extend(true,{},$.fn.nyroModal.settings,settings);setMargin()}function setCurrentSettings(settings,deep1,deep2){if(modal.started){if(deep1&&deep2){$.extend(true,currentSettings[deep1][deep2],settings)}else if(deep1){$.extend(true,currentSettings[deep1],settings)}else{if(modal.animContent){if('width'in settings){if(!modal.resizing){settings.setWidth=settings.width;shouldResize=true}delete settings['width']}if('height'in settings){if(!modal.resizing){settings.setHeight=settings.height;shouldResize=true}delete settings['height']}}$.extend(true,currentSettings,settings)}}else{if(deep1&&deep2){$.extend(true,$.fn.nyroModal.settings[deep1][deep2],settings)}else if(deep1){$.extend(true,$.fn.nyroModal.settings[deep1],settings)}else{$.extend(true,$.fn.nyroModal.settings,settings)}}}function setMarginScroll(){if(isIE6&&!modal.blocker){if(document.documentElement){currentSettings.marginScrollLeft=document.documentElement.scrollLeft;currentSettings.marginScrollTop=document.documentElement.scrollTop}else{currentSettings.marginScrollLeft=document.body.scrollLeft;currentSettings.marginScrollTop=document.body.scrollTop}}else{currentSettings.marginScrollLeft=0;currentSettings.marginScrollTop=0}}function setMargin(){setMarginScroll();currentSettings.marginLeft=-(currentSettings.width+currentSettings.borderW)/2;currentSettings.marginTop=-(currentSettings.height+currentSettings.borderH)/2;if(!modal.blocker){currentSettings.marginLeft+=currentSettings.marginScrollLeft;currentSettings.marginTop+=currentSettings.marginScrollTop}}function setMarginLoading(){setMarginScroll();var outer=getOuter(modal.loading);currentSettings.marginTopLoading=-(modal.loading.height()+outer.h.border+outer.h.padding)/2;currentSettings.marginLeftLoading=-(modal.loading.width()+outer.w.border+outer.w.padding)/2;if(!modal.blocker){currentSettings.marginLeftLoading+=currentSettings.marginScrollLeft;currentSettings.marginTopLoading+=currentSettings.marginScrollTop}}function setTitle(){var title=$('h1#nyroModalTitle',modal.contentWrapper);if(title.length)title.text(currentSettings.title);else modal.contentWrapper.prepend('<h1 id="nyroModalTitle">'+currentSettings.title+'</h1>')}function initModal(){debug('initModal');if(!modal.full){if(currentSettings.debug)setCurrentSettings({color:'white'},'cssOpt','bg');var full={zIndex:currentSettings.zIndexStart,position:'fixed',top:0,left:0,width:'100%',height:'100%'};var contain=body;var iframeHideIE='';if(currentSettings.blocker){modal.blocker=contain=$(currentSettings.blocker);var pos=modal.blocker.offset();var w=modal.blocker.outerWidth();var h=modal.blocker.outerHeight();if(isIE6){setCurrentSettings({height:'100%',width:'100%',top:0,left:0},'cssOpt','bg')}modal.blockerVars={top:pos.top,left:pos.left,width:w,height:h};var plusTop=(/msie/.test(userAgent)?0:getCurCSS(body.get(0),'borderTopWidth'));var plusLeft=(/msie/.test(userAgent)?0:getCurCSS(body.get(0),'borderLeftWidth'));full={position:'absolute',top:pos.top+plusTop,left:pos.left+plusLeft,width:w,height:h}}else if(isIE6){body.css({marginLeft:0,marginRight:0});var w=body.width();var h=$(window).height()+'px';if($(window).height()>=body.outerHeight()){h=body.outerHeight()+'px'}else w+=20;w+='px';body.css({width:w,height:h,position:'static',overflow:'hidden'});$('html').css({overflow:'hidden'});setCurrentSettings({cssOpt:{bg:{position:'absolute',zIndex:currentSettings.zIndexStart+1,height:'110%',width:'110%',top:currentSettings.marginScrollTop+'px',left:currentSettings.marginScrollLeft+'px'},wrapper:{zIndex:currentSettings.zIndexStart+2},loading:{zIndex:currentSettings.zIndexStart+3}}});iframeHideIE=$('<iframe id="nyroModalIframeHideIe" src="javascript:\'\';"></iframe>').css($.extend({},currentSettings.cssOpt.bg,{opacity:0,zIndex:50,border:'none'}))}contain.append($('<div id="nyroModalFull"><div id="nyroModalBg"></div><div id="nyroModalWrapper"><div id="nyroModalContent"></div></div><div id="nyrModalTmp"></div><div id="nyroModalLoading"></div></div>').hide());modal.full=$('#nyroModalFull').css(full).show();modal.bg=$('#nyroModalBg').css($.extend({backgroundColor:currentSettings.bgColor},currentSettings.cssOpt.bg)).before(iframeHideIE);modal.bg.bind('click.nyroModal',clickBg);modal.loading=$('#nyroModalLoading').css(currentSettings.cssOpt.loading).hide();modal.contentWrapper=$('#nyroModalWrapper').css(currentSettings.cssOpt.wrapper).hide();modal.content=$('#nyroModalContent');modal.tmp=$('#nyrModalTmp').hide();if($.isFunction($.fn.mousewheel)){modal.content.mousewheel(function(e,d){var elt=modal.content.get(0);if((d>0&&elt.scrollTop==0)||(d<0&&elt.scrollHeight-elt.scrollTop==elt.clientHeight)){e.preventDefault();e.stopPropagation()}})}$(document).bind('keydown.nyroModal',keyHandler);modal.content.css({width:'auto',height:'auto'});modal.contentWrapper.css({width:'auto',height:'auto'});if(!currentSettings.blocker&&currentSettings.windowResize){$(window).bind('resize.nyroModal',function(){window.clearTimeout(windowResizeTimeout);windowResizeTimeout=window.setTimeout(windowResizeHandler,200)})}}}function windowResizeHandler(){$.nyroModalSettings(initSettingsSize)}function showModal(){debug('showModal');if(!modal.ready){initModal();modal.anim=true;currentSettings.showBackground(modal,currentSettings,endBackground)}else{modal.anim=true;modal.transition=true;currentSettings.showTransition(modal,currentSettings,function(){endHideContent();modal.anim=false;showContentOrLoading()})}}function clickBg(e){if(!currentSettings.modal)removeModal()}function keyHandler(e){if(e.keyCode==27){if(!currentSettings.modal)removeModal()}else if(currentSettings.gallery&&modal.ready&&modal.dataReady&&!modal.anim&&!modal.transition){if(e.keyCode==39||e.keyCode==40){e.preventDefault();$.nyroModalNext();return false}else if(e.keyCode==37||e.keyCode==38){e.preventDefault();$.nyroModalPrev();return false}}}function fileType(){var from=currentSettings.from;var url;if(from&&from.nodeName){var jFrom=$(from);url=jFrom.attr(from.nodeName.toLowerCase()=='form'?'action':'href');if(!url)url=location.href.substring(window.location.host.length+7);currentSettings.url=url;if(jFrom.attr('rev')=='modal')currentSettings.modal=true;currentSettings.title=jFrom.attr('title');if(from&&from.rel&&from.rel.toLowerCase()!='nofollow'){var indexSpace=from.rel.indexOf(' ');currentSettings.gallery=indexSpace>0?from.rel.substr(0,indexSpace):from.rel}var imgType=imageType(url,from);if(imgType)return imgType;if(isSwf(url))return'swf';var iframe=false;if(from.target&&from.target.toLowerCase()=='_blank'||(from.hostname&&from.hostname.replace(/:\d*$/,'')!=window.location.hostname.replace(/:\d*$/,''))){iframe=true}if(from.nodeName.toLowerCase()=='form'){if(iframe)return'iframeForm';setCurrentSettings(extractUrlSel(url));if(jFrom.attr('enctype')=='multipart/form-data')return'formData';return'form'}if(iframe)return'iframe'}else{url=currentSettings.url;if(!currentSettings.content)currentSettings.from=true;if(!url)return null;if(isSwf(url))return'swf';var reg1=new RegExp("^http://|https://","g");if(url.match(reg1))return'iframe'}var imgType=imageType(url,from);if(imgType)return imgType;var tmp=extractUrlSel(url);setCurrentSettings(tmp);if(!tmp.url)return tmp.selector}function imageType(url,from){var image=new RegExp(currentSettings.regexImg,'i');if(image.test(url)){return'image'}}function isSwf(url){var swf=new RegExp('[^\.]\.(swf)\s*$','i');return swf.test(url)}function extractUrlSel(url){var ret={url:null,selector:null};if(url){var hash=getHash(url);var hashLoc=getHash(window.location.href);var curLoc=window.location.href.substring(0,window.location.href.length-hashLoc.length);var req=url.substring(0,url.length-hash.length);if(req==curLoc||req==$('base').attr('href')){ret.selector=hash}else{ret.url=req;ret.selector=hash}}return ret}function loadingError(){debug('loadingError');modal.error=true;if(!modal.ready)return;if($.isFunction(currentSettings.handleError))currentSettings.handleError(modal,currentSettings);modal.loading.addClass(currentSettings.errorClass).html(currentSettings.contentError);$(currentSettings.closeSelector,modal.loading).unbind('click.nyroModal').bind('click.nyroModal',removeModal);setMarginLoading();modal.loading.css({marginTop:currentSettings.marginTopLoading+'px',marginLeft:currentSettings.marginLeftLoading+'px'})}function fillContent(){debug('fillContent');if(!modal.tmp.html())return;modal.content.html(modal.tmp.contents());modal.tmp.empty();wrapContent();if(currentSettings.type=='iframeForm'){$(currentSettings.from).attr('target','nyroModalIframe').data('nyroModalprocessing',1).submit().attr('target','_blank').removeData('nyroModalprocessing')}if(!currentSettings.modal)modal.wrapper.prepend(currentSettings.closeButton);if($.isFunction(currentSettings.endFillContent))currentSettings.endFillContent(modal,currentSettings);modal.content.append(modal.scripts);$(currentSettings.closeSelector,modal.contentWrapper).unbind('click.nyroModal').bind('click.nyroModal',removeModal);$(currentSettings.openSelector,modal.contentWrapper).nyroModal(getCurrentSettingsNew())}function getCurrentSettingsNew(){return callingSettings;var currentSettingsNew=$.extend(true,{},currentSettings);if(resized.width)currentSettingsNew.width=null;else currentSettingsNew.width=initSettingsSize.width;if(resized.height)currentSettingsNew.height=null;else currentSettingsNew.height=initSettingsSize.height;currentSettingsNew.cssOpt.content.overflow='auto';return currentSettingsNew}function wrapContent(){debug('wrapContent');var wrap=$(currentSettings.wrap[currentSettings.type]);modal.content.append(wrap.children().remove());modal.contentWrapper.wrapInner(wrap);if(currentSettings.gallery){modal.content.append(currentSettings.galleryLinks);gallery.links=$('[rel="'+currentSettings.gallery+'"], [rel^="'+currentSettings.gallery+' "]');gallery.index=gallery.links.index(currentSettings.from);if(currentSettings.galleryCounts&&$.isFunction(currentSettings.galleryCounts))currentSettings.galleryCounts(gallery.index+1,gallery.links.length,modal,currentSettings);var currentSettingsNew=getCurrentSettingsNew();var linkPrev=getGalleryLink(-1);if(linkPrev){var prev=$('.nyroModalPrev',modal.contentWrapper).attr('href',linkPrev.attr('href')).click(function(e){e.preventDefault();$.nyroModalPrev();return false});if(isIE6&&currentSettings.type=='swf'){prev.before($('<iframe id="nyroModalIframeHideIeGalleryPrev" src="javascript:\'\';"></iframe>').css({position:prev.css('position'),top:prev.css('top'),left:prev.css('left'),width:prev.width(),height:prev.height(),opacity:0,border:'none'}))}}else{$('.nyroModalPrev',modal.contentWrapper).remove()}var linkNext=getGalleryLink(1);if(linkNext){var next=$('.nyroModalNext',modal.contentWrapper).attr('href',linkNext.attr('href')).click(function(e){e.preventDefault();$.nyroModalNext();return false});if(isIE6&&currentSettings.type=='swf'){next.before($('<iframe id="nyroModalIframeHideIeGalleryNext" src="javascript:\'\';"></iframe>').css($.extend({},{position:next.css('position'),top:next.css('top'),left:next.css('left'),width:next.width(),height:next.height(),opacity:0,border:'none'})))}}else{$('.nyroModalNext',modal.contentWrapper).remove()}}calculateSize()}function getGalleryLink(dir){if(currentSettings.gallery){if(!currentSettings.ltr)dir*=-1;var index=gallery.index+dir;if(index>=0&&index<gallery.links.length)return gallery.links.eq(index);else if(currentSettings.galleryLoop){if(index<0)return gallery.links.eq(gallery.links.length-1);else return gallery.links.eq(0)}}return false}function calculateSize(resizing){debug('calculateSize');modal.wrapper=modal.contentWrapper.children('div:first');resized.width=false;resized.height=false;if(false&&!currentSettings.windowResizing){initSettingsSize.width=currentSettings.width;initSettingsSize.height=currentSettings.height}if(currentSettings.autoSizable&&(!currentSettings.width||!currentSettings.height)){modal.contentWrapper.css({opacity:0,width:'auto',height:'auto'}).show();var tmp={width:'auto',height:'auto'};if(currentSettings.width){tmp.width=currentSettings.width}else if(currentSettings.type=='iframe'){tmp.width=currentSettings.minWidth}if(currentSettings.height){tmp.height=currentSettings.height}else if(currentSettings.type=='iframe'){tmp.height=currentSettings.minHeight}modal.content.css(tmp);if(!currentSettings.width){currentSettings.width=modal.content.outerWidth(true);resized.width=true}if(!currentSettings.height){currentSettings.height=modal.content.outerHeight(true);resized.height=true}modal.contentWrapper.css({opacity:1});if(!resizing)modal.contentWrapper.hide()}if(currentSettings.type!='image'&&currentSettings.type!='swf'){currentSettings.width=Math.max(currentSettings.width,currentSettings.minWidth);currentSettings.height=Math.max(currentSettings.height,currentSettings.minHeight)}var outerWrapper=getOuter(modal.contentWrapper);var outerWrapper2=getOuter(modal.wrapper);var outerContent=getOuter(modal.content);var tmp={content:{width:currentSettings.width,height:currentSettings.height},wrapper2:{width:currentSettings.width+outerContent.w.total,height:currentSettings.height+outerContent.h.total},wrapper:{width:currentSettings.width+outerContent.w.total+outerWrapper2.w.total,height:currentSettings.height+outerContent.h.total+outerWrapper2.h.total}};if(currentSettings.resizable){var maxHeight=modal.blockerVars?modal.blockerVars.height:$(window).height()-outerWrapper.h.border-(tmp.wrapper.height-currentSettings.height);var maxWidth=modal.blockerVars?modal.blockerVars.width:$(window).width()-outerWrapper.w.border-(tmp.wrapper.width-currentSettings.width);maxHeight-=currentSettings.padding*2;maxWidth-=currentSettings.padding*2;if(tmp.content.height>maxHeight||tmp.content.width>maxWidth){if(currentSettings.type=='image'||currentSettings.type=='swf'){var useW=currentSettings.imgWidth?currentSettings.imgWidth:currentSettings.width;var useH=currentSettings.imgHeight?currentSettings.imgHeight:currentSettings.height;var diffW=tmp.content.width-useW;var diffH=tmp.content.height-useH;if(diffH<0)diffH=0;if(diffW<0)diffW=0;var calcH=maxHeight-diffH;var calcW=maxWidth-diffW;var ratio=Math.min(calcH/useH,calcW/useW);calcW=Math.floor(useW*ratio);calcH=Math.floor(useH*ratio);tmp.content.height=calcH+diffH;tmp.content.width=calcW+diffW}else{tmp.content.height=Math.min(tmp.content.height,maxHeight);tmp.content.width=Math.min(tmp.content.width,maxWidth)}tmp.wrapper2={width:tmp.content.width+outerContent.w.total,height:tmp.content.height+outerContent.h.total};tmp.wrapper={width:tmp.content.width+outerContent.w.total+outerWrapper2.w.total,height:tmp.content.height+outerContent.h.total+outerWrapper2.h.total}}}if(currentSettings.type=='swf'){$('object, embed',modal.content).attr('width',tmp.content.width).attr('height',tmp.content.height)}else if(currentSettings.type=='image'){$('img',modal.content).css({width:tmp.content.width,height:tmp.content.height})}modal.content.css($.extend({},tmp.content,currentSettings.cssOpt.content));modal.wrapper.css($.extend({},tmp.wrapper2,currentSettings.cssOpt.wrapper2));if(!resizing)modal.contentWrapper.css($.extend({},tmp.wrapper,currentSettings.cssOpt.wrapper));if(currentSettings.type=='image'&&currentSettings.addImageDivTitle){$('img',modal.content).removeAttr('alt');var divTitle=$('div',modal.content);if(currentSettings.title!=currentSettings.defaultImgAlt&&currentSettings.title){if(divTitle.length==0){divTitle=$('<div>'+currentSettings.title+'</div>');modal.content.append(divTitle)}if(currentSettings.setWidthImgTitle){var outerDivTitle=getOuter(divTitle);divTitle.css({width:(tmp.content.width+outerContent.w.padding-outerDivTitle.w.total)+'px'})}}else if(divTitle.length=0){divTitle.remove()}}if(currentSettings.title)setTitle();tmp.wrapper.borderW=outerWrapper.w.border;tmp.wrapper.borderH=outerWrapper.h.border;setCurrentSettings(tmp.wrapper);setMargin()}function removeModal(e){debug('removeModal');if(e)e.preventDefault();if(modal.full&&modal.ready){$(document).unbind('keydown.nyroModal');if(!currentSettings.blocker)$(window).unbind('resize.nyroModal');modal.ready=false;modal.anim=true;modal.closing=true;if(modal.loadingShown||modal.transition){currentSettings.hideLoading(modal,currentSettings,function(){modal.loading.hide();modal.loadingShown=false;modal.transition=false;currentSettings.hideBackground(modal,currentSettings,endRemove)})}else{if(fixFF)modal.content.css({position:''});modal.wrapper.css({overflow:'hidden'});modal.content.css({overflow:'hidden'});$('iframe',modal.content).hide();if($.isFunction(currentSettings.beforeHideContent)){currentSettings.beforeHideContent(modal,currentSettings,function(){currentSettings.hideContent(modal,currentSettings,function(){endHideContent();currentSettings.hideBackground(modal,currentSettings,endRemove)})})}else{currentSettings.hideContent(modal,currentSettings,function(){endHideContent();currentSettings.hideBackground(modal,currentSettings,endRemove)})}}}if(e)return false}function showContentOrLoading(){debug('showContentOrLoading');if(modal.ready&&!modal.anim){if(modal.dataReady){if(modal.tmp.html()){modal.anim=true;if(modal.transition){fillContent();modal.animContent=true;currentSettings.hideTransition(modal,currentSettings,function(){modal.loading.hide();modal.transition=false;modal.loadingShown=false;endShowContent()})}else{currentSettings.hideLoading(modal,currentSettings,function(){modal.loading.hide();modal.loadingShown=false;fillContent();setMarginLoading();setMargin();modal.animContent=true;currentSettings.showContent(modal,currentSettings,endShowContent)})}}}else if(!modal.loadingShown&&!modal.transition){modal.anim=true;modal.loadingShown=true;if(modal.error)loadingError();else modal.loading.html(currentSettings.contentLoading);$(currentSettings.closeSelector,modal.loading).unbind('click.nyroModal').bind('click.nyroModal',removeModal);setMarginLoading();currentSettings.showLoading(modal,currentSettings,function(){modal.anim=false;showContentOrLoading()})}}}function ajaxLoaded(data){debug('AjaxLoaded: '+this.url);if(currentSettings.selector){var tmp={};var i=0;data=data.replace(/\r\n/gi,'nyroModalLN').replace(/<script(.|\s)*?\/script>/gi,function(x){tmp[i]=x;return'<pre style="display: none" class=nyroModalScript rel="'+(i++)+'"></pre>'});data=$('<div>'+data+'</div>').find(currentSettings.selector).html().replace(/<pre style="display: none;?" class="?nyroModalScript"? rel="(.?)"><\/pre>/gi,function(x,y,z){return tmp[y]}).replace(/nyroModalLN/gi,"\r\n")}modal.tmp.html(filterScripts(data));if(modal.tmp.html()){modal.dataReady=true;showContentOrLoading()}else loadingError()}function formDataLoaded(){debug('formDataLoaded');var jFrom=$(currentSettings.from);jFrom.attr('action',jFrom.attr('action')+currentSettings.selector);jFrom.attr('target','');$('input[name='+currentSettings.formIndicator+']',currentSettings.from).remove();var iframe=modal.tmp.children('iframe');var iframeContent=iframe.unbind('load').contents().find(currentSettings.selector||'body').not('script[src]');iframe.attr('src','about:blank');modal.tmp.html(iframeContent.html());if(modal.tmp.html()){modal.dataReady=true;showContentOrLoading()}else loadingError()}function iframeLoaded(){if((window.location.hostname&&currentSettings.url.indexOf(window.location.hostname)>-1)||currentSettings.url.indexOf('http://')){var iframe=$('iframe',modal.full).contents();var tmp={};if(currentSettings.titleFromIframe){tmp.title=iframe.find('title').text();if(!tmp.title){try{tmp.title=iframe.find('title').html()}catch(err){}}}var body=iframe.find('body');if(!currentSettings.height&&body.height())tmp.height=body.height();if(!currentSettings.width&&body.width())tmp.width=body.width();$.extend(initSettingsSize,tmp);$.nyroModalSettings(tmp)}}function galleryCounts(nb,total,elts,settings){if(total>1)settings.title+=(settings.title?' - ':'')+nb+'/'+total}function endHideContent(){debug('endHideContent');modal.anim=false;if(contentEltLast){contentEltLast.append(modal.content.contents());contentEltLast=null}else if(contentElt){contentElt.append(modal.content.contents());contentElt=null}modal.content.empty();gallery={};modal.contentWrapper.hide().children().remove().empty().attr('style','').hide();if(modal.closing||modal.transition)modal.contentWrapper.hide();modal.contentWrapper.css(currentSettings.cssOpt.wrapper).append(modal.content);showContentOrLoading()}function endRemove(){debug('endRemove');$(document).unbind('keydown',keyHandler);modal.anim=false;modal.full.remove();modal.full=null;if(isIE6){body.css({height:'',width:'',position:'',overflow:'',marginLeft:'',marginRight:''});$('html').css({overflow:''})}if($.isFunction(currentSettings.endRemove))currentSettings.endRemove(modal,currentSettings)}function endBackground(){debug('endBackground');modal.ready=true;modal.anim=false;showContentOrLoading()}function endShowContent(){debug('endShowContent');modal.anim=false;modal.animContent=false;modal.contentWrapper.css({opacity:''});fixFF=/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)&&parseFloat(browserVersion)<1.9&&currentSettings.type!='image';if(fixFF)modal.content.css({position:'fixed'});modal.content.append(modal.scriptsShown);if(currentSettings.type=='iframe')modal.content.find('iframe').attr('src',currentSettings.url);if($.isFunction(currentSettings.endShowContent))currentSettings.endShowContent(modal,currentSettings);if(shouldResize){shouldResize=false;$.nyroModalSettings({width:currentSettings.setWidth,height:currentSettings.setHeight});delete currentSettings['setWidth'];delete currentSettings['setHeight']}if(resized.width)setCurrentSettings({width:null});if(resized.height)setCurrentSettings({height:null})}function getHash(url){if(typeof url=='string'){var hashPos=url.indexOf('#');if(hashPos>-1)return url.substring(hashPos)}return''}function filterScripts(data){if(typeof data=='string')data=data.replace(/<\/?(html|head|body)([^>]*)>/gi,'');var tmp=new Array();$.each($.clean({0:data},this.ownerDocument),function(){if($.nodeName(this,"script")){if(!this.src||$(this).attr('rel')=='forceLoad'){if($(this).attr('rev')=='shown')modal.scriptsShown.push(this);else modal.scripts.push(this)}}else tmp.push(this)});return tmp}function getOuter(elm){elm=elm.get(0);var ret={h:{margin:getCurCSS(elm,'marginTop')+getCurCSS(elm,'marginBottom'),border:getCurCSS(elm,'borderTopWidth')+getCurCSS(elm,'borderBottomWidth'),padding:getCurCSS(elm,'paddingTop')+getCurCSS(elm,'paddingBottom')},w:{margin:getCurCSS(elm,'marginLeft')+getCurCSS(elm,'marginRight'),border:getCurCSS(elm,'borderLeftWidth')+getCurCSS(elm,'borderRightWidth'),padding:getCurCSS(elm,'paddingLeft')+getCurCSS(elm,'paddingRight')}};ret.h.outer=ret.h.margin+ret.h.border;ret.w.outer=ret.w.margin+ret.w.border;ret.h.inner=ret.h.padding+ret.h.border;ret.w.inner=ret.w.padding+ret.w.border;ret.h.total=ret.h.outer+ret.h.padding;ret.w.total=ret.w.outer+ret.w.padding;return ret}function getCurCSS(elm,name){var ret=parseInt($.curCSS(elm,name,true));if(isNaN(ret))ret=0;return ret}function debug(msg){if($.fn.nyroModal.settings.debug||currentSettings&&currentSettings.debug)nyroModalDebug(msg,modal,currentSettings||{})}function showBackground(elts,settings,callback){elts.bg.css({opacity:0}).fadeTo(500,0.75,callback)}function hideBackground(elts,settings,callback){elts.bg.fadeOut(300,callback)}function showLoading(elts,settings,callback){elts.loading.css({marginTop:settings.marginTopLoading+'px',marginLeft:settings.marginLeftLoading+'px',opacity:0}).show().animate({opacity:1},{complete:callback,duration:400})}function hideLoading(elts,settings,callback){callback()}function showContent(elts,settings,callback){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)}})}function hideContent(elts,settings,callback){elts.contentWrapper.animate({height:'50px',width:'50px',marginTop:(-(25+settings.borderH)/2+settings.marginScrollTop)+'px',marginLeft:(-(25+settings.borderW)/2+settings.marginScrollLeft)+'px'},{duration:350,complete:function(){elts.contentWrapper.hide();callback()}})}function showTransition(elts,settings,callback){elts.loading.css({marginTop:elts.contentWrapper.css('marginTop'),marginLeft:elts.contentWrapper.css('marginLeft'),height:elts.contentWrapper.css('height'),width:elts.contentWrapper.css('width'),opacity:0}).show().fadeTo(400,1,function(){elts.contentWrapper.hide();callback()})}function hideTransition(elts,settings,callback){elts.contentWrapper.hide().css({width:settings.width+'px',height:settings.height+'px',marginLeft:settings.marginLeft+'px',marginTop:settings.marginTop+'px',opacity:1});elts.loading.animate({width:settings.width+'px',height:settings.height+'px',marginLeft:settings.marginLeft+'px',marginTop:settings.marginTop+'px'},{complete:function(){elts.contentWrapper.show();elts.loading.fadeOut(400,function(){elts.loading.hide();callback()})},duration:350})}function resize(elts,settings,callback){elts.contentWrapper.animate({width:settings.width+'px',height:settings.height+'px',marginLeft:settings.marginLeft+'px',marginTop:settings.marginTop+'px'},{complete:callback,duration:400})}function updateBgColor(elts,settings,callback){if(!$.fx.step.backgroundColor){elts.bg.css({backgroundColor:settings.bgColor});callback()}else elts.bg.animate({backgroundColor:settings.bgColor},{complete:callback,duration:400})}$($.fn.nyroModal.settings.openSelector).nyroModal()});var tmpDebug='';function nyroModalDebug(msg,elts,settings){if(elts.full&&elts.bg){elts.bg.prepend(msg+'<br />'+tmpDebug);tmpDebug=''}else tmpDebug+=msg+'<br />'}
Index: /extensions/rv_gmaps/trunk/template/nyroModal/nyroModal.css
===================================================================
--- /extensions/rv_gmaps/trunk/template/nyroModal/nyroModal.css	(revision 8029)
+++ /extensions/rv_gmaps/trunk/template/nyroModal/nyroModal.css	(revision 8029)
@@ -0,0 +1,105 @@
+div#nyroModalFull {
+	font-size: 12px;
+	color: #777;
+}
+div#nyroModalLoading {
+	border: 4px solid #777;
+	width: 150px;
+	height: 150px;
+	text-indent: -9999em;
+	background: #fff url(ajaxLoader.gif) no-repeat;
+	background-position: center;
+}
+div#nyroModalLoading.error {
+	border: 4px solid #f66;
+	line-height: 20px;
+	padding: 20px;
+	width: 300px;
+	height: 100px;
+	text-indent: 0;
+	background: #fff;
+}
+div#nyroModalWrapper {
+	background: #fff;
+	border: 4px solid #777;
+}
+a#closeBut {
+	position: absolute;
+	display: block;
+	top: -13px;
+	right: -13px;
+	width: 12px;
+	height: 12px;
+	text-indent: -9999em;
+	background: url(close.gif) no-repeat;
+	outline: 0;
+}
+h1#nyroModalTitle {
+	margin: 0;
+	padding: 0;
+	position: absolute;
+	top: -22px;
+	left: 5px;
+	font-size: 12px;
+	color: #ddd;
+}
+div#nyroModalContent {
+	overflow: auto;
+}
+div.wrapper div#nyroModalContent {
+	padding: 5px;
+}
+div.wrapperImg div#nyroModalContent {
+	position: relative;
+	overflow: hidden;
+	text-align: center;
+}
+div.wrapperImg img {
+	vertical-align: baseline;
+}
+div.wrapperImg div#nyroModalContent div {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	background: black;
+	padding: 10px;
+	margin: 10px;
+	border: 1px white dotted;
+	overflow: hidden;
+	opacity: 0.2;
+	filter: alpha(opacity=20);
+}
+div.wrapperImg div#nyroModalContent div:hover {
+	opacity: 0.5;
+	filter: alpha(opacity=50);
+	cursor: help;
+}
+a.nyroModalPrev, a.nyroModalNext {
+	z-index: 105;
+	outline: none;
+	position: absolute;
+	top: 0;
+	height: 100%;
+	width: 40%;
+	cursor: pointer;
+	text-indent: -9999em;
+	background: left 20% no-repeat;
+	background-image: url(data:image/gif;base64,AAAA); /* Trick IE6 */
+}
+div.wrapperSwf a.nyroModalPrev, div.wrapperSwf a.nyroModalNext, div.wrapper a.nyroModalPrev, div.wrapper a.nyroModalNext {
+	height: 60%;
+	width: 20%;
+}
+a.nyroModalPrev {
+	left: 0;
+}
+a.nyroModalPrev:hover {
+	background-image: url(prev.gif);
+}
+a.nyroModalNext {
+	right: 0;
+	background-position: right 20%;
+}
+a.nyroModalNext:hover {
+	background-image: url(next.gif);
+}
Index: /extensions/rv_gmaps/trunk/template/picture_map_content.tpl
===================================================================
--- /extensions/rv_gmaps/trunk/template/picture_map_content.tpl	(revision 8028)
+++ /extensions/rv_gmaps/trunk/template/picture_map_content.tpl	(revision 8029)
@@ -1,9 +1,7 @@
 {html_head}
 <script src="http://maps.google.com/maps/api/js?sensor=false&amp;hl={$lang_info.code}" type="text/javascript"></script>
-{* <script src="{$PLUGIN_ROOT_URL}/template/windows_13/javascripts/prototype.js" type="text/javascript"></script> *}
-<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js" type="text/javascript"></script>
-<script src="{$PLUGIN_ROOT_URL}/template/windows_13/javascripts/window.js" type="text/javascript" defer="defer"></script>
-<link href="{$PLUGIN_ROOT_URL}/template/windows_13/themes/default.css" rel="stylesheet" type="text/css">
-<link href="{$PLUGIN_ROOT_URL}/template/windows_13/themes/alphacube.css" rel="stylesheet" type="text/css">
+<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js" type="text/javascript"></script>
+<script src="{$PLUGIN_ROOT_URL}/template/nyroModal/jquery.nyroModal-1.6.2.js" type="text/javascript"></script>
+<link href="{$PLUGIN_ROOT_URL}/template/nyroModal/nyroModal.css" rel="stylesheet" type="text/css">
 
 <style type="text/css">{literal}
@@ -65,26 +63,14 @@
 function blowupUrl(theUrl)
 {
-	var win = new Window({
-		title: document.title,
+	jQuery.fx.off = true;
+	jQuery.nyroModalManual( {
 		url: theUrl,
-		classname: "alphacube",
-		left: 0, top: 0,
-		width:"640", height:"480",
-		minimizable: false,
-		maximizable: false,
-		draggable: false,
-		resizable: false,
-		destroyOnClose: true,
-		hideEffect: Element.hide,
-		showEffectOptions: {duration:1.5}
+		forceType: 'iframe',
+		width: 1920
 	});
-
-	win.setConstraint(true, {top:20, left:20, bottom:30, right:20} );
-	win.maximize();
-	win.showCenter(true, 20, 20);
 	return false;
 }
 
-Event.observe(window, 'load', onLoad );
+jQuery(document).ready( onLoad );
 //]]>
 {/literal}</script>
