$(function(){

	/*$("#points_bouygues").attr("disabled", true);*/
	ws_bouygues_dispo = 1;
	var idws;
	var searching;
	

/** BOUYGUES **/

	$("#valider_bouygues").click(function(){
	
		erreur = "";
		emptyError();		
		
		if( $("#telephone_bouygues").val().length == 0 )
			erreur += '<li>Veuillez remplir le champ "numéro de téléphone"</li>';
		else if( !$("#telephone_bouygues").regex(/^06[0-9]{8}$/) )
			erreur += "<li>Ce numéro de téléphone n'est pas valide</li>";
			
		if( $("#ininom_bouygues").val().length == 0 )
			erreur += '<li>Veuillez remplir le champ "3 premières lettres de votre nom"</li>';
		else if( !$("#ininom_bouygues").regex(/^[a-zA-Z]{3}$/) )
			erreur += "<li>Les 3 premières lettres de votre nom ne sont pas valides</li>";		
		
		if(ws_bouygues_dispo == 0){
			if( $("#points_bouygues").val().length == 0 )
				erreur += '<li>Veuillez remplir le champ "nombre de points"</li>';
			else if( !$("#points_bouygues").regex(/[0-9]/) )
				erreur += '<li>Votre nombre de points n\'est pas valide</li>';
		}

		if(erreur != ""){
			$('#error_b').html( erreur );
			return false;
		}else{
			if(ws_bouygues_dispo == 1){

			  tel = $('#telephone_bouygues').val();
			  operateur_id = 2;
			  ini_nom = $('#ininom_bouygues').val();

			  initSearch(tel, operateur_id, ini_nom);

			}else{
			  $("#form_bouygues").submit();
			}

		}
	return false;

	});

/** ORANGE **/

	$("#valider_orange").click(function(){
	
		erreur = "";
		emptyError();
		
		if( $("#telephone_orange").val().length == 0 )
			erreur += '<li>Veuillez remplir le champ "numéro de téléphone"</li>';
		else if( !$("#telephone_orange").regex(/^06[0-9]{8}$/) )
			erreur += "<li>Ce numéro de téléphone n'est pas valide</li>";
			
		if( $("#points_orange").val().length == 0 )
			erreur += '<li>Veuillez remplir le champ "nombre de points"</li>';
		else if( !$("#points_orange").regex(/^[0-9]+$/) )
			erreur += "<li>Votre nombre de points n'est pas valide</li>";		

		if(erreur != ""){
			$('#error_o').html( erreur );
			return false;
		}else{
			tel = $('#telephone_orange').val();
			operateur_id = 1;
			ini_nom = "";
			
			initSearch(tel, operateur_id, ini_nom);
		}
	return false;
		
	});

/** SFR **/

	$("#valider_sfr").click(function(){
	
		erreur = "";
		emptyError();
		
		if( $("#telephone_sfr").val().length == 0 )
			erreur += '<li>Veuillez remplir le champ "numéro de téléphone"</li>';
		else if( !$("#telephone_sfr").regex(/^06[0-9]{8}$/) )
			erreur += "<li>Ce numéro de téléphone n'est pas valide</li>";

		if( $("#points_sfr").val().length == 0 )
			erreur += '<li>Veuillez remplir le champ "nombre de points"</li>';
		else if( !$("#points_sfr").regex(/^[0-9]+$/) )
			erreur += "<li>Votre nombre de points n'est pas valide</li>";

		if( $("#forfait_sfr").val().length == 0 )
			erreur += '<li>Veuillez choisir un type de forfait</li>';

		if( $("#anciennete_sfr").val().length == 0 )
			erreur += '<li>Veuillez choisir votre ancienneté"</li>';	

		if(erreur != ""){

			$('#error_s').html( erreur );
			return false;
		}else{
			tel = $('#telephone_sfr').val();
			operateur_id = 3;
			ini_nom = "";
			  
			initSearch(tel, operateur_id, ini_nom);
		}
	return false;

	});


// FONCTIONS
	
	//validation par expressions regulieres
	$.fn.regex = function(pattern) { 
  		return ($(this).val().match(pattern)) ? true : false; 
	}
	
	// vide les messages erreurs
	function emptyError(){
		$('#error_b').empty();
		$('#error_o').empty();
		$('#error_s').empty();
		$('ul.error').empty();
	}
	
	function getNomOperateur(operateur_id){
		switch(operateur_id){
			case 1:
				return "orange";
				break;
			case 2:
				return "bouygues";
				break;
			case 3:
				return "sfr";
				break;
		}
	}

	// initialise une recherche
	function initSearch(tel, operateur_id, iniNom){
	  operateur = getNomOperateur(operateur_id);
	//  alert('INIT '+operateur);
	  $.get("points_initialisation.php",
		{telephone: tel, operateur_id: operateur_id, ini_nom: iniNom},
		function(data){
			// toujours disponible
			if(data != "nondispo"){
				idws = data;
				$("#"+operateur+" .loader").show();
				searching = setInterval(checkResult, 3000);
			}else{
				modeOffLine();
			}
		}
	  );	
	
	}
	
	// fonction d'appel au webservice
	function checkResult(){
	
		$.getJSON('points_verification.php',
		    {
			telephone: $('#telephone_'+operateur).val(), 
			operateur_id: operateur_id,
			ini_nom: ini_nom,
			idwspts: idws
			 },
			function(callback){
				responseWS = parseInt(callback.responseWebService);
				points = parseInt(callback.points);
				msg = callback.msg;
				eligibility = parseInt(callback.eligibility);

				if(responseWS != -1){
					clearInterval(searching);
					$('#'+operateur+' .loader').hide();

				}
				if( responseWS == 1 ){
					if( points != null && points!= 0 ){
						$('#real_points_'+operateur).val(points);						
					}
					$('#eligibility_'+operateur).val(eligibility);
					$("#form_"+operateur).submit();

				}
				
				else if( responseWS == 0 ){
					modeOffLine();
				}
				

			}
		);
			
	}
	
	
	function modeOffLine(){
		if(operateur_id == 2){
				ws_bouygues_dispo = 0;
				var msg = "Echec de la consultation, composez le 607 pour connaitre votre nombre de points. Saisissez le ci-dessus pour consulter nos offres.";
				$('#div_points_'+operateur).show();
				$('#error_b').html( msg );		
		}
		if(operateur_id == 1 || operateur_id == 3){
				$("#form_"+operateur).submit();
		}
	}

});