/*!*******************************************************************************
|	$Revision$
|	$Date$
|
********************************************************************************/  

/* CP.Calendar
----------------------------------------------------------------------------*/

CP.set( 'Calendar', {
	initialize: function( uid, options )
	{
		var _this = this,
			defaults = {
				events: [],
				url: ''
			};

		this.uid = uid;
		this.dom = $( '#' + this.uid );

		// extend the default options with the options specific to our current object
		$.extend( this, defaults, options || {} );

		this.req = new CP.Request()
		this.loader = $( '<div class="loader">Betöltés...</div>' ).hide();

		this.dom.datepicker({
			dateFormat: 'yy/mm/dd'
			,beforeShowDay: function( date )
			{
				if( $.inArray( $.datepicker.formatDate( 'yy-mm-dd', date ), _this.events ) > -1 )
				return [true,'',''];
				else return false;
			}
			,onChangeMonthYear: function( year, month, inst )
			{
				var url = _this.url  + '/' + year + '/' + month;
				_this.loader.show();
				inst.dpDiv.css( 'opacity', 0.5 );
				
				_this.req
					.abort()
					.setUrl( url + '.json', true )
					.setHandlers({
						success: function( data )
						{
							_this.events = data.getField( 'dates' );
							if( _this.events.length )
							{
								$.datepicker._updateDatepicker( inst );
								inst.dpDiv.find( '.ui-datepicker-title' ).wrapInner( '<a href="' + url + '"></a>' );								
							}
							_this.loader.hide();
						}
						,complete: function()
						{
							inst.dpDiv.css( 'opacity', 1 );
						}
					}).send();

				// reset height
				_this.dom.css( 'height', 'auto' );
			}
			,onSelect: function( dateText, inst )
			{
				var url = _this.url  + '/' + dateText;
				window.location = url;
				return true;
			}
		});	
		
		this.loader.appendTo( this.dom );			
	}
});
CP.Calendar.singleton = true;

/* Hungarian initialisation for the jQuery UI date picker plugin. */
/* Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */
jQuery(function($){
	$.datepicker.regional['hu'] = {
		closeText: 'bezárás',
		prevText: '&laquo;&nbsp;vissza',
		nextText: 'előre&nbsp;&raquo;',
		currentText: 'ma',
		monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
		'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
		monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
		'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
		dayNames: ['Vasámap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
		dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
		dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
		dateFormat: 'yy-mm-dd', firstDay: 1,
		isRTL: false};
	$.datepicker.setDefaults($.datepicker.regional['hu']);
});