/*****************************************************************************************************/
/*                                                                                                   */
/*                                  'NEWSLETTER PANEL' CLASS                                         */          
/*                                                                                                   */
/*****************************************************************************************************/

function NEWSLETTER_GINFO(parent){
	var JSObject = this;
	this.type = "Newsletter"; 
	this.arr_inputs = ["_inp_Lastname","_inp_Firstname","_inp_Email","_inp_Company","_inp_Address",
					   "_inp_Postcode","_inp_City","_inp_Country","_inp_Phone"];
	this.form = document.getElementById("newsletter_form");
	this.ajax = false;
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                            FUNCTION INIT INPUTS NEWSLETTER PANEL                                  */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.init = function(){
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                          INFORMATION                                              */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this._inp_Lastname = new INPUTFIELD(this, document.getElementById('newsletter_lastname'));
		this._inp_Firstname = new INPUTFIELD(this, document.getElementById('newsletter_firstname'));
		this._inp_Gender = new INPUTFIELD(this, document.getElementById('newsletter_gender'));
		this._inp_Email = new INPUTFIELD(this, document.getElementById('newsletter_email'));
		this._inp_Company = new INPUTFIELD(this, document.getElementById('newsletter_company'));
		this._inp_Address = new INPUTFIELD(this, document.getElementById('newsletter_address'));
		this._inp_Postcode = new INPUTFIELD(this, document.getElementById('newsletter_postcode'));
		this._inp_City = new INPUTFIELD(this, document.getElementById('newsletter_city'));
		this._inp_Country = new INPUTFIELD(this, document.getElementById('newsletter_country'));
		this._inp_Phone = new INPUTFIELD(this, document.getElementById('newsletter_phone'));
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION CREATE RECOVERPASSWORD PANEL                            */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initCreate = function(){
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LASTNAME' ACTIONS                                     */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Lastname.input;
		this._inp_Lastname.setRequired("yes"); 
		this._inp_Lastname.setReadySubmit(false);
		this._inp_Lastname.setValidationType("alpha_extended");
		var extentedChars = String(" '-ÀÂÆÇÉÊËÌ�?Îàáâãäæçèéêëìíîïòóôõöùûüý").split("");
		this._inp_Lastname.addExtendedChars(extentedChars);
		var errors = ["Champ obligatoire.",
			          "Seules les lettres sont autoris&eacute;s."];
		this._inp_Lastname.addErrors(errors);
		this._inp_Lastname.setErrorsContainer("newsletter_lastname_container");
		this._inp_Lastname.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'FIRSTNAME' ACTIONS                                    */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Firstname.input;
		this._inp_Firstname.setRequired("yes"); 
		this._inp_Firstname.setReadySubmit(false);
		this._inp_Firstname.setValidationType("alpha_extended");
		var extentedChars = String(" '-ÀÂÆÇÉÊËÌ�?Îàáâãäæçèéêëìíîïòóôõöùûüý").split("");
		this._inp_Firstname.addExtendedChars(extentedChars);
		var errors = ["Champ obligatoire.",
			          "Seules les lettres sont autoris&eacute;s."];
		this._inp_Firstname.addErrors(errors);
		this._inp_Firstname.setErrorsContainer("newsletter_firstname_container");
		this._inp_Firstname.initActions();
		
		
		
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'EMAIL' ACTIONS                                        */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Email.input;
		this._inp_Email.setRequired("yes");
		this._inp_Email.addData(input.value);
		if (this._inp_Email.data.length > 1){
			this._inp_Email.setReadySubmit(true);
		}
		else{
			this._inp_Email.setReadySubmit(false);	
		}
		this._inp_Email.setValidationType("email");
		this._inp_Email.setValidationNetworkType("server");
		this._inp_Email.setAJAXFunction(function (data){
													// alert(document.getElementById("checkregisterpath").value+" "+'email='+data);
													Email.www.post(LOCALPATH+"check_email.php",
																 'email='+data, 
																  function(response) {
																	  //alert(response)
																	  if (parseInt(response)==1){
																		Email.displayError(Email.errors[2]);
																		Email.setReadySubmit(false);
																		Email.ajaxReturn = false;
																		JSObject.ajax = false;
																	  }
																	  else{
																		Email.hideError();
																		Email.setReadySubmit(true);
																		Email.ajaxReturn = true;
																		Email.return_validateF();
																	  }
																	  Email.www = new WWW(true,'xmlhttp'); 
																	}
																 );
															});
		
		var errors = ["Champ obligatoire.",
					  "L'adresse e-mail n'est pas valide.",
					  "Email d&eacute;j&agrave; enregistr&eacute; !"];
		this._inp_Email.addErrors(errors);
		this._inp_Email.setErrorsContainer("newsletter_email_container");
		var Email = this._inp_Email;
		this._inp_Email.www = new WWW(true,'xmlhttp');
		this._inp_Email.validateF = function(){
			//alert("Email1:" + JSObject.ajax)
			if (this.submit_ready == true){
				this.ajaxF(this.data);
				this.ajaxReturn = false;
			}
			else{
				JSObject.ajax = false;	
			}
		}
		this._inp_Email.return_validateF = function(){
			//alert("Email2:" + JSObject.ajax)
			if (JSObject.ajax == true){
				//alert("aici")
				JSObject.validate();
			}
		}
		this._inp_Email.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'COMPANY' ACTIONS                                      */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Company.input;
		this._inp_Company.setRequired("yes"); 
		this._inp_Company.setReadySubmit(false);
		this._inp_Company.setValidationType("alphanumeric_extended");
		var extentedChars = String(" :;',./?!@#$%^*()[]{}|-+À�?Â�?ÆÇ�?ÉÊËÌ�?Îàáâãäæçèéêëìíîïòóôõöùûüý»").split("");
		this._inp_Company.addExtendedChars(extentedChars);
		var errors = ["Champ obligatoire.",
			          "Caractères invalides."];
		this._inp_Company.addErrors(errors);
		this._inp_Company.setErrorsContainer("newsletter_company_container");
		this._inp_Company.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'ADDRESS' ACTIONS                                      */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Address.input;
		this._inp_Address.setRequired("no"); 
		this._inp_Address.setReadySubmit(true);
		this._inp_Address.setValidationType("alphanumeric_extended");
		var extentedChars = String(" :;',./?!@#$%^*()[]{}|-+À�?Â�?ÆÇ�?ÉÊËÌ�?Îàáâãäæçèéêëìíîïòóôõöùûüý»").split("");
		this._inp_Address.addExtendedChars(extentedChars);
		var errors = ["Champ obligatoire.",
			          "Caractères invalides."];
		this._inp_Address.addErrors(errors);
		this._inp_Address.setErrorsContainer("newsletter_address_container");
		this._inp_Address.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'POSTCODE' ACTIONS                                     */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Postcode.input;
		this._inp_Postcode.setRequired("no"); 
		this._inp_Postcode.setReadySubmit(true);
		this._inp_Postcode.setValidationType("alphanumeric");
		var errors = ["Champ obligatoire.",
			          "Seul les lettres et num&eacute;ros sont autoris&eacute;s."];
		this._inp_Postcode.addErrors(errors);
		this._inp_Postcode.setErrorsContainer("newsletter_postcode_container");
		this._inp_Postcode.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'CITY' ACTIONS                                         */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_City.input;
		this._inp_City.setRequired("no"); 
		this._inp_City.setReadySubmit(true);
		this._inp_City.setValidationType("alphanumeric_extended");
		var extentedChars = String(" :;',./?!@#$%^*()[]{}|-+À�?Â�?ÆÇ�?ÉÊËÌ�?Îàáâãäæçèéêëìíîïòóôõöùûüý»").split("");
		this._inp_City.addExtendedChars(extentedChars);
		var errors = ["Champ obligatoire.",
			          "Caractères invalides."];
		this._inp_City.addErrors(errors);
		this._inp_City.setErrorsContainer("newsletter_city_container");
		this._inp_City.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'COUNTRY' ACTIONS                                      */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Country.input;
		this._inp_Country.setRequired("no"); 
		this._inp_Country.setReadySubmit(true);
		this._inp_Country.setValidationType("alphanumeric_extended");
		var extentedChars = String(" :;',./?!@#$%^*()[]{}|-+À�?Â�?ÆÇ�?ÉÊËÌ�?Îàáâãäæçèéêëìíîïòóôõöùûüý»").split("");
		this._inp_Country.addExtendedChars(extentedChars);
		var errors = ["Champ obligatoire.",
			          "Caractères invalides."];
		this._inp_Country.addErrors(errors);
		this._inp_Country.setErrorsContainer("newsletter_country_container");
		this._inp_Country.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'PHONE' ACTIONS                                        */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Phone.input;
		this._inp_Phone.setRequired("no"); 
		this._inp_Phone.setReadySubmit(true);
		this._inp_Phone.setValidationType("numeric");
		var errors = ["Champ obligatoire.",
			          "Seules les num&eacute;ros sont autoris&eacute;s."];
		this._inp_Phone.addErrors(errors);
		this._inp_Phone.setErrorsContainer("newsletter_phone_container");
		this._inp_Phone.initActions();
		
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                             FUNCTION SERVER VALIDATE(AJAX - Email)                                */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initServerValidate = function(){
		this.ajax = true;
		
		if (this._inp_Email.submit_ready == true){
			this._inp_Email.validateF();	
		}
		else{
			this.validate();
		}
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                 FUNCTION VALIDATE INFORMATION                                     */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.validate = function(){
		this.ajax = false;
		
		var countErrors = 0;
		// aflam cate erori sunt in formular
		for (var i=0; i<this.arr_inputs.length; i++){
			var obj = this[this.arr_inputs[i]];
			if (obj.submit_ready == false && obj.data.length == 0 && obj.required=="yes"){
				//alert("1")
				obj.displayError(obj.errors[0]);
				obj.setReadySubmit(false);
				countErrors++;
			}
			else if (obj.submit_ready == true && obj.data.length == 0 && obj.required=="yes"){
				//alert("2")
				obj.displayError(obj.errors[0]);
				obj.setReadySubmit(false);
				countErrors++;
			}
			else if (obj.submit_ready == false){ 
				//alert("3")
				countErrors++;
			}
		}
		
		if (countErrors==0){ 
			
			www.post(LOCALPATH+"newsletter_action.php",
			 'lastname='+JSObject._inp_Lastname.data+
			 '&firstname='+JSObject._inp_Firstname.data+
			 '&gender='+JSObject._inp_Gender.input.value+
			 '&email='+JSObject._inp_Email.data+
			 '&company='+JSObject._inp_Company.data+
			 '&address='+JSObject._inp_Address.data+
			 '&postcode='+JSObject._inp_Postcode.data+
			 '&city='+JSObject._inp_City.data+
			 '&country='+JSObject._inp_Country.data+
			 '&publicityaccepted='+document.getElementById('newsletter_publicityaccepted').checked+
			 '&phone='+JSObject._inp_Phone.data, 
			 function(response) {
				 //alert(response)
				 if (response == 1){
					 var cell = document.getElementById('newsletter_container');
					 cell.innerHTML = "";
					 cell.vAlign = "middle";
					 cell.align = "center";
					 
					cell.innerHTML = '<table width="100%" cellpadding="0" cellspacing="0">'+
												'<tr><td align="left" style="padding-top:7px; padding-right:10px">Votre inscription est bien enregistr&eacute;e !<br><br> Un e-mail automatique de confirmation vient d\'&ecirc;tre envoy&eacute; &agrave; l\'adresse e-mail : <i>'+JSObject._inp_Email.data+'</i><br><br>L\'adresse e-mail communiqu&eacute;e est incorrecte ? Corrigez-la en fermant cette fen&ecirc;tre et en saisissant une nouvelle adresse. <br><br>Vous ne retrouvez pas notre e-mail de confirmation ? Merci de v&eacute;rifier si vous ne l\'avez pas re&ccedil;u parmi vos &laquo; courriers ind&eacute;sirables ou spam &raquo;. <br><br>Merci de votre confiance !<br><br>L\'&eacute;quipe WDM France</td></tr>'+
											'</table>';
					 
				 }
				 else{
					 JSObject._inp_Email.displayError(JSObject._inp_Email.errors[2]);
					 JSObject._inp_Email.setReadySubmit(false);
				 }
				 //alert(response)
			 }
			 );	
		}
		else{ 
			return false;
		}
		
	}
	
}