/* catsat.js : fonctions utilitaires JavaScript du site Catsat.			**
**************************************************************************
** ouvreCadre(url) - ouvre une fenetre non navigable sur la page 'url'	**
** changeLangue(languecible) - bascule la page vers une autre langue (fr/en/es) **
** lienMail (nom,nomMail,url) - compose un lien d'adresse e-mail
** lienContact (user,url) - compose un lien d'adresse e-mail avec bcc au webmaster
*************************************************************************/
// donne un nom a la fenetre (base target du plan et du glossaire)
window.name="catsat";

/* Ouvre une fenetre sans barres de navigation, mais redimensionnable.
** Le nom de la fenetre est calcule d'apres l'url afin de n'ouvrir
** qu'une fenetre par service (1 plan, 1 glossaire, etc...)
** Parametres :
**   url = url de la page a afficher
**   w, h = largeur et hauteur (par défaut (650x500)
*********************************************************************/
function ouvreCadre(url) {
	// calcul du nom simple de la page a partir de l'url
	var fin = url.indexOf(".html");
	var nom;
	// page html : nom du fichier (plan, glossaire,...)
	if (fin != -1) {
		var deb = url.lastIndexOf("/");
		nom = url.substring(deb + 1, fin);
	} else {
		// image (gif, jpg) : fenetre 'images'
		fin = url.indexOf(".gif");
		if (fin == -1) fin = url.indexOf(".jpg");
		if (fin != -1) nom = "images";
		// sinon nouvelle fenetre
		else nom = "_blank";
	}
    // traitement des parametres facultatifs de taille
    var w = arguments[1];
    var h = arguments[2];
    if (!w) w = 650;
    if (!h) h = 500;
	// ouverture 
	var win = window.open(url, nom, "resizable=yes,scrollbars=yes,toolbar=no,width=" + w + ",height=" + h);
	if (win.opener == null) win.opener = this;
	// focus (si la fenetre est deja ouverte)
	win.focus();
}


/* Compose un lien d'adresse e-mail (pour tenter de minimiser les spams)
** Parametres :
**   nom = Nom qui apparait en lien (John SMITH)
**   nomMail = identifiant de messagerie (john.smith)
**   url = url de l'adresse e-mail (catsat.com)
**   classe = classe de style (class="classe", facultatif)
***************************************************************/
function lienMail (nom,nomMail,url)	{
    // traitement du parametre facultatif de style
    var classe = arguments[3];
	document.write('<a href="&#109;&#97;&#105;'+'&#108;&#116;&#111;&#58;'+nomMail+'&#64;'+url+'"')
	if (!classe) { }
	else {
		document.write(' class="'+classe+'"')
	}
	document.write('>'+nom+'</a>')
}

/* Compose un lien d'adresse e-mail avec bcc au webmaster
** Parametres :
**   user = identifiant de messagerie (john.smith)
**   url = url de l'adresse e-mail (catsat.com)
**   classe = classe de style (class="classe", facultatif)
***************************************************************/
function lienContact (user,url)	{
    // traitement du parametre facultatif de style
    var classe = arguments[2];
	document.write('<a href="&#109;&#97;&#105;'+'&#108;&#116;&#111;&#58;'+user+'&#64;'+url+'?bcc=webmaster'+'&#64;'+'catsat.com"')
	if (!classe) { }
	else {
		document.write(' class="'+classe+'"')
	}
	document.write('>'+user+'&#64;'+url+'</a>')
}

/* Affiche la date de derniere modification du document, 
** selectionne l'anglais si son nom est de type '_en'.
*******************************************************/
function lastModif() {
	var date = new Date(document.lastModified);
	var annee = date.getFullYear(); 
	var jour = date.getDate();
	var mois = date.getMonth()+1;
	if (jour < 10) { jour="0"+jour; }
	if (mois < 10) { mois="0"+mois; }
	if ((annee<1970)&&(annee>=1900)) {annee+=100}
	// version anglaise (_en dans le nom du document)
	var nom = document.location.toString();
	
	if (nom.indexOf("_en") != -1) {
		document.write(annee + "/" + mois + "/" + jour);
	// sinon version francaise
	} else {
		document.write(jour + "/" + mois + "/" + annee);
	}
}

