
function
CalculateDate(TheDate)
  {
  TheMonth = TheDate.getMonth() + 1 ;
  TheDay = TheDate.getDate() ;
  TheDateStr = ''+TheDate.getFullYear()+(TheMonth < 10 ? '0'+TheMonth : TheMonth)+(TheDay < 10 ? '0'+TheDay : TheDay) ;
  return parseInt(TheDateStr) ;
  }

var BesatteDatoer = new Array() ;
BesatteDatoer['Ikke Valgt'] = new Array() ;
BesatteDatoer['LejlighedStueplan'] = new Array() ;
BesatteDatoer['Lejlighed1Sal'] = new Array() ;
BesatteDatoer['Ikke Valgt'] = [19642207, 19691207] ;

/* create an array of days which need to be disabled */ 
var WholeWeeksStart = 26, WholeWeeksEnd = 32 ;
var disabledDays = [20110504, 20110505, 20110605, 20110612] ; 
var ToDay = new Date() ;
var MinDate = new Date(ToDay.getFullYear(), ToDay.getMonth(), 1) ;
var MaxDate = new Date(ToDay.getFullYear()+2, 5, 30) ;
var DateFormat = 'DD, d MM, yy' ;
var ThisDate = CalculateDate(ToDay) ; // Days Since 19700101
//alert("ToDay : "+ThisDate) ;

var SelectedDatePicker = "None" ;

var LedigTxt = 'Ledig' ;
function
TestForSat2Sat(WeekNo, DayNo)
  {
  LedigTxt = 'Ledig' ;
  
  if (WeekNo >= WholeWeeksStart && WeekNo <= (WholeWeeksEnd + 1))
    {
	if (WeekNo == WholeWeeksStart && DayNo < 6 && DayNo != 0)
	  {
      return [true, "", "Ledig"] ; 
	  }
	  
	if (WeekNo == (WholeWeeksEnd + 1) && DayNo == 0)
	  {
      return [true, "", "Ledig"] ; 
	  }

	if (WeekNo == (WholeWeeksEnd + 1) && DayNo < 5)
	  {
      return [false, "", "Optaget"] ; 
	  }
	  
	if (DayNo == 6)
	  {
	  if (WeekNo == (WholeWeeksEnd + 1))
	    {
        return [true, "", "Ledig"] ;
		}
	  else
	    {
		LedigTxt = "Ledig (Lørdag til Lørdag)" ;
        return [true, "", LedigTxt] ;
		}
	  }
	else
	  {
      return [false, "", "Optaget"] ;
	  }
	}

  return [true, "", LedigTxt] ; 
  }

function 
nationalDays(date) 
  { 
  var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
  var ThisDateM1 = new Date() ;
  var NextSaturday = new Date(y, m, d - 5) ;
  var LedigTxt = "Ledig" ;
  var Sat2SatRes = new Array() ;
  
  ThisDateM1.setDate(ThisDateM1.getDate() - 1) ;

//if (jQuery.datepicker.iso8601Week(NextSaturday) == 18) 
//  return [false, "", "Optaget"] ;

  WeekNo = $.datepicker.iso8601Week(date) ;
  DayNo = date.getDay() ;

  if ((Sat2SatRes = TestForSat2Sat(WeekNo, DayNo))[0] == false)
    {
    return Sat2SatRes ;
	}
  
  IntDate = CalculateDate(date) ;
  for (i = 0 ; i < disabledDays.length ; i++) 
    {
    if(disabledDays[i] == IntDate || ThisDateM1 > date)
	  { 
      return [false, "", "Optaget"]; 
      } 
    } 

  for (i = 0 ; i < BesatteDatoer[VaerelseType].length ; i +=2) 
    {
    if(IntDate >= BesatteDatoer[VaerelseType][i] && IntDate < BesatteDatoer[VaerelseType][i+1])
	  { 
	  if (SelectedDatePicker == "DepartureDate")
	    {
		if (IntDate == BesatteDatoer[VaerelseType][i])
          return Sat2SatRes; 
		else
          return [false, "", "Optaget"]; 
		}
	  else
        return [false, "", "Optaget"]; 
      } 
	}

  return Sat2SatRes ; 
  } 

function 
noWeekendsOrHolidays(date) 
  { 
  var noWeekend = jQuery.datepicker.noWeekends(date); 
  return noWeekend[0] ? nationalDays(date) : noWeekend; 
  } 

//--------------------------------------------------------------------------------------------------

