// Pour la Dev
//var serveurPanier = 'http://10.128.0.35:8081/activ';
// Pour la Prod
var serveurPanier = 'http://www.ccas.fr/activ';

var jbIdentification = function ($) {

	var obj = this;
	var obj_form = $('form#ajaxLogin');
	// Active (true) ou Desactive (false) l'affichage de la fonction panier.
	var showPanier = false;

	var url = {
		identified 		: serveurPanier+'/panier_rouge.php/ajaxidentification/identified/',
		identification 	: serveurPanier+'/panier_rouge.php/ajaxidentification/identification/',
		panier 			: serveurPanier+'/panier_rouge.php/identification/sessionactiv/',
		espaceActiv 	: serveurPanier+'/panier_rouge.php/identification/sessionactiv/?d=activ',
		deconnexion 	: serveurPanier+'/panier_rouge.php/ajaxidentification/deconnexion/',
		srcCaddy 		: serveurPanier+'/application_panier/views/images/caddy.gif'
	};

	var error_msg = {
		nia 			: 'Le nia indiqué n\'est pas correct.',
		pass			: 'Merci de remplir le champ mot de passe.',
		iden			: 'Impossible de vous identifier',
		sess			: 'Votre session à expiré merci de vous identifier de nouveau.'
	};

	var user = {
		nom 			: '',
		nia 			: '',
		pass 			: '',
		cmcas 			: '',
		panier 			: false
	};


	/************************************
	 *  Affiche le formulaire d'identification si le navigateur repond aux besoins.
	 */
	this.init = function ()
	{
		var autorise = false;

		//if (showPanier == true)
		//	$('a.addSejour img').attr('src','http://10.14.13.33:8081/activ/application_panier/views/images/bouton_selection.gif');

		// Controle que l'utilisateur accepte les cookies.
		autorise = navigator.cookieEnabled;

		if (autorise === true){

			// Affichage du formulaire.
			obj_form.show();

			obj_form.submit(function(e){
				obj.identification();
				e.stopPropagation();
				return false;
			});

			// Controle si deja identifie et affiche le nom de l'utilisateur.
			this.identified();
		}
	};


	/************************************
	 *  Controle le format du nia.
	 */
	function controleNia ()
	{
		if (user.nia.length != 8){
			alert(error_msg.nia+' (1)');
			return false;
		}
		for (var i=0; i<=(user.nia.length-1); i++){
			if (isNaN(parseInt(user.nia.charAt(i)))){
				alert(error_msg.nia+' (2)');
				return false;
			}
		}
		return true;
	}


	/************************************
	 *  Controle le format du mot de passe.
	 */
	function controlePassword()
	{
		if (user.pass.length < 1){
			alert(error_msg.pass);
			return false;
		}
		return true;
	}


	/************************************
	 *  Identifi un utilisateur.
	 */
	this.identification = function ()
	{
		user.nia  = $('input[name="nia"]', obj_form).val();
		user.pass = $('input[name="pw"]', obj_form).val();

		// Controle du nia
		if (controleNia() === false){
			return false;
		}

		// Controle du mot de passe
		if (controlePassword() === false){
			return false;
		}

		//if(typeof(window['console'])) console.log(url.identification+'?nia='+user.nia+'&pass='+user.pass+'&callback=?');
		$.getJSON(url.identification+'?nia='+user.nia+'&pass='+user.pass+'&callback=?',function(json){
			//if(typeof(window['console'])) console.debug(json);
			if (json.warning !== ''){
				alert(json.warning);
				return false;
			}
			user.nom = json.userName;
			user.cmcas = json.userCmcas;
			user.panier = json.panier;
			obj.showUserName();
			return false;
		});

		return false;
	};


	/************************************
	 *  Controle que l'utilisateur est deja identifie.
	 */
	this.identified = function ()
	{

		$.getJSON(url.identified + '?callback=?',function(json){
			// Si deja identifie.
			if (json.etat == true){
				user.nom = json.userName;
				user.cmcas = json.userCmcas;
				user.panier = json.panier;
				obj.showUserName();
			}
		});

		return false;
	};


	/************************************
	 *  Controle que l'utilisateur est deja identifie.
	 */
	this.deconnexion = function ()
	{
		$.getJSON(url.deconnexion + '?callback=?',function(json){
			//if(typeof(window['console'])) console.debug(json);
			// Si deconnexion effective.
			if (json.etat == true){
				$('p:eq(1)', obj_form).remove();
				$('p:eq(0)', obj_form).show();
				user.nom = '';
				user.nia = '';
				user.pass = '';
				user.cmcas = '';
				// Masque les zones
				$('.addSejour').hide();
				$('.needIdentified').hide();
				$('.detailpanier').hide();
				// Supprime le selection du html.
				$('ul#detail_choix li').remove();
			}
		});

		return false;
	};


	/************************************
	 *  Affiche les elements reserver au personne identifie.
	 */
	this.showUserName = function ()
	{

		//----
		// Recherche le bouton "mon compte" pour changer sa destination.
		$('#rubrique265 a').attr('href', url.espaceActiv);
		$('#rubrique278 a').attr('href', url.espaceActiv);
                $('a[href="http://www.ccas.fr/activ/"]').attr('href', url.espaceActiv);

		//----
		// Masque le formulaire d'identification. Remplace le formulaire par le nom de l'utilisateur.
		$('p:eq(0)', obj_form).hide();

		//----
		// Affiche le nom de l'utilisateur.
		var deconnexion = $('<a></a>').attr('href','#').html('Deconnexion').click(function(e){
			obj.deconnexion();
			e.stopPropagation();
			return false;
		});
		var nom = $('<a></a>')
						.html(user.nom + ' ')
						.attr('href', url.espaceActiv);
		var caddy = $('<a></a>');
		if (showPanier == true){
			var caddy = caddy
						.attr('href', url.panier)
						.append($('<img></img>').attr('src', url.srcCaddy));
		}
		obj_form.append($('<p></p>')
					.append($('<strong></strong>')
						.html('Bonjour ')
						.append(nom)
						.append(caddy)
						.append(' - ')
						.append(deconnexion)));

                $('form#ajaxLogin p').css({
                    'color': '#64566F',
                    'font-family': 'Verdana,Arial,sans-serif',
                    'font-size': '12px',
                    'line-height': '14px',
                    'margin': '0',
                    'padding': '0',
                    'text-align': 'right',
                    'border': 'none'
                });

		//----
		// Affichage du bouton ajouter au panier.
		if (showPanier == true){
			$('.needIdentified').show();
			$('.detailpanier').show();
			var detail_choix = $('#detail_choix');
			if (user.panier == true){
				if (detail_choix.length > 0){
					var panier = new jbPanier(jQuery);
					panier.init();
				}
			}
		}
	};

};

