﻿/*var day_of_week1053 = new Array('M','T','O','T','F','L','S');
var day_of_week1033 = new Array('M','T','W','T','F','S','S');

var month_of_year = new Array('januari','februari','mars','april','maj','juni','juli','augusti','september','oktober','november','december');*/

var TR_start = '<TR>';
var TR_end = '</TR>';

var highlight_start = '<TD class=today><B><CENTER>';
var highlight_end   = '</CENTER></B></TD>';

var selDay_start = '<TD class="selDay"><B><CENTER>';
var selDay_end   = '</CENTER></B></TD>';

var TD_start = '<TD class="day"><CENTER>';
var TD_end = '</CENTER></TD>';

var week_start = '<TD class="week"><CENTER>';
var week_end =  '</CENTER></B></TD>';
/*
var firstCalDivName = 'ctl11_HotelCriteria1_JSCal1_divCalendar';
var firstCalHiddenName = 'ctl11$HotelCriteria1$JSCal1$hidCalendarDate';//'_ctl6_HotelCriteria1_JSCal1_hidCalendarDate';

var secondCalDivName = 'ctl11_HotelCriteria1_JSCal2_divCalendar';
var secondCalHiddenName = 'ctl11$HotelCriteria1$JSCal2$hidCalendarDate';//'ctl6_HotelCriteria1_JSCal2_hidCalendarDate';

var firstDropDayName = 'ctl11_HotelCriteria1_ddFromDay';//'_ctl6:HotelCriteria1:ddFromDay'; // 
var firstDropMonthName = 'ctl11_HotelCriteria1_ddFromMonth';//'_ctl6:HotelCriteria1:ddFromMonth'; // 
var firstLabelDayName = 'ctl11_HotelCriteria1_lbFromDayName';

var secondDropDayName = 'ctl11_HotelCriteria1_ddToDay';//'_ctl6:HotelCriteria1:ddToDay';//
var secondDropMonthName = 'ctl11_HotelCriteria1_ddToMonth';//'_ctl6:HotelCriteria1:ddToMonth';//
var secondLabelDayName = 'ctl11_HotelCriteria1_lbToDayName';
*/
function GetNextMonth(date)
{

if(date.getMonth()==11)
	nDate = DateFromString(parseInt(date.getFullYear()+1) +"-" +"01" +"-01");
else	
	{		
	sDate = date.getFullYear() +"-" +parseInt(date.getMonth()+2) +"-01";		
	nDate = DateFromString(sDate);
	}

return StringFromDate(nDate);
}

function GetPrevMonth(date)
{
if(date.getMonth()==0)
	nDate = DateFromString(parseInt(date.getFullYear()-1) +"-" +"12" +"-01");
else	
	{			
	sDate = date.getFullYear() +"-" +date.getMonth() +"-01";		
	nDate = DateFromString(sDate);
	}

nDate.setMonth(nDate.getMonth()+1);
nDate.setDate(nDate.getDate()-1);

return StringFromDate(nDate);
}

