$( function () {

	var query = {};
	
	$('#sorter select')
	.each ( function () { query[this.name] = $('option:selected', this).val(); })
	.change ( function() { 
		query[this.name] = $('option:selected', this).val(); 
		pDate = $('#calendar').datepicker('getDate');
		getEventList ( pDate );
	});
	
	function test ( ob ) {
		res = '';
		for (key in ob )
			{ res += key + ' : ' + ob[key] + '\n'; }
		alert(res);
	}
	

	//	Modal options
	if($.fn.jqm) {
		$('body').append('<div class="jqmWindow" id="event"></div>');
		eventModalOptions = {
				ajax: '@href', 
				trigger: false,
				closeClass: 'remove'
					
				}
		$('#event').jqm( eventModalOptions );
	}
	
	dpOptions = { 
		defaultDate: new Date(), 
		dayNamesMin: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
		onChangeMonthYear: function (date) {
			$(this).datepicker('setDate', date);
			getEventList ( date );
		},
		onSelect: function (date, target) {
			rDate = date.split('/');
			pDate = new Date ( rDate[2], rDate[1] - 1, rDate[0]);
			getEventList ( pDate );
		}
	};
	
	
	$('#calendar').datepicker(dpOptions);
	
	function getEventList ( date ) {
		query.event_date = mergeDate(date);
		query.format  	 = 'json';
		$.getJSON(
			'list',
			query,
			function( list ){
				
				monthEvents = list.shift(list);
				setEventNumbers(monthEvents); 
				
				h3Html =	['<h4>',
							 $.datepicker._defaults.dayNames[date.getDay()], ' ',
							 date.getDate(), ' ',
							 $.datepicker._defaults.monthNames[date.getMonth()], ' ',
							 date.getFullYear(),
							'</h4>\n'].join('');
				liHtml = '<ul class="events">\n';
				$(list).each( function(i) {
					liHtml +=	['<li class="', list[i].eventCategory ,'">\n',
								'<div class="title"><a href="', list[i].eventUrl ,'">', list[i].eventTitle ,'</a></div>\n',
								'<div class="date">', list[i].eventTime ,'</div>\n',
								'<address>', list[i].eventAddress ,'</address>\n</li>\n'].join('');
				});
				liHtml += '</ul>\n';
			
				trg = $('#current_events .current_list');
				trg.html( h3Html + liHtml );
				$('#event').jqmAddTrigger( $('a', trg) );
			}
		);
	}
	
	function mergeDate ( date ) {
		month = date.getMonth() + 1;
		return date.getDate() + '.' + month + '.' + date.getFullYear();
	}


	function setEventNumbers (currentEventsNum) {
		$('#calendar td.ui-datepicker-days-cell')
		.not('.ui-datepicker-other-month')
		.each ( function (i) {
			currNum = currentEventsNum[i];
			if( currNum ) {
				curDayEventsNumber = document.createElement('span');
				curDayEventsNumber.className = 'events_number';
				curDayEventsNumber.appendChild(document.createTextNode(currentEventsNum[i]));
				curCnt =  document.createElement('div');
				curCnt.className = 'en_cnt';
				curCnt.appendChild(curDayEventsNumber);
				$(this).addClass('has_events').append(curCnt);
			}
			else {
				$(this).removeClass('has_events');
				$('.en_cnt', this).remove();				
			}
		})
	}
		
});