var moz = (document.implementation && document.implementation.createDocument); 
var ie = (window.ActiveXObject); 
var xmlHTTP;

var INTEGERS = "0123456789";
var REALS = "0123456789.,";
var CHARS    = "aàbcçdeéèëfghiïîjklmnopqrstuüùvwxyz -"; 
var LOGIN = "abcdefghijklmnopqrstuvwxyz0123456789-._"
var LETTERS = "abcdefghijklmnopqrstuvwxyz ";
var SEPAR   = "-.";
var PONCT   = ",;:/()[]\"'@=+-_?!$*£%&~";
var NET	    = "@&-.=";
var VIRG	= ",.";

////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////   Styles   //////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
function InitRadioAndCheckBox()
{
	var form = window.document.forms[0];

	for(x=0; x<form.elements.length; x++) 
	{
		if ((form.elements[x].type=="checkbox") || (form.elements[x].type=="radio")) 
		{ 	
			// Style : Disable la bordure:
			form.elements[x].style.borderWidth = "0px";
			form.elements[x].style.backgroundColor="white";
			form.elements[x].style.width= "20px";
			form.elements[x].style.textalign= "center";
			form.elements[x].style.verticalAlign = "middle";		
		}
	}
} 
function InitStyle(elm) {
	elm.className = "box";
}

function SetStyleErr(elm) {
	elm.className = "box-error";
}

function ApplyStyleInitialisation() {
	var nodes = document.getElementsByTagName("input");
	for (var i=0; i<nodes.length; i++) 
	{
		//if (nodes[i].getAttribute("type") == "text" || nodes[i].getAttribute("type") == "password" || nodes[i].getAttribute("type") == "file")
		if (nodes[i].getAttribute("type") != "checkbox" && nodes[i].getAttribute("type") != "radio")
		{
			InitStyle(nodes[i]);
		}
	}
	
	nodes = document.getElementsByTagName("select");
	for (var i=0; i<nodes.length; i++) 
	{
		InitStyle(nodes[i]);
	}
}

function CheckRequierdElement(form)
{
	var res = false;
	//var nodes = document.getElementsByTagName("input");
	//if (nodes)
	//for (var i=0; i<nodes.length; i++) 
	for (var i=0; i<form.elements.length; i++) 
	{
		if (form.elements[i].getAttribute("type") == "text" && form.elements[i].getAttribute("required") == "true")
		{
			if (form.elements[i].value == "")
			{
				SetStyleErr(form.elements[i]);
				res = true;
			}
			else
				InitStyle(form.elements[i]);
		}
	}

	for (var j=0; j<form.elements.length; j++) 
	{
		if (form.elements[j].options)
		{
			if (form.elements[j].getAttribute("required") == "true")
			{
				if (form.elements[j].options.length != 0)
				{
					var elmVal = form.elements[j].options[form.elements[j].selectedIndex].text;
					if (elmVal.indexOf('---') != -1 || elmVal == "")
					{
						SetStyleErr(form.elements[j]);
						res = true;
					}
					else
						InitStyle(form.elements[j]);
				}
				else
				{
					SetStyleErr(form.elements[j]);
					res = true;
				}
			}
		}
	}
	return res;
}


function ModifyBGColor(id, newColor)
{
	var mElement = document.getElementById(id);
	mElement.style.backgroundColor = newColor;
}
function ModifyTextColor(id, newColor)
{
	var mElement = document.getElementById(id);
	mElement.style.color = newColor;
}
function ModifyBoxSize(id, newWidth, newHeight)
{
	var mElement = document.getElementById(id);
	mElement.style.width = newWidth;
	mElement.style.height = newheight;
}
function ModifyBoxPosition(id, newLeft, newTop)
{
	var mElement = document.getElementById(id);
	mElement.style.left = newLeft;
	mElement.style.top = newTop;
}

////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////   Fonctions utiles communes   //////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////

function Display(id, div)
{
	if (document.getElementById(id).selectedIndex == 0)
		document.getElementById(div).style.display = "block";
	else
		document.getElementById(div).style.display = "none";
	
}

function DisplayHide(id)
{
	if (document.getElementById(id).style.display == "none")
		document.getElementById(id).style.display = "block";
	else
		document.getElementById(id).style.display = "none";
}

function swapMenu(n)
{
	window.focus();
	d=document.getElementById('d'+n);

	if (d.style.display=="none")
		{
			d.style.display="block";
		}
	else
		{
			d.style.display="none";
		}
}

