$(function(){
	var options_subscribe = {
		dataType: 'json',
		success: function (data){
			if(data.code){
				$('div#subscribe-form').html(data.content);
			} else {
				alert(data.message);
			}
		},
		error: function (data, status, e){
			alert(e);
		}
	};

	function doUpdateList(){
		$.ajax({
			url: baseUrl+'/trainings/internal/index/format/html',
			success: function ( resp ) {
				$('tbody.content').html(resp);
				doBindTooltips();
				doBindTrainees();
			}
		});
	}

	function doBindTooltips(){
		$('a.jt').each(function(){
			$(this).cluetip({
		      	cluetipClass: 'jtip', 
		      	arrows: true, 
		      	dropShadow: false,
		      	hoverIntent: false,
		      	sticky: true,
		      	activation: 'click',
		      	closePosition: 'title',
		      	closeText: 'X',
		      	onShow: function(){
// if no subscribe in tooltip comment next line
//		      	doBindSubscribe();
		      }
		    });	
		})
	}
	
	function doBindTrainees(){
	    $('.add_trainees').click(function(){
	    	var trId = $(this).val();
	    	$.nyroModalManual({
	    		url: baseUrl+'/trainings/internal/trainees/format/html/id/'+trId,
	    		endShowContent: function(elts, settings){
				 	$('#trainees_add_button').click(function(event){
				 		event.preventDefault();
				 		if($('#add_trainees_form').valid()){
				 			$('#add_trainees_form').submit();
				 		}
			 			return false;
				 	});
	    		}
			});
	 	});
	}

	function doBindReturn() {
	    $('#return').click(function(){
//	    	alert(baseUrl+'/trainings/'+$(this).attr('name')+'/index/format/html');
			$.ajax({
				url: baseUrl+'/trainings/'+$(this).attr('name')+'/index/format/html',
				success: function ( resp ) {
					$('div#list-container').html(resp);
					doDateFields();
					doRequiredLabels();
					doBindSubscribe();
					doBindTooltips();
				}
			});
 			return false;
	 	});
	}

	function doBindSubscribe() {
		$('#trainings-subscribe-form').submit(function(){
			if($(this).valid()){
				var allIds = new Array();
				$('input:checked.check_uncheck').each( function () {
					allIds.push($(this).val());
				});
				if(allIds.length == 0){
					alert('Vous devez choisir au moins une formation.')
					return false;				
				}
				//			$('#trainings-subscribe-form').ajaxSubmit(options_subscribe);
				$.ajax({
					url: $("form#trainings-subscribe-form").attr('action'),
					type: "POST",
					dataType: 'json',
					data: {
						recommend: allIds.join(','),
						firstname: $("form#trainings-subscribe-form input[name='firstname']").val(),
						lastname: $("form#trainings-subscribe-form input[name='lastname']").val(),
						tel: $("form#trainings-subscribe-form input[name='tel']").val(),
						email: $("form#trainings-subscribe-form input[name='email']").val(),
						address1: $("form#trainings-subscribe-form input[name='address1']").val(),
						address2: $("form#trainings-subscribe-form input[name='address2']").val(),
						zipcode: $("form#trainings-subscribe-form input[name='zipcode']").val(),
						city: $("form#trainings-subscribe-form input[name='city']").val(),
						birthdate: $("form#trainings-subscribe-form input[name='birthdate']").val()
					},
					success: function ( resp ) {
						if(resp.code == 1){
								$("form#trainings-subscribe-form input[name='firstname']").val('');
								$("form#trainings-subscribe-form input[name='lastname']").val('');
								$("form#trainings-subscribe-form input[name='tel']").val('');
								$("form#trainings-subscribe-form input[name='email']").val('');
								$("form#trainings-subscribe-form input[name='address1']").val('');
								$("form#trainings-subscribe-form input[name='address2']").val('');
								$("form#trainings-subscribe-form input[name='zipcode']").val('');
								$("form#trainings-subscribe-form input[name='city']").val('');
								$("form#trainings-subscribe-form input[name='birthdate']").val('');
								$('input:checked.check_uncheck').each( function () {
									$(this).removeAttr('checked');
								});
								$('div#list-container').html(resp.trainings);
								doBindTooltips();
								doBindReturn();
							}else{
								alert(resp.message)
							}
						}
					});
			}
			return false;
		});
	    $('#subscribe_button').click(function(){
			var allIds = new Array();
			$('input:checked.check_uncheck').each( function () {
				allIds.push($(this).val());
			});
			if(allIds.length > 0){
				$.ajax({
					url: baseUrl+'/trainings/internal/subscribe/format/json',
					type: "POST",
					dataType: 'json',
					data: { 
						recommend: allIds.join(',') 
					},
					success: function ( resp ) {
						if(resp.code == 1){
							$('div#subscribe-confirm-msg').slideDown();
							doUpdateList();
						} else {
							alert(resp.message)					
						}
					}
				});
			} else {
				doUpdateList();			
			}
 			return false;
	 	});
		$('a.subscribe').click( function(event) {
			event.preventDefault();
			$('#trainings-subscribe-form').submit();
		});
	}

	function validItems(){
	 	var trValidateOptions = {rules:{}};
	 	$('input.required').each(function() {
			validateOptions['rules'][$(this).attr('name')] = {required: true}; 		
	 	});
	 	$('input.email').each(function() {
			validateOptions['rules'][$(this).attr('name')] = {email: true}; 		
	 	});
	 	$('#add_trainees_form').validate(trValidateOptions);
	}
	
 	var validateOptions = {rules:{}};
 	
 	$('input.active_trainings').each(function() {
		validateOptions['rules'][$(this).attr('name')] = {required: true}; 		
 	});
 	$('input.required').each(function() {
		validateOptions['rules'][$(this).attr('name')] = {required: true}; 		
 	});
 	$('input.email').each(function() {
		validateOptions['rules'][$(this).attr('name')] = {email: true}; 		
 	});
 	$('input.digits').each(function() {
		validateOptions['rules'][$(this).attr('name')] = {digits: true}; 		
 	});
 	$('input.date').each(function() {
		validateOptions['rules'][$(this).attr('name')] = {date: true}; 		
 	});
 	
 	$('#trainings-subscribe-form').validate(validateOptions);
	$('div#subscribe-confirm-msg').hide();
	
	doDateFields();
	doBindSubscribe();
	doBindTooltips();
	doBindTrainees();
})

