// JavaScript Document
var calendar = null;

function initCalendar() {
  //*
  if (!$('calendar')) return;
  
	calendar = new YAHOO.widget.Calendar("YAHOO.example.calendar.cal1","calendar");
	calendar.title = "Wybierz datę";
	
  calendar.customConfig = function() {
    this.Config.Locale.MONTHS_LONG = ["Styczeń", "Luty", "Marzec", "Kwiecień", 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad' , "Grudzień"];
    this.Config.Locale.WEEKDAYS_SHORT = ["Nd", "Po", "Wt", "Śr", "Cz", "Pi", "So"];
    this.Options.START_WEEKDAY = 1;
  }	
	
	calendar.setupConfig();
	calendar.render();
	calendar.onSelect = hideCalendar;
	//*/
	
}

function showCalendar( _refElement, event, offset ) {

	calendar.associatedFldId = _refElement;
	var pos = (event) ? YAHOO.util.Dom.getXY( yuiEvent.getTarget( event ) ) : [500, 200];
	
	//----- jesli w polu docelowym jest juz data to zaznaczamy ja w kalendarzu
	if (_refElement && $( _refElement ) && '' != _refElement.value) {
	  var data = $(_refElement).value;
	  
	  if (null == data.match( /^\d{1,2}\.\d{1,2}\.\d{4}$/ )) {
	    $(_refElement).value = '';
	    data = '';
	  }
	  
	  if ('' != data) {
  	  var dataTbl = data.split( '.' );
  	  
  	  var dtD = dataTbl[0];
  	  var dtM = dataTbl[1] * 1;
  	  var dtR = dataTbl[2];
  	  
  	  if (dtR && '' != dtR && 2 == dtR.length) dtR = '20' + dtR;
  	  
    	calendar.select( dtM + "/" + dtD + "/" + dtR );
    	calendar.setMonth( dtM-1 );
    	calendar.setYear( dtR );
    	calendar.render();
	  }
	}
	
	//alert( _refElement + '  ' + $( _refElement ) );
	
	//----- jesli pole docelowe jest puste to w kalendarzu zaznaczamy biezaca date
	if (_refElement && $( _refElement ) && '' == $( _refElement ).value) {
  	
  	calendar.clear();
  	
  	var td = new Date();
  	
  	/*
	  var dtD = td.getDate();
	  var dtM = td.getMonth();
	  var dtR = td.getFullYear();
	  
	  if (dtR && '' != dtR && 2 == dtR.length) dtR = '20' + dtR;
	  
  	//calendar.select( (dtM+1) + "/" + dtD + "/" + dtR );
  	
  	calendar.setMonth( dtM );
  	calendar.setYear( dtR );
  	calendar.render();
  	//*/
	}
	
	
	//----- wyswietlenie kalendarza
	yuiDOM.setStyle( "calContainer", 'display', 'block' );
	bytefx.drag( $("calContainer") );
	if (pos) {
	  var offsetX = pos[0];
	  var offsetY = pos[1]+20;
	  
	  if (offset) {
	    offsetX += offset[0];
	    offsetY += offset[1];
	  }
	  
	  yuiDOM.setXY( "calContainer" , [offsetX,offsetY] );
	}
	
	dialogShown = true;
}

function hideCalendar( _refElement ) {
	yuiDOM.setStyle( "calContainer", 'display', 'none' );
  dialogShown = false;
	
	if (calendar.associatedFldId && '' != calendar.associatedFldId) {
		var fld = yuiDOM.get( calendar.associatedFldId );
		if (fld) {
			var data = calendar.getSelectedDates()[0];
			if (data) {
			  var dd = data.getDate();
			  var mm = data.getMonth()+1;
			  
			  if (10 > Number(dd)) dd = '0' + dd;
			  if (10 > Number(mm)) mm = '0' + mm;
			  
			  fld.value = '' + dd + '.' + mm + '.' + data.getFullYear();
			  
			}
		} 
		else alert( 'Pole do zapisu daty nie istnieje!' );
	} 
	else alert( 'Nie określono pola do zapisu daty!' );
	
}


//-----------------------------------

var yuiEvent = YAHOO.util.Event;
var yuiDOM = YAHOO.util.Dom;

YAHOO.util.Event.addListener(window, "load", initCalendar);