function renderCal(Calendar,divName,hiddenName)
{
 if (!document.getElementById(firstDropDayName))
        return;
    if (!document.getElementById(firstDropMonthName))
        return;
    if (!document.getElementById(firstLabelDayName))
        return;
    if (!document.getElementById(secondDropDayName))
        return;
    if (!document.getElementById(secondDropMonthName))
        return;
    if (!document.getElementById(secondLabelDayName))
        return;
        
if(!Calendar || Calendar=="")
	{
	Calendar = new Date();	
	}
else
	Calendar = DateFromString(Calendar);
	
dateCompare = new Date();
dateCompare.setDate(dateCompare.getDate()+0);

/*
if(DateFromString(StringFromDate(Calendar)) < DateFromString(StringFromDate(dateCompare)))
{
    if (lcid == 1053)
    {
	    alert("Du har valt ett f\u00F6r tidigt datum: " + StringFromDate(Calendar));
	}
	else
	{
	    alert("The date you choose is too early: " + StringFromDate(Calendar));
	}
	return;
}
*/


selDateString = StringFromDate(Calendar);	
selDate = DateFromString(selDateString);


var year = Calendar.getFullYear();	   
var month = Calendar.getMonth();   
var weekday = Calendar.getDay();   

var todayDate = new Date();
var DAYS_OF_WEEK = 7;
var DAYS_OF_MONTH = 31;    
var cal;    

/*alert(StringFromDate(Calendar));*/
	
var dateSegs = StringFromDate(Calendar).split("-");	
y = dateSegs[0];
m = dateSegs[1];
d = dateSegs[2];
	
/*alert(d.substring(0,1));*/
if (d.substring(0,1) == "0")
{	
	d = d.substring(1,2);
}
	
if (divName == firstCalDivName)
{
	/*alert(divName);*/
	/*alert(m);*/
	select(firstDropMonthName, m + "-" + y); //
	select(firstDropDayName, d);
	document.getElementById(firstLabelDayName).innerHtml = d;
}
else
{
	/*alert(divName);*/
	select(secondDropMonthName, m + "-" + y); // + "-" + y
	select(secondDropDayName, d);
	document.getElementById(secondLabelDayName).innerHtml = d;
}

Calendar.setDate(1);    




cal =  '<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0  width=180><TR><TD>';
cal += '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 class=text width=180>';
//cal += '<tr>';
//cal += '<td rowspan=3 class=title><a href="javascript:renderCal(\'' +GetPrevMonth(Calendar) +'\',\'' +divName +'\',\'' +hiddenName +'\');"><img src=/images/booking/calPrevMonth.gif vspace=0 hspace=0 border=0 /></a></TD>';
//cal += '<td bgcolor=white height=3 width="100%" COLSPAN="' + parseInt(parseInt(DAYS_OF_WEEK)-1) + '" ><img src=/images/transp.gif height=1 width=1 /></td>';
//cal += '<TD rowspan=3 class=title align="right"><a href="javascript:renderCal(\'' +GetNextMonth(Calendar) +'\',\'' +divName +'\',\'' +hiddenName +'\');"><img src=/images/booking/calNextMonth.gif vspace=0 hspace=0 border=0 /</a></TD>';
//cal += '</tr>';

cal += '<tr>';
cal += '<td class=title><a href="javascript:renderCal(\'' +GetPrevMonth(Calendar) +'\',\'' +divName +'\',\'' +hiddenName +'\');"><img src=/images/booking/calPrevMonth.gif vspace=0 hspace=0 border=0 /></a></TD>';
cal += '<TD class=title COLSPAN="' + parseInt(parseInt(DAYS_OF_WEEK)-1) + '" ><CENTER><B>';
cal += month_of_year[month]  + '   ' + year + '</B>' + TD_end;
cal += '<TD class=title align="right"><a href="javascript:renderCal(\'' +GetNextMonth(Calendar) +'\',\'' +divName +'\',\'' +hiddenName +'\');"><img src=/images/booking/calNextMonth.gif vspace=0 hspace=0 border=0 /</a></TD>';
cal += '</tr>';

//cal += '<tr>';
///*cal += '<TD class=title><a href="javascript:renderCal(\'' +GetPrevMonth(Calendar) +'\',\'' +divName +'\',\'' +hiddenName +'\');"><img src=/images/booking/calPrevMonth.gif vspace=0 hspace=0 border=0 /></a></TD>';*/
////cal += '<TD class=title COLSPAN="' + parseInt(parseInt(DAYS_OF_WEEK)-1) + '" ><CENTER><B>';
////cal += month_of_year[month]  + '   ' + year + '</B>' + TD_end;
///*cal += '<TD class=title align="right"><a href="javascript:renderCal(\'' +GetNextMonth(Calendar) +'\',\'' +divName +'\',\'' +hiddenName +'\');"><img src=/images/booking/calNextMonth.gif vspace=0 hspace=0 border=0 /</a></TD>';*/
////cal += '</tr>';
//cal += '<tr>';
//cal += '<td bgcolor=white height=3 COLSPAN="' + parseInt(parseInt(DAYS_OF_WEEK)-1) + '" ><img src=/images/transp.gif height=1 width=1 /></td>';
//cal += '</tr>';
cal += '<tr>';
cal += '<td bgcolor=white height=3 COLSPAN="' + parseInt(parseInt(DAYS_OF_WEEK)+1) + '" ><img src=/images/transp.gif height=1 width=1 /></td>';
cal += '</tr>';
cal += '<tr>';

cal += week_start + "&nbsp;" + TD_end;

for(index=0; index < DAYS_OF_WEEK; index++)
{
	    cal += week_start + day_of_week[index] + week_end;
}

if(Calendar.getDay()!=1)
{
	cal += TD_end + TR_end;
	cal += TR_start;
	cal += week_start + 'v ' + getWeekNr(Calendar) + TD_end;	

	if(Calendar.getDay()==0)
	{		
		for(index=0; index<6; index++)
			cal += TD_start + '&nbsp;' + TD_end;	
	}
	else
	{	
		for(index=0; index<Calendar.getDay()-1; index++)
			cal += TD_start + '&nbsp;' + TD_end;	
	}
}


for(index=0; index < DAYS_OF_MONTH; index++)
{
if( Calendar.getDate() > index )
{
  week_day = Calendar.getDay();
  
  if(week_day == 1)
  {	
	cal += TR_start;	
	cal += week_start + 'v ' + getWeekNr(Calendar) + TD_end;	
  }  
  
  if(week_day != DAYS_OF_WEEK)
  {  
  var day  = Calendar.getDate();
  dayString = "<a class=todayLink onclick='hideCalendars();' href='javascript:renderCal(\"" +StringFromDate(Calendar) +"\",\"" +divName +"\",\"" +hiddenName +"\")'>" +day +"</a>";    
  selDayString = "<a class=selDayLink onclick='hideCalendars();' href='javascript:renderCal(\"" +StringFromDate(Calendar) +"\",\"" +divName +"\",\"" +hiddenName +"\")'>" +day +"</a>";    
    
  if( StringFromDate(todayDate)==StringFromDate(Calendar))
	{
	cal += highlight_start + dayString + highlight_end + TD_end;
	 }  
  else if(StringFromDate(selDate)==StringFromDate(Calendar))
	{  
	 cal += selDay_start + selDayString + selDay_end + TD_end;  
	 }  
  else
	 {
	 cal += TD_start + dayString + TD_end;
	 }
  }
  
  if(week_day == DAYS_OF_WEEK)
	cal += TR_end;
	
  }
   
  Calendar.setDate(Calendar.getDate()+1);
}

cal += '</TD></TR></TABLE></TABLE>'; 

if (document.getElementById(divName) != null) 
{
document.getElementById(divName).innerHTML = cal;
}

if (document.forms[0][hiddenName] != null) 
{
document.forms[0][hiddenName].value = selDateString;
}

if(divName!=secondCalDivName)
{
	if(document.forms[0][secondCalHiddenName])
	{
		curToDateString = document.forms[0][secondCalHiddenName].value;
		curToDate = DateFromString(curToDateString);
		
		curFromDate = DateFromString(selDateString);
		
		if(curToDate<=curFromDate) 
		{
			var newDate = DateFromString(selDateString);
			newDate.setDate(newDate.getDate()+3);
			renderCal(StringFromDate(newDate), secondCalDivName, secondCalHiddenName);
		}
	}
    else{
        /*
        alert(document.forms[0][secondCalHiddenName]);
        */
    }
}

if (divName == firstCalDivName){
    if (document.getElementById(firstLabelDayName)){
        document.getElementById(firstLabelDayName).innerHTML = dayName(DateFromString(selDateString).getDay());
    }
}
else{
    if (document.getElementById(secondLabelDayName)){
        document.getElementById(secondLabelDayName).innerHTML = dayName(DateFromString(selDateString).getDay());
    }
}

if (document.forms[0][firstCalHiddenName].value != "" && document.forms[0][secondCalHiddenName].value != ""){
    var fromDate = DateFromString(document.forms[0][firstCalHiddenName].value);
    var toDate = DateFromString(document.forms[0][secondCalHiddenName].value);
    //alert("From :" +StringFromDate(fromDate) + "\nTo: " + StringFromDate(toDate));
    var millisecondsDay = 1000*60*60*24;

    //var intNights = Math.ceil((toDate.getTime()-fromDate.getTime())/(millisecondsDay));
    var intNights = Math.round((toDate.getTime() - fromDate.getTime())/millisecondsDay);
    //alert((toDate.getTime() - fromDate.getTime())/millisecondsDay);
    /*alert(intNights);*/
    
    if (intNights < 1)
    {
        var errorMessage;
        if (intNights < 0)
        {
            if (lcid == 1053)
            {
                errorMessage = "Du har valt ett felaktigt datum, utcheckningsdatum är tidigare än incheckningsdatum";
            }
            else
            {
                errorMessage = "You have chosen a check out date that is earlier than your check in date";
            }
        }
        
        else if (intNights < 1)
        {
            if (lcid == 1053)
            {
                errorMessage = "Du har valt ett felaktigt datum, utcheckningsdatum är samma som incheckningsdatum";
            }
            else
            {
                errorMessage = "You have chosen a check out date that is the same as your check in date";
            }
        }
        var stringDate

            alert(errorMessage);
        


		    var date = fromDate;
            date.setDate(date.getDate()+1);
		    stringDate = StringFromDate(date);
		    renderCal(stringDate, divName, hiddenName);
		
        
        return;
    }

    document.getElementById('spanNumberOfNights').innerHTML = intNights;
}
//document.forms[0].JSCal1_hidCalendarDate.value = selDateString;
/*
alert(document.forms[0].JSCal1_hidCalendarDate.value)
alert(document.forms[0](hiddenName).value);
alert(document.forms[0].JSCal1_hidCalendarDate.value)
*/
}

