var airCalIn;
var airCalOut;
var over_cal_air=false;
var airCalInMargin=airconvertDaysToUnix(airMarginInMin);
var airCalInRange=airconvertDaysToUnix(airMarginInMax);
var airCalInDateMin=new Date();
var airCalInDateMax=new Date();
airCalInDateMin.setTime(airCalInDateMin.getTime()+airCalInMargin);
airCalInDateMax.setTime(airCalInDateMin.getTime()+airCalInRange);
var airCalOutMargin=airconvertDaysToUnix(airMarginOutMin);
var airCalOutRange=airconvertDaysToUnix(airMarginOutMax);
var airCalOutDateMin=new Date();
var airCalOutDateMax=new Date();
var airCalInDateStart=new Date;
airCalInDateStart.setTime(airCalInDateMin.getTime()+airconvertDaysToUnix(airStartDateInMod));
var airCalOutDateStart=new Date;
airCalOutDateStart.setTime(airCalOutDateMin.getTime()+airconvertDaysToUnix(airStartDateOutMod));

function airinit()
{
	airCalIn=new YAHOO.widget.CalendarGroup("airCalIn",airNameInContainer,{title:airCalInTitle,close:true});
	airCalIn=airlocalizationGeneral(airCalIn);
	airCalOut=new YAHOO.widget.CalendarGroup("airCalOut",airNameOutContainer,{title:airCalOutTitle,close:true});
	airCalOut=airlocalizationGeneral(airCalOut);
	airsetDateOutMargin(airCalInDateMin);
	airCalIn.cfg.setProperty('mindate',dateToStringFormat(airCalInDateMin));
	airCalIn.cfg.setProperty('maxdate',dateToStringFormat(airCalInDateMax));
	//selectRender();
	airCalIn.selectEvent.subscribe(airgetDateIn,airCalIn,true);
	airCalOut.selectEvent.subscribe(airgetDateOut,airCalOut,true);
	airCalIn.renderEvent.subscribe(airsetupListenersIn,airCalIn,true);
	airCalOut.renderEvent.subscribe(airsetupListenersOut,airCalOut,true);
	YAHOO.util.Event.addListener(airNameInInput,'focus',airshowCalIn);
	YAHOO.util.Event.addListener(airNameOutInput,'focus',airshowCalOut);
	YAHOO.util.Event.addListener(airNameInInput,'blur',airhideCalIn);
	YAHOO.util.Event.addListener(airNameOutInput,'blur',airhideCalOut);
	//YAHOO.util.Event.addListener(nameBetween,'change',betweenChange);
	//AHOO.util.Dom.get(nameInInput).value=dateToStringFormat(calInDateStart);
	airsetDateInCalIn(dateToStringFormat(airCalInDateStart));
	//YAHOO.util.Dom.get(nameOutInput).value=dateToStringFormat(calOutDateStart);
	airsetDateInCalOut(dateToStringFormat(airCalOutDateStart));
	//setBetweenSelect();
	airCalIn.render();
	airCalOut.render();
}
function airsetupListenersIn()
{
	YAHOO.util.Event.addListener(airNameInContainer,'mouseover',airoverCal);
	YAHOO.util.Event.addListener(airNameInContainer,'mouseout',airoutCal);
}
function airsetupListenersOut(){
	YAHOO.util.Event.addListener(airNameOutContainer,'mouseover',airoverCal);
	YAHOO.util.Event.addListener(airNameOutContainer,'mouseout',airoutCal);
}
function airgetDateIn(){
		
	var airCalInDate=new Date(airCalIn.getSelectedDates()[0]);
	var airCalOutDate=new Date(airCalOut.getSelectedDates()[0]);

	//alert(airCalInDate.getTime());
	//alert($("#"+airNameBetween));
	
	airCalOutDate.setTime(airCalInDate.getTime()+airconvertDaysToUnix(YAHOO.util.Dom.get(airNameBetween).value));


	airsetDateInCalOut(dateToStringFormat(airCalOutDate));
	
	airsetDateOutMargin(airCalInDate);



	if (airCalOutDate.getTime()<airCalOutDateMin.getTime()){
		airCalOutDate.setTime(airCalOutDateMin.getTime());
		airsetDateInCalOut(dateToStringFormat(airCalOutDate));
	}
	if (airCalOutDate.getTime()>airCalOutDateMax.getTime()){
		calOutDate.setTime(airCalOutDateMax.getTime());
		airsetDateInCalOut(dateToStringFormat(airCalOutDate));
	}
	
	airsetBetweenSelect();
	
	YAHOO.util.Dom.get(airNameOutInput).value=dateToStringFormat(airCalOutDate);
	YAHOO.util.Dom.get(airNameInInput).value=dateToStringFormat(airCalInDate);

	
	over_cal_air=false;
	airCalIn.render();
	airCalOut.render();
	airhideCalIn();
	showSearchButton();
}
function airgetDateOut(){
	var airCalInDate=new Date(airCalIn.getSelectedDates()[0]);
	var airCalOutDate=new Date(airCalOut.getSelectedDates()[0]);
	var airCalInDateMinUnix=airCalInDateMin.getTime();
	var airCalInDateMaxUnix=airCalInDateMax.getTime();
	airsetDateOutMargin(airCalInDate);
	airsetBetweenSelect();
	YAHOO.util.Dom.get(airNameInInput).value=dateToStringFormat(airCalInDate);
	YAHOO.util.Dom.get(airNameOutInput).value=dateToStringFormat(airCalOutDate);
	over_cal_air=false;
	airCalIn.render();
	airCalOut.render();
	airhideCalOut();
	showSearchButton();
}
function airbetweenChange(){
	var value=airconvertDaysToUnix(YAHOO.util.Dom.get(airNameBetween).value);
	var selectedDateIn=new Date(airCalIn.getSelectedDates()[0]);
	selectedDateIn.setTime(selectedDateIn.getTime()+value);
	airsetDateInCalOut(dateToStringFormat(selectedDateIn));
	YAHOO.util.Dom.get(nameOutInput).value=dateToStringFormat(selectedDateIn);
	airCalOut.render();
}
function airshowCalIn(){
	var xy=YAHOO.util.Dom.getXY(airNameInInput);
	var date=YAHOO.util.Dom.get(airNameInInput).value;
	if(date){
		airsetDateInCalIn(date);airCalIn.render();
	}
	YAHOO.util.Dom.setStyle(airNameInContainer,'display','block');
	xy[1]=xy[1]+20;
	YAHOO.util.Dom.setXY(airNameInContainer, xy);
}
function airshowCalOut(){
	var xy=YAHOO.util.Dom.getXY(airNameOutInput);
	var date=YAHOO.util.Dom.get(airNameOutInput).value;
	if(date){
		airsetDateInCalOut(date);
		airCalOut.render();
	}
	YAHOO.util.Dom.setStyle(airNameOutContainer,'display','block');
	xy[1]=xy[1]+20;
	YAHOO.util.Dom.setXY(airNameOutContainer, xy);
}
function airhideCalIn(){
	//alert("aa" + over_cal_air);
	if(!over_cal_air)
	{
		YAHOO.util.Dom.setStyle(airNameInContainer,'display','none');
	}
}
function airhideCalOut(){
	//alert("aa" + over_cal_air);
	if(!over_cal_air){
		YAHOO.util.Dom.setStyle(airNameOutContainer,'display','none');
		}
}
function airoverCal(){over_cal_air=true;}
function airoutCal(){over_cal_air=false;}

