var MonthStrCas="error;Enero;Febrero;Marzo;Abril;Mayo;Junio;Julio;Agosto;Septiembre;Octubre;Noviembre;Diciembre;error";
var StrAlerts="Mes Anterior;Mes Actual;hoy;Mes Siguiente;No hay eventos en el mes.;Ver los eventos del mes.;Eventos para el ";
var cabthStr="L;M;X;J;V;S;D";
var MonthStr="error;Urtarrila;Otsaila;Martzoa;Apirila;Maiatza;Ekaina;Uztaila;Abuztua;Iraila;Urria;Azaroa;Abendua;error";
var StrAlerts="Aurrekoa - Anterior;Gaur - Hoy;gaur-hoy;Hurrengoa - Siguiente;Ez daude deialdirik. No hay convocatorias;Ikusi deialdiak. Ver convocatorias;Ikusi deialdiak. Ver convocatorias.";
var cabthStr="Al;Ar;Az;Og;Os;Lb;Ig";

var Hoy= new Date();
var StrDiaHoy=Hoy.getDay();
var StrMesHoy=format00(Hoy.getMonth()+1);
var StrAnoHoy=Hoy.getYear();
var StrHoy=StrAnoHoy+'-'+StrMesHoy+'-'+format00(StrDiaHoy);
//var StrActionPage="EzkerGogoa=Berriak&date";

var ArrAlerts=StrAlerts.split(";");
function CreateCalendar(donde,de,fechaStr)
{

var EventosArr=eventosStr.split(',');
if(fechaStr==''){fechaStr='0000-00-00';}
var fechaArr=fechaStr.split('-');
aa=eval(fechaArr[0]);
mm=eval(fechaArr[1]);
dd=eval(fechaArr[2]);
var cabthArr=cabthStr.split(';');
var MonthArr=MonthStr.split(";");
var MonthArrCas=MonthStrCas.split(";");
obj=document.getElementById(donde);
if(document.getElementById(donde+de+'calendar')){removeElementById(donde);}
tabla=CreateAppend('table',obj);
tabla.id=donde+de+'calendar';
tabla.className='calendar';
tbody=CreateAppend('tbody',tabla);
thead=CreateAppend('thead',tabla);
tfoot=CreateAppend('tfoot',tabla);
mes = new Date();
if(aa=='0000')
{
  with(mes)
  {
    aa=getFullYear();
    mm=getMonth()+1;
    dd=getDate();
    setDate(1);
    var startday=diaSemana(getDay())-2;
  }
}
else
{
  with(mes)
 {
   setFullYear(aa);
   setMonth(mm-1);
   setDate(1);
   var startday=diaSemana(getDay())-2;
 }
}

var Ant=mesAnterior(mes);
var Sig=mesSiguiente(mes);
var diasMesAnterior=diasMes(Ant);

var diasMesSiguiente=diasMes(Sig);
var diasMesActual=diasMes(mes);
var numSemanasMes=NumeroSemanasMes(startday,diasMesActual);
var anterior=formatDate(Ant);
var posterior=formatDate(Sig);
tr_=CreateAppend('tr',thead);

th_=CreateAppend('td',tr_);
th_.colSpan=2;
a=CreateAppend('a',th_);
a.href='#'

a.onclick=function(){CreateCalendar(donde,de,anterior);}
a.title=ArrAlerts[0]; //Mes Anterior
a.innerHTML='&laquo;'

th_=CreateAppend('td',tr_);
th_.colSpan=3;
a=CreateAppend('a',th_);
a.href='#'
a.title=anterior;
a.onclick=function(){CreateCalendar(donde,de,'0000-00-00');}
a.title=ArrAlerts[1]; //'Mes Actual';
a.innerHTML=ArrAlerts[2]; //hoy

th_=CreateAppend('td',tr_);
th_.colSpan=2;
a=CreateAppend('a',th_);
a.href='#';
a.onclick=function(){CreateCalendar(donde,de,posterior);}
a.title=ArrAlerts[3]; //Mes siguiente
a.innerHTML='&raquo;';

tr=CreateAppend('tr',thead);
th=CreateAppend('th',tr);
th.colSpan=7;
th.className='LMXJVSD';
var LinkVerMes=CreateAppend('a',th);

LinkVerMes.href='#'
LinkVerMes.onclick=function(){alert(ArrAlerts[4]);}//No hay eventos en el mes
LinkVerMes.innerText=MonthArrCas[mm]+' '+aa+' '+MonthArr[mm];
LinkVerMesclassName='LMXJVSD';
tr=CreateAppend('tr',thead);
for(d=0;d<7;d++)
{
th=CreateAppend('th',tr);
th.className='LMXJVSD';
th.innerText=cabthArr[d];
}


for(i=0;i<numSemanasMes;i++)
{
  tr=CreateAppend('tr',tbody);
  for(d=0;d<7;d++)
  {
    td=CreateAppend('td',tr);
    a=CreateAppend('a',td);


    diaLink= (i*7+d)-startday;//diasMesAnterior;

    if(diaLink<=0)
    {
      diaLink+=diasMesAnterior;
      a.id=Ant.getFullYear()+'-'+format00(Ant.getMonth()+1)+'-'+format00(diaLink);
      a.innerText=diaLink;

    }
    else if(diaLink>diasMesActual)
    {
      diaLink-=diasMesActual;
      a.id=Sig.getFullYear()+'-'+format00(Sig.getMonth()+1)+'-'+format00(diaLink);
      a.id=aa+'-'+format00(mm+1)+'-'+format00(diaLink);
      a.innerText=diaLink;

    }
    else
    {
      a.id=aa+'-'+format00(mm)+'-'+format00(diaLink);
      a.innerText=diaLink;
    }
    
    if(a.id==StrHoy)
    {
     a.style.color='red';
     a.ClassName+=' hoy';
    }
    else
    {
      //getById("cal").innerHTML= getById("cal").innerHTML+a.id;
    }
    if(EventosArr.inArray(a.id))
    {
      a.className+=' evento';
      a.href='?'+StrActionPage+'=';
      a.href+=a.id;
      a.title=ArrAlerts[6]+a.id;
      LinkVerMes.href='?'+StrActionPage+'='+aa+'-'+format00(mm)+'-00';
      LinkVerMes.title=ArrAlerts[5];
      LinkVerMes.onclick='';
    }
    else{a.href='#'}


  }
}

}
///////////////
function removeElementById(ide)
{
obj=document.getElementById(ide);
removeallChilds(obj);
}

