// JavaScript Document


// set up default variables

//todays date
var today = new Date();

//daylight saving bug crack
//today = new Date(today.getTime()-3600000);

//tomorrows date
var tomorrow = new Date(today.getTime() + 86400000);


//get cookie info
var cdepart = today;
var cinbound = tomorrow;
var get = $.cookie('tttz');
if (get)
{
	var get = get.split('/');
	
	//cookie month -1 to access date object month
	var dmonth = get[1] - 1;
	
	//saved departure date in cookie
	var cdepart =  new Date(get[2],dmonth,get[0]);
	
	//saved nights in cookie
	var dnights =  get[3];
	
	//cookie month -1 to access date object month
	var rmonth = get[10] - 1;
	
	//saved return date in cookie
	var cinbound =  new Date(get[11],rmonth,get[9]);
}
//minimum days until depart
var mindepart = 0;
var mindepart = new Date(today.getTime() + (mindepart * 86400000));

//max days until depart
var maxdepart = 365;
var maxdepart = new Date(today.getTime() + (maxdepart * 86400000));

//min nights duration
var minnights = 1;
var minnights = minnights * 86400000;
//adjust maxnigths to crack daylight saving bug
var minnights = minnights + 3600000;



//max nights duration
var maxnights = 7;
var maxnights = maxnights * 86400000;
//adjust maxnigths to crack daylight saving bug
var maxnights = maxnights + 3600000;

//min days until return
var minreturn = 1;
var minreturn = new Date(today.getTime() + (minreturn * 86400000));

//max days until return
var maxreturn = 366;
var maxreturn = new Date(today.getTime() + (maxreturn * 86400000));

var f = document.qu;


//set defults in from - either from cookie or date object
function setDefaults()
{
	//alert('defaults');
	var f = document.qu;
	//alert(f.nights.value);
	//check cookie date to see if it is later than today
	if (cdepart.getTime() > today.getTime())
	{
		
		f.dep_day.value = cdepart.getDate();
		f.dep_month.value = cdepart.getMonth()+1;
		f.dep_year.value = cdepart.getYear();
		f.ret_day.value = cinbound.getDate();
		f.ret_month.value = cinbound.getMonth()+1;
		f.ret_year.value = cinbound.getFullYear();
		//f.adults.value = 0;
		//f.children.value = 0;
		var nights = (cinbound.getTime() - cdepart.getTime())/86400000;
		//alert('n' + nights);
		f.nights.value = Math.round(nights);
	}
	else
	{
		f.dep_day.value = today.getDate();
		f.dep_month.value = today.getMonth()+1;
		f.dep_year.value = today.getYear();
		f.ret_day.value = tomorrow.getDate();
		f.ret_month.value = tomorrow.getMonth()+1;
		f.ret_year.value = tomorrow.getFullYear();
		f.nights.value = 1;
	}
	
}

function updateInbound()
{
	//alert('inbound');
	//get depart date from form
	var depart = new Date(f.dep_year.value,f.dep_month.value-1,f.dep_day.value);
	//alert(depart.getTime());
	//get nights form form
	var nights = f.nights.value * 86400000;
	//alert(nights);
	//adjust to crack daylight saving bug
	nights = nights + 3600000;
	//check nights to chk between max and min nights
	if (nights > maxnights)
	{
		nights = maxnights;
	}
	else if (nights < minnights)
	{
		nights = minnights;
	}
	
	//calculate time of return date
	var length = depart.getTime() + nights;
	//alert(length);
	//alert(nights + ' ' + length);
	//make date object from length time
	var inbound = new Date(length);
	
	//check inbound date to see if it is beyond maxreturn, if so then make inbound maxreturn and update departure date
	if (inbound.getTime() > maxreturn.getTime())
	{
		inbound = maxreturn;
		f.ret_day.value = inbound.getDate();
		f.ret_month.value = inbound.getMonth()+1;
		f.ret_year.value = inbound.getFullYear();
		//updateDepart();
	}
	else
	{
	//alert('day '+inbound.getDate()+' month '+inbound.getMonth()+1+' year'+inbound.getFullYear());
	//update form with latest values
	f.ret_day.value = inbound.getDate();
	f.ret_month.value = inbound.getMonth()+1;
	f.ret_year.value = inbound.getFullYear();
	//updateDepart();
	}
}

