(function(){

var linkSiteClass = "a.linkSite";
var SiteClass = ".location";
var ResidenceClass = ".residence";
var static_site = {};
var static_promo = {};
var sidMatcher = /sid=([0-9]*)/;
var residMatcher = /resid=([0-9]*)/;
var lastSiteSelected;


/**************************************************** Functions*************************************************************************************/
	function doSite(site){

		var linkSite = site.getElement(linkSiteClass);

		if(!linkSite)
			return;

		var newLink = linkSite.href;
		site.getElements("a").each(
				function(a){a.addEvent("click",	function(e){e.stop();location.href=newLink})}
			);

	site.addEvent("mouseenter",prepareShowResidence);


	}//doSite


	function prepareShowResidence(e)
	{

 		$$(".location.disabled").each(function(site){site.removeClass("disabled")});
		this.addClass('disabled');
		var sids = this.className.match(sidMatcher);
		lastSiteSelected = this;
		if(!sids)
			return;
		var sid = sids[1];

		 if(static_site[sid]){
			 	showResidence(static_site[sid],true);
			 	return;
		 }
		var residencesRequest = new Request({url:"/index.php?do=ajax/residence&lid="+Lang.lid,method:"get",onComplete:function(text){showResidence(text,false,sid) }});

		residencesRequest.send('site_id='+sid);

	}//prepareShowResidence


		function observerResidenceMouseEvent(residence){

			residence.addEvent("mouseenter",updateResidencePromos);
		}//observerResidenceMouseEvent

	function prepareUpdateResidencesPromos()
	{
		var residences = $$("#residences .residence");

		if(residences.length == 1){
			updateResidencePromos.call(residences[0]);
		}else{
				residences.each(function(residence){
					observerResidenceMouseEvent(residence);
				});
			}

	}//prepareUpdateResidencesPromos

	function updateResidencePromos(){

		if(!this.className)
		return;
		var resids = this.className.match(sidMatcher);
			if(!resids)
				return;
		var resid = resids[1];
		if($$(ResidenceClass).length>1){
	//	$$(ResidenceClass+".disabled").each(function(site){site.removeClass("disabled")});
		//this.addClass('disabled');
		}
		if(static_promo[resid]){
			showPromo(static_promo[resid],true);
			return;
		}
		var promoRequest = new Request({url:"/index.php?do=ajax/promo_residence&lid="+Lang.lid,method:"get",onComplete:function(text){showPromo(text,false,resid)}});
		promoRequest.send('residence_id='+resid);

	}//updateResidencePromos


	function showPromo(text,noCache,resid){
		if(resid && !noCache)
			static_promo[resid] = text;
		var updateDiv = $("right_top");
		if(!updateDiv)
			return;
		updateDiv.set('html', text);
		if(addEventInFormPromo)
			addEventInFormPromo();
	}//showPromo

	function showResidence(text,noCache,sid){
		if(sid && !noCache)
			static_site[sid] = text;

		var updateDiv = $("residences");
		if(!updateDiv)
			return;
		updateDiv.set('html', text);
		//FIXME: placer selon l'image de la résidence
		if(lastSiteSelected)
		{

		updateDiv.setStyle('margin-top',(lastSiteSelected.getPosition().y - lastSiteSelected.getSize().y)-  20 );
		}
		prepareUpdateResidencesPromos();
	}//showResidence

/*******************************************************************Dom ready************************************************************************/
	window.addEvent('domready', function() {
	$$(SiteClass).each(doSite);
	$$(ResidenceClass).each(observerResidenceMouseEvent);
	});



})();
