﻿var myCalendar = new k4tCalendar();
		
var myMonths = new Array();
myMonths[1]  = "Janeiro";
myMonths[2]  = "Fevereiro";
myMonths[3]  = "Mar&ccedil;o";
myMonths[4]  = "Abril";
myMonths[5]  = "Maio";
myMonths[6]  = "Junho";
myMonths[7]  = "Julho";
myMonths[8]  = "Agosto";
myMonths[9]  = "Setembro";
myMonths[10] = "Outubro";
myMonths[11] = "Novembro";
myMonths[12] = "Dezembro";

var myWeek = new Array();
myWeek[0] = "D";
myWeek[1] = "S";
myWeek[2] = "T";
myWeek[3] = "Q";
myWeek[4] = "Q";
myWeek[5] = "S";
myWeek[6] = "S";

function CalendarConfig() {
	myCalendar.Id = 'myCalendar';
	myCalendar.containerId = 'CalSpan';
	myCalendar.onSelectDate = EventSelectDate;
	myCalendar.UseTooltipHeader = true;
	myCalendar.UseTooltipDays = true;
	myCalendar.UseTooltipFooter = true;
	myCalendar.minDate = new Date();
	myCalendar.maxDate = null;
	myCalendar.width = "150px";
	myCalendar.height = "150px";

	myCalendar.monthDesc = myMonths;
	myCalendar.weekDesc = myWeek;
	
	myCalendar.Draw();
	myCalendar.Hide();
}

function myOnLoad() {
	CalendarConfig();
	chkCalendarVisibility(myCalendar);
}

function showCalendar(obj) {
    showCalendarInPosition(obj, 10, -5);
}

function showCalendarInPosition(obj, distX, distY) {
	myCalendar.Show(obj, distX, distY);
	obj.select();
	return false;
}

function updateCalendar(obj) {
	myCalendar.Show(obj);
}


// ########################################
// ############ Added/Changed #############
// ########################################


// default parameters --------------
// Type Index: {0 - Hotel} {1 - Air} {2 - AirHotel}
var typeDays = new Array();
typeDays[0] = 1; // default hotel days
typeDays[1] = 0; // default air days
typeDays[2] = 1; // default airhotel days

// ---------------------------------

function DateToString(myDate)
{
    var myDay = myDate.getDate();
    var myMonth = myDate.getMonth()+1;
    var myYear = myDate.getFullYear();

    myDay = addBeginZero(myDay);
    myMonth = addBeginZero(myMonth);
    
    return myDay + myCalendar.dateSpliter + myMonth + myCalendar.dateSpliter + myYear;
}

function EventSelectDate() {

	var myDate = this.SelectedDate();

	this.caller.value = DateToString(myDate);
	
	this.caller.onchange();

	this.Hide();
}

function hideCalendar() {
	myCalendar.Hide();
}

function setMinDate(dateStr,typeIdx)
{
    if(dateStr == 'now')
    {
        myCalendar.minDate = new Date();
        myCalendar.maxDate = null;
    }
    else
    {
        var arrDate = dateStr.split('/');
        var date = new Date(arrDate[2], arrDate[1]-1, arrDate[0]);
        date.setDate( date.getDate() + typeDays[typeIdx] ); // add default days
        myCalendar.minDate = date;
        myCalendar.maxDate = null;
    }
}

// 
function Update2ndDate(objVal1, objVal2,typeIdx)
{

    var tmpStr = objVal1.value.split('/');
    var date1 = new Date(new Number(tmpStr[2]),new Number(tmpStr[1]-1),new Number(tmpStr[0]));
   
    tmpStr = objVal2.value.split('/');
    var date2 = new Date(new Number(tmpStr[2]),new Number(tmpStr[1]-1),new Number(tmpStr[0]));
    if(date1 >= date2)
    {
        var myDate = date1;
        myDate.setDate( myDate.getDate() + typeDays[typeIdx] );
        
        objVal2.value = DateToString(myDate);
    }
}

// Hotel functions

function SetNumNightsDate(objSelect, objVal1, objVal2)
{
    if(objSelect.selectedIndex != 0) // force days != 0
    {
        var tmpStr = objVal1.value.split('/');
        var date1 = new Date(new Number(tmpStr[2]),new Number(tmpStr[1]-1),new Number(tmpStr[0]));
        date1.setDate(date1.getDate()+objSelect.selectedIndex);
        objVal2.value = DateToString(date1)
    }
    else
    {
        objSelect.selectedIndex = 1;
        SetNumNightsDate(objSelect,objVal1, objVal2);
    }
}

function SetNumNights(objSelect, objVal1, objVal2)
{
    //Set 1 day in milliseconds
    var one_day=1000*60*60*24

    var tmpStr = objVal1.value.split('/');
    var date1 = new Date(new Number(tmpStr[2]),new Number(tmpStr[1]-1),new Number(tmpStr[0]));
    tmpStr = objVal2.value.split('/');
    var date2 = new Date(new Number(tmpStr[2]),new Number(tmpStr[1]-1),new Number(tmpStr[0]));
    
    // get num days
    objSelect.selectedIndex = Math.ceil((date2.getTime()-date1.getTime())/(one_day));
}

// update date values to use in checkout
function ExtractDateValues(dayId, monthId, yearId, value)
{
    var tmpStr = value.split('/');
    document.getElementById(dayId).value = new Number(tmpStr[0]);
    document.getElementById(monthId).value = new Number(tmpStr[1]);
    document.getElementById(yearId).value = new Number(tmpStr[2]);
}

