//CONFIG  --> Modifiez ces informations en fonction de votre configuration
var __register_url = "includes/register.php";
var __img_miniloader = "pictures/mini_loader.gif";
var __box_login_infos = "loginbox";  //DIV du site qui dont le contenu sera la login box et les infos
var __box_login_infos_content = "loginboxcontent";
var __box_to_hide = ""; //DIV du site qui doit etre caché lors de la demande de login pour le mode JS
var __ancre_top = "#toppage"; //ancre haut de page

//CONSTANTES

var reg_regExpBeginning = /^\s+/;
var reg_regExpEnd       = /\s+$/;

var cptotest = "";



					// Supprime les espaces inutiles en début et fin de la chaîne passée en paramètre.
					function reg_trim(aString) {
						return aString.replace(reg_regExpBeginning, "").replace(reg_regExpEnd, "");
					}
					// Supprime les espaces inutiles en début de la chaîne passée en paramètre.
					function reg_ltrim(aString) {
						return aString.replace(reg_regExpBeginning, "");
					}
					// Supprime les espaces inutiles en fin de la chaîne passée en paramètre.
					function reg_rtrim(aString) {
						return aString.replace(reg_regExpEnd, "");
					} 
					
					// echappe les caractère spéciaux pour l'url
					function reg_escapeURI(La){
						if(encodeURIComponent) {
							return encodeURIComponent(La);
						}
						if(escape) {
							return escape(La);
						}
					}
					
					
					function reg_checktel(field){
						num = $(field).val();
						if(num.substr(0,2) != "00"){
							num = num.replace(/[^0-9]/ig,"");
							if(num.length == 10){
								num = num.substr(0,4) + "/" + num.substr(4,2) + "." + num.substr(6,2) + "." + num.substr(8,2);
							}else if(num.length == 9){
								geo = num.substr(0,2);
								switch(geo){
									case "02":
									case "03":
									case "04":
									case "09":
									num = num.substr(0,2) + "/" + num.substr(2,3) + "." + num.substr(5,2) + "." + num.substr(7,2);
									break;
									default:
									num = num.substr(0,3) + "/" + num.substr(3,2) + "." + num.substr(5,2) + "." + num.substr(7,2);
								}
							}
							$(field).val(num);
						}
					}
					
					
					function reg_verifnum(field) {
						var exp=new RegExp("^[0-9]+$");
						numtest = "";
						
						val_field = reg_trim($('#' + field).val());	
					
						if (exp.test(val_field)) {
							
						} else {	
							numtest += "x";
							$('#' + field + '').parent().addClass("labelerror");
						}
					
						return numtest;
					
					}
					
					function reg_verifdate(field) {
						var exp=new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$");
						numtest = "";
						
						val_field = reg_trim($('#' + field).val());	
						
						if (val_field != "") {
							if (exp.test(val_field)) {
								
							} else {	
								numtest += "x";
								$('#' + field + '').parent().addClass("labelerror");
							}
						}
						return numtest;
					
					}
										
					
					function reg_verifvide(field) {
						videtest = "";
						$('#' + field).val(reg_trim($('#' + field).val())); 
						
						if($('#' + field).val() != "") {
							
						}
						else {
							videtest += "x";
							$('#' + field + '').parent().addClass("labelerror");
						}	
						  
						return videtest;
					}
					
					function reg_verifnull(field) {
						videtest = "";
						$('#' + field).val(reg_trim($('#' + field).val())); 
						
						if(($('#' + field).val() != "") && ($('#' + field).val() != "0")) {
							
						}
						else {
							videtest += "x";
							$('#' + field + '').parent().addClass("labelerror");
						}	
						  
						return videtest;
					}
					
					function reg_verifnbrcaract(field,nbrmin,nbrmax) {
						
						var exp=new RegExp("^[a-zA-Z0-9]{" + nbrmin + "," + nbrmax + "}$");
						outtest = "";
						
						val_field = reg_trim($('#' + field).val());	
					
						if (exp.test(val_field)) {
							
						} else {	
							outtest += "x";
							$('#' + field + '').parent().addClass("labelerror");
						}
					
						return outtest;	
					}
					
					
					function reg_verficonfirm(field1,field2) {
						outtest = "";
						val_field1 = reg_trim($('#' + field1).val());	
						val_field2 = reg_trim($('#' + field2).val());
						
						if (val_field1 != val_field2) {
							outtest += "x";
							$('#' + field2 + '').parent().addClass("labelerror");
						}
						return outtest;
					}

					function reg_verifchecked(field1) {
						outtest = "";
						val_field1 = $('#' + field1).val();	
						
						if ($('#' + field1 + '').attr("checked")) {
							
						} else {
							outtest += "x";
							$('#' + field1 + '').parent().addClass("labelerror");
						}
						return outtest;
					}
					
					function reg_verifmail(field) {
						mailtest = "";
						
						if ($('#' + field).val() != "") {
							verifkey = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
							if (verifkey.exec($('#' + field).val()) == null) {
								mailtest += "x";
								$('#' + field + '').parent().addClass("labelerror");
							}
						}
						return mailtest;
					} 
					
					
					function removelabelerror($field) {
						$($field).parent().removeClass("labelerror");	
					}
					
					
					function reg_TestReg($mode) {
							$.ajax({
								type: "GET",
								url: __register_url,
								data: "action=" + $mode,
								success: function(msg){
								},
								error: function(msg){
								}    	
							 });	
					}


					function loadville() {
						
						$('#formreg_ville').change(function() {							
								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=getcp&commu_id=" + $('#formreg_ville').val(),
								success: function(msg){
									$('#formreg_ville_cp').val(reg_trim(msg));
									$('#commu_cp_selected').val(reg_trim(msg));
								},
								error: function(msg){
								}
								
								}); 
								
								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=getcommucourt&commu_id=" + $('#formreg_ville').val(),
								success: function(msg){
									$('#commu_court_selected').val(reg_trim(msg));
								},
								error: function(msg){
								}
					
								}); 
								
								
						
						});
					}


					function loadprovince() {
					
						$('#formreg_province').change(function() {	
								
								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=getprovcourt&prov_id=" + $('#formreg_province').val(),
								success: function(msg){
									$('#prov_court_selected').val(reg_trim(msg));
								},
								error: function(msg){
								}
					
								}); 
					
								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=getpayscourt&prov_id=" + $('#formreg_province').val(),
								success: function(msg){
									$('#pays_court_selected').val(reg_trim(msg));
								},
								error: function(msg){
								}
					
								}); 
								
								
								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=getvilles&onlyville=0&prov_court=" + $('#prov_court_selected').val(),
								success: function(msg){
									$('#formreg_ville').parents("div:eq(1)").replaceWith(msg);	
								},
								error: function(msg){
								}    	
								});
								loadville();
								loadcp()
						
						});	
					}

					function loadcp() {
						$('#formreg_ville_cp').keyup(function() {
							if ( $('#formreg_ville_cp').val().length >= 3 ) {
								
								if ( $('#formreg_ville_cp').val() != cptotest) {
									
									cptotest = $('#formreg_ville_cp').val();
									$.ajax({
									type: "POST",
									url: __register_url,
									async: false,
									data: "action=ajax&regmode=getvilles&onlyville=1&cp=" + $('#formreg_ville_cp').val(),
									success: function(msg){
										$('#formreg_ville').parents("div:eq(0)").replaceWith(msg);	
									},
									error: function(msg){
									}    	
							 		});
									loadville();
							
								}
								
							}
						
						});						
					}


					function loginbox() {

						$('#formlog_submit').click(function() {
						submittest = "";
						submittest += reg_verifvide('formlog_login');
						submittest += reg_verifvide('formlog_pass');							
							
							if (submittest != "") {
										
							
							} else {
								$('#form_login').hide();
								$('#waitinglogin_box').show();
								var options = { 
									target:    '#login_content',
									url:       __register_url + '?action=ajax&regmode=validlogin',
									success: function() {
										bt_connexion();
										bt_deconnexion();
										if ( $('#login_result').val() == "loginok" ) {
											window.location.reload(true);
										}
									}
								};
								$('#form_login').ajaxSubmit(options); 
								$('#waiting_box').hide();
								
							}
							
						});
					}


					function bt_connexion() {
						
						$('#reg_connexion').click(function() {							

								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=loginform",
								success: function(msg){
									$('#' + __box_login_infos_content).html(msg);
								},
								error: function(msg){
								}
								
								});
								loginbox();
						});
						
					}


					function bt_deconnexion() {
						
						$('#reg_deconnexion').click(function() {							

								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=unlog",
								success: function(msg){
									$('#' + __box_login_infos_content).html(msg);
									window.location.reload(true);
								},
								error: function(msg){
								}
								
								});
								loginbox();
						});
						
					}