var jbPanier = function($){
	var obj = this;

	var url = {
		detailChoix 	: serveurPanier+'/panier_rouge.php/panier/detailchoix/',
		addSejour 		: serveurPanier+'/panier_rouge.php/panier/addsouschoix/'
	};

	var sejour = {
		choix 		: 0,
		anexer 		: 0,
		cotyvac 	: '',
		cocamp 		: '',
		coctrvac 	: ''
	};

	this.init = function()
	{

		// Initialisation par defaut
		var aujourdhui = new Date();
		sejour.choix = 1;
		sejour.anexer = aujourdhui.getFullYear();
		sejour.cotyvac = 'E';
		sejour.cocamp = 'A';
		sejour.coctrvac = '';

		// Recuperation de la liste des choix deja selectiones pour le choix 1.
		$('#detail_panier #ongletlist:eq(0) a').removeAttr('id').parent().removeAttr('id');
		$('#detail_panier #ongletlist:eq(0) a:eq(0)').each(function(){
			var param = $(this).attr('href').substr(1).split('_');
			var anexer = param[1];
			var cotyvac = param[2];
			var cocamp = param[3];
			//var coctrvac = param[4];//--> Inutile
			var choix = param[5];

			sejour.choix = choix;

			obj.getDetailChoix();
			$(this).attr('id', 'current').parent().attr('id', 'active');

			return false;
		});

		// Activation des boutons de selection des choix.
		$('#detail_panier #ongletlist:eq(0)').each(function(i){
			$('li a',this).unbind().click(function(){
				//#choix_2009_E_A_ZAA_1
				var param = $(this).attr('href').substr(1).split('_');
				var anexer = param[1];
				var cotyvac = param[2];
				var cocamp = param[3];
				//var coctrvac = param[4];//--> Inutile
				var choix = param[5];

				sejour.choix = choix;

				obj.getDetailChoix();
				$('li', $(this).parent().parent()).each(function(){
					$(this).removeAttr('id');
					$('a', this).removeAttr('id');
				});
				$(this).attr('id', 'current').parent().attr('id', 'active');

				return false;
			});
		});

		// Affichage des boutons ajouter a mon panier.
		$('a.addSejour').unbind().each(function(){
			var param = $(this).attr('href').substr(1).split('_');
			var anexer = param[0];
			var cotyvac = param[1];
			var cocamp = param[2];
			var coctrvac = param[3];
			var date_deb = param[4];

			// Uniquement pour les sejours Ete campagne A
			if (cotyvac == 'E' && cocamp == 'A'){

				$(this).css('display', 'block').click(function(e){

					sejour.anexer = anexer;
					sejour.cotyvac = cotyvac;
					sejour.cocamp = cocamp;
					sejour.coctrvac = coctrvac;

					obj.addSejour(anexer, cotyvac, cocamp, coctrvac, date_deb);
					return false;
				});

			}
		});
	}

	/************************************
	 * Recuperation de la liste des sous-choix du choix actuel.
	 */
	this.getDetailChoix = function()
	{
		$.getJSON(url.detailChoix +'?anexer='+sejour.anexer
								+'&cotyvac='+sejour.cotyvac
								+'&cocamp='+sejour.cocamp
								+'&choix='+sejour.choix
								+'&callback=?',
					function(json){
						if (json.error == ''){
							if (json.warning != '')
								alert(json.warning);
							obj.updateDetailChoix(json.souschoix);
						}else{
							alert(json.error);
						}
					}
		);

	}

	/************************************
	 *  Mise a jour de la liste des choix selectionnes.
	 */
	this.updateDetailChoix = function (listeChoix)
	{
		$('ul#detail_choix').each(function(){
			var ul = $(this);
			$('li', ul).remove();
			$.each(listeChoix, function(i, val){
				ul.append($('<li></li>').html(val.nom));
			});
			if (listeChoix.length < 1){
				$(ul).append($('<li></li>').html('<center><i>Aucun séjour sélectionné <br/>dans le choix '+sejour.choix+'</i></center>'));
			}
		});
	}

	/************************************
	 *  Ajout d'un sejour au choix selectionnes.
	 */
	this.addSejour = function (anexer, cotyvac, cocamp, coctrvac, date_deb)
	{

		var jsonUrl = url.addSejour +'?anexer='+anexer
								+'&cotyvac='+cotyvac
								+'&cocamp='+cocamp
								+'&coctrvac='+coctrvac
								+'&date_deb='+date_deb
								+'&choix='+sejour.choix
								+'&callback=?'
		$.getJSON(jsonUrl,
					function(json){
						if (json.error == ''){
							if (json.warning != '')
								alert(json.warning);
							obj.updateDetailChoix(json.souschoix);
						}else{
							alert(json.error);
						}
					}
		);

		return true;
	}

}