function dayName(day)
{
	/*if(day==1)return "Måndag";
	if(day==2)return "Tisdag";
	if(day==3)return "Onsdag";
	if(day==4)return "Torsdag";
	if(day==5)return "Fredag";
	if(day==6)return "Lördag";
	if(day==0)return "Söndag";*/
	if(lcid==1053)
	{
		if(day==1)return "Måndag";
		if(day==2)return "Tisdag";
		if(day==3)return "Onsdag";
		if(day==4)return "Torsdag";
		if(day==5)return "Fredag";
		if(day==6)return "Lördag";
		if(day==0)return "Söndag";
}
else if (lcid == 2068) {
    if (day == 1) return "Mandag";
    if (day == 2) return "Tirsdag";
    if (day == 3) return "Onsdag";
    if (day == 4) return "Torsdag";
    if (day == 5) return "Fredag";
    if (day == 6) return "Lørdag";
    if (day == 0) return "Søndag";
}
	else
	{
		if(day==1)return "Monday";
		if(day==2)return "Tuesday";
		if(day==3)return "Wednesday";
		if(day==4)return "Thursday";
		if(day==5)return "Friday";
		if(day==6)return "Saturday";
		if(day==0)return "Sunday";
	}
}

function DateFromString(dateStr)
{
    segs = dateStr.split("-");						
	y = segs[0];
	m = segs[1];
	d = segs[2];

	d = new Date(y,m-1,d);		
	return d;	
}

