/*
 * Variables Globales
 */

nav = navigator.appName.substring(0,3);
ver = navigator.appVersion.substring(0,1);

NumChars = "0123456789 ";

/*
 * Fonctions utilitaires globales au site
 */

// Ouverture d'une pop-up
function OpenUrl( url, width, height) {
	window.open( url, "_blank", "width=" + width + ",height=" + height + ",toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,titlebar=no");
}

function RedirectURL( id) {
	redirectUrl = "item-redirecturl.php?idref=" + id;
	setTimeout( "window.top.location.href = redirectUrl", 2000);
}

// Déconnexion
function Disconnect() {
	if ( confirm( "Vous êtes sur le point de vous déconnecter de votre Côté Perso.\nVous allez être redirigé vers la page d'accueil.\nEtes-vous sûr ?") )
		document.location = "nvlogout.php?page=index.php";
}

// Ouvre la pop up pour le paiement SP PLUS
function PaiementSPPLUS() {
	var win;
	var checked = false;

	for ( var i=0 ; i<document.abonnement.tabonnid.length ; i++ ) {
		if ( !checked && document.abonnement.tabonnid[i].checked ) {
			checked = true;
			win = window.open( 'spplus.php?tabonnid=' + document.abonnement.tabonnid[i].value, 'SPPLUS', 'width=750,height=560,status=1');
			win.focus();
		}
	}

	if ( !checked ) alert( "Veuillez choisir un panier de mises en relation.");
}

// Gestion de la visibilité du calque dont l'ID est passé en paramètre
//		Ancienne version, test sur la variable nav (navigateur)
function ShowDiv_old( id) {
	if ( nav == "Mic" ) {		// Cas navigateur MS IE Internet Explorer
		if ( document.all[id].style.display == 'none' )
			document.all[id].style.display = 'inline';
		else
			document.all[id].style.display = 'none';
	}
	else {						// Autres navigateurs
		if ( document.getElementById(id).style.visibility == 'visible' )
			document.getElementById(id).style.visibility = 'hidden';
		else
			document.getElementById(id).style.visibility = 'visible';
	}
}

// Gestion de la visibilité du calque dont l'ID est passé en paramètre
// La fonction effectue le test du type de calque. Supporté par tous les navigateurs.
function ShowHideDiv( object) {
	if ( document.layers && document.layers[object] ) {
		if ( document.layers[object].visibility == 'visible' ) {
		    document.layers[object].display = 'none';
			document.layers[object].visibility = 'hidden';
		}
		else {
			document.layers[object].display = 'inline';
			document.layers[object].visibility = 'visible';
		}
	}
	else if ( document.all ) {
		if ( document.all[object].style.display == 'inline' )
			document.all[object].style.display = 'none';
		else
    		document.all[object].style.display = 'inline';
	}
	else if ( document.getElementById ) {
		if ( document.getElementById(object).style.visibility == 'visible' ) {
			document.getElementById(object).style.display = 'none';
			document.getElementById(object).style.visibility = 'hidden';
		}
		else {
			document.getElementById(object).style.display = 'inline';
			document.getElementById(object).style.visibility = 'visible';
		}
	}
}

// Rend visible le div dont l'ID est passé en paramètre
function ShowDiv( obj_id) {
	if ( document.layers && document.layers[obj_id] ) {
		document.layers[obj_id].display = 'inline';
		document.layers[obj_id].visibility = 'visible';
		document.layers[obj_id].zIndex = '20';
	}
	else if ( document.getElementById ) {
		document.getElementById(obj_id).style.display = 'inline';
		document.getElementById(obj_id).style.visibility = 'visible';
		document.getElementById(obj_id).style.zIndex = '20';
	}
}

// Rend non visible le div dont l'ID est passé en paramètre
function HideDiv( obj_id) {
	if ( document.layers && document.layers[obj_id] ) {
	    document.layers[obj_id].display = 'none';
		document.layers[obj_id].visibility = 'hidden';
		document.layers[obj_id].zIndex = '10';
	}
	else if ( document.getElementById ) {
		document.getElementById(obj_id).style.display = 'none';
		document.getElementById(obj_id).style.visibility = 'hidden';
		document.getElementById(obj_id).style.zIndex = '10';
	}
}

function WriteDiv( id) {
	if ( nav == "Mic" )
		document.write( '<div id="' + id + '" style="position:relative; height:auto; z-index:1; display: none;">');
	else
		document.write( '<div id="' + id + '" style="position:relative; height:auto; z-index:1; display: none; visibility: hidden;">');
}

function WriteEndDiv() {
	document.write( '</div>');
}

// Ajouter cotebebe.fr à ses favoris
function addFav() {
	if ( nav == "Mic" && ver >= 4 ) {
		url_site = "http://www.cotebebe.fr";
		titre_site = "www.cotebebe.fr - La communauté des parents";
		document.write( '<a href="#" OnClick="window.external.AddFavorite(url_site, titre_site);return(false);" class="l_f">cotebebe dans mes favoris</a>');
	}
	else
		document.write( '<a href="#" OnClick="alertbookmark();" class="l_f">cotebebe dans mes favoris</a>');
}