jQuery(function (){
	var ident = new jbIdentification(jQuery);
	ident.init();

	jQuery('form#ajaxLogin').css({
		'display': 'block',
		'text-align': 'right',
		'width': '500px',
		'padding': '0',
		'margin': '0',
		'opacity': '0.7',
		'position': 'absolute',
		'right': '0'
	});
	jQuery('form#ajaxLogin p').css({
		'color': '#64566F',
		'font-family': 'Verdana,Arial,sans-serif',
		'font-size': '12px',
		'line-height': '14px',
		'margin': '0',
		'padding': '0',
		'text-align': 'right',
		'border': 'none'
	});
	jQuery('form#ajaxLogin p label').css({
		'float': 'left',
		'font-family': 'Verdana,Arial,sans-serif',
		'margin': '0 5px',
		'padding': '0',
		'width': 'auto',
		'text-align': 'right'
	});
	jQuery('form#ajaxLogin p input#nia,form#ajaxLogin p input#pw').css({
		'float': 'left',
		'background': 'none repeat scroll 0 0 #CCCCCC',
		'border': '1px solid #808080',
		'width': '100px',
		'font-family': 'Verdana,Arial,sans-serif',
		'margin': '0 5px',
		'padding': '0',
		'line-height': '14px',
		'font-size': '12px'
	});
	jQuery('form#ajaxLogin p input.validersans').css({
		'font-size': '12px',
		'width': '100px',
		'margin-top': '0'
	});
	if (window.location.href.indexOf('espace_vacances.php') > 0)
		jQuery('form#ajaxLogin').css({'top': '15px'});
});

/*
<!-- http://resalys.asmeg.org/cgi/clickbooking.cgi?force_etab_id=34 -->
<!-- http://resalys.asmeg.org/cgi/clickbooking.cgi -->
<!--
<form method="POST" name="Connect_Resalys" action="http://resalys.asmeg.org/cgi/clickbooking.cgi">
	<input type="hidden" name="base_id" value="dbresal" />
	<input type="hidden" name="display" value="home" />
	<input type="hidden" name="webuser" value="web_fr" />
	<input type="hidden" name="actions" value="login" />
	<input type="hidden" name="token" value="ignore_token" />
	<input type="hidden" name="url_origine" value="" />
	<input type="hidden" name="force_etab_id" value="127" />

	<input type="hidden" name="Ctrl_XML_URL" value="http://www.ccas.fr/activ/index.php" />
	<input type="hidden" name="Ctrl_XML_NIA" value="********" />
	<input type="hidden" name="Ctrl_XML_CMCAS" value="***" />
	<input type="hidden" name="Ctrl_XML_Date" value="*****" />
	<input type="hidden" name="Ctrl_XML_Password" value="******" />
	<input type="image" src="pictos/picto_vert_80.jpg" onClick="testClass.demoRequest();" style="cursor: pointer; border: 0;" />
</form>
-->*/