$(document).ready(function(){

	
	$('#form_register input').change(function(){
		removelabelerror(this);
	});
	
	
	$('#formreg_submit').click(function(){
			//alert($('#commu_cp_selected').val() + " - " + $('#commu_name').val() + " - " +  $("#formreg_ville option:selected").text()  + " - " +  $("#formreg_ville").val());
			$('#formreg_ville_cp').val( $('#commu_cp_selected').val() );
			$('#commu_name').val($("#formreg_ville option:selected").text());
			submittest = "";
			submittest += reg_verifvide('formreg_login');
			submittest += reg_verifvide('formreg_pass');
			submittest += reg_verifvide('formreg_passconfirm');
			submittest += reg_verifnull('formreg_pays');
			submittest += reg_verifnull('formreg_province');
			submittest += reg_verifnbrcaract('formreg_login',5,12);
			submittest += reg_verifnbrcaract('formreg_pass',7,15);
			submittest += reg_verficonfirm('formreg_pass','formreg_passconfirm');
			submittest += reg_verifvide('formreg_mail');
			submittest += reg_verifmail('formreg_mail');
			submittest += reg_verifdate('formreg_birth');
			submittest += reg_verifchecked('formreg_accept');
			
			if (submittest != "") {
			

			} else {

								$.ajax({
								type: "POST",
								url: __register_url,
								async: false,
								data: "action=ajax&regmode=loginexist&formreg_login=" + $('#formreg_login').val(),
								success: function(msg){
									if (reg_trim(msg) == "") {
										$('#form_register').hide();
										$('#waiting_box').show();
										var options = { 
											target:    '#reg_content',
											url:       __register_url + '?action=ajax&regmode=validreg',
											success: function() {
												$('#waiting_box').hide();	
											}
										};
										$('#form_register').ajaxSubmit(options); 
										//document.location = location.href + __ancre_top;
										document.location = window.location.pathname + window.location.search + __ancre_top;										
									} else {
										document.location = window.location.pathname + window.location.search + __ancre_top;
										$('#formreg_login').parent().addClass("labelerror");
										alert(reg_trim(msg));	
									}
								},
								error: function(msg){
									document.location = window.location.pathname + window.location.search + __ancre_top;
									$('#formreg_login').parent().addClass("labelerror");
									alert(reg_trim(msg));
								}
								
								});

			}
	});	



	$('#formupdate_submit').click(function(){
			$('#formreg_ville_cp').val( $('#commu_cp_selected').val() );
			$('#commu_name').val($("#formreg_ville option:selected").text());
			submittest = "";
			submittest += reg_verifnull('formreg_pays');
			submittest += reg_verifnull('formreg_province');
			submittest += reg_verifdate('formreg_birth');
			
			if (submittest != "") {
			

			} else {
				$('#form_update').hide();
				$('#waiting_box').show();
				var options = { 
					target:    '#reg_content',
					url:       __register_url + '?action=ajax&regmode=validupdate',
					success: function() {
						$('#waiting_box').hide();	
					}
				};
				$('#form_update').ajaxSubmit(options); 
				//document.location = location.href + __ancre_top;
				document.location = window.location.pathname + window.location.search + __ancre_top;
			}
	});	



	$('#formchangepass_submit').click(function(){

			submittest = "";
			submittest += reg_verifvide('formreg_passactu');
			submittest += reg_verifvide('formreg_newpass');
			submittest += reg_verifvide('formreg_newpassconfirm');
			submittest += reg_verifnbrcaract('formreg_newpass',7,15);
			submittest += reg_verficonfirm('formreg_newpass','formreg_newpassconfirm');
			
			if (submittest != "") {
			

			} else {
				$('#form_changepass').hide();
				$('#waiting_box').show();
				var options = { 
					target:    '#reg_content',
					url:       __register_url + '?action=ajax&regmode=validchangepass',
					success: function() {
						$('#waiting_box').hide();	
					}
				};
				$('#form_changepass').ajaxSubmit(options); 
				//document.location = location.href + __ancre_top;
				document.location = window.location.pathname + window.location.search + __ancre_top;
			}
	});

	$('#formreg_repairaction').change(function(){
	
			$repairaction = $('#formreg_repairaction').val();
			
			if ($repairaction == "3") {
				$('#regid_repairlogin').show();
				$('#regid_repairmail').hide();				
			} else { 
				if ($repairaction == "2") {
					$('#regid_repairlogin').hide();
					$('#regid_repairmail').show();					
				} else {
					if ($repairaction == "1") {
						$('#regid_repairlogin').show();
						$('#regid_repairmail').show();
					} else {
					$('#regid_repairlogin').hide();
					$('#regid_repairmail').hide();	
					}
				}
			}		
	
	});


	$('#formrepair_submit').click(function(){

			submittest = "";
			$repairaction = $('#formreg_repairaction').val();
			
			if ($repairaction == "3") {
				submittest += reg_verifvide('formreg_repairlogin');
			} else { 
				if ($repairaction == "2") {
					submittest += reg_verifvide('formreg_repairmail');
				} else {
					if ($repairaction == "1") {
						submittest += reg_verifvide('formreg_repairlogin');
						submittest += reg_verifvide('formreg_repairmail');
					} else {
						$('#formreg_repairaction').parent().addClass("labelerror");
						submittest = "no selection";
					}
				}
			}

			if (submittest != "") {
			

			} else {
				$('#form_repair').hide();
				$('#waiting_box').show();
				var options = { 
					target:    '#reg_content',
					url:       __register_url + '?action=ajax&regmode=validrepair',
					success: function() {
						$('#waiting_box').hide();	
					}
				};
				$('#form_repair').ajaxSubmit(options); 
				//document.location = location.href + __ancre_top;
				document.location = window.location.pathname + window.location.search + __ancre_top;
			}
	});

	loadcp();

	
	loadville();

	loginbox();
	
	bt_connexion();
	bt_deconnexion();

	$('#formreg_pays').change(function() {	
			$.ajax({
			type: "POST",
			url: __register_url,
			async: false,
			data: "action=ajax&regmode=getpaysiso&pays_id=" + $('#formreg_pays').val(),
			success: function(msg){
				$('#pays_iso_selected').val(reg_trim(msg));
			},
			error: function(msg){
			}
			
			}); 
			$.ajax({
			type: "POST",
			url: __register_url,
			async: false,
			data: "action=ajax&regmode=getprovinces&pays_iso=" + $('#pays_iso_selected').val(),
			success: function(msg){
				$('#formreg_province').parents("div:eq(0)").replaceWith(msg);
				loadprovince();
			},
			error: function(msg){
			}    	
		 	});
	
	});


	loadprovince();



	$('#formreg_tel').change(function() {
		reg_checktel(this);
	});

	$('#formreg_tel2').change(function() {
		reg_checktel(this);
	});
	
	$('#formreg_gsm').change(function() {
		reg_checktel(this);
	});
	
	$('#formreg_fax').change(function() {
		reg_checktel(this);
	});




});