function updateDepart()
{
	//alert('depart');
	//get date ojects
	var depart = new Date(f.dep_year.value,f.dep_month.value-1,f.dep_day.value);
	var inbound = new Date(f.ret_year.value,f.ret_month.value-1,f.ret_day.value);
	
	//calculate seconds between dates convert to days
	var length = (inbound.getTime() - depart.getTime());
	//alert(depart.getTime()+'  '+inbound.getTime()+'  '+length);
	//alert(Math.round(length/86400000));
	//if more than maxnights make days maxnights
	if (length > maxnights)
	{
		//length is equal to max nights
		length = maxnights;
		
		//convert depart date to inbound - days away
		depart = new Date(inbound.getTime() - (length));
		//alert('maxnights'+depart);
		//if depart is before mindepart then make date today
		if (depart.getTime() < mindepart.getTime())
		{
			depart = today;
			//alert('today'+depart);
			f.dep_day.value = depart.getDate();
			f.dep_month.value = depart.getMonth()+1;
			f.dep_year.value = depart.getFullYear();
			f.nights.value = Math.round(length/86400000);
			//alert(f.nights.value);
			updateInbound();
		}
		else if (depart.getTime() > maxdepart.getTime())
		{
			depart = maxdepart;
			//alert('today'+depart);
			f.dep_day.value = depart.getDate();
			f.dep_month.value = depart.getMonth()+1;
			f.dep_year.value = depart.getFullYear();
			f.nights.value = Math.round(length/86400000);
			//alert(f.nights.value);
			updateInbound();
		}
		//else make it depart object
		else
		{	
		//alert('else'+depart);
			f.dep_day.value = depart.getDate();
			f.dep_month.value = depart.getMonth()+1;
			f.dep_year.value = depart.getFullYear();
			f.nights.value = Math.round(length/86400000);
			//alert(f.nights.value);
		}
	}
	//if length is less than minnights then do this
	else if (length < minnights)
	{
		//length = minnights - set form values
		length = minnights;
		//alert('minnightslength'+length);
		//convert depart date to inbound - days away
		depart = new Date(inbound.getTime() - (length));
		//alert('minnights'+depart);
		f.dep_day.value = depart.getDate();
		f.dep_month.value = depart.getMonth()+1;
		f.dep_year.value = depart.getFullYear();
		f.nights.value = Math.round(length/86400000);
		//alert(f.nights.value);
	}
	else
	{
		
		depart = new Date(inbound.getTime() - length);
		//alert('last'+depart);
		f.dep_day.value = depart.getDate();
		f.dep_month.value = depart.getMonth()+1;
		f.dep_year.value = depart.getFullYear();
		f.nights.value = Math.round(length/86400000);
		//alert(f.nights.value);
	}
	
		
}


function updateNights()
{
	//alert('nights');
	updateInbound();
}
function submitform()
{
    document.qu.submit();
}

function leadingZero(x){
   return (x>9)?x:'0'+x;
}

function setRooms() {
var x;
x = Math.round(((document.qu.adults.value)*1 + (document.qu.children.value)*1) / 2 );
document.qu.rooms.value = leadingZero(x);
//alert(document.quick.rooms.value);

}

function setSelected()
{
var dept = "<?=$cc[7]?>";
var rett = "<?=$cc[8]?>";
	
	if (dept == "")
		{
			dept = "Time"; 
		}

	if (rett == "")
		{
			rett = "Time"; 
		}

document.qu.dep_t.value = dept;

document.qu.ret_t.value = rett;

var deptt = document.qu.dep_t.value;
var reptt = document.qu.ret_t.value;
//alert(deptt);
	if (deptt=="")
		{
			deptt = "Time"; 
		}

//alert(deptt);
document.qu.dep_t.value = deptt; 

	if (reptt=="")
		{
			reptt = "Time"; 
		}

document.qu.ret_t.value = reptt; 
		
}

function submitlogin()
{
     document.quotelogin.submit();
}
	
