function prepopulate(){  
   var homeDepatureDate
   var homeReturnDate;
   if(document.getElementById("txtdeptDateRtrip").value!=null){
   	homeDepatureDate =document.getElementById("txtdeptDateRtrip").value
   }
   if(document.getElementById("txtretnDateRtrip").value!=null){
   	homeReturnDate =document.getElementById("txtretnDateRtrip").value
   } 
}
 
var deptdate;
var retndate;  
 
/* function to check whether the date entered is within the range */
function homeValidDateRange(){
	var flag = true;
	var fromdate = deptdate;
	var todate = retndate;
	if(flag == true){
		flag = false;
		fromdate = getDateObj(fromdate);
		todate   = getDateObj(todate);		
		if(isPreviousDate(fromdate)){
			if(fromdate > todate.setHours(fromdate.getHours(),fromdate.getMinutes(),fromdate.getSeconds(),fromdate.getMilliseconds())){

				return flag;
			}else{
				flag = true;
				return flag;
			}
		}
	}	
	return flag;
}

function homeIsPreviousDate1(inputdate,fname){	
	var today = new Date();	
	inputdate.setHours(today.getHours(),today.getMinutes(),today.getSeconds(),today.getMilliseconds())
	if(inputdate < today){	
	  document.getElementById(fname).value="DD/MM/YYYY";
	  document.getElementById(fname).focus();
	 	return false;
	}else{		
		return true;
	}
}

function getDateObj(input){
	var dayfield=input.split("/")[0]
	var monthfield=input.split("/")[1]
	var yearfield=input.split("/")[2]
	var dayobj = new Date(yearfield, monthfield-1, dayfield)
	return dayobj;
} 

function isPreviousDate(inputdate){	
	var today = new Date();	
	inputdate.setHours(today.getHours(),today.getMinutes(),today.getSeconds(),today.getMilliseconds())
	if(inputdate < today){	
	 	return false;
	}else{		
		return true;
	}
} 

function setCarrierVector(checkBoxType) { 
  var carrierVector = Vector.getInstance();
  var groupLength = document.getElementsByName(checkBoxType).length ;
  for(var i=0;i<groupLength;i++) {
	 if(document.getElementsByName(checkBoxType)[i].checked == true) {
		 if(!carrierVector.contains(document.getElementsByName(checkBoxType)[i].value)) {
		   carrierVector.addElement(document.getElementsByName(checkBoxType)[i].value);
		 }
	 }      
   }
  return carrierVector;
} 

function getListAsString(vector){
	var id = null;
	var delimiter = ","
	for( var i=0; i<vector.size(); i++ ){
		if( id == null ){
			id = vector.elementAt(i);
		}
		else{
			id += delimiter + vector.elementAt(i);
		}
	}
	return id;
}

var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
    var i;
    for (i = 0; i < s.length; i++){   

        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    } 
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
	} 
	return this
} 

function getDateObj_CurrentDate(){
	var input= new Date();
	var dayfield=input.getDate();
	var monthfield=input.getMonth();
	var yearfield=input.getFullYear();
	var months = new Array("0","1","2","3","4","5","6","7","8","9","10","11");
		
	switch(monthfield){	
		case 0: monthfield = "01";	
			  break;			 
		case 1: monthfield = "02";
			  break;
		case 2: monthfield = "03";
			  break;
		case 3: monthfield = "04";
			  break;
		case 4: monthfield = "05";
			  break;
		case 5: monthfield = "06";
			  break;
		case 6: monthfield = "07";
			  break;
		case 7: monthfield = "08";
			  break;
		case 8: monthfield = "09";
			  break;
		case 9: monthfield = "10";
			  break;
		case 10: monthfield = "11";
			  break;
		case 11: monthfield = "12";
			  break;
	}	
	switch(dayfield){	
		case 1: dayfield = "01";	
			  break;			 
		case 2: dayfield = "02";
			  break;
		case 3: dayfield = "03";
			  break;
		case 4: dayfield = "04";
			  break;
		case 5: dayfield = "05";
			  break;
		case 6: dayfield = "06";
			  break;
		case 7: dayfield = "07";
			  break;
		case 8: dayfield = "08";
			  break;
		case 9: dayfield = "09";
			  break;

	}	
	var dayobj = dayfield+"/"+monthfield+"/"+yearfield;
    return dayobj;
} 

Zapatec.Calendar.setup({
showOthers        : true,
step              : 1,
electric          : false,
inputField        : "txtdeptDateRtrip",
button            : "deptDateRtripimgExact",
ifFormat          : "%d/%m/%Y",
daFormat          : "%d/%m/%Y",
numberMonths      : 2,
displayArea		  : null,
flat 			  : null,
multiple		  : null,
numberMonths : 2,
monthsInRow : 2,
dateStatusFunc :    dateInRange1, //the function to call
onUpdate       :    filterDates1,
vertical : true
});