function DateFromDateTime(date)
{
	stringDate = StringFromDate(date);		
	return DateFromString(stringDate);
}

function getWeekNr(today)
{	
	if(today.getMonth()==0 && (today.getDay()==0 || today.getDay()>4))
	{	
		return getWeekNr(DateFromString(today.getFullYear()-1 +"-12-31"));
	}

	Year = takeYear(today);
	Month = today.getMonth();
	Day = today.getDate();
	now = Date.UTC(Year,Month,Day+1,0,0,0);
	var Firstday = new Date();
	Firstday.setYear(Year);
	Firstday.setMonth(0);
	Firstday.setDate(1);
	then = Date.UTC(Year,0,1,0,0,0);
	var Compensation = Firstday.getDay();
	if (Compensation > 3) Compensation -= 4;
	else Compensation += 3;
	NumberOfWeek =  Math.round((((now-then)/86400000)+Compensation)/7);
	return NumberOfWeek;
}


function takeYear(theDate)
{
	x = theDate.getFullYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}


function StringFromDate(date)
{
	return date.getFullYear() +"-" +ensureTwoDig(date.getMonth()+1) +"-" +ensureTwoDig(date.getDate());
}

function ensureTwoDig(val)
{
tmp = "0" +val;		
return tmp.substring(tmp.length-2);
}

