;(function($) {	
	/*
	 * ======================================================= 
	 * ACHTUNG: Diese Datei ist Landesspezifisch! 
	 * -------------------------------------------------------
	 * Sollen neue Funktionen auch in AT unterstuetzt werden,
	 * dann muss die Aenderung doppelt gepflegt werden!
	 * =======================================================
	 */
	var baseUrl			= "ernstings-family.de";
	var baseUrl_staging 	= "ernstings.spot-media.de";

	if(window.location.host.match(/wcsefdev/)) {
		baseUrl = baseUrl_staging;
	}
	
	var spassBaseUrl		= "http://spass." + baseUrl;
	var serviceBaseUrl		= "http://service." + baseUrl;
	var newsletterBaseUrl	= "http://newsletter.ernstings-family.com";
	var staticBaseUrl		= "http://static." + baseUrl;
	var staticBaseUrlNoCache	= "http://static." + baseUrl + ":8080";

	//
	// some different close buttons for further usage in modal layer
	//

	var closeButtonWhite = '<a href="#" class="modalClose" id="modalClose" '
		+ 'style="color:#ffffff; background:transparent url(http://static.ernstings-family.de/layer/btn_close_white.gif) '
		+ 'no-repeat scroll right 2px" title="Fenster schließen">Fenster schließen</a>';

	var closeButtonBlack = '<a href="#" class="modalClose" id="modalClose" '
		+ 'style="color:#000000; background:transparent url(http://static.ernstings-family.de/layer/btn_close_black.gif) '
		+ 'no-repeat scroll right 2px" title="Fenster schließen">Fenster schließen</a>';

	var closeButtonGreen = '<a href="#" class="modalClose" id="modalClose" '
		+ 'style="color:#000000; background:transparent url(http://static.ernstings-family.de/layer/btn_close_green.gif) '
		+ 'no-repeat scroll right 2px" title="Fenster schließen">Fenster schließen</a>';	
		
	var closeButtonBlueXmas = '<a href="#" class="modalClose" id="modalClose" '
	+ 'style="color:#7797a9; background:transparent url(http://static.ernstings-family.de/layer/merryChristmas/images/btn_close_blue.gif) '
	+ 'no-repeat scroll right 2px; top: 5px; right: 12px;" title="Fenster schließen">Fenster schließen</a>';
	
	/**
	 * configurations for layers that might be shown on page-load.
	 * For each layer an URL-Pattern and a set of parameters is defined.
	 * The parameters are read from the GET-Variables and are placed
	 * into the corresponding placeholder of the URL-Pattern.
	 *
	 * Members:
	 * - urlPattern: the URL containing a placeholder ("{...}") for
	 *     each parameter it contains
	 * - params: a list of parameters being replaced in the urlPattern.
	 *     The actual value of the parameter is taken from the window's
	 *     location. 
	 * - isVolatileUrl: nyroModal moves the created iframe around in the
	 *     dom, which causes the firefox to reload the URL with every
	 *     modification. Most URLs won't be affected from being loaded
	 *     multiple times but some will. These URLs are called 'volatile'.
	 *     If set to true, countermeasures will be initiated to avoid
	 *     loading the volatile URL multiple times.
	 * - width, height: you may have a wild guess on these...
	 */ 
	var layerConfig = {
//		freeshippingcharge: {
//		    urlPattern: staticBaseUrl + "/layer/freeshippingcharge/layer.iframe.freeshippingcharge.html",   
//		    params: [],
//		    isVolatileUrl: true,
//		    closeButton: '<a href="#" class="modalClose" id="modalClose" '
//		    	+ 'style="color:#ffffff; background:transparent url(http://static.ernstings-family.de/layer/freeshippingcharge/images/btn_close_weiss.gif) no-repeat scroll right 2px" '
//        		+ 'title="Fenster schließen">Fenster schließen</a>',
//			width: 587, height: 552
//		},

		ecards: {
			urlPattern: spassBaseUrl + "/ecard/show/{ecardId}",
			params: ['ecardId'],
			isVolatileUrl: true,
			width: 585, height: 575
		},
		
		// NEU
		storesearch: {
			urlPattern: serviceBaseUrl + '/filialsuche', 
			params: [],
			isVolatileUrl: true,
			width: 687, height: 666
		},
		
		bannerLandingPage: {
			urlPattern: "/layer/lilalaune.layer.html",
			params: [],
			forceType: false,
			endShowContent : function() {
				cmCreatePageviewTag('Li-La-Laune Newsletter Layer', 'PAGELOAD_LAYER');
				
				$('#layer_lilalaune form').submit(function() {
					var submitUrl = newsletterBaseUrl + "/public/remotebox.jsp"
							+ "?uemail={uemail}";
					var uemailValue = $('#newsletter_uemail').val();
					$.nyroModalManual({
						url: submitUrl.replace('{uemail}', uemailValue),
						width: 685, height: 481
					});
					return false;
				});
			}
		},
		
		// NEU
		newsletterSubscribe: {
			urlPattern: newsletterBaseUrl + "/public/remotebox.jsp?uemail={uemail}&source={source}",
			params : ['uemail', 'source'],
			isVolatileUrl: true,
			width: 800, height: 530
		},
		
		newsletterConfirm: {
			urlPattern: newsletterBaseUrl + "/public/subscribe.jsp"
				+ "?tsp={tsp}&uid={uid}&tan={tan}&sig={sig}&action={action}&email={email}&errorPage=/public/subscribe_err.jsp",
			params : ['tsp', 'uid', 'tan', 'sig', 'action', 'email'],
			isVolatileUrl: true,
			width: 800, height: 530
		},
		newsletterConfirmFwF: {
			urlPattern: newsletterBaseUrl + "/public/subscribe.jsp"
				+ "?tsp={tsp}&uid={uid}&tan={tan}&sig={sig}&action={action}&email={email}&errorPage=/public/subscribe_err.jsp&user.CustomAttribute.fwf={user_CustomAttribute_fwf}&user.firstname={user_firstname}&user.lastname={user_lastname}&user.title={user_title}&user.CustomAttribute.fwf_taf_parameter={user_CustomAttribute_fwf_taf_parameter}",
			params : ['tsp', 'uid', 'tan', 'sig', 'action', 'email', 'user_CustomAttribute_fwf', 'user_firstname', 'user_lastname', 'user_title', 'user_CustomAttribute_fwf_taf_parameter' ],
			isVolatileUrl: true,
			width: 685, height: 370
		},
		newsletterUnsubscribe: {
			urlPattern: newsletterBaseUrl + "/public/unsubscribe_i.jsp"
				+ "?uid={uid}&mid={mid}&sig={sig}&jid={jid}&gid={gid}&email={email}",
			params: ['uid', 'mid', 'sig', 'jid', 'gid', 'email'],
			isVolatileUrl: true,
			width: 800, height: 532
		},
		newsletterUnsubscribeJK: {
			urlPattern: newsletterBaseUrl + "/public/unsubscribe_jk.jsp"
			  + "?uid={uid}&mid={mid}&sig={sig}&jid={jid}&gid={gid}&email={email}&cm_mmc={cm_mmc}",
			params: ['uid', 'mid', 'sig', 'jid', 'gid', 'email'],
			isVolatileUrl: true,
			width: 701, height: 360
    },
		newsletterRecommend: {
			urlPattern: newsletterBaseUrl + "/public/forward_message.jsp"
				+ "?uid={uid}&mid={mid}&gid={gid}&sig={sig}",
			params : ['uid', 'mid', 'sig', 'gid'],
			isVolatileUrl: true,
			//width: 688, height: 709
			width: 800, height: 530
		},
		newsletterProfileEdit: {
			urlPattern: newsletterBaseUrl + "/public/profile_edit.jsp"
				+ "?tsp={tsp}&custid={custid}&uid={uid}&sig={sig}&for_mid={for_mid}&mid={mid}&gid={gid}",
			params : ['tsp', 'custid', 'uid', 'sig', 'for_mid', 'mid', 'gid'],
			isVolatileUrl: true,
			width: 800, height: 530
		},
		newsletterChangeEmail: {
			urlPattern: newsletterBaseUrl + "/profile/change_email_confirm.jsp"
				+ "?tsp={tsp}&uid={uid}&tan={tan}&sig={sig}&action={action}&errorPage={errorPage}",				
			params : ['tsp', 'uid', 'tan', 'sig', 'action', 'errorPage'],
			isVolatileUrl: true,
			width: 800, height: 530
		},
		passSent: {
			urlPattern: staticBaseUrl + "/layer/ShopUserPassSent/layer.iframe.shopUserPassSent.html",
			params : [],
			isVolatileUrl: true,
			minHeight: 100,
			width: 536, height: 158
		},			
		voucherHilfe: {
			urlPattern: "/hilfe/faq_gutschein.layer.html",
			params : [],
			forceType: false
		},			
		fbNewsletterSubscribe: {			
			urlPattern: newsletterBaseUrl + "/public/remotebox.jsp?locale={locale}&uemail={uemail}&user_FirstName={user_FirstName}&user_LastName={user_LastName}&user_Title={user_Title}&source={source}",
			params : ['locale', 'uemail', 'user_FirstName', 'user_LastName', 'user_Title', 'source'],
			isVolatileUrl: true,
			width: 800, height: 530
		},
		

	///////////////////////////
	// Händler des Jahres 2011
	// Laufzeit:
	//   Start: 28.06.2011 ASAP
	//   Ende:   		

		hdj2011: {			
			urlPattern: staticBaseUrl+ "/layer/hdj2011/layer.iframe.hdj2011_de.html?cm_sp=shop-_-cookieLayer-_-hdj2011",
			params : [],
			isVolatileUrl: false,
			closeButton: closeButtonWhite,
			width: 802, height: 532
		},
		
		hdj2011_pre: {			
			urlPattern: staticBaseUrl+ "/layer/hdj2011/layer.iframe.hdj2011_pre_de.html?cm_sp=shop-_-cookieLayer-_-hdj2011ankuendigung",
			params : [],
			isVolatileUrl: false,
			closeButton: closeButtonWhite,
			width: 802, height: 532
		},
		
	// Händler des Jahres 2011
	///////////////////////////
		
	//STV-Layer-DE
	// Start: 15.07.2011 00.00 Uhr
	// Ende: 31.07.2011 23:59 Uhr
		
		stv2011: {			
			urlPattern: staticBaseUrl+ "/layer/stv2011/layer.iframe.stv2011_de.html?cm_sp=shop-_-cookieLayer-_-stv2011de",
			params : [],
			isVolatileUrl: false,
			closeButton: closeButtonWhite,
			width: 802, height: 532
		}
	};
	
	function doOpenLayer(settings) {
		var modalSettingsDefault = {
			forceType: 'iframe',
			titleFromIframe: false, 
			endFillContent: function() { $('.modalWrap').css({ position: 'absolute' }); }
		};
		
		var modalSettings = $.extend({}, modalSettingsDefault, settings);
		
		if(settings.isVolatileUrl) {
			modalSettings.url = 'about:blank';
			modalSettings.realUrl = settings.url;
			modalSettings.endFillContent = function(modal, currentSettings) {
				// don't know what the problem was, but this fixes the not-loading of layer contents in FF3.6
				window.setTimeout(function() {
					var cw = $('iframe', modal.contentWrapper)[0].contentWindow;
					cw.location.href = currentSettings.realUrl;
				}, 0);
				
				$('.modalWrap').css({ position: 'absolute' });
			};
		}
		
		$.nyroModalManual(modalSettings);
	};
	
	function startup() {		
		var urlParams = parseUrl();
		var layerName = urlParams.openLayer;
		var now = new Date();
		// Laufzeit fuer Hdj2011 Pre Layer festlegen
		var dateBeginHdj2011Pre = new Date(2011,5,28, 9,0,0); // 0=janauray, 9=october
		var dateExpireHdj2011Pre = new Date(2011,5,28, 23,59,59);		
		// Laufzeit fuer Hdj2011 Layer festlegen
		var dateBeginHdj2011 = new Date(2011,5,29, 0,0,1); // 0=janauray, 9=october
		var dateExpireHdj2011 = new Date(2011,5,30, 23,59,59);
		
		// Laufzeit fuer Stv2011 Layer festlegen
		// Start: 15.07.2011 00.00 Uhr
		// Ende: 31.07.2011 23:59 Uhr
		
		var dateBeginStv2011 = new Date(2011,6,15, 0,0,1); // 0=janauray, 9=october
		var dateExpireStv2011 = new Date(2011,6,31, 23,59,59);
		
		// automatischer Aufruf von HDJ2011 Pre Layer
		if(!layerConfig[layerName] && (dateBeginHdj2011Pre.getTime() < now.getTime()) && (now.getTime() < dateExpireHdj2011Pre.getTime())) {
			layerName = 'hdj2011_pre';
		}		
		// automatischer Aufruf von HDJ2011 Layer
		if(!layerConfig[layerName] && (dateBeginHdj2011.getTime() < now.getTime()) && (now.getTime() < dateExpireHdj2011.getTime())) {
			layerName = 'hdj2011';
		}
		
		// automatischer Aufruf von SommerTschuessVerkauf2011 Layer
//		if(!layerConfig[layerName] && (dateBeginStv2011.getTime() < now.getTime()) && (now.getTime() < dateExpireStv2011.getTime())) {
//			layerName = 'stv2011';
//		}

		if(!layerConfig[layerName]) {
			return;
		}
		
		if(layerName == 'bannerKampagne') {
			if(document.cookie.match(/bannerKampagne2Shown/)) { return; }
			document.cookie = "bannerKampagne2Shown=1; expires=Sun, 31 Jan 2010 23:00:00 GMT";
		}

		// Cookie set/check for Hdj2011 Pre Layer
		if(layerName == 'hdj2011_pre') {
			if(document.cookie.match(/layerHdj2011PreShown/)) { return; }
			document.cookie = "layerHdj2011PreShown=1; expires=Sun, 10 Aug 2011 12:00:00 GMT";
		}
		
		// Cookie set/check for Hdj2011 Layer
		if(layerName == 'hdj2011') {
			if(document.cookie.match(/layerHdj2011Shown/)) { return; }
			document.cookie = "layerHdj2011Shown=1; expires=Sun, 10 Aug 2011 12:00:00 GMT";
		}
		
		// Cookie set/check for Stv2011 Layer
		if(layerName == 'stv2011') {
			if(document.cookie.match(/layerStv2011Shown/)) { return; }
			document.cookie = "layerStv2011Shown=1; expires=Mon, 1 Aug 2011 12:00:00 GMT";
		}
		
		// user comes out of newsletter. Layer should not be shown!
		if(layerName == 'herbstaktion_nl') {
			document.cookie = "herbstaktionLayerShown=1; expires=Sat, 01 Nov 2009 08:00:00 GMT";
			return false;
		}
		
	
		var cfg = layerConfig[layerName];
		cfg.url = cfg.urlPattern;
		for(var i=0; i<cfg.params.length; i++) {
			if( urlParams[cfg.params[i]] == null ) {
				urlParams[cfg.params[i]] = '';
			}
			
			// quickfix: change parameter name 'uemail' to 'kunde' in url
			if (cfg.params[i] == "uemail") {
	  		cfg.url = cfg.url.replace("uemail=", "kunde=");
	  	}
			
			cfg.url = cfg.url.replace( "{"+cfg.params[i]+"}", urlParams[cfg.params[i]] );			
		}
		
		doOpenLayer(cfg);
	};
	
	$(startup);
})(jQuery);

