// JavaScript Document
(function($) {


datePickerDefaultOptions = {
	dateFormat: 'yy-mm-dd',
	changeMonth: true,
	changeYear: true,
	showAnim: 'fadeIn',
	buttonImage: './ui/css/skin_pform/images/calendar.png',
	showOn: 'button',
	buttonImageOnly: true,
	buttonText: ''
	
};

addDatePickers = function(f) {
	
	datePickerDefaultOptions.defaultDate =  $.datepicker.parseDate( "yy-mm-dd", f.$elements[0].value );
	datePickerDefaultOptions.onSelect = function(dateText, inst) {
		$(this).data('field').checkField();
	}
	if (typeof(f.datePickerOptions)=='object') {
		$.extend(datePickerDefaultOptions, f.datePickerOptions);
	}
	f.$elements.datepicker( datePickerDefaultOptions );
};

$.extend($.fn, {
	pformDatePicker: function() {
		var pform = this.data('pform');
		for (var i=0; i<pform.validator.blocks.length; i++) {
			var blockHasDatePicker = false;
			for (var j in pform.validator.blocks[i].fields) {
				if ( pform.validator.blocks[i].fields[j].datePicker==true ) {
					var blockHasDatePicker = true;
					addDatePickers( pform.validator.blocks[i].fields[j] );
				}
			}
			if ( blockHasDatePicker == true) {
				if (typeof(pform.validator.blocks[i].processor)=='function' && typeof(pform.validator.blocks[i].originalProcessor)!='function') {
					pform.validator.blocks[i].originalProcessor = pform.validator.blocks[i].processor;
				};
				pform.validator.blocks[i].processor = function(fields, eventId, fireId) {
					switch(eventId) {
						case 'onBeforeAddBlock': 
						case 'onBeforeRemoveBlock':
						case 'onBeforeMoveDownBlock':
						case 'onBeforeMoveUpBlock':
						if (typeof(this.originalProcessor)=='function') this.originalProcessor(fields, eventId, fireId);
							for (var i=0; i<pform.validator.blocks.length; i++) {
								for (var j in pform.validator.blocks[i].fields) {
									if ( pform.validator.blocks[i].fields[j].datePicker==true ) {
										pform.validator.blocks[i].fields[j].$elements.datepicker('destroy');
										//pform.validator.blocks[i].fields[j].$elements.removeClass('hasDatepicker');
									}
								}
							};
							
						break;
						case 'onAddBlock': 
						case 'onRemoveBlock':
						case 'onMoveDownBlock':
						case 'onMoveUpBlock':
						{
							if (typeof(this.originalProcessor)=='function') this.originalProcessor(fields, eventId, fireId);
							for (var i=0; i<pform.validator.blocks.length; i++) {
								for (var j in pform.validator.blocks[i].fields) {
									if ( pform.validator.blocks[i].fields[j].datePicker==true ) {
										//console.log( pform.validator.blocks[i].fields[j].$elements );
										//console.log(pform.validator.blocks[i].fields[j].$elements);
										//pform.validator.blocks[i].fields[j].$elements.datepicker('refresh', pform.validator.blocks[i].fields[j].$elements);
										addDatePickers(pform.validator.blocks[i].fields[j]);
										
									}
								}
							};
						break;
						}
					}
				}
			}
		}
	}
});
})(jQuery);
