function object(name){if(document.all)return eval(name); else return eval("document.layers."+name);}
function style(name){if(document.all)return object(name).style; else return object(name);}
function openW(name){
	if(object(name).counter==null)
		object(name).counter=0;
	if(object(name).counter==0)
		style(name).display='block';
	++object(name).counter;
}
function closeW(name){
	if(object(name).counter==null)
		object(name).counter=0;
	--object(name).counter;
	if(object(name).counter==0)
		setTimeout("hide('"+name+"')", 500);
}
function hide(name){if(object(name).counter==0)style(name).display='none';}
function arraySub(a,b){
	c=new Array();
	for(var i=0;i<a.length;++i){
		var bFound=false;
		for(var j=0;j<b.length&&!bFound;++j)
			if(a[i]==b[j]) bFound=true;
		if(!bFound) c[c.length]=a[i];
	}
	return c;
}
function arrayInter(a,b){
	c=new Array();
	for(var i=0;i<a.length;++i){
		var bFound=false;
		for(var j=0;j<b.length&&!bFound;++j)
			if(a[i]==b[j]) bFound=true;
		if(bFound) c[c.length]=a[i];
	}
	return c;
}
function arrayInterLanguage(a,b){
	c=new Array();
	for(var i=0;i<a.length;++i){
		var bFound=false;
		for(var j=0;j<b.length&&!bFound;++j)
			if(a[i].split('_')[0]==b[j].split('_')[0]) bFound=true;
		if(bFound) c[c.length]=a[i];
	}
	return c;
}
function confirmValidation(sValidation){
	var tValidation=sValidation.split('|');
	if(tValidation[0]+tValidation[2]+tValidation[4]!='111'){
		if (!confirm('The page has not been validated by all the reviewers.\nDo you want to validate it even so ?'))
			return false;
	}
	return confirm('The page in progress will be put online, replacing the former online page.\nAre you sure ?');
}
function wb_global(bIsAdmin,sLanguages,sCurrentLanguage,sCurrentVersion,sHasValidation,sCurrentUrl){
	this.bIsAdmin=bIsAdmin;
	this.tLanguages=sLanguages.split(',');
	this.sCurrentLanguage=sCurrentLanguage;
	this.sCurrentVersion=sCurrentVersion;
	this.bHasValidation=(sHasValidation=='1');
	this.sCurrentUrl=sCurrentUrl;
}
function wb_lang(oGlobal,sName,sUrl,sPageVersions,sParentVersions,sValidation,sOwner){
	this.oGlobal=oGlobal;
	this.sName=sName;
	this.sUrl=sUrl;
	this.tPageVersions=sPageVersions.split(',');
	this.sValidation=sValidation;
	this.sOwner=sOwner;

	this.tPageLanguages=[];
	for(var iVersion=0;iVersion<this.tPageVersions.length;++iVersion)
		this.tPageLanguages[this.tPageLanguages.length]=this.tPageVersions[iVersion].split('_')[0];

	this.tLanguagesToTranslate=arraySub(this.oGlobal.tLanguages,this.tPageLanguages);
	var tCurrentVersion=[this.oGlobal.sCurrentLanguage+'_'+this.oGlobal.sCurrentVersion];
	this.tVersionsToSee=arraySub(this.tPageVersions,tCurrentVersion);

	if(sParentVersions!=''){
		this.tParentVersions=sParentVersions.split(',');
		this.tParentLanguages=[];
		for(var iVersion=0;iVersion<this.tParentVersions.length;++iVersion)
			this.tParentLanguages[this.tParentLanguages.length]=this.tParentVersions[iVersion].split('_')[0];
		this.tLanguagesToTranslate=arrayInter(this.tLanguagesToTranslate,this.tParentLanguages);
		this.tVersionsToSee=arrayInterLanguage(this.tVersionsToSee,this.tParentVersions);
	}
	
//	if(!this.hasVersion(this.oGlobal.sCurrentLanguage,1))
//		this.tVersionsToSee[this.tVersionsToSee.length]=this.oGlobal.sCurrentLanguage+'_1';
}
wb_lang.prototype.write=function(){
	document.write('<span id="LangMenu"><span class=nborder style="height:15px" href="#" onmouseover="openW(\''+this.sName+'\')" onmouseout="closeW(\''+this.sName+'\')">'+this.getLabel()+'</span><br>');
	document.write('<DIV ID='+this.sName+' class=nborder onmouseover="openW(\''+this.sName+'\')" onmouseout="closeW(\''+this.sName+'\')" style="display:none;position:absolute">');
	document.write(this.getLinks());
	document.write('</DIV></span>');
}
wb_lang.prototype.hasVersion=function(sLanguage,sVersion){
	for(var i=0;i<this.tPageVersions.length;++i)
		if(this.tPageVersions[i]==(sLanguage+'_'+sVersion))return true;
	return false;
}
wb_lang.prototype.getLabel=function(){
	return tLanguageNames[this.oGlobal.sCurrentLanguage]+(this.oGlobal.bHasValidation?'&nbsp;('+tVersionNames[this.oGlobal.sCurrentVersion]+')':'');
}
wb_lang.prototype.getAlternate=function(){
	var sUrl=this.oGlobal.sCurrentUrl;
	if (this.tPageVersions.length==1){
		if(sUrl[sUrl.length-1]=='/')
			--sUrl.length;
		var pos=sUrl.lastIndexOf('/');
		if(pos!=-1)//else error
			sUrl=sUrl.substr(0,pos);
	}else{
		var sLanguage=this.oGlobal.sCurrentLanguage;
		var sVersion=1-this.oGlobal.sCurrentVersion;
		if(!this.hasVersion(sLanguage,sVersion)&&this.tVersionsToSee.length>0){
			tSee=this.tVersionsToSee[0].split('_');
			sLanguage=tSee[0];
			sVersion=tSee[1];
		}
		sUrl+='?Language='+sLanguage+'&Version='+sVersion;
	}
	return sUrl;
}
wb_lang.prototype.getLinks=function(){
	var s='';
//	if (this.sOwner&&this.sOwner.length>0)
//		s+='<b>Created by</b><br>&nbsp;&nbsp;'+this.sOwner+'<br>';
	s+='<b>Viewing</b>&nbsp;'+this.getLabel()+'<br>';

	// Modify
	var sUrl=this.sUrl;
	var sVersion='';
	var sFinishUrl=this.oGlobal.sCurrentUrl;
	var sCancel='';
	var sAction="Edit";
	if(this.oGlobal.bHasValidation&&this.oGlobal.sCurrentVersion=='0'){
		if(this.hasVersion(this.oGlobal.sCurrentLanguage,'1'))
			sVersion='&Version=1';
		else
			sAction="Modify";
		sFinishUrl+='?Version=1';
		sCancel='&CancelUrl='+escape(this.oGlobal.sCurrentUrl);
	}
	s+='&nbsp;&nbsp;<a href="'+escape(sUrl)+'?Action='+sAction+sVersion+'&Url='+escape(sFinishUrl)+sCancel+'" class="MenuLink">Modify</a><br>';

	// Validate
	if(this.oGlobal.bIsAdmin&&this.oGlobal.bHasValidation&&this.oGlobal.sCurrentVersion=='1')
		s+='&nbsp;&nbsp;<a href="'+escape(this.sUrl)+'?Action=Validate&Url='+this.oGlobal.sCurrentUrl+'?Version=0" onclick="return confirmValidation(\''+this.sValidation+'\')" class="MenuLink">Validate</a><br>';

	// Remove
	if(this.oGlobal.bIsAdmin){
		if(this.tPageVersions.length>1)
			s+='&nbsp;&nbsp<a href="'+escape(this.sUrl)+'?Action=RemoveLanguage&Url='+escape(this.getAlternate())+'" onclick="return confirm(\'You are about to remove the ['+tLanguageNames[this.oGlobal.sCurrentLanguage]+' '+tVersionNames[this.oGlobal.sCurrentVersion]+'] version. Are you sure ?\')" class="MenuLink">Remove</a><br>';
		else
			s+='&nbsp;&nbsp<a href="'+escape(this.sUrl)+'?Action=Remove&Url='+escape(this.getAlternate())+'" onclick="return confirm(\'You are about to remove this page as ['+tLanguageNames[this.oGlobal.sCurrentLanguage]+'] is the only language. Are you sure ?\')" class="MenuLink">Remove</a><br>';
	}else{
		s+='&nbsp;&nbsp<a href="mailto:'+escape('franck.pignon@ascojoucomatic.fr')+'?Subject=Request for removal&Body=See requested page :%0a'+escape('http://'+document.location.host+this.sUrl)+'" class="MenuLink">Remove</a><br>';
	}

	// See other versions
	if(this.tVersionsToSee.length>0){
		s+='<b>See</b><br>';
		for(var i=0;i<this.tVersionsToSee.length;++i)
		{
			var sLanguage=this.tVersionsToSee[i].split('_')[0];
			var sVersion=this.tVersionsToSee[i].split('_')[1];
			s+='&nbsp;&nbsp;<a href="'+this.oGlobal.sCurrentUrl+'?Language='+sLanguage+'&Version='+sVersion+'" class="MenuLink">'+tLanguageNames[sLanguage]+'&nbsp;('+tVersionNames[sVersion]+')</a><br>';
		}
	}

	// Translate
	if(this.tLanguagesToTranslate.length>0){
		s+='<b>Translate into</b><br>';
		for(var i=0;i<this.tLanguagesToTranslate.length;++i)
			s+='&nbsp;&nbsp;<a href="'+this.sUrl+'?Action=CreateLanguage&Into='+this.tLanguagesToTranslate[i]+'&Copy='+this.oGlobal.sCurrentLanguage+'&Url='+escape(this.oGlobal.sCurrentUrl+'?Language='+this.tLanguagesToTranslate[i]+'&Version=1')+'" class="MenuLink">'+tLanguageNames[this.tLanguagesToTranslate[i]]+'</a><br>';
	}
	return s;
}
var tLanguageNames=new Array();
tLanguageNames['fr']='Français';
tLanguageNames['en']='English';
tLanguageNames['gb']='British';
tLanguageNames['dk']='Dansk';
tLanguageNames['es']='Español';
tLanguageNames['de']='Deutsch';
tLanguageNames['nl']='Dutch';
tLanguageNames['it']='Italiano';
tLanguageNames['uk']='British';
tLanguageNames['pt']='Portuguese';
tLanguageNames['be']='Belge';
tLanguageNames['pl']='Polski';
var tVersionNames=['online','in progress'];