// JavaScript Document

function formatItem(row) {
	//return row[0] + "<br><i>" + row[1] + "</i>";
	return row[0];
}
$(document).ready(function() {
	var citysearch = "/perl/get_ef_test.cgi";
	$("#departure").autocomplete(citysearch, { minChars:3, matchSubset:1, matchContains:1, cacheLength:10, formatItem:formatItem, selectOnly:1 });
	$("#destination").autocomplete(citysearch, { minChars:3, matchSubset:1, matchContains:1, cacheLength:10, formatItem:formatItem, selectOnly:1 });

	$("#departureIn").autocomplete(citysearch, { minChars:3, matchSubset:1, matchContains:1, cacheLength:10, formatItem:formatItem, selectOnly:1 });

	$("#destinationIn").autocomplete(citysearch, { minChars:3, matchSubset:1, matchContains:1, cacheLength:10, formatItem:formatItem, selectOnly:1 });
});
function updateDates()
{
	
	if(document.form1.oneway[0].checked){
		$(".return").show();
	} else {
		$(".return").hide();
	}
}
 var depDate = new Date();
 var retDate = new Date();
 //depDate.setDate(depDate.getDate() + 7);
 retDate.setDate(retDate.getDate() + 7);
/*
onUpdate       :    updateDepDate
*/ 
function updateDepDate(cal)
{
  depDate.setTime(cal.date.valueOf());
  
  var m1 = cal.date.getMonth()+1;      
  var d1   = cal.date.getDate();  
  var y1 = cal.date.getYear();
  
  depDate.setTime(depDate.valueOf());
  //retDate.setDate(depDate.getDate() + 7);
  
  var m2 = retDate.getMonth()+1;   
  var d2   = retDate.getDate();
  var y2 = retDate.getYear();
  
  set_select_value(document.form1.rdate_1,m2); //odate_dep
  set_select_value(document.form1.rdate_2,d2); //odate_dep
  set_select_value(document.form1.rdate_3,y2); //odate_dep
  
  //m1 = m1 < 10 ? '0' + m1 : m1;
  //m2 = m2 < 10 ? '0' + m2 : m2;
  d1 = d1 < 10 ? '0' + d1 : d1;
  d2 = d2 < 10 ? '0' + d2 : d2;
  y1 = y1 < 1000 ? y1 + 1900 : y1;
  y2 = y2 < 1000 ? y2 + 1900 : y2;  
  
  document.form1.rdate_4.value=m2+'/'+d2+'/'+y2; //odate_dep
  
  cal.refresh();
  
}

function updateRetDate(cal)
{
  retDate.setTime(cal.date.valueOf());
  
  var m1 = depDate.getMonth()+1;      
  var d1 = depDate.getDate();  
  var y1 = depDate.getYear();
  
  var m2 = retDate.getMonth()+1;   
  var d2   = retDate.getDate();
  var y2 = retDate.getYear();
  
//  m1 = m1 < 10 ? '0' + m1 : m1;
//  m2 = m2 < 10 ? '0' + m2 : m2;
  d1 = d1 < 10 ? '0' + d1 : d1;
  d2 = d2 < 10 ? '0' + d2 : d2;
  y1 = y1 < 1000 ? y1 + 1900 : y1;
  y2 = y2 < 1000 ? y2 + 1900 : y2;  
  
  set_select_value(document.form1.rdate_1,m2); //odate_dep
  set_select_value(document.form1.rdate_2,d2); //odate_dep
  set_select_value(document.form1.rdate_3,y2); //odate_dep
   
  document.form1.rdate_4.value=m2+'/'+d2+'/'+y2; //rdate_dep
  cal.refresh();
}

function dateCheckToday(date) {	
	var max = new Date();
	max.setYear(max.getFullYear() + 5);  // within max 5 years
	
	var min = new Date();
	//min.setTime(depDate.valueOf());
	min.setDate(min.getDate());  // 7 days after departure
	return dateStatus(date, min, max);
	//return false;
	
}

/*
NOT USED HERE....
Calendar.setup({	...	dateStatusFunc : dateStatus_dep	...})
Calendar.setup({	...	dateStatusFunc : dateStatus_ret	...})
*/
//NOT USED HERE....
function dateStatus_dep(date) {	
	var max = new Date();
	max.setYear(max.getFullYear() + 1);  // within max 1 year 
	
	var min = new Date();
	//min.setTime(depDate.valueOf());
	min.setDate(min.getDate());  // 7 days after departure
	return dateStatus(date, min, max);
	//return false;
	
}

