var deleg_lang = new Delegate();
function getLienEn(){$('#chx_pays').prepend('<a onclick="if(typeof(iploc)==\'object\')iploc.savLangCook(\'en\');" href="/sid'+mappy_sid+'/Z?out=2&xsl=hp&lang=en'+((test_url!='')?'&test_url=':'')+'" class="new_lien_a" id="lang_pays">>> english version</a>&nbsp;&nbsp;');}
function RedirectionMappy(dom, loc, pays_lang_dom, l_nav){	

	this.x=loc.local_x;
	this.y=loc.local_y;
	this.cs=loc.local_cs;
	this.tn=loc.local_town;
	this.cc=parseInt(loc.local_country);		
	this.l_lang = loc.lang;	
	this.l_nav = l_nav;	
	this.l_cook = (lg_cook && lg_cook!='')?lg_cook:rc("lg");
	this.pays_lang_dom = pays_lang_dom;
	
	//si le domaine passé en parametre est connu de mappy
	this.isDomExist = function(d){
		for(var i=0;i<this.pays_lang_dom.length;i++){
			 if(this.pays_lang_dom[i].d.contains(d)!=-1){return this.pays_lang_dom[i];}
		}
	}	
	
	//si le code pays passé en parametre est connu de mappy
	this.isPaysExist = function(c){
		for(var i=0;i<this.pays_lang_dom.length;i++){
			 if(this.pays_lang_dom[i].c==c){return this.pays_lang_dom[i];}
		}
	}
	
	//si la langue passé en parametre est connu de mappy (si on a les trads)
	this.isLangExist = function(l){
		for(var i=0;i<this.pays_lang_dom.length;i++){
			 if(this.pays_lang_dom[i].l.contains(l)!=-1){return this.pays_lang_dom[i];}
		}
	}	
	
	//sauve la langue choisi, dans un cookie
	this.savLangCook = function(l){
		var dat = new Date();				
		dat.setTime(dat.getTime()+(24*60*60*1000*100));						
		sCk("lg="+l,dat,'/', ((mappy_server.indexOf('.mappy.com')!=-1)?'mappy.com':''));
		sCk("lg="+l,dat,'/', '');
	}		
							
	//////execute la recherche de langue
	this.checkLang = function(){
		if(el=this.isDomExist(dom)){//si le domaine est connu de mappy
			//si la lang du cook du nav est dans les langues du pays connu de mappy, on l'a charge, sinon c la langue du pays par defaut (premier element du tableau 'l')
			if(this.l_cook!='' && el.l.contains(this.l_cook)!=-1) this.l_lang=this.l_cook; else if(this.l_nav!='' && el.l.contains(this.l_nav)!=-1) this.l_lang=this.l_nav; else this.l_lang=el.l[0];					
			this.cc = el.c;
			this.tn = '';
		}else if((el=this.isPaysExist(this.cc)) && dom!='dev'){//sinon si le code pays est connu de mappy
			if(el.d.length){//et qu'il y a un domaine, on redirige vers ce domaine				
				if(mappy_server.indexOf('valid')!=-1){
					url="http://www-valid.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					document.location = url;
				}
				else if(mappy_server.indexOf('old.int.mappy')!=-1) {
					//url="http://int.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					url="http://old.int.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					document.location = url;
				}
				else if(mappy_server.indexOf('int.mappy')!=-1) {
					//url="http://int.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					url="http://int.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					document.location = url;
				}
				else if(mappy_server.indexOf('old.mappy')!=-1) {
					//url="http://int.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					url="http://old.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					document.location = url;
				}	
				else {
					//url="http://www.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					url="http://old.mappy"+((this.cc==826)?'.co':'')+el.d[0]+((typeof mappy_alias != 'undefined')?mappy_alias:'');
					document.location = url;
				}
																
				return;
			}else{//sinon si la lang contenu, dans le cookie ou dans le nav, est dans les langues du pays connu de mappy, on l'a charge, sinon c la langue du pays par defaut (premier element du tableau 'l')
				if(this.l_cook!='' && el.l.contains(this.l_cook)!=-1) this.l_lang=this.l_cook; else if(this.l_nav!='' && el.l.contains(this.l_nav)!=-1) this.l_lang=this.l_nav; else this.l_lang=el.l[0];
			}
		}else{//si, ni le domaine, ni le code pays ne sont connu de mappy 				
			if(this.isLangExist(this.l_nav)){//mais que la langue du navigateur qui est connu, on l'a charge
				this.l_lang=this.l_nav;
				if(this.l_nav!='en' && typeof(deleg_lang)=="object"){
					deleg_lang.addFnct(getLienEn);
					deleg_lang.addEvent(window,'load');
				}
			}else{//sinon on charge la langue par defaut(anglais)
				this.l_lang='en';
			}
		}		
		//sauvegarde de la langue choisi, dans un cookie
		this.savLangCook(this.l_lang);	
			
		if(this.l_lang != loc.lang){//on redirige si la langue choisi est differente de celle de la session
			document.location=mappy_server+'/sid'+mappy_sid+'Z?out=2&xsl=hp&lang='+this.l_lang;	
		}
	}
	
	this.toString = function(){
		return 'code :'+this.cc+' ville:'+this.tn+' lang:'+this.l_lang+' dom:'+dom+' x:'+this.x+' y:'+this.y+' cs:'+this.cs;
	}			
}


