var estoyEnCalendario=0;

function muestraCalendario(i, dt){
  if (document.getElementById){
    if(dt==1 && document.getElementById('fbuscador2')){
      document.getElementById('D').style.visibility='hidden';
      document.getElementById('D2').style.visibility='hidden';
      document.getElementById('MA2').style.visibility='hidden';
	}
    var c = document.getElementById('calendar');
	if(c.style.display!='block') {
		if(i==document.getElementById('bc1')) {
			estoyEnCalendario=1;
		}
		else if(i==document.getElementById('bc2')) {
			estoyEnCalendario=2;
		}
		var ma= document.getElementById('MA'+dt).value.split('_');
		var d= document.getElementById('D'+dt).value;
		td= new Date(ma[1], ma[0]-1, d);
		creaCalendario(ma[1], ma[0], d, dt);
		//var left= -160;
		var left=i.offsetLeft-335;
		var top=i.offsetHeight;
		if(document.getBoxObjectFor)
			left+= document.getBoxObjectFor(i).x,
			top+= document.getBoxObjectFor(i).y;
		else if(i.getBoundingClientRect) {
			var boxRef = i.getBoundingClientRect();
			left+= boxRef.left;
			top+= boxRef.top;
			if(document.compatMode && document.compatMode != 'BackCompat')
				left += document.documentElement.scrollLeft - 2,
				top += document.documentElement.scrollTop - 2;
			else if(!(document.all && /MSIE 5\.0/.test(navigator.appVersion)))
				left += document.body.scrollLeft - 2,
				top += document.body.scrollTop - 2;
		}
		else
			while(i){
				left += i.offsetLeft;
				top += i.offsetTop;
				if(i.offsetParent)
					i = i.offsetParent;
				else
					break;
			}
		c.style.left= left+'px';
		c.style.top= top+'px';
		c.style.display= 'block';
	}
  }
}

function cierraCalendario() {
  document.getElementById('D').style.visibility='visible';
  document.getElementById('D2').style.visibility='visible';
  document.getElementById('MA2').style.visibility='visible';
  document.getElementById('calendar').style.display='none';

		document.getElementById('numberOfRooms').style.visibility='';
		document.getElementById('O').style.visibility='';

}

function creaCalendario(y, m, d, dt)
{
	if (dt == 1)
		document.getElementById('numberOfRooms').style.visibility='hidden';
	else
		document.getElementById('O').style.visibility='hidden';


	var months = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre',];
  var diasEnMes=[31,28,31,30,31,30,31,31,30,31,30,31];
  var mDate = new Date(y, m-1, 1);
  var primerDiaMes = mDate.getDay();
  if (((mDate.getFullYear()%100!=0)&&(mDate.getFullYear()%4==0))||(mDate.getFullYear()%400==0))
    diasEnMes[1]=29;
  var t='<table class="calen" cellspacing="0"><tr><td class="calcab" colspan="7">';
  if (y==hoy.getFullYear() && m==hoy.getMonth()+1)
    t+='<img class="calNomesAnterior" src="images/transparent.png" width="24" height="24" alt="Mes anterior">';
  else
    t+='<a class="calmesAnterior" href="" onclick="mesAnterior('+y+','+m+','+d+','+dt+'); return false;" title="Mes anterior"><img src="images/transparent.png" width="24" height="24" alt="Mes anterior"></a>';
  t+='<select name="ym" onchange="irMesAno(this.options[this.selectedIndex].value,'+dt+')">';
  var mn=hoy.getMonth()+1;
  var yr=hoy.getFullYear();
  var last_month=0;
  for(n=0;n<=10+dt;n++){
    t+='<option value="' + mn + '_' + yr + '"';
    last_month=0;
    if (mn == m && yr == y)
      t+='selected="selected"',
      last_month=1;
    t+= '>' + months[mn-1] + ' ' + yr + '</option>';
    mn++;
    if (mn>12)
      mn=1,
      yr++;
  }
  t+= '</select>';
  if (last_month)
    t+='<img class="calNomesSiguiente" src="images/transparent.png" width="24" height="24" alt="Mes siguiente">';
  else
    t+='<a class="calmesSiguiente" href="" onclick="mesSiguiente('+y+','+m+','+d+','+dt+'); return false;" title="Mes siguiente"><img src="images/transparent.png" width="24" height="24" alt="Mes siguiente"></a>';
  t+= '</td></tr><tr class="nombreDias">';
  for(var dn=0; dn<7; dn++)
    t+='<td>' + 'LMXJVSD'.charAt(dn) + '</td>';
  t+='</tr><tr class="dias">';
  for(i=1;i<=42;i++){
    var x = i - (primerDiaMes+6)%7;
    if (x > diasEnMes[m-1] && i==36)
      break;
    if (x > diasEnMes[m-1] || x < 1)
      x = '&nbsp;';
    var cl = '';
    var href = 0;
    if ((i-1)%7>4)
      cl = 'finSemana';
    if (x>0){
      var xDay = new Date(y, m-1, x);
      if (xDay.getFullYear()==td.getFullYear() && xDay.getMonth()==td.getMonth() && xDay.getDate()==td.getDate())
        cl += ' sel',
        href= 1;
      if (xDay < hoy)
        cl += ' pasado';
      else
        href= 1;
    };
    t+='<td class="'+cl+'">';
    if (href)
      t+='<a href="#" onclick="clickDia('+y+','+m+','+x+','+dt+'); return false;">'+x+'</a>';
    else
      t+=x;
    t+='</td>';
    if(((i)%7==0)&&(i<36))
      t+='</tr><tr class="dias">';
  }
  t+='</tr><tr><td class="calpie" colspan="7"><a href="#" onclick="cierraCalendario();return false;">Cerrar calendario</a></td></tr></table>';
  document.getElementById("calendar").innerHTML= t;
}

function mesAnterior(a, m, d, dt){
  if (m > 1)
    m--;
  else
    m= 12,
    a--;
  creaCalendario(a, m, 32, dt);
}

function mesSiguiente(a, m, d, dt){
  if (m < 12)
    m++;
  else
    m= 1,
    a++;
  creaCalendario(a, m, 32, dt);
}

function irMesAno(ma, dt){
  var i = ma.split("_");
  creaCalendario(i[1], i[0], 1, dt);
}

function clickDia(a,m,d,dt){
  for(var i=0; i < 11+dt; i++)
		if (document.getElementById('MA'+dt).options[i].value == sprint0(2,m)+"_"+a){
			document.getElementById('MA'+dt).selectedIndex= i;
			break;
    }
  document.getElementById('D'+dt).value= sprint0(2,d);
  cierraCalendario();
  if(dt=='1') {
    PonerSalida();PonerNoches('FechaInicio');
  }
  else {
    PonerNoches('FechaFin');
  }
}

function sprint0(a, b){
  var i= Math.abs(a);
  b= b.toString();
  b= b.substr(0, i);
  i-= b.length;
  if (a>0)
    while (i-->0)
      b= '0'+b;
  else
    while (i-->0)
      b+= '0';
  return b;
}
function raton(event){
  var i= document.all?event.srcElement:event.target;
  while(i.id!='calendar' && i!=document.body) {
	if((i.id=='bc1' && estoyEnCalendario==1) || (i.id=='bc2' && estoyEnCalendario==2)) {
		return 0;
	}
	i= i.parentNode;
  }
  if(!i.id) {
    cierraCalendario();
  }
}