function select(select, value)
{
	if (document.getElementById(select) != null) 
	{
		select = document.getElementById(select);
		
		for (var i = 0; i < select.options.length; i++)
		{
			if (select.options[i].value == value)
			{
				select.selectedIndex = select.options[i].index;
			}
		}
	}
}

function changeCalendarValue(day, month, calDivName, calHiddenName)
{
	
	if (document.getElementById(day) != null && document.getElementById(month) != null && document.getElementById(calDivName) != null && document.forms[0][calHiddenName] != null) 
	{
		day = document.getElementById(day);
		month =  document.getElementById(month);
		
		var intDay = day.options[day.selectedIndex].value;
		var intMonth = month.options[month.selectedIndex].value;
		
		dateSegs = intMonth.split("-");						
		m = dateSegs[0];
		/*d = dateSegs[1];*/
		y = dateSegs[1];
		/*y = y.substring(0, 4);*/
		
		var stringDate = y + '-' + m + '-' + intDay;
		
		/*alert(stringDate);*/
		renderCal(stringDate, calDivName, calHiddenName);
	}
	else
	{
	    /*
		alert('day: ' + document.getElementById(day));
		alert('month: ' + document.getElementById(month));
		alert('calDivName: ' + document.getElementById(calDivName));
		alert('calHiddenName: ' + document.getElementById(calHiddenName));
		alert('calHiddenName2: ' + document.forms[0][calHiddenName]);
		*/
	}
}

function showHideLayer(showCal, hideCal){
   if (showCal.style.visibility == "visible"){
        showCal.style.visibility = "hidden";
        hideCal.style.visibility = "hidden";
   }
   else{
        showCal.style.visibility = "visible";
        hideCal.style.visibility = "hidden";
   }
}

function showLayer(showCal, hideCal)
{
   showCal.style.visibility = "visible";
   hideCal.style.visibility = "hidden";
}
function hideCalendars()
{ 
    document.getElementById('cal1').style.visibility = "hidden";
    document.getElementById('cal2').style.visibility = "hidden";
}


function validateCriteria2(searchString) {
    var lcid = $("#hotelCriteria_lcid").val();
    if ($("#ctl00_ContentPlaceHolder1_BookingCriteria1_HotelCriteria1_hidDateFrom").val() != "") {
    
        //DATES
        var fromDate = DateFromString($("#ctl00_ContentPlaceHolder1_BookingCriteria1_HotelCriteria1_hidDateFrom").val());
        var toDate = DateFromString($("#ctl00_ContentPlaceHolder1_BookingCriteria1_HotelCriteria1_hidDateTo").val());
        
        dateCompare = new Date();
        dateCompare.setDate(dateCompare.getDate()+0);
        
        
        if(fromDate < DateFromString(StringFromDate(dateCompare)))
        {
            if (lcid == '1053')
            {
	            alert("Du har valt ett f\u00F6r tidigt datum: " + StringFromDate(fromDate));
	        }
	        else
	        {
	            alert("The date you choose is too early: " + StringFromDate(fromDate));
	        }
	        return false;
	    }
	    if (toDate < fromDate) 
	    {
	        if (lcid == '1053') {
	            alert("Ankomstdatum måste vara tidigare än avresedatum.");
	        }
	        else {
	            alert("Departuredate must be before returndate.");
	        }
	        return false;
	    }


    }
    setTimeout(showDiv, 100);
    ShowSearchMessage('ifrmSearch', searchString);
}
