var PopUtil = {};
PopUtil.config = {popElement: {tagName: 'a',className: 'pop'},windowProperties: {width: 710,height: 500,sup: {scrollbars: 'yes'}}};
PopUtil.popCollection = [];

PopUtil.uriParams = {};
PopUtil.getUriParam = function(pName)
{
	var rtP = null;
	
	for(var p in PopUtil.uriParams)
	{
		if(pName == p)
		{
			rtP = PopUtil.uriParams[p];
			break;
		}
	}
	
	return rtP;
}

PopUtil.open = function()
{
	var currentPop = Event.element(arguments[0]);
	
	if(Object.isInitialized(currentPop))
	{
		var singleUri = true;
		
		var uriVal = currentPop.href;
		
		var popWidth = PopUtil.config['windowProperties']['width'];
		var popHeight = PopUtil.config['windowProperties']['height'];
		var popSup = PopUtil.config['windowProperties']['sup'];
		
		/* Objet privé (rendre public ?) contenant la config des types de pop-up (remplace la config par défaut de PopUtil.config.windowProperties) */
		var popType = {
			chambreNF: {width: 500,height: 280,sup: {},uri: '/section/forfait/non_fumeur.asp',uriParam: ['id_lang']}
		};
		
		/* Récupération des noms de classes -> clé de la config des pop-up */
		var elemClassColl = $w(currentPop.className);
		
		elemClassColl.each(function(elem)
		{
			for(cN in popType)
			{
				if(cN == elem)
				{
					if(Object.isInitialized(popType[cN]['width']))
					{
						popWidth = popType[cN]['width'];
					}
					if(Object.isInitialized(popType[cN]['height']))
					{
						popHeight = popType[cN]['height'];
					}
					if(Object.isInitialized(popType[cN]['sup']))
					{
						popSup = popType[cN]['sup'];
					}
					if(Object.isInitialized(popType[cN]['uri']))
					{
						uriVal = popType[cN]['uri'];
						singleUri = false;
					}
					if(Object.isInitialized(popType[cN]['uriParam']))
					{
						var uriP = popType[cN]['uriParam'];
						
						if(uriP.length > 0)
						{
							uriVal += '?';
							
							for(var i=0; i<uriP.length; i++)
							{
								if(i != 0)
								{
									uriVal += '&';
								}
								
								var pVal = PopUtil.getUriParam(uriP[i]);
								
								uriVal += uriP[i]+'='+pVal;
							}
						}
					}
					
					/* Si élément trouvé, on arrête la boucle (voir prototype) */
					throw $break;
				}
			}
		});
		
		if(Object.isInitialized(uriVal))
		{
			var popConfString = 'width='+popWidth+',height='+popHeight;
			
			for(var prop in popSup)
			{
				popConfString += ','+prop+'='+popSup[prop];
			}
			
			window.open(uriVal, 'popInfo', popConfString);		
		}
	}
	
	if(singleUri)
	{
		Event.stop(arguments[0]);
	}
}

PopUtil.init = function()
{
	// class pop par défaut
	
	if(Object.isInitialized(window.popProperties))
	{
		for(p in PopUtil.config['windowProperties'])
		{
			if(Object.isInitialized(window.popProperties[p]))
			{
				PopUtil.config['windowProperties'][p] = window.popProperties[p];
			}
		}
	}
	
	var popColl = Element.select(document,PopUtil.config['popElement']['tagName']+'.'+PopUtil.config['popElement']['className']);
	
	popColl.each(function(elem)
	{
		Event.observe(elem,'click',PopUtil.open);
		//elem.setAttribute('title','Ce lien s’ouvre dans un pop-up');
	});
	
	var pageUriParams = window.location.search.substr(1);
	
	var paramParts = pageUriParams.split('&');
	
	for(var i=0; i<paramParts.length; i++)
	{
		var cParam = paramParts[i];
		
		var param = cParam.split('=');
		PopUtil.uriParams[param[0]] = param[1];
	}
	//alert(PopUtil.uriParams.toSource())
}

if(window.Prototype)
{
	document.observe('dom:loaded',PopUtil.init);
}