// Fonction alternative de l'ajout aux favoris
function alertbookmark() {
	alert( 'Tapez Ctrl+Maj+D pour ajouter cotebebe à vos favoris');
}

// cotebebe.fr en home page du navigateur
function AfficheHomePage() {
	if ( nav == "Mic" && ver >= 4 )
		document.write( '<a href="#" class="l_f" OnClick="HomePage(this);return(false);">cotebebe en page d\'accueil</a>');
	else
		document.write( '<a href="#" class="l_f">cotebebe en page d\'accueil</a>');
}

function HomePage( obj) {
	obj.style.behavior = 'url(#default#homepage)';
	obj.setHomePage( 'http://www.cotebebe.fr');
}

// Validation du format de l'adresse e-mail
function CheckMail( MailData){
	correct = true;
	p = MailData.indexOf("@");

	if ( p != -1 )
		correct = ( MailData.indexOf( ".", p) != -1 );
	else
		correct = false;

	return correct;
}

function ValidateMail( FormName){
	if ( !CheckMail(FormName.value) ){
		alert( "Format d'adresse E-mail incorrect.\nVeuillez respecter un format de la forme : login@nom_domaine.ext .");
		FormName.focus();
		return false;
	}
}

// Vérifie si la donnée passée est bien un numeric
function IsNumeric( Data) {
	var It = true;
	var c;

	for ( var x=0 ; x<Data.length ; x++ ) {
		if ( It ) {
			c  = Data.charAt(x);
			It = ( NumChars.indexOf(c) != -1 );
		}
	}

	return It;
}

// Fonction de validation du format d'une date
function Valide_date( nDate, nA1, nA2, nFormat) {
	// Ajouter ce code dans la saisie du champs date
	//  onBlur="Valide_date(this,1950,2020,'jj/mm/aaaa')"
	// La date valide doit être entre 1950 et 2020.
	//    vous pouvez changer l'interval.
	// Format valide: (ne pas utiliser d'autre format...
	// - jj/mm/aaaa
	// - mm/jj/aaaa
	// - aaaa/mm/jj
	// Noter que vous devriez indiquer à l'usager le format valide...
	var ok = "oui";
	var nChar;
	var aDate;
	var nJ;
	var nM;
	var nA;
	var jMax = 31;
	nAccepte = "0123456789/";

	if ( nDate.value.length > 0 ) {
		if ( nDate.value.length < 8 || nDate.value.length > 10 ) ok = "non";
		for ( var i=0 ; i<nDate.value.length ; i++) {
			nChar = "" + nDate.value.substring( i, i+1);
			if ( nAccepte.indexOf(nChar) == "-1" ) ok = "non";
		}

		if ( ok == "oui" ) {
			aDate = nDate.value.split("/");
			if ( nFormat == "jj/mm/aaaa" ) {
				nJ = aDate[0];
				nM = aDate[1];
				nA = aDate[2];
			}
		  	else if ( nFormat == "mm/jj/aaaa" ) {
				nJ = aDate[1];
				nM = aDate[0];
				nA = aDate[2];
			}
			else if ( nFormat == "aaaa/mm/jj" ) {
				nJ = aDate[2];
				nM = aDate[1];
				nA = aDate[0];
			}
		  	if ( (nJ<1 || nJ>jMax) || (nM<1 || nM>12) || (nA<nA1 || nA>nA2) )
				ok = "non";
		  	else {
				if ( nM == 2 ) { 
			  		if ( AnneeBissex(nA) == true )
						jMax = 29;
					else 
						jMax = 28;
				}
			}
			if ( (nM == 1 || nM == 3 || nM == 5 || nM == 7 || nM == 8 || nM == 10 || nM == 12) ) jMax = 31;
			if ( (nM == 4 || nM == 6 || nM == 9 || nM == 11) ) jMax = 30;
			if ( nJ < 1 || nJ > jMax ) ok = "non";
		  }
    }

    return ( ok == "oui");
}

// Vérifie qu'il s'agit bien d'une suite de Codes Postaux
function ValidateCP( FormName, isRequired, alertMe) {
	if ( isRequired && FormName.value=="" ) {
		alert( "Vous devez saisir un code postal.");
		return false;
	}

	if ( !IsNumeric( FormName.value) ) {
		if ( alertMe )
			alert( "Format des codes postaux incorrect.\nVeuillez respecter un format de la forme : 94000 75 38 69100.");
		return false;
	}
	else
		return true;
}

// Validation d'une adresse
function ValidateADRESSE( FormName, validateTel) {
	if ( FormName.a_cp.value.length!=5 || !ValidateCP( FormName.a_cp, true, false) ) {
		alert( "Format du CODE POSTAL incorrect.\nVeuillez respecter un format de la forme 94160.");
		return false;
	}
	else if ( FormName.a_add1.value.length==0 || FormName.a_ville.value.length==0 ) {
		alert( "Les champs N° VOIE et VILLE sont obligatoires.");
		return false;
	}
	else if ( validateTel && ( FormName.tel.value.length!=0 && ( FormName.tel.value.length!=10 || !IsNumeric( FormName.tel.value) ) ) ) {
		alert( "Le numéro de téléphone doit respecter un format du type 0123456789 (10 chiffres sans espaces)");
		return false;
	}
	else
		return true;
}