(function($) {

	/* Inicializacion en espaņol para la extension 'UI date picker' para jQuery. */
	/* Traducido por Vester (xvester@gmail.com). */
	$.datepicker.regional['es'] = {
		closeText: 'Cerrar',
		prevText: '&#x3c;Ant',
		nextText: 'Sig&#x3e;',
		currentText: 'Hoy',
		monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
		'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
		monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
		'Jul','Ago','Sep','Oct','Nov','Dic'],
		dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
		dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
		dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
		weekHeader: 'Sm',
		dateFormat: 'dd/mm/yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['es']);
	
	// Calendario home (jquery-ui)
	$.fn.configureCalendar = function() {
	
		return this.each( function() {
		
			var form = $(this).find('form');
			var container = $('<div></div>');
			var field = $(form).find('input[type=text]');
			var currentDate = field.val();
			
			var lists = $('ul', this);
				lists.hide();
				
			var checkDay = function( date )
			{
				var types = new Object();
				var tips = new Array();
				
				lists.each( function() {
				
					var days = $("li", this);
					var clas = $(this).attr('data-class');
					var pre = $(this).attr('data-title');
					
					days.each( function() {
						
						var ts = parseInt( $("em", this).attr('data-ts'), 10 );
						var ddate = new Date( ts*1000 );
						
						if ( ddate.getFullYear() == date.getFullYear() &&
							 ddate.getMonth() == date.getMonth() &&
							 ddate.getDate() == date.getDate() ) {
							 
							 tips.push( pre + " " + $("span", this).text() );
							 types[ clas ] = true;
						}
					
					});
				
				});
				
				var classes = new Array();
				for (var i in types) classes.push( i );
				
				return [true, classes.join(' '), tips.join('\n') ];
			}
						
			container.appendTo(this).datepicker({
				altField: field,
				minDate: new Date(),
				maxDate: new Date( $(this).attr('data-maxDate') || "2100/01/01" ),
				onSelect: function( date, inst ) { form.submit() },
				beforeShowDay : checkDay
			}).datepicker('setDate', currentDate);
			
			form.hide();
		
		} );
	
	};
	
	// Scrollbar vertical 
	$.fn.configureVScrollbar = function( custom ) {
	
		var defaults = {
			step : 20
		}
		
		var options = $.extend( defaults, custom );
		
		return this.each( function() {
		
			var container = $(this);
			var content = container.find('>*:first');
			var containerHeight = container.height();
			var contentHeight = content.height();
						
			if (contentHeight <= containerHeight) return;
			
			var scrollbar = $("<div class='ui-scrollbar'></div>");
			var up = $("<a href='#' class='ui-scrollbar-up'>Subir</a>");
			var down = $("<a href='#' class='ui-scrollbar-down'>Bajar</a>");
			
			down.bind('click', function(e) {
				e.preventDefault();
				var c = parseInt( content.css('margin-top'), 10 );
				content.css( 'margin-top', (Math.max(-contentHeight+containerHeight, c-options.step))+'px' )
			});
			
			up.bind('click', function(e) {
				e.preventDefault();
				var c = parseInt( content.css('margin-top'), 10 );
				content.css( 'margin-top', (Math.min(0, c+options.step))+'px' )
			});
			
			container.css({'overflow':'hidden','position':'relative'})
				.append( scrollbar );
			scrollbar.append( up );
			scrollbar.append( down );
			
		
		});
		
	}

})(jQuery);