function GoBack()
{
	if (moz)
	{
		if (location.href.indexOf('moto_page3.gsp') != -1)
		{
			var nbr = parseInt(document.getElementById('NbrRetour').value);
			nbr = -(2*nbr + 1);
			if (location.href.charAt(location.href.length - 1) == "#")
				nbr -= 1;
			//alert(nbr)
			location.href = "javascript:window.history.go("+nbr+")";

		}
		else
		{
			if (location.href.charAt(location.href.length - 1) != "#")
				location.href = "javascript:window.history.go(-1)";
			else
				location.href = "javascript:window.history.go(-2)";
		}
	}
	else
	{
		if (location.href.indexOf('moto_page3.gsp') != -1)
		{
			var nbr = parseInt(document.getElementById('NbrRetour').value);
			nbr = -(nbr + 1);
			location.href = "javascript:window.history.go("+nbr+")";
		}
		else
			location.href = "javascript:window.history.go(-1)";
	}
}

function openWindow(obj, url)
{
	window.open(url);
}

function CallGSPMethod(ValueName)
{
	window.document.GENERIC_FORM.Opération.value = ValueName;
	window.document.GENERIC_FORM.submit();
}

function sleep(millis) 
{
	var date = new Date();
	var curDate = null;
	
	do { curDate = new Date(); } 
	while(curDate-date < millis);
} 


// Gestion des cookies //
/*function setCookie(c_name, value, expiredays) 
{
 	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name) {
 if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
		c_start=c_start + c_name.length+1; 
		c_end=document.cookie.indexOf(";",c_start);
		if (c_end==-1) c_end=document.cookie.length;
		return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
  return "";
 }*/
 
 function setCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	setCookie(name,"",-1);
}

function checkEmail(emailAddr) {
	// Cette fonction vérifie la bon format d'une adresse e-mail.
	// Comme :
	// user@domain.com ou user.perso@domain.com
	
	var i;	
	// Recherche de @
	i = emailAddr.indexOf("@");
	if (i == -1) {
		return false;
	}
	
	// Séparation du nom de l'utilisateur et du nom de domaine.
	var username = emailAddr.substring(0, i);
	var domain = emailAddr.substring(i + 1, emailAddr.length)

	// Recherche des espaces au début du nom de l'utilisateur.
	i = 0;
	while ((username.substring(i, i + 1) == " ") && (i < username.length)) {
		i++;
	}
	// Les enlève s'il en trouve.
	if (i > 0) {
		username = username.substring(i, username.length);
	}

	// Recherche d'espaces à la fin du nom de domaine.
	i = domain.length - 1;
	while ((domain.substring(i, i + 1) == " ") && (i >= 0)) {
		i--;
	}
	// Les enlève s'il en trouve.
	if (i < (domain.length - 1)) {
		domain = domain.substring(0, i + 1);
	}

	// Vérifie que le nom de l'utilisateur et du domaine ne soit pas vide.
	if ((username == "") || (domain == "")) {
		return false;
	}
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de l'utilisateur.
	var ch;
	for (i = 0; i < username.length; i++) {
		ch = (username.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || 
			((ch >= "0") && (ch <= "9")) ||
			(ch == "_") || (ch == "-") || (ch == "."))) {
				return false;
		}
	}
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de domaine
	for (i = 0; i < domain.length; i++) {
		ch = (domain.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || 
			((ch >= "0") && (ch <= "9")) ||
			(ch == "_") || (ch == "-") || (ch == "."))) {
				return false;
		}
	}

	// Ajouter ci-dessous de nouveaux noms de domaine.
	// Voir tous les noms de domaine sur http://www.toulouse-renaissance.net/c_outils/c-nom-domaine.htm
	//
	var aSuffix = new Array("com","net","int","aero","biz","museum","name","info","coop","pro","eu","edu","org","gov","mil","bj","dz","de","ad","be","ca","bf","bi","cm","cf","cg","cd","ci","dj","fr","ga","gp","gf","lu","mg","ml","ma","mq","mr","mc","nc","pf","re","pm","sn","ch","td","tf","tn");
	var bFoundSuffix = false;
	i = 0;
	while (i < aSuffix.length) {
		if (("." + aSuffix[i]) == domain.substring(domain.length - aSuffix[i].length - 1, domain.length)) {
			return true;
		}
		i++;
	}
	// Si le nom de domaine est inconnu  : return false
	return false;
	
}

