// vim: encoding=UTF-8 expandtab sts=4 sw=4 ts=4
// אטילעש

var Calendar = {
  require: function(libraryName) {

	document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
  },
  load: function() {
	var scripts = document.getElementsByTagName("script");

	for (var i = 0; i < scripts.length;i++)
	  if (scripts[i].src && scripts[i].src.match(/calendar_yui\.js(\?.*)?$/))
		pathJs = scripts[i].src.replace(/calendar_yui\.js(\?.*)?$/,'');

	var JsFiles = ('yahoo,dom,event,calendar').split(',');

	for (var i = 0; i < JsFiles.length;i++)
	  Calendar.require(pathJs+'calendar_yui/'+JsFiles[i]+'.js');

	document.write('<link rel="stylesheet" type="text/css" href="'+pathJs+'calendar_yui/assets/calendar.css" />');
  }
}
Calendar.load();

var cal = new Array();

function pad(val,dim,char) {
  var tmpval = val +''; // casto a stringa
  var newval = tmpval;
  if (tmpval.length < dim) {
	for (var i = dim - tmpval.length; i > 0; i--) {
	  newval = char+newval;
	}
  }
  return newval;
}

var mySelectHandler = function(type,args,obj) {
	var selected = args[0];

	if (this.uniqueField == true) {
		var date = pad(selected[0][2],2,'0')+'/'+
			pad(selected[0][1],2,'0')+'/'+selected[0][0];

		if (this.hour && this.minutes)
		  date += ' '+this.hour+':'+this.minutes;

		document.getElementById(this.ref).value = date;
	}
	else {
		document.getElementById(this.ref+'gg').value = pad(selected[0][2],2,'0');
		document.getElementById(this.ref+'mm').value = pad(selected[0][1],2,'0');
		document.getElementById(this.ref+'aa').value = selected[0][0];

		if (this.hour)
		  document.getElementById(this.ref+'hh').value = this.hour;
		if (this.minutes)
		  document.getElementById(this.ref+'ii').value = this.minutes;
	}
	this.hide();
};


function openCalendar(ref,index,initMonth,hour,minutes) {
	if (!cal[index]) {
	   YAHOO.widget.Calendar.IMG_ROOT = pathJs + 'calendar_yui/assets/';
	   cal[index] = new YAHOO.widget.Calendar("cal"+index,"cal"+index+"Container", {close:true});	   
	   cal[index].cfg.setProperty("MONTHS_LONG",    ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"]);
	   cal[index].cfg.setProperty("WEEKDAYS_SHORT", ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"]);
	   cal[index].cfg.setProperty("START_WEEKDAY",  1);
	   cal[index].cfg.setProperty("HIDE_BLANK_WEEKS",  true); 

	   cal[index].ref     = ref;
	   cal[index].hour    = hour;
	   cal[index].minutes = minutes;
	   // Gestisco il campo unico o i campi separati
	   cal[index].uniqueField = document.getElementById(ref) != null ? true : false;	   
	   cal[index].selectEvent.subscribe(mySelectHandler, cal[index], true);
	}
	else {
	  cal[index].show();
	}

	if (cal[index].uniqueField == true) {
		var val = document.getElementById(ref).value;
		var matches = val.match(/^(\d{1,2})[-\/](\d{1,2})[-\/](\d{4})$/);

		if (matches) {
			initMonth = pad(matches[2],2,'0')+'/'+matches[3];
			var sel = pad(matches[2],2,'0')+'/'+pad(matches[1],2,'0')+'/'+matches[3];
		}
	}
	else {
		if (document.getElementById(ref+'mm').value &&
			document.getElementById(ref+'aa').value) {
			initMonth = document.getElementById(ref+'mm').value + '/' +
						document.getElementById(ref+'aa').value;
		}

		if (document.getElementById(ref+'gg').value &&
			document.getElementById(ref+'mm').value &&
			document.getElementById(ref+'aa').value) {

			var sel = document.getElementById(ref+'mm').value + '/'+
					  document.getElementById(ref+'gg').value + '/' +
					  document.getElementById(ref+'aa').value;			
			}
	}

	cal[index].cfg.setProperty("pagedate",  initMonth);
	if (sel)
		cal[index].cfg.setProperty("selected",  sel);

	cal[index].render();
}


// per impostare le date automaticamente nella form di ricerca

	var nowLP = new Date();
	
	var pastLP = new Date(nowLP.getFullYear(),nowLP.getMonth(),nowLP.getDate()-30);
	
	var monthsLP = new Array('01','02','03','04','05','06','07','08','09','10','11','12');

	var dateLP = ((nowLP.getDate()<10) ? "0" : "")+ nowLP.getDate();
	var datePastLP = ((pastLP.getDate()<10) ? "0" : "")+ pastLP.getDate();

	// format = MM-DD-YYYY
	oggi = (dateLP + "/" + monthsLP[nowLP.getMonth()] + "/" + (nowLP.getFullYear()));
	passato = (datePastLP + "/" + monthsLP[pastLP.getMonth()] + "/" + (pastLP.getFullYear()));

// FINE per impostare le date automaticamente nella form di ricerca FINE



