function arobaceok(emailStr)
{	
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)éèêëàâäçùûüìîïÉÈÊËÀÂÄÇÙÛÜÏ<>@,;:¦#°§¬|+{}'`´~/!¨$£^*%&=?¢\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null)
	{
		return false;
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]	
	
	if (user.match(userPat)==null) 
	{
		return false;
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null)
	{
		for (var i=1;i<=4;i++)
		{
	    		if (IPArray[i]>255)
	    		{
	    			return false;
	    		}
		}
		
		return true;
	}
	
	var domainArray=domain.match(domainPat)
	
	if (domainArray==null)
	{
		return false;
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4)
	{
		return false;
	}
	if (len<2)
	{
		return false;
	}
	return true;
}
function openDocument(UNID,extraparam)
{
	var LANG = document.getElementById('NotesLanguage').innerHTML
	var url = window.location.pathname;
	var dbpath=url.substring(0,url.indexOf(".nsf",7)+4);
	var URLDOC = dbpath + '/($Published)/' + UNID + '?OpenDocument&L=' + LANG 
	if(extraparam!=undefined)
	{
		URLDOC+='&'+extraparam
	}	
	var Mid =''
	// Lecture de la chaine "Mid=xxx" et l'ajoute à l'URL
	var qs = new queryString()
	var Mid = qs.get('Mid')
	if (qs.get('Mid')!="")
	{
		Mid='&Mid='+qs.get('Mid')
	}
	window.location.href=URLDOC+Mid
}
/************************************************************************************************/
function getMiddleScreenCoord(width,height)
{
	var x = (screen.width-width) /2
	var y = (screen.height-height)/2
	var x=x.toString()
	var y=y.toString()
	return new Array(x,y)	
}
function setVisibilityPrimes(ctrlIDname,state) 
{
       var ctrl = document.getElementById(ctrlIDname)
	if (state==1) 
	{
		ctrl.style.visibility='visible'
		ctrl.style.display='block'
	} else if (state==-1) 
	{
		ctrl.style.visibility='hidden'
		ctrl.style.display='none'
	}
} 
function isNumber(str, numberOfDigits) 
{ 
        var re = new RegExp("[0-9]{"+ numberOfDigits + "}", "g"); 
        return str == str.match(re); 
} 
function getIFrame(frameName)
{
//	var ctrlname =NIE?"IFRAME":"ILAYER"
	var ctrl = document.getElementById(frameName)
	if (ctrl==null)
	{
		var data= document.createElement('iframe')
		data.setAttribute('id',frameName)
		data.setAttribute('name',frameName)
		data.width='0px'
		data.height='0px'
		data.border='0px'
		/******************************************************************/
		/* N'est plus utilisé car incompatible avec certains navigateurs. */
		/* Exemples: Safari 1.3.2 et Opera 7.54 (Mac).			    */
		/*									    */
		/* data.style.visibility='hidden' 					    */
		/* data.style.display='none'	     				    */
		/*****************************************************************/
		return document.body.appendChild(data)
	} else return ctrl
}
function queryString()
{
	// get the query string, ignore the ? at the front.
	var querystring=location.search.substring(1,location.search.length);
	// parse out name/value pairs separated via &
	var args = querystring.split('&');
	// split out each name = value pair
	for (var i=0;i<args.length;i++)
	{
		var pair = args[i].split('=');
		// Fix broken unescaping
		temp = unescape(pair[0]).split('+');
		temp0 = temp.join(' ');
		
		temp = unescape(pair[1]).split('+');
		temp1 = temp.join(' ');
		
		this[temp0]=temp1;
	}
	this.get=queryString_get;
}
function queryString_get(strKey,strDefault)
{
	var value=this[strKey];
	if (value==null){value=strDefault;}
	
	return value;
}
function isInteger(n)
{
    var res
    var tab= n.match(new RegExp(/[0-9]/g))
    if (tab!=null) res= n!=tab.join(""); else res=false
    return !res
}
function strLeft(chaine, position)
{
	var retour = "";
	for (var i=0; i<position;i++)
	{
		retour = retour + chaine.charAt(i) ;
	}
	return(retour);
}
function replacesubstring(fullS,oldS,newS)
{
	for (var i=0; i < fullS.length; i++)
	{ 
		if (fullS.substring(i,i+oldS.length) == oldS)
		{ 
			fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length) 
		}
	}
	return fullS
}
function trim(str)
{
	var strTmp = str;
	strTmp = strTmp.replace(/( )+/g, " ");
	if(strTmp.indexOf(" ") == 0)
		strTmp = strTmp.substring(1, strTmp.length);
	if(strTmp.lastIndexOf(" ") == strTmp.length-1)
		strTmp = strTmp.substring(0, strTmp.length-1);
	return strTmp;
}
function findText(world,menuid)
{
	var lang = 'D'
	var query = trim(document.getElementById('Query').value.toLowerCase())
	if (world == '')
	{
	world = gup('world').toLowerCase();
	}
	if (query=='') return 
	//if(query.indexOf(" or ") == -1) query = query.replace(' ', '+and+')
	var url = '/web/assura/InternetPortalAss.nsf/wSearch?ReadForm&gquery='+ query + '&L=' + lang + '&world='+world+'&mid='+menuid+'&ncm=y'
	document.location = url
}
function sendToAFriend( paramSTAF )
{
	var STAF = (paramSTAF == null) ? "" : paramSTAF;
	var options = ',scrollbars=no, status=no, resizable=no,toolbar=no, location=no, menubar=no'
	var LANG = document.getElementById('NotesLanguage').innerHTML
	var PORTAL =  document.getElementById('WebPortal').innerHTML
	var w = 500
	var h = 340
	var pos = getMiddleScreenCoord(w,h)
	var url = window.location.pathname;
	var dbpath=url.substring(0,url.indexOf(".nsf",7)+4);
	var winpopup = window.open(	'/'+PORTAL +
					'/($page)/staf'+  
					'?OpenDocument'+
					'&L=' + LANG +
					'&url=' + STAF +
					'&dataonly=y&dialogbox=y'
						,'','left='+pos[0]+
						', top='+pos[1]+
						', width='+w+', height='+h+options)
	if (!winpopup.opener) newwindow.opener = self
}
function openFormPopUp(portal,nomFormulaire,w,h)
{
  var options = ',scrollbars=yes, status=no, resizable=no,toolbar=no, location=no, menubar=no'
  var LANG = document.getElementById('NotesLanguage').innerHTML
  var pos = getMiddleScreenCoord(w,h)
  var url = window.location.pathname;
  var dbpath=url.substring(0,url.indexOf(".nsf",7)+4);
  var winpopup = window.open(portal + nomFormulaire + 
				  '?OpenDocument&L=' + LANG + 
				  '&dataonly=y&dialogbox=y'
				  ,'','left='+pos[0]+
				  ', top='+pos[1]+
				  ', width='+w+', height='+h+options)
	if (!winpopup.opener) newwindow.opener = self
}
function stafValidation(paramRedirect)
{
	var redirect= (paramRedirect== null) ? "" : paramRedirect;
	if (document.getElementById("From").value != "" &&
         arobaceok(document.getElementById('From').value)==false) 
	{
		alert("Ihre E-Mail-Adresse ist ungültig! ");
		return false
	}
				
	if (document.getElementById('SendTo').value=="")
	{	
			alert("Bitte erfassen Sie die E-Mail-Adresse Ihres Freundes.");
			return false;		
	}
	
	if (arobaceok(document.getElementById('SendTo').value)==false)
	{	
			alert("Die E-Mail-Adresse Ihres Freundes ist ungültig!");
			return false;		
	}
	var url =	'/web/assura/InternetPortalAss.nsf/(STAFSendMail)?openagent&'
	url+=		'src='   +escape(document.getElementById("From").value)
	url+=		'&dest='  +escape(document.getElementById("SendTo").value)
	url+=		'&comm='  +escape(document.getElementById("Commentaire").value)
	url+=		'&copie=' +escape(document.getElementById("checkbox").checked)
	if (document.getElementById("stafurl").value != "") {
		url+=		'&unid='+escape(document.getElementById("stafurl").value )
	} else {
		url+=		'&unid='+escape('http://'+parent.document.getElementById('SERVER_NAME').innerHTML)
		url+=		escape(window.opener.document.getElementById('PATH').innerHTML)
	}
	url+=		'&L='  +escape(document.getElementById("NotesLanguage").innerHTML)
	url+= 		'&dest=' +redirect
	window.location.href=url
}
function printPreview(w,h)
{
	var pos = getMiddleScreenCoord(w,h)
	var options = ',scrollbars=yes, status=yes, resizable=yes,toolbar=yes, location=yes, menubar=yes'
	var UNID = document.getElementById('NotesUNID').innerHTML
	var LANG = document.getElementById('NotesLanguage').innerHTML
	var url = window.location.pathname;
	
	var dbpath=url.substring(0,url.indexOf(".nsf",7)+4);
	window.open(	dbpath + 
			'/($documents)/' + 
			UNID + 
			'?OpenDocument&L=' + 
			LANG +
			'&dataonly=y','','left='+pos[0]+', top='+pos[1]+', width='+w+', height='+h+options)
}
function getSelectedButton(buttonGroup)
{
	for (var i=0; i < buttonGroup.length; i++)
	{
		if (buttonGroup[i].checked)
		{
			return buttonGroup[i].value;
		}
	}		
	return -1;	
}
function setImages(prefix, objImage)
{
	var arrTagImages = document.getElementsByTagName("img");
	var sTagImageName;
	for(var i=0;i<arrTagImages.length;i++)
	{
		sTagImageName = arrTagImages[i].name;		
		if(	sTagImageName.indexOf(prefix) == 0)
		{
			arrTagImages[i].src = objImage.src;
		} 
	}
}
// RETRO COMPATIBILITE
function checkEnterSearch(evt)
{
alert('old')
	var keycode;
    if (evt)
        ;
    else if (window.event)
        evt = window.event;
    else if (event)
        evt = event;
    else
        return true;
 
    if (evt.charCode)
        keycode = evt.charCode;
    else if (evt.keyCode)
        keycode = evt.keyCode;
    else if (evt.which)
        keycode = evt.which;
    else
        keycode = 0;
 
    if (keycode == 13) {
        recherche();
        return false;
    }
    else
        return true;
}
function GetNavLang()
{
		return 'D'
}
/**************************************************************************************************************
Fonction	: soumet le login à la page assura/sana/supraNET 
Paramètres	: loginpage: adresse de l'agent qui reçevra le formulaire envoyé ( qui est la page) 
Utilisation	: V2.2 
				Internet: Assura 	-> 07.09.06
				Internet: Supra		-> n/a
				Internet: Sanatop	-> n/a
				
**************************************************************************************************************/
function LogDotNet(loginpage)
{
  document.forms[0].name='Assuranet'
  document.forms[0].method='post'
  document.forms[0].target='_blank'
  document.forms[0].action=loginpage
  document.forms[0].submit()
}
/**************************************************************************************************************
Fonction	: Retourne true si la touche enter a été pressée 
Paramètres	: evt: event 
Exemple		: <input type="text" onKeyPress="if(IsOnEnter(event) document.getElementById('pwd').focus(); return true">
Utilisation	: V2.2 
				Internet: Assura 	-> 07.09.06
				Internet: Supra		-> n/a
				Internet: Sanatop	-> n/a
**************************************************************************************************************/
function IsOnEnter(evt)
{
	var keycode;
    if (evt);
    else if (window.event)
        evt = window.event;
    else if (event)
        evt = event;
    else
        return true;
 
    if (evt.charCode)
        keycode = evt.charCode;
    else if (evt.keyCode)
        keycode = evt.keyCode;
    else if (evt.which)
        keycode = evt.which;
    else
        keycode = 0;
    return (keycode == 13)
}
function IsUpDown(evt)
{
	var keycode;
    if (evt);
    else if (window.event)
        evt = window.event;
    else if (event)
        evt = event;
    else
        return true;
 
    if (evt.charCode)
        keycode = evt.charCode;
    else if (evt.keyCode)
        keycode = evt.keyCode;
    else if (evt.which)
        keycode = evt.which;
    else
        keycode = 0;
    return (keycode == 38)||(keycode == 40)
}
/*
Fonction	: affiche le texte par défaut si la zone de saisie est vide 
Paramètres	: ctrlID: Nom du contrôle (texte)
Exemple		: n/a
Utilisation	: V2.2 
				Internet: Assura 	-> 07.09.06
				Internet: Supra		-> n/a
				Internet: Sanatop	-> n/a
				
*/
function BlurText(ctrlID)
{
	var ctrl=document.getElementById(ctrlID)
	if (ctrl.value == '')
	{
	ctrl.value = ctrl.defaultValue;
	}
}
/*
Fonction	: Efface le texte par défaut lors de l'entrée dans une zone d'édition 
Paramètres	: ctrlID: Nom du contrôle (texte)
Exemple		: n/a
Utilisation	: V2.2 
				Internet: Assura 	-> 07.09.06
				Internet: Supra		-> n/a
				Internet: Sanatop	-> n/a
				
*/
function FocusText(ctrlID)
{
	var ctrl=document.getElementById(ctrlID)
	if (ctrl.value == ctrl.defaultValue)
	{
	ctrl.value = '';
	}
}
function RedirectPage(url)
{
	document.location = url;
}
function PageOnlyAvailableInFrench()
{
	var url = replacesubstring(document.location.href, "&L=D", "&L=F");
	url = replacesubstring(url, "&L=I", "&L=F");
	document.write("<a href='" + url + "'>Dokument nicht auf Deutsch verfügbar</a>");
	window.setTimeout("RedirectPage('" + url + "')", 5000);
}
/***************************************************************/
/* Fonction permetant l'execution d'un agent web /*
/***************************************************************/
function RunAgent(agent,param)
{
       // définition du chemin de l'agent
       var path = '/web\assura/'+agent+"?openagent"
       
	// Mise en forme des paramètres aa:xx;bb:yy -> aa=xx&bb=yy
       var parameters =''
       var params = param.split(';')
	for (x in params)
       {
         var p = params[x].split(':')
         parameters += '&'+p[0]+'='+p[1]      
       }
	var date = new Date()
	parameters += '&'+date.getTime()
	
	var ctrl = document.getElementById('RunAgent')
	ctrl.innerHTML="<iframe src='"+path+parameters+"' id='ctrlrunagentiframe'></iframe>"
}
/***************************************************************/
/* Classe permetant la maniipulation des paramètres dans l'URL */
/***************************************************************/
function URLData()
{
	 var querystring=location.search.substring(1,location.search.length);
	// querystring = querystring.toLowerCase()
	 this.data = new Array()
	 var args = querystring.split('&');
	 for (var i=0;i<args.length;i++)
	 {
 		var pair = args[i].split('=')
		if (pair[1]==null) pair[1]=pair[0]
 		temp = unescape(pair[0]).split('+')
 		temp0 = temp.join(' ')// .toLowerCase()
 		temp = unescape(pair[1]).split('+')
 		temp1 = temp.join(' ')
             this.data[temp0]=temp1
	 }
 	this.get=URLData_get;
 	this.length=URLData_length;
 	this.getItemValue=URLData_getItemValue;
 	this.getItemName=URLData_getItemName;
}

function URLData_getItemValue(intpos,strDefault)
{
  var count = 0
  for(x in this.data) 
  { 
     if (count==intpos) return this.data[x]
     count++
  }
  return strDefault
}
function URLData_getItemName(intpos)
{
  var count = 0
  for(x in this.data) 
  { 
     if (count==intpos) return x
     count++
  }
  return ""
}
function URLData_get(strKey,strDefault)
{
	var value=this.data[strKey];
	if (value==null){value=strDefault;}
	return value;
}
function URLData_length()
{ 
  var count = 0
  for(x in this.data) {count++}
  return count
}
/***************************************************************/
/*Function permettant de faire un logout et/ou de rediriger. Exemple sur EE Supra*/
/***************************************************************/
function logout(chemin)
{
 var url = window.location.href
 var pos = url.indexOf('.nsf')
 if (chemin != null){
 var data = url.substring(0,pos+4)+'?logout&RedirectTo='+encodeURIComponent(chemin)
}
else{
var data = url.substring(0,pos+4)+'?logout'
}
 window.location = data
}