function AllCharsOfAreIn(String1, String2) {
	for(i = 0 ; i < String1.length ; i++) {
		if(String2.indexOf(String1.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}

function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  return newnumber;
}

function IsDateValide(date) { //------------- Szou 18-06-08  retourne si la date est valide 
	d = new Date();
	var tab = date.split("/");
	var DayItem = tab[0];//date.substr(0,2);
	var MonthItem = tab[1];//date.substr(3,2);
	var YearItem = tab[2];//date.substr(6,4);		
	// Définition du dernier jour de février
	// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
	var fev;
	if (YearItem%4 == 0 && YearItem%100 !=0 || YearItem%400 == 0) 
		fev = 29;
	else
		fev = 28;

	// Nombre de jours pour chaque mois
	var nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
	if(date.length == 10) {
		// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
		return ( MonthItem >= 1 && MonthItem <=12 && DayItem >= 1 && DayItem <= nbJours[MonthItem-1] ); 
	}
	return false;
}

function IsDateAfterStrict(date_from, date_to) {
	if( date_from.getYear() > date_to.getYear() )  {
	
		return true ;
	} else if( date_from.getYear() == date_to.getYear() ) {
	
		if( date_from.getMonth() > date_to.getMonth() ) {
	
			return true;
		} else if( date_from.getMonth() == date_to.getMonth() )  {
	
			if( date_from.getDate() > date_to.getDate() ){
				return true;
			} 
		}
	}
	return false;
}
function IsDateAfter(date_from, date_to) {
	if( date_from.getFullYear() > date_to.getFullYear() )  {
		return true ;
	} else if( date_from.getFullYear() == date_to.getFullYear() ) {
		if( date_from.getMonth() > date_to.getMonth() ) {
			return true;
		} else if( date_from.getMonth() == date_to.getMonth() )  {		
			if( date_from.getDate() >= date_to.getDate() ){	
				return true;
			} 
		}
	}
	return false;
}

function IsDateBeforeStrict(date_from, date_to) {
	if( date_from.getFullYear() < date_to.getFullYear() )  {
		return true ;
	} else if( date_from.getFullYear() == date_to.getFullYear() ) {
		if( date_from.getMonth() < date_to.getMonth() ) {
			return true;
		} else if( date_from.getMonth() == date_to.getMonth() )  {
			if( date_from.getDate() < date_to.getDate() ){
                             return true;
			} 
		}
	}
	return false;
}

function IsDateBefore(date_from, date_to) {
	if( date_from.getFullYear() < date_to.getFullYear() )  {
		return true ;
	} else if( date_from.getFullYear() == date_to.getFullYear() ) {
		if( date_from.getMonth() < date_to.getMonth() ) {
			return true;
		} else if( date_from.getMonth() == date_to.getMonth() )  {
			if( date_from.getDate() <= date_to.getDate() ){
                             return true;
			} 
		}
	}
	return false;
}

function DateFromBeforeDateToByYear(date_from, date_to, diff) {
	var tab = date_from.split("/");
	var DayFromItem = tab[0];//date_from.substr(0,2);
	var MonthFromItem = tab[1];//date_from.substr(3,2);
	var YearFromItem = tab[2];//date_from.substr(6,4);
	date_from = new Date(YearFromItem, MonthFromItem-1, DayFromItem);
	
	var tab2 = date_to.split("/");
	var DayToItem = tab2[0];//date_to.substr(0,2);
	var MonthToItem = tab2[1];//date_to.substr(3,2);
	var YearToItem = tab2[2];//date_to.substr(6,4);
	date_to = new Date(YearToItem, MonthToItem-1, DayToItem);
	
	year = date_to.getFullYear() - diff;
	if( date_from.getFullYear() > year )  {
		return false ;
	} else if( date_from.getFullYear() == year ) {
		if( date_from.getMonth() > date_to.getMonth() ) {
			return false;
		} else if( date_from.getMonth() == date_to.getMonth() )  {
			if( date_from.getDate() > date_to.getDate() ){
                             return false;
			} 
		}
	}
	return true;
}

function CheckName(theName) {
	if(theName.length > 0) {
		return AllCharsOfAreIn(theName.toLowerCase(), CHARS);
	} else {
		return false;
	}
}

function CheckTelephone(theNumber) {
	if(theNumber.length > 0) 
		if(theNumber.length == 10) 
			return AllCharsOfAreIn(theNumber, INTEGERS);
		else
			return false;
	else
		return false;
}

function CheckPostalCode(theNumber) {
	if(theNumber.length != 5) {
		return false;
	}
	return AllCharsOfAreIn(theNumber, INTEGERS);
}

function trim (myString) 
{ 
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

var myWaitingWindow;
function ShowWait(FileName) {
	//afficher fenetre attente
	hauteur = 287;
	largeur  = 468;
	var X=(screen.height-100)/2;
	var Y=(screen.width-500)/2;
	if (navigator.appName == 'Netscape') {
		Parameters="menubar=no,resizable=no,screenX=" + X + ",screenY=" + Y;
		Parameters = Parameters + ",innerHeight=" + hauteur + ",innerWidth=" + largeur;
	} else {
		Parameters = "height=" + hauteur + ",width=" + largeur + ",left=" + X + ",top=" + Y;
	}
	myWaitingWindow=window.open(FileName, "Waiting",Parameters);
}
function closeWaitingWindow() {
	if (myWaitingWindow != null) {
		myWaitingWindow.close();
	}
}

//---------------------------------- Transmettre les données depuis la page Tarification_Devis
function ViewGarantie(){
	var form = window.document.GENERIC_FORM;
	
	var PolCivil    = form.elements[3].value;
	var PolPName    = form.elements[4].value;		
	var QuoteRef 	= form.elements[5].value;
	
	var Prime_Annuelle0 = form.elements[6].value;
	var Prime_Mois0 	= form.elements[7].value;
	var Prime_Annuelle1 = form.elements[8].value;
	var Prime_Mois1 	= form.elements[9].value;
	var Prime_Annuelle2 = form.elements[10].value;
	var Prime_Mois2 	= form.elements[11].value;
	var Pemail 			= form.elements[12].value;
	//----------------------------------------------------------------------------------------- Constitution de l'Url
	
	var infoUrl = '?PolCivil='+PolCivil+'&PolPName='+PolPName+'&RefC='+QuoteRef+'&PrimA1='+Prime_Annuelle0+'&PrimM1='+Prime_Mois0+'&PrimA2='+Prime_Annuelle1+'&PrimM2='+Prime_Mois1+'&PrimA3='+Prime_Annuelle2+'&PrimM3='+Prime_Mois2+'&PeMail='+Pemail+'';
	parent.location.href='/Sante/Tarification_Devis.asp'+infoUrl;
}

//---


// --------------------------------------------------- Début Overlib - ouverture de event survoler les i infos
window.document.write("<div id='overDiv' style='position:absolute; visibility:hidden; z-index:1000;'></div>");
function OnSurvol(code)
{
	if (code =="option")//------------ contenu de l'i infos AGE cond
	{
		overlib('<iframe src="../infos/protection_pilote.htm" style="width:306;height:111;border=0" frameborder="no" scrolling="no"></iframe>');
	}
	/*else if (code =="option125")
	{
		overlib('<iframe src="../infos/option125" style="width:376;height:109;border=0" frameborder="no" scrolling="no"></iframe>');
	}*/
}

function CloseSurvol()
{
	nd();
}

/////////  AJAX

function initialiseAnHttpRequest(url)
{
	if (moz)    { xmlHTTP = new XMLHttpRequest();}
   	else if (ie) { xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP');}		
	if (xmlHTTP!=null)
 	{
		//Mode synchrone
		xmlHTTP.onreadystatechange=state_Change;
		xmlHTTP.open("GET",url,false);
		//Mode asynchrone
		xmlHTTP.send(null);
  	}
	else
  	{
  		alert("Your browser does not support XMLHTTP.");
  	}
	
}

function state_Change()
{
	if (xmlHTTP.readyState==4)
  	{
		if (xmlHTTP.status==200)
    		{
    			// ...some code here...
    		}
 	 	else
    		{
    			alert("Problem retrieving XML data. Status's code is ="+xmlHTTP.status)
    		}
  	}
	
}

//------------ Gérer le passage de la var 'name' avec le GSP
function SetSession(name, val)
{
	initialiseAnHttpRequest('/infos/SetSession.asp?name='+name+'&value='+val);	
}

function GetSession(name)
{
	url = '/infos/GetSession.asp?name='+name; 
   	initialiseAnHttpRequest(url);
	var xml;
	var node;

	var res = "";
	if (ie)
	{
		xml = xmlHTTP.responseXML;
		var docXML= xmlHTTP.responseXML.documentElement;
		res = xml.childNodes(1).getAttribute('value');
	}
	else if (moz)
	{
		xml = xmlHTTP.responseXML;
		var docXML= xmlHTTP.responseXML.documentElement;

		res = docXML.textContent;
	}
	return res;
}

// ajouter le code offre dans les liens dirigeant vers les DEVIS
function AppendCodeOffreToHREF(tag)
{
	GetCodeOffre();
	var codeoffre = GetSession('codeoffre');
	if (codeoffre != '')
	{
		var nodes = document.getElementsByTagName(tag);
		for (var i=0; i<nodes.length; i++) 
		{
			if (nodes[i].getAttribute("name") == "HrefVotreDevis")
				nodes[i].href += "?codeoffre=" + codeoffre;
		}
	}
}

function GetCodeOffre()
{
	var codeoffre = '';
	var url = '';
	url = document.location.href;
	if(url.indexOf('codeoffre') != -1)
	{
		codeoffre = url.substr(url.indexOf('codeoffre')+10);
		if (codeoffre.indexOf('#') == (codeoffre.length-1))
			codeoffre = codeoffre.substr(0, codeoffre.length-1)
		SetSession("codeoffre", codeoffre)
	}
	return codeoffre;
}