//NOT USED HERE....
// 7 day buffer after dep date. (not used)
function dateStatus_ret(date) {	
	var min = new Date();
	min.setTime(depDate.valueOf());
	min.setDate(min.getDate());  // 7 days after departure
	
	var max = new Date();	
	max.setYear(max.getFullYear() + 1);  // withing max 1 year 
	return dateStatus(date, min, max);
	//return false;
}
//NOT USED HERE....
function dateStatus(date, min , max) {	

	var date2 = new Date(date.valueOf());
	var min2 = new Date(min.valueOf());
	var max2 = new Date(max.valueOf());
   
   date2.setHours(0,0,0,0);
   min2.setHours(0,0,0,0);
   max2.setHours(0,0,0,0);
   
   if (date2.getTime() < min2.getTime() ||	    
       date2.getTime() > max2.getTime())		
		return true; // true says "disable"	
	else		
      return false; // leave other dates enabled
}

 function setDates() {
  
  var m1 = depDate.getMonth()+1;      
  var d1   = depDate.getDate();  
  var m2 = retDate.getMonth()+1;   
  var d2   = retDate.getDate();
  var y1 = depDate.getYear();
  var y2 = retDate.getYear();
  
  set_select_value(document.form1.odate_1,m1); //odate_dep
  set_select_value(document.form1.odate_2,d1); //odate_dep
  set_select_value(document.form1.odate_3,y1); //odate_dep
  set_select_value(document.form1.rdate_1,m2); //odate_dep
  set_select_value(document.form1.rdate_2,d2); //odate_dep
  set_select_value(document.form1.rdate_3,y2); //odate_dep
  
  //m1 = m1 < 10 ? '0' + m1 : m1;
  //m2 = m2 < 10 ? '0' + m2 : m2;
  d1 = d1 < 10 ? '0' + d1 : d1;
  d2 = d2 < 10 ? '0' + d2 : d2;
  y1 = y1 < 1000 ? y1 + 1900 : y1;
  y2 = y2 < 1000 ? y2 + 1900 : y2;  

  document.form1.departureDate.value=m1+'/'+d1+'/'+y1; //odate_dep
  document.form1.returnDate.value=m2+'/'+d2+'/'+y2; //rdate_ret

  document.form1.odate_4.value=m1+'/'+d1+'/'+y1; //odate_dep
  document.form1.rdate_4.value=m2+'/'+d2+'/'+y2; //rdate_ret
  
}
function refreshAll()
{
  var m1 = document.form1.odate_1.value ;      
  var d1   = document.form1.odate_2.value ;  
  var y1 = document.form1.odate_3.value ;
  var m2 = document.form1.rdate_1.value ;   
  var d2   = document.form1.rdate_2.value ;
  var y2 = document.form1.rdate_3.value ;
  
  d1 = d1 < 10 ? '0' + d1 : d1;
  y1 = y1 < 1000 ? y1 + 1900 : y1;
  
  var ddate = m1+'/'+d1+'/'+y1;
  var rdate = m2+'/'+d2+'/'+y2;
  var fmt = "%m/%d/%y";
  depDate = Date.parseDate(ddate, fmt);
  retDate = Date.parseDate(rdate, fmt);
 
  // Dont allow select history dates. reset to current date
  var bad = false;
  if(depDate.getTime() < new Date().getTime()){
	depDate = new Date();
	bad = true;
  }
  else if(retDate.getTime() < new Date().getTime()){
	retDate = new Date();
	bad = true;
  }
  if(bad){
	setDates();
  } else {
	document.form1.odate_4.value=ddate; //odate_dep
	document.form1.rdate_4.value=rdate; //rdate_ret
  }
 
}

function set_select_value(selectObj, val) {
  //var vals = val + "| ";
  for(var i = 0; i < selectObj.length; i++) {
	//vals = vals + "." + selectObj.options[i].value;
    if(selectObj.options[i].value == val)
      selectObj.selectedIndex = i;
  }
//  alert(vals+ "{}.." + selectObj.name + ":" + selectObj.value);

}


