﻿
	function GetProfileByEmail(str_formName, strEmailCtrlName, strUserIDCtrlName, strBirthDateCtrlName, strOccupationCodeCtrlName, strAddressIDCtrlName, strTitleCtrlName, strFirstNameCtrlName, strLastNameCtrlName, strAddressCtrlName, strCPCtrlName, strICCtrlName, strTelCtrlName, strInseeDefaultValueCtrlName, sUrl) {
	    var http_request = false;
	    var ctrl;
	    var i;
		ctrl = document.forms[str_formName].elements[strEmailCtrlName];
		
		if (TestEmail(trim(ctrl.value,' ')) == 0)
		{
	    	http_request = false;	
			
			if(document.all)
			{
				//Internet Explorer
				http_request = new ActiveXObject("Microsoft.XMLHTTP") ;
			}
			else
			{
				//Mozilla
				//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    			http_request = new XMLHttpRequest();
			}
			
			if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			}
			if (!http_request) {
			alert('Cannot create XMLHTTP instance');
			return false;
			}
			http_request.onreadystatechange = function()
			{
				if (http_request.readyState == 4) {
					if (http_request.status == 200) {
						var string = http_request.responseText;
						if(document.all)
							var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
						else
							{
								var xmlDoc = document.implementation.createDocument("", "", null);	
							}
							
						var strUserID="";
						var strAddressID="";
						var strAddress="";
						var strFirstName="";
						var strBirthDate="";
						var strOccupationCode="";
						var strLastName="";
						var strTitle="";
						var strTel="";
						var strZipCode="";
						var strInseeCode="";
						xmlDoc.loadXML(string);
						if (xmlDoc.selectSingleNode('//Profile_query/Id')){
							if (document.all){
								strUserID = xmlDoc.selectSingleNode('//Profile_query/Id').text;
								strBirthDate = xmlDoc.selectSingleNode('//Profile_query/BirthDate').text;
								strOccupationCode = xmlDoc.selectSingleNode('//Profile_query/OccupationCode').text;
							}
							else {
								strUserID = xmlDoc.selectSingleNode('//Profile_query/Id/text()');
								strBirthDate = xmlDoc.selectSingleNode('//Profile_query/BirthDate/text()');
								strOccupationCode = xmlDoc.selectSingleNode('//Profile_query/OccupationCode/text()');
							}
							if (xmlDoc.selectSingleNode('//Profile_query/address')){
								if (document.all){
									strAddressID = xmlDoc.selectSingleNode('//Profile_query/address/Id').text;
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address1').text != '')
										strAddress = xmlDoc.selectSingleNode('//Profile_query/address/Address1').text;
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address2').text != '')
										strAddress += xmlDoc.selectSingleNode('//Profile_query/address/Address2').text + ' ';
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address3').text != '')
										strAddress += xmlDoc.selectSingleNode('//Profile_query/address/Address3').text + ' ';
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address4').text != '')
										strAddress += xmlDoc.selectSingleNode('//Profile_query/address/Address4').text + ' ';
									strFirstName = xmlDoc.selectSingleNode('//Profile_query/address/FirstName').text;
									strLastName = xmlDoc.selectSingleNode('//Profile_query/address/lastName').text;
									strTitle = xmlDoc.selectSingleNode('//Profile_query/address/Title').text;
									strZipCode = xmlDoc.selectSingleNode('//Profile_query/address/ZipCode').text;
									strInseeCode = xmlDoc.selectSingleNode('//Profile_query/address/InseeCode').text;
									if (xmlDoc.selectSingleNode('//Profile_query/address/CellularPhoneNumber').text != '')
										strTel = xmlDoc.selectSingleNode('//Profile_query/address/CellularPhoneNumber').text;
									else
										strTel = xmlDoc.selectSingleNode('//Profile_query/address/HomePhoneNumber').text;
								}
								else {
									strAddressID = xmlDoc.selectSingleNode('//Profile_query/address/Id/text()');
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address1/text()') != '')
										strAddress = xmlDoc.selectSingleNode('//Profile_query/address/Address1/text()');
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address2/text()') != '')
										strAddress += xmlDoc.selectSingleNode('//Profile_query/address/Address2/text()') + ' ';
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address3/text()') != '')
										strAddress += xmlDoc.selectSingleNode('//Profile_query/address/Address3/text()') + ' ';
									if (xmlDoc.selectSingleNode('//Profile_query/address/Address4/text()') != '')
										strAddress += xmlDoc.selectSingleNode('//Profile_query/address/Address4/text()') + ' ';
									strFirstName = xmlDoc.selectSingleNode('//Profile_query/address/FirstName/text()');
									strLastName = xmlDoc.selectSingleNode('//Profile_query/address/lastName/text()');
									strTitle = xmlDoc.selectSingleNode('//Profile_query/address/Title/text()');
									strZipCode = xmlDoc.selectSingleNode('//Profile_query/address/ZipCode/text()');
									strInseeCode = xmlDoc.selectSingleNode('//Profile_query/address/InseeCode/text()');
									if (xmlDoc.selectSingleNode('//Profile_query/address/CellularPhoneNumber/text()') != '')
										strTel = xmlDoc.selectSingleNode('//Profile_query/address/CellularPhoneNumber/text()');
									else
										strTel = xmlDoc.selectSingleNode('//Profile_query/address/HomePhoneNumber/text()');
								}
								if (strAddress != '')
									strAddress = strAddress.substring(0, strAddress.length - 1);
							}
							
							document.forms[str_formName].elements[strUserIDCtrlName].value = strUserID;
							document.forms[str_formName].elements[strBirthDateCtrlName].value = strBirthDate;
							document.forms[str_formName].elements[strOccupationCodeCtrlName].value = GetOccupationNumber(strOccupationCode);
							document.forms[str_formName].elements[strAddressIDCtrlName].value = strAddressID;
							document.forms[str_formName].elements[strTitleCtrlName].value = strTitle;
							document.forms[str_formName].elements[strFirstNameCtrlName].value = strFirstName;
							document.forms[str_formName].elements[strLastNameCtrlName].value = strLastName;
							document.forms[str_formName].elements[strAddressCtrlName].value = strAddress;
							document.forms[str_formName].elements[strInseeDefaultValueCtrlName].value = strInseeCode;
							document.forms[str_formName].elements[strCPCtrlName].value = strZipCode;
							//document.forms[str_formName].elements[strICCtrlName].value = strInseeCode;
							document.forms[str_formName].elements[strTelCtrlName].value = strTel;
							document.forms[str_formName].elements[strCPCtrlName].focus();
							document.forms[str_formName].elements[strTelCtrlName].focus();
							
							
							
						}
						else 
						{
							document.forms[str_formName].elements[strUserIDCtrlName].value = '';
							document.forms[str_formName].elements[strAddressIDCtrlName].value = '';
						}
					

					} 
					else {
						//ctrl.innerHTML = 'There was a problem with the request.';
					}
				}
			}		
			http_request.open('GET', sUrl + '?email=' + ctrl.value, true);
			http_request.send(null);
		}
	}
	
	
	function GetCity(str_formName, strZipCodeCtrlName, strSelectName, strInseeDefaultValueCtrlName, sUrl) {
	    var http_request = false;
	    var ctrl;
	    var default_ctrl;
	    var i;

		ctrl = document.forms[str_formName].elements[strZipCodeCtrlName];
		default_ctrl = document.forms[str_formName].elements[strInseeDefaultValueCtrlName];
		
		if (testCP(ctrl.value) ) 
		{
	    	http_request = false;	
			
			if(document.all)
			{
				//Internet Explorer
				http_request = new ActiveXObject("Microsoft.XMLHTTP") ;
			}
			else
			{
				//Mozilla
				//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    			http_request = new XMLHttpRequest();
			}
			
			if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			}
			if (!http_request) {
			alert('Cannot create XMLHTTP instance');
			return false;
			}
			http_request.onreadystatechange = function()
			{
				if (http_request.readyState == 4) {
					if (http_request.status == 200) {
					var string = http_request.responseText;
					if(document.all)
						var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
					else
						{
							var xmlDoc = document.implementation.createDocument("", "", null);	
						}
						
					var nodes;
		  			var Array_result = new Array();
					var Array_Values_result = new Array();
					xmlDoc.loadXML(string);
					if (xmlDoc.selectSingleNode("//zipcode_query")){
						nodes = xmlDoc.selectNodes("//result");
						var i_pos=0;
						if (nodes.length > 1){
							Array_result[0]= "-- Sélectionnez --";
							Array_Values_result[0]= '-- Sélectionnez --';
							i_pos++;
						}
						if (nodes.length == 0){
							Array_result[0]= 'non trouvé';
							Array_Values_result[0]= 'sans objet';
							alert("Votre code postal n'a pas été trouvé, merci de le vérifier. Indiquez le code postal de votre commune et non votre code cedex");
							i_pos++;
						}
						
						for(i=0;i<nodes.length;i++){
							if (document.all){
							
								Array_result[i_pos]= xmlDoc.selectSingleNode('//zipcode_query/result[' + i.toString() + ']/city').text;
								
								Array_Values_result[i_pos]= xmlDoc.selectSingleNode('//zipcode_query/result[' + i.toString() + ']/insee').text;
								
								i_pos++;
							}
							else {
								var xItems = xmlDoc.selectNodes('//zipcode_query/result/city/text()');
								var y;
								for( y = 0; y < xItems.length; y++ )  {     
									Array_result[i_pos + y]= xItems[y].nodeValue;
								}  
								xItems = xmlDoc.selectNodes('//zipcode_query/result/insee/text()');
								var y;
								for( y = 0; y < xItems.length; y++ )  {     
									Array_Values_result[i_pos + y]= xItems[y].nodeValue;
								}  
							}
						}
						if (testNewList(str_formName,Array_result,Array_Values_result,strSelectName)){
							var defaultValue;
							if (default_ctrl.value == '')
								defaultValue = Array_Values_result[0];
							else
								defaultValue = default_ctrl.value;
			  				LoadList(Array_result,Array_Values_result,strSelectName,defaultValue,str_formName,default_ctrl.value);
			  			}
					}
					

					} 
					else {
						//ctrl.innerHTML = 'There was a problem with the request.';
					}
				}
			}
			http_request.open('GET', sUrl + '?ZC=' + ctrl.value, true);
			http_request.send(null);
		}
	}
	
	
	function testNewList(str_formName,strArray,strArray_values,strSelectName){
		var SelectCtrl = document.forms[str_formName].elements[strSelectName];
		var i;
		var b_return = false;
		for (i=0;i<SelectCtrl.length;i++){
			if ((SelectCtrl.options[i].text != strArray[i]) || (SelectCtrl.options[i].value != strArray_values[i])) {
				b_return = true;
				break;
			}
		}
		return b_return;
	}
	
	if( document.implementation.hasFeature("XPath", "3.0") )
	{
		XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
		{
			if( !xNode ) { xNode = this; } 

			var oNSResolver = this.createNSResolver(this.documentElement)
			var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
			var aResult = [];
			for( var i = 0; i < aItems.snapshotLength; i++)
			{
				aResult[i] =  aItems.snapshotItem(i);
			}
			
			return aResult;
		}
		XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
		{
		
			if( !xNode ) { xNode = this; } 

			var xItems = this.selectNodes(cXPathString, xNode);
			if( xItems.length > 0 )
			{
				return xItems[0];
			}
			else
			{
				return null;
			}
		}

		Element.prototype.selectNodes = function(cXPathString)
		{
			if(this.ownerDocument.selectNodes)
			{
				return this.ownerDocument.selectNodes(cXPathString, this);
			}
			else{throw "For XML Elements Only";}
		}

		Element.prototype.selectSingleNode = function(cXPathString)
		{	
			if(this.ownerDocument.selectSingleNode)
			{
				return this.ownerDocument.selectSingleNode(cXPathString, this);
			}
			else{throw "For XML Elements Only";}
		}
		Document.prototype.loadXML = function(s) {
		var doc2 = (new DOMParser()).parseFromString(s,"text/xml");
		while (this.hasChildNodes()) {
			this.removeChild(this.lastChild);
		}
		for (var i = 0; i != doc2.childNodes.length; i++) {
			this.appendChild(this.importNode(doc2.childNodes[i],true));
		}
		}
	}	
	
	function GetOccupationNumber(strOccupation){
		switch(strOccupation){
			case "SALARIE_CADRE":
				return "1";
			case "SALARIE":
				return "2";
			case "COMMERCANT":
				return "3";
			case "FONCTIONNAIRE":
				return "4";
			case "ENSEIGNANT":
				return "5";
			case "AGRICULTEUR":
				return "6";
			case "ARTISAN":
				return "7";
			case "CHEF_D_ENTREPRISE":
				return "8";
			case "PROFESSION_LIBERALE":
				return "9";
			case "VRP":
				return "10";	
			case "ETUDIANT":
				return "11";
			case "RETRAITE":
				return "12";
			case "SANS_PROFESSION":
				return "13";
			case "RECHERCHE_D_EMPLOI":
				return "14";
			case "PROFESSION_DU_SPECTACLE":
				return "15";
			case "FORAIN":
				return "16";
		}
	}
						