/**   FUNÇÕES DO CALENDARIO ***/


function buildCal(m, y, cM, cH, cDW, cD, brdr){
  var mn=['January','February','March','April','May','June','July','August','September','October','November','December'];
  var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
  
  var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
  oD.od=oD.getDay(); //DD replaced line to fix date bug when current day is 31st
  
  var todaydate=new Date() //DD added
  var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added
  
  dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;//define dias de fevereiro
  
  var t='<div class="'+cM+'"><table cellpadding="0" border="'+brdr+'" cellspacing="2" align="center" width="75"><tr>';
  
  t+='<td colspan="7" align="center" class="'+cH+'">'+mn[m-1]+' '+y+'</td></tr><tr>';
  //for(s=0;s<7;s++)t+='<td class="'+cDW+'">'+"SMTWTFS".substr(s,1)+'</td>';
  for(s=0;s<7;s++){
	  t+='<td align="center" class="'+cDW+'">'+"MTWTFSS".substr(s,1)+'</td>';
	}	
  t+='</tr><tr align="center">';
	var cDnormal = cD;
	s = 0;
  for(i=1;i<=42;i++){	
	  cD = cDnormal;
	  if (s>=5){
		  cD = "fds";
			if (s >= 6){s=-1;}
		}
		s++;		
   var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';//calcula o dia
	 if (x=='&nbsp;'){cD = cDnormal;}
   if (x==scanfortoday){ //é hoje
	    x='<span id="today">'+x+'</span>' //DD added
	 }		
   t+='<td align="center" class="'+cD+'">'+x+'</td>';//escreve o dia
   if(((i)%7==0)&&(i<36))t+='</tr><tr>';
  }
  return t+='</tr></table></div>';
}




/******** FUNÇÕES ESPECIFICAS PARA AS IMAGENS  *********/


/* controlos de opacidade PARA IMAGENS INDIVIDUAIS!*/
function fadeIn(id, opacStart, opacEnd, millisec) {
    //vel por frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determinar direcção
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//definir opacidade de acordo com a browser
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}   