function airsetDateOutMargin(date){
	airCalOutDateMin.setTime(date.getTime()+airCalOutMargin);
	airCalOutDateMax.setTime(date.getTime()+airCalOutRange);
	airCalOut.cfg.setProperty('mindate',dateToStringFormat(airCalOutDateMin));
	airCalOut.cfg.setProperty('maxdate',dateToStringFormat(airCalOutDateMax));
}
function airsetDateInCalIn(date){
	var dateArray=date.split("-");
	var dateObject=new Date(dateArray[0],(dateArray[1]-1),dateArray[2]);
	airCalIn.cfg.setProperty('selected',date);
	airCalIn.cfg.setProperty('pagedate',dateObject);
}
function airsetDateInCalOut(date){
	var dateArray=date.split("-");
	var dateObject=new Date(dateArray[0],(dateArray[1]-1),dateArray[2]);
	airCalOut.cfg.setProperty('selected',date);
	airCalOut.cfg.setProperty('pagedate',dateObject);
}
function airdateToStringFormat(object){
	var dDay=object.getDate().toString();
	var dMonth=(object.getMonth()+1).toString();
	if(dDay.length<2){dDay="0"+dDay;}
	if(dMonth.length<2){
		dMonth="0"+dMonth;
	}
	return object.getFullYear()+'-'+dMonth+'-'+dDay;
}
function airsetBetweenSelect(num){
	var dateFirst=new Date(airCalOut.getSelectedDates()[0]);
	var dateSecond=new Date(airCalIn.getSelectedDates()[0]);
	var num=getNumberOfDaysBetweenTwoDates(dateFirst.getTime(),dateSecond.getTime());
	YAHOO.util.Dom.get(airNameBetween).value=num;
}
function airgetNumberOfDaysBetweenTwoDates(first,second){
	var output=((first-second)/60/60/24/1000);
	return output;
}
function airconvertDaysToUnix(days){
	var unix=days*60*60*24*1000;return unix;
}
function airselectRender(){}

function airlocalizationGeneral(calendar){
	calendar.cfg.setProperty("DATE_FIELD_DELIMITER","-");
	calendar.cfg.setProperty("DATE_RANGE_DELIMITER","=");
	calendar.cfg.setProperty("MDY_DAY_POSITION",3);
	calendar.cfg.setProperty("MDY_MONTH_POSITION",2);
	calendar.cfg.setProperty("MDY_YEAR_POSITION",1);
	calendar.cfg.setProperty("START_WEEKDAY",1);
	calendar=airlocalizationNames(calendar);
	return calendar;
}
YAHOO.util.Event.addListener(window,'load',airinit);