function CreateAppend(tipo,where)
{
  var obj=document.createElement(tipo);
  where.appendChild(obj);
  return obj;
}

function removeallChilds(Element)
{
if(!Element.firstChild) return 0;// Si no tiene hijos fuera
if (Element.firstChild.fistChild)
   removeallChilds(Element.firstChild)
else
   do
   {
   Element.removeChild(Element.firstChild);
   }while(Element.firstChild)

}
/************/



function diaSemana(num)
{
  if(num==0)
  {
    num=7;
  }
  return num;
}
function mesSiguiente(mes)
{

    var aa=mes.getFullYear();
    var mm=mes.getMonth();
    var dd=mes.getDate();

  mm+=1;
  dd=1;
  if(mm>11)
  {
    mm=0;
    aa+=1;
  }
  var sig=new Date();

  sig.setYear(aa);
  sig.setMonth(mm);
  sig.setDate(dd);

  return sig;
}

function mesAnterior(Act)
{
   with(Act)
   {
    var aa=getFullYear();
    var mm=getMonth();
    var dd=getDate();
   }
  mm-=1;
  dd=1;
  if(mm<0)
  {
    mm=11;
    aa-=1;

  }
  var ant=new Date();

  ant.setYear(aa);
  ant.setMonth(mm);
  ant.setDate(dd);

  return ant;
}
function diasMes(mes_)
{
  mes_.setDate(28);
  var dia1=diaSemana(mes_.getDay());
  var sig = new Date();
  sig=mesSiguiente(mes_);
  sig.setDate(1);
  var dia2=diaSemana(sig.getDay());
  var distancia=(dia2-dia1)-1;

  if(distancia<0)
  {
   distancia= 6+(dia2-dia1);
  }
  else
  {
   distancia=(dia2-dia1)-1;
  }

 return 28 +distancia;
}
/**/
function format00(n)
{
  nStr='0'+n;
  var offset=0;
  if(nStr.length==3)
  {
    var offset=1;
  }
  return nStr.slice(0+offset,2+offset);
}
function NumeroSemanasMes_(pMes)
{

  var StartDay=1;
  var DiasMes=30;
  var semanas=6;
  with(pMes)
  {

    setDate(1);
    StartDay=getDay();

    DiasMes=diasMes(pMes);
  }

  semanas= ((diaSemana(StartDay)+DiasMes-1)/7);

  return Math.ceil(semanas);
}
function NumeroSemanasMes(pStartday,pdiasMes)
{
  var semanas=6;
  var semanas= ((pStartday+pdiasMes+1)/7);
  return Math.ceil(semanas);
}
function formatDate(fecha)
{
  with(fecha)
  {
  return getFullYear()+'-'+format00(getMonth()+1)+'-'+format00(getDate());
  }
}