
var ns6=document.getElementById&&!document.all
var ie4=document.all

var Selected_Month;
var Selected_Year;
var Current_Date = new Date();
var Current_Month = Current_Date.getMonth();
var MonthHoy = Current_Date.getMonth();
var DiasReservados = new Array() 


var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

var Current_Year = Current_Date.getYear();
var YearHoy = Current_Date.getYear();
if (Current_Year < 1000){
   Current_Year+=1900;
   YearHoy+=1900;
}



var Today = Current_Date.getDate();

function Header(Year, Month) {

   if (Month == 1) {
   Days_in_Month[1] = ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 !=0))) ? 29 : 28;
   }
   var Header_String = Month_Label[Month] + ' ' + Year;
   return Header_String;
}

function EstaReservat(id){
  var trobat=false;
  c4=0;
  while ((!trobat) && (c4<=DiasReservados.length)){
      if (id==DiasReservados[c4]){
      	trobat=true;
       }
      c4++;
  }
  return trobat;
}

function EstaVermell(id){
  var trobat=false;
  c4=0;
  while ((!trobat) && (c4<=DiasRojos.length)){
      //alert(id+"  "+DiasRojos[c4]);
      if (id==DiasRojos[c4]){
      	trobat=true;
      }
      c4++;
  }
  return trobat;
}

function azulea(obj){
   if (obj.style.backgroundColor==''){
   	obj.style.backgroundColor='#98e318';
   }
   obj.style.cursor = 'hand';
}

function blanquea(obj){
   if (obj.style.backgroundColor=='#98e318'){
        obj.style.backgroundColor='';
   }
   obj.style.cursor = 'default';
} 

