$(document).ready(function() {
	$('a.link-delete-session').confirm({
	    message: "'Supprimer la session \"<strong>'+link.parent().parent().children(':first-child').text() +'</strong>\" ?'"
	});
	
	$('a.link-add-session').loadTabulateForm({
		callbackOnSuccess: function(json, form) {
			if (!json.session) return;
			
			var tr = $('#template-new-session').clone().attr('id', '');

			$('a', tr).each(function(){
				$(this).attr('href', $(this).attr('href') + '/sid/' + json.session.id);
			});
			
			var state;
			switch(json.session.state) {
				case 'prepare' : state = textPrepare; break;
				case 'open' : state = textOpen; break;
				case 'close' : state = textClose; break;
				case 'finish' : state = textFinish; break;
			}
			
			$('td:nth-child(1)', tr).text(json.session.name);
			$('td:nth-child(3)', tr).text(state);
			$('td:nth-child(4)', tr).text(json.session.begun_at);
			$('td:nth-child(5)', tr).text(json.session.completed_at);
			$('td:nth-child(6)', tr).text(json.creator.alias);
			
	        $('#table-sessions tbody').append(tr.show('pulsate'));
	        
	        $('#table-sessions').trigger('update');
	        var sorting = [[2,0]];
	        $('#table-sessions').trigger('sorton', [sorting]);
		},
		callbackOnLoad: function(json, form) {
			$('#begun_at, #completed_at', form).datepicker({
				beforeShow: function(input) {
					var minDate = new Date();
					var maxDate = '+2Y';
					
					if (input.id == 'begun_at') {
						maxDate = $('#completed_at').datepicker('getDate') || maxDate;
					} else if (input.id == 'completed_at') {
						minDate = $('#begun_at').datepicker('getDate') || minDate;						
					}
					
					return {
						minDate: minDate,
						maxDate: maxDate
					}
				},
				changeMonth: true,
				changeYear: true,				
				dateFormat: 'yy-mm-dd',
				minDate: 0,
				maxDate: '+2Y'
			});
			
		    $('#description').markItUp(mySettings);
		}
	});

    $.tablesorter.addParser({ 
        id: 'states', 
        is: function(s) {
            return false; 
        }, 
        format: function(s) {        	
            return s.replace(textPrepare,0).replace(textOpen,1).replace(textFinish,2).replace(textClose,3); 
        },
        type: 'numeric' 
    });
        	
	$('#table-sessions').tablesorter({
	    sortList: [[2,0]],
	    textExtraction: function(node) {
	        return $(node).text();
	    },
	    headers: {
	    	2: {sorter: 'states'},
	    	6: {sorter: false}
	    }		
	});
});