/* formulaire */

function emailCheck (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) {
		alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) {
	    alert("Invalid email address:\nThe username doesn't seem to be valid.")
	    return false
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
		        alert("Invalid email address:\nDestination IP address is invalid.")
			return false
		    }
	    }
	    return true
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("Invalid email address:\nThe domain name doesn't seem to be valid.")
	    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) {
	   alert("Invalid email address:\nThe address must end in a three or four-letter domain, or two letter country.")
	   return false
	}
	
	if (len<2) {
	   var errStr="Invalid email address:\nThis address is missing a hostname!"
	   alert(errStr)
	   return false
	}
	
	return true;
}
 
function valideform(formulaire)
{
	var alerte = "Please complete the field:\n";
	
	if(formulaire.Prenom.value=="") {
		window.alert (alerte+"'First name'");
		return false;
	}
	if(formulaire.Nom.value=="") {
		window.alert (alerte+"'Name'");
		return false;
	}
	if (formulaire.Email.value=="") { 
		window.alert (alerte+"'E-mail'");
		return false;
	}
	if (!emailCheck(formulaire.Email.value)) { 
		return false;
	}
	if (formulaire.Tel.value=="") { 
		window.alert (alerte+"'Phone number'");
		return false;
	}
 
	formulaire.submit();
}
 

/* JAVASCRIPT FLASH PLUGIN DETECTION FOR Netscape BROWSERS
*************************************************************************/
FlashMode = 0;
function nsFlashDetect () {
	if (navigator.appName == "Netscape" && navigator.plugins) 
	{numPlugins = navigator.plugins.length;if (numPlugins > 0){var pluginDetected=0;for (i = 0; i < numPlugins; i++){plugin = navigator.plugins[i];var flashPluginPat=/Flash (\d{1,2})/;var flashVersionArray=plugin.description.match(flashPluginPat);if (flashVersionArray!=null){if (flashVersionArray[1]>=swfVersion){pluginDetected = 1;numTypes = plugin.length;for (j = 0; j < numTypes; j++) {mimetype = plugin[j];if (mimetype){if (mimetype.enabledPlugin && (mimetype.suffixes.indexOf("swf") != -1)) FlashMode = 1;
	// Mac wierdness
	if (navigator.mimeTypes["application/x-shockwave-flash"] == null) FlashMode = 0;}}}}
	if (pluginDetected) break;}}}
}

/* Affiche une animation Flash si plug-in détecté, sinon affiche une image
*************************************************************************/
function writeFlashObject () {
    var wmode = arguments[0];
	if (wmode) {
		if (wmode == "opaque") {wmode = "opaque";}
		else if (wmode == "transparent") {wmode = "transparent";}
		else {wmode="";}
	}

	if ( FlashMode ) {
		document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"');
		document.write(' width="'+largeur+'" height="'+hauteur+'" id="'+idFlash+'" align="'+alignement+'">');
		document.write(' <param name="allowScriptAccess" value="sameDomain" />');
		document.write(' <param name="movie" value="'+urlSwf+'.swf" />');
		document.write(' <param name="menu" value="false" />');
		document.write(' <param name="quality" value="high" />');
		document.write(' <param name="bgcolor" value="'+bgColor+'" />');
		if (wmode) {
			document.write(' <param name="wmode" value="'+wmode+'" />');
		}
		document.write(' <embed src="'+urlSwf+'.swf"');
		document.write(' menu="false" quality="high" bgcolor="'+bgColor+'"');
		document.write(' width="'+largeur+'" height="'+hauteur+'"');
		document.write(' name="'+idFlash+'" align="'+alignement+'" allowScriptAccess="sameDomain"');
		if (wmode) {
			document.write(' wmode="'+wmode+'"');
		}
		document.write(' type="application/x-shockwave-flash">');
		document.write('</embed>');
		document.write('</object>');
	} else {
		document.write('<img src="'+urlSwf+altImgFormat+'" width="'+largeur+'" height="'+hauteur+'" alt="(Flash player '+swfVersion+' or earlier not detected)">');
	}
}