var deptShowCalendar =new Date();
function  returnDateField(){
var input =document.getElementById("txtdeptDateRtrip").value;
var deptShowCalendar
if(input!="DD/MM/YYYY"){
var dayfield=input.split("/")[0]
var monthfield=input.split("/")[1]
var yearfield=input.split("/")[2]
deptShowCalendar=new Date(yearfield,monthfield-1,dayfield);
}


Zapatec.Calendar.setup({
showOthers        : true,
step              : 1,
electric          : false,
inputField        : "txtretnDateRtrip",
button            : "retnDateRtripimgExact",
ifFormat          : "%d/%m/%Y",
daFormat          : "%d/%m/%Y",
date               :deptShowCalendar,
numberMonths      : 2,
displayArea		  : null,
flat 			  : null,
multiple		  : null,
numberMonths : 2,
monthsInRow : 2,
dateStatusFunc :    dateInRange2, //the function to call
vertical : true
});
} 

var startDate;
var endDate;
var callbacks = 0; 

function compareDatesOnly(date1, date2) {
var year1 = date1.getYear();
var year2 = date2.getYear();
var month1 = date1.getMonth();
var month2 = date2.getMonth();
var day1 = date1.getDate();
var day2 = date2.getDate();

if (year1 > year2) {
return -1;
}
if (year2 > year1) {
return 1;
}

//years are equal
if (month1 > month2) {
return -1;
}
if (month2 > month1) {
return 1;
}

//years and months are equal
if (day1 > day2) {
return -1;
}
if (day2 > day1) {
return 1;
}

//days are equal
return 0;
}

function filterDates1(cal) {
startDate = cal.date;
if (endDate == null) { 
Zapatec.Calendar.setup({
inputField     :    "arrivalDate",
button         :    "button8b",  // What will trigger the popup of the calendar
ifFormat       :    "%Y-%m-%d ",
timeFormat     :    "24",
date           :     startDate,
electric       :     false,
showsTime      :     false,          //no time
disableFunc    :    dateInRange2, //the function to call
onUpdate       :    filterDates2
});
}
}



function filterDates2(cal) {
endDate = cal.date;
}


function dateInRange1(date) {
if (endDate != null) {
// Disable dates after end date
var compareEnd = compareDatesOnly(date, endDate);
if  (compareEnd < 0) {
return (true);
}

if  (compareEnd == 0) {
{return "edges";}
}



if (startDate != null){
var compareStart = compareDatesOnly(date, startDate);
if  (compareStart < 0) {
return "between";
} 
} 
}


var today = new Date();
var compareToday = compareDatesOnly(date, today);
if (compareToday > 0) {
return(true);
}



return false;
return(ret);
}



function dateInRange2(date) {
if (startDate != null) {
var compareDays = compareDatesOnly(startDate, date);
if  (compareDays < 0) {
return (true);
}


if  (compareDays == 0) {
{return "edges";}
}


if ((endDate != null) && (date > startDate) && (date < endDate)) {
return "between";
} 
} 

var now = new Date();
if (compareDatesOnly(now, date) < 0) {
return (true);
}

return false;
}
var checkInShowCalendar =new Date()
Zapatec.Calendar.setup({
showOthers        : true,
step              : 1,
electric          : false,
inputField        : "arrDateOway",
button            : "arrDateOwayimg",
ifFormat          : "%d/%m/%Y",
daFormat          : "%d/%m/%Y",
//date              :checkInShowCalendar,
numberMonths      : 2,
displayArea		  : null,
flat 			  : null,
multiple		  : null,
numberMonths : 2,
monthsInRow : 2,
dateStatusFunc :    dateInRange3, //the function to call
onUpdate       :    filterDates3,
vertical : true
});
//} 

var controlDate=0;								
var htlstartDate;
var htlendDate;
var htlcallbacks = 0; 
function filterDates3(cal) {
	htlstartDate = cal.date;
	htlstartDate.setDate(htlstartDate.getDate()+1)
	if (htlendDate == null) { 
		Zapatec.Calendar.setup({
		inputField     :    "arrivalDate",
		button         :    "button8b",  // What will trigger the popup of the calendar
		ifFormat       :    "%Y-%m-%d ",
		timeFormat     :    "24",
		date           :     htlstartDate,
		electric       :     false,
		showsTime      :     false,          //no time
		disableFunc    :    dateInRange4, //the function to call
		onUpdate       :    filterDates4
		});
	}
}

function filterDates4(cal) {
	htlendDate = cal.date;
	htlendDate.setDate(htlendDate.getDate()-1)
} 

function dateInRange3(date) {
	if (htlendDate != null) { // Disable dates after end date
		var compareEnd = compareDatesOnly(date, htlendDate);
		if  (compareEnd < 0) {
		return (true);
		} // Hilight end date with "edges" style
		if  (compareEnd == 0) {
		{return "edges";}
		} // Hilight inner dates with "between" style
		if (htlstartDate != null){
		var compareStart = compareDatesOnly(date, htlstartDate);
		if  (compareStart < 0) {
		return "between";
		} 
		} 
	} //disable days prior to today
	var today = new Date();
	today.setDate(today.getDate()+controlDate)
	var compareToday = compareDatesOnly(date, today);
	if (compareToday > 0) {
	return(true);
	}  
	return(ret);
} 	 