function Make_Calendar1(Year, Month, ClassTR, ClassTD, ClassTH, ClassTABLE) {
   var First_Date = new Date(Year, Month, 1);
   var Heading = Header(Year, Month);
   var First_Day = First_Date.getDay() + 1;
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 4;
   }
   else {
      var Rows = 5;
   }

   var HTML_String = '<table width="530" border="0" cellspacing="0" cellpadding="0"><tr class="calendarioTR"><td class="'+ClassTD+'"><table class="'+ClassTABLE+'" width="160" border="0" cellspacing="1" cellpadding="0" align="center">';

   HTML_String += '<tr class="'+ClassTR+'"><th class="'+ClassTH+'" colspan="7"  height="22">' + Heading + '</font></th></tr>';

   HTML_String += '<tr class="'+ClassTR+'"  height="22"><th class="'+ClassTH+'">S</th><th class="'+ClassTH+'">M</th><th class="'+ClassTH+'">T</th><th class="'+ClassTH+'">W</th>';

   HTML_String += '<th class="'+ClassTH+'">Thu</th><th class="'+ClassTH+'">F</th><th class="'+ClassTH+'">S</th></tr>';

   var Day_Counter = 1;
   var Loop_Counter = 1;
  
   for (var j = 1; j <= Rows; j++) {
      if (ClassTD=='CalendarioTDaux'){
      	 HTML_String += '<tr class="'+ClassTR+'">';
      }
      else{
         HTML_String += '<tr class="'+ClassTR+'">';
      }
      for (var i = 1; i < 8; i++) {
	  	alert(i);
         if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) {
            if (EstaReservat('id'+Day_Counter+'/'+Month+'/'+Year)){
            	if (ClassTD=='CalendarioTDaux'){
            	   HTML_String += '<td  bgcolor="#66FF66" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'">' + Day_Counter + '</td>';
        	}
                else{
                   HTML_String += '<td  bgcolor="#1122aa" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'"  onMouseOver="azulea(this)" onMouseOut="blanquea(this)" onClick="sombrea(this,'+i+','+j+','+Day_Counter+','+Month+','+Year+')";return false>' + Day_Counter + '</td>';
                }
            }
            else if(EstaVermell((Day_Counter)+'/'+(parseInt(Month)+1)+'/'+Year)){
               if (ClassTD=='CalendarioTDaux'){
               	  HTML_String += '<td  bgcolor="#FF9999" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
               }
               else{
                  if (document.all){               
                      HTML_String += '<td  bgcolor="#FF0000" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'"  onMouseOver="azulea(this)" onMouseOut="blanquea(this)" onClick="sombrea(this,'+i+','+j+','+Day_Counter+','+Month+','+Year+')";return false" >' + Day_Counter + '</td>';
                  }
                  else{
                    HTML_String += '<td  bgcolor="#FF0000" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
                  }    
               }
            }
            else{
               if (ClassTD=='CalendarioTDaux'){
               	  HTML_String += '<td  id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
               }
               else{
                  if (document.all){
                      HTML_String += '<td bgcolor="#FFcc00"  id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'"  onMouseOver="azulea(this)" onMouseOut="blanquea(this)" onClick="sombrea(this,'+i+','+j+','+Day_Counter+','+Month+','+Year+')";return false" >' + Day_Counter + '</td>';
                  }
                  else{
                      HTML_String += '<td bgcolor="#FFcc00" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
                  }
               }
            }
            
            Day_Counter++;    
         }
         else {
            HTML_String += '<td class='+ClassTD+'> </td>';
         }
         Loop_Counter++;
      }
      HTML_String += '</tr>';
   }
   HTML_String += '</table></td></tr></table>';
   return HTML_String;
}
function Make_Calendar(Year, Month, ClassTR, ClassTD, ClassTH, ClassTABLE) {
   var First_Date = new Date(Year, Month, 1);
   var Heading = Header('', Month);
   var First_Day = First_Date.getDay() + 1;
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 5;
   }
   else {
      var Rows = 6;
   }

   var HTML_String = '<table width="160" border="0" cellspacing="1" cellpadding="0" align="center" bgcolor="#999999">';

   HTML_String += '<tr align="center" bgcolor="#FF9900" class="'+ClassTABLE+'"><td colspan="7" height="10">' + Heading + '</td></tr>';

   HTML_String += '<tr bgcolor="#98e318" align="center" height="10"><td class="'+ClassTH+'">S</td><td class="'+ClassTH+'">M</td><td class="'+ClassTH+'">T</td><td class="'+ClassTH+'">W</td>';

   HTML_String += '<td class="'+ClassTH+'">T</td><td class="'+ClassTH+'">F</td><td class="'+ClassTH+'">S</td></tr>';

   var Day_Counter = 1;
   var Loop_Counter = 1;
   
   for (var j = 1; j <= Rows; j++) {
      if (ClassTD=='CalendarioTDaux'){
      	 HTML_String += '<tr class="'+ClassTR+'">';
      }
      else{
         HTML_String += '<tr class="'+ClassTR+'">';
      }
      for (var i = 1; i < 8; i++) {
         if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) {   
		 	//selected dates color         
            if (EstaReservat('id'+Day_Counter+'/'+Month+'/'+Year)){
            	if (ClassTD=='CalendarioTDaux'){
            	   HTML_String += '<td  height="10"  bgcolor="#999999" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'">' + Day_Counter + '</td>';
        		}
                else{
                   HTML_String += '<td  height="10"  bgcolor="#999999" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'"  onMouseOver="azulea(this)" onMouseOut="blanquea(this)" onClick="sombrea(this,'+i+','+j+','+Day_Counter+','+Month+','+Year+')";return false>' + Day_Counter + '</td>';
                }
            }
            //else if(EstaVermell((Day_Counter)+'/'+(parseInt(Month)+1)+'/'+Year)){               
            //  if (ClassTD=='CalendarioTDaux'){
            //   	  HTML_String += '<td  height="10" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
            //  }
            //   else{
            //      if (document.all){               
            //          HTML_String += '<td height="10"  bgcolor="#FF0000" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'"  onMouseOver="azulea(this)" onMouseOut="blanquea(this)" onClick="sombrea(this,'+i+','+j+','+Day_Counter+','+Month+','+Year+')";return false" >' + Day_Counter + '</td>';
             //     }
            //      else{
            //        HTML_String += '<td height="10"  bgcolor="#FF0000" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
            //      }    
            //   }
            //}
            else{
				//simple dates
               if (ClassTD=='CalendarioTDaux'){
               	  HTML_String += '<td bgcolor="#66FF66" height="10"  id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
               }
               else{
                  if (document.all){
                      HTML_String += '<td  bgcolor="#ECFDC4" height="10" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'"  onMouseOver="azulea(this)" onMouseOut="blanquea(this)" onClick="sombrea(this,'+i+','+j+','+Day_Counter+','+Month+','+Year+')";return false" >' + Day_Counter + '</td>';
                  }
                  else{
                      HTML_String += '<td bgcolor="#ECFDC4" height="10" id="id'+Day_Counter+'/'+Month+'/'+Year+'" class="'+ClassTD+'" >' + Day_Counter + '</td>';
                  }
               }
            }
            
            Day_Counter++;    
         }
         else {
		 //no date color
            HTML_String += '<td bgcolor="#ECFDC4" class='+ClassTD+'  height="10">&nbsp;</td>';
         }
         Loop_Counter++;
      }
      HTML_String += '</tr>';
   }
   HTML_String += '</table>';
   return HTML_String;
}
function duplicados(valor,destino){
 var dobles;
 dobles='no';
 for(c = 0;c < destino.length; c++){
   if (destino.options[c].text==valor){
     dobles='si';
   }
 }
 return(dobles);
}

function afegir(texto,valor,destino){
 init();
 var len=destino.length;
 if (duplicados(texto,destino)=='no'){
		   destino.options[len] = new Option(texto);
   		   destino.options[len].value = valor;
   		   destino.scrollTop=1000;
   		   destino.focus;
 }else{
	for(var i = 0; i < len; i++) {
		if(destino.options[i].text == texto) {
			deleteElement(DiasReservados,i);
			destino.options[i] = null;								
			destino.scrollTop=1000;
   		    destino.focus;
			break;
		}//endIf		
	 }//endFor
 } 
}

function borrar(destino){
	for(var i = (destino.options.length-1); i >= 0; i--){
		destino.options[i] = null; 
	}
	destino.options[0] = new Option('(No selected DAYS)');
	destino.options[0].value = '';
	for(u=0;u<=DiasReservados.length; u++){
	    deleteElement(DiasReservados,u);
	}
	for(u=0;u<=DiasRojos.length; u++){
		deleteElement(DiasRojos,u);
	    //delete DiasRojos[u];
	}
	//defaultSelect(document.getElementById("recep_perfil"));
	Selected_Month = Current_Date.getMonth();
	Selected_Year = Current_Date.getYear();
	Make_Calendar(Selected_Year,Selected_Month);
	PutCalendar();
}

function init(){
 destino=document.getElementById("recep_perfil");
 for(var i = (destino.options.length-1); i >= 0; i--){
 if ((destino.options[i].text == '(No selected DAYS)') || (destino.options[i].text == '(geen geselecteerde dagen)')) destino.options[i] = null; 
 }
}

function fes_sombrajat(obj,i,j,d,m,y){
    var flag = 0;
    var dia='id'+d+'/'+m+'/'+y;
    var dia2=d+'/'+(m+1)+'/'+y;
    var dia3=d+'/'+(m+1)+'/'+y; //Format espanyol 
    var len;    
    len = DiasReservados.length;    
	for(var i = 0; i < len; i++) {
		if(DiasReservados[i] == dia) {
			flag++;
		}
	}	
    if (flag==0){	
      var combo=document.getElementById("recep_perfil");      
      len = afegir('DAY: '+dia2,dia2,combo);
      DiasReservados[DiasReservados.length]=dia;
	  document.all[dia].style.backgroundColor="999999";	  
      //document.getElementById('CURRENT SELECTION_s').style.display='';
      //document.getElementById('CURRENT SELECTION_b').style.display='';      
    }
    else{
      var combo=document.getElementById("recep_perfil");
      document.all[dia].style.backgroundColor="ECFDC4";
      //DiasReservados[DiasReservados.length]=dia;  
      afegir('DAY: '+dia2,dia2,combo);
      //document.getElementById('CURRENT SELECTION_s').style.display='';
      //document.getElementById('CURRENT SELECTION_b').style.display='';  
    }
}
function sombrea(obj,i,j,d,m,y){
  today = new Date();  
  fes_sombrajat(obj,i,j,d,m,y);
  
  //if (y > today.getYear() ){
  //  fes_sombrajat(obj,i,j,d,m,y);
  //}
  //else {	
  //  if (m > today.getMonth() ) {		
  //      fes_sombrajat(obj,i,j,d,m,y);
  //  }
  //  else{			
  //    if (d > today.getDate()+2 ){				
  //    	fes_sombrajat(obj,i,j,d,m,y);
  //    }
  //   else {
  //          alert('Your first rental date must be three days from today´s date. ');
  //    }
  //  }
  //}
}

function Check_Nums() {
   if ((event.keyCode < 48) || (event.keyCode > 57)) {
      return false;
      }
      else {
   }
}



//function On_ChangeDate() {
//   var Year = document.when.year.value;
//   Selected_Month = document.when.month.selectedIndex;
//      Selected_Year = Year;
//      Make_Calendar(Selected_Year, Selected_Month);
//      PutCalendar();
//}

//function ReconfiguraFecha() {
//   if (((document.when.month.selectedIndex>=MonthHoy) && (document.when.year.value>=YearHoy))){
//   	On_ChangeDate();
//   }
//   else{
//       On_ChangeDate();
//   }
//}

function PutCalendar(){
   var tempMonth=parseInt(Selected_Month);
   var tempYear=parseInt(Selected_Year);
   //cross_el=ns6? document.getElementById("Calendar0") : document.all.Calendar0;
   //if (tempMonth-1==-1) {
   //   cross_el.innerHTML = Make_Calendar(Selected_Year-1, 11, "CalendarioTRaux", "CalendarioTDaux", "CalendarioTHaux", "CalendarioTABLEaux");
  // }
  // else{
  //    cross_el.innerHTML = Make_Calendar(Selected_Year, tempMonth-1, "CalendarioTRaux", "CalendarioTDaux", "CalendarioTHaux", "CalendarioTABLEaux");
  // }
   //---------------------------------------------------------------------------
   cross_el=ns6? document.getElementById("Calendar0") : document.all.Calendar0;
   cross_el.innerHTML = Make_Calendar(Selected_Year, tempMonth, "ClassTR", "ClassTD", "ClassTH", "CalendarTable");
   //---------------------------------------------------------------------------
   for (cc=1;cc<6;cc++){
      var id="Calendar"+cc;	
      cross_el=ns6? document.getElementById(id) : document.all[id];
      
      if (tempMonth+1==12) {
      	 cross_el.innerHTML = Make_Calendar(tempYear+1, 0, "ClassTR", "ClassTD", "ClassTH", "CalendarTable");
      	 //cross_el.innerHTML = Make_Calendar(tempYear+1, 0, "CalendarioTRaux", "CalendarioTDaux", "CalendarioTHaux", "CalendarioTABLEaux");
         tempMonth=0;
         tempYear=parseInt(tempYear)+1;
      }
      else{
         tempMonth=tempMonth+1;
         cross_el.innerHTML = Make_Calendar(tempYear, tempMonth, "ClassTR", "ClassTD", "ClassTH", "CalendarTable");
         //cross_el.innerHTML = Make_Calendar(tempYear, tempMonth, "CalendarioTRaux", "CalendarioTDaux", "CalendarioTHaux", "CalendarioTABLEaux");
         
      }
   }
}

function Defaults() {
   if (!ie4&&!ns6)
   return
   var Mid_Screen = Math.round(document.body.clientWidth / 2);
//   document.when.month.selectedIndex = Current_Month;
//   document.when.year.value = Current_Year;
   Selected_Month = Current_Month;
   Selected_Year = Current_Year;
   defaultSelect(document.getElementById("recep_perfil"));
   PutCalendar();
   
}


function Skip(Direction) {
   if (Direction == '+') {
      if (!((Selected_Month>=MonthHoy) && (Selected_Year>=(YearHoy+2)))){
         if (Selected_Month == 11) {
            Selected_Month = 0;
            Selected_Year++;
         }
         else {
            Selected_Month = Selected_Month + 6;
            if(Selected_Month == 12){
				Selected_Month = 0;
				Selected_Year++;
            }else if(Selected_Month > 12){
				Selected_Month = Selected_Month % 6;
				Selected_Year++;
            }
         }
      }
      else{
      	alert('Date out of range, get back');
      }
   }
   else {
      if (!((Selected_Month<=MonthHoy) && (Selected_Year<=YearHoy-1))){ 	
         if (Selected_Month == 0) {
            Selected_Month = 6;
            Selected_Year--
            //Selected_Month--;
         }
         else{
            Selected_Month = Selected_Month - 6;
            if(Selected_Month < 0){
				Selected_Month = 12 + (Selected_Month);
				Selected_Year--;
            }
         }
      }
      else{
        alert('Date out of range, go forward');
      }
   }
   ;
//   document.when.month.selectedIndex = Selected_Month;
//   document.when.year.value = Selected_Year;
document.getElementById('myMonth').innerHTML=Month_Label[Selected_Month];
document.getElementById('myYear').innerHTML=Selected_Year;	
   PutCalendar();   
}

function enviarSelecciones(){
var lloc;
	lloc=document.getElementById("recep_perfil");
	if ((lloc.length >= 1) && (lloc.options[0].text !="(No selected DAYS)" )){
	   for (c1=0;c1 < lloc.length;c1++){
	   	lloc.options[c1].selected=true;
	   }
           document.form1.submit();
        }
        else{
          alert('You must select a minimum of one day')
        }
}

function defaultSelect(destcbo){
	var len;	
	len = destcbo.length;
	for(i=0; i<len; i++){
		destcbo.options[i] = null;
	}	
	for(u=0;u<=DiasReservados.length; u++){
		deleteElement(DiasReservados,u);
	}
	for(i=0; i < DiasRojos.length; i++){
		destcbo.options[i] = new Option('DAY: '+DiasRojos[i]);
   		destcbo.options[i].value = DiasRojos[i];
   		var ri = new RegExp("^(\\d+)\/(\\d+)\/(\\d+)$", "gi");
		var aRI = ri.exec(DiasRojos[i]);
		var d = (RegExp.$1);
		var m = (parseInt(RegExp.$2) - 1);
		var y = (RegExp.$3);
   		DiasReservados[i] = 'id'+d+'/'+m+'/'+y;
   		//alert(DiasReservados[i]);
	}
	if(destcbo.length == 0){
		destcbo.options[0] = new Option('(No selected DAYS)');
	}else{
		destcbo.scrollTop=1000;
   		destcbo.focus;
	}	
}	

function deleteElement(array, n) {
  //delete the nth element of array
  var length = array.length;
  if (n >= length || n<0)
    return;

  for (var i=n; i<length-1; i++)
    array[i] = array[i+1];
  array.length--;
}
