function JLJS_SearchDateControl() {
	this.ROUNDTRIP_ADD_DAY = 1;
	this.CAL_OPT_ONEWAY = {start:0, end:365, startNoReserveMonthDisplay:false, dayOfWeekFlag: true};
	this.CAL_OPT_ROUNDTRIP = {start:0, end:365, startNoReserveMonthDisplay:false, dayOfWeekFlag: true, dayRange: this.ROUNDTRIP_ADD_DAY};
	
	this.setupInfo = [];
}
JLJS_SearchDateControl.prototype = {
	init : function() {
		if(!JLJS_CalNav.used) {
			var calIcons = JLJS.getElementsByClassName(JLJS_CalNav.ICON_CLASS, "a");
			if(calIcons) {
				for(var i=0; i<calIcons.length; i++) {
					JLJS.classAttr.add(calIcons[i], "hidden");	
				}
			}
		}
		for(var i=0; i<this.setupInfo.length; i++) {
			var setup = this.setupInfo[i];
			var frmName = setup["frmName"];
			var depMonth = setup["depMonth"];
			var depDay = setup["depDay"];
			if(frmName && depMonth && depDay) {
				var arrMonth = setup["arrMonth"];
				var arrDay = setup["arrDay"];
				var frm = document.forms[frmName];
				if(arrMonth && arrDay) {
					this.chgDate(frm[depMonth], frm[depDay], frm[arrMonth], frm[arrDay]);
				} else {
					this.chgDate(frm[depMonth], frm[depDay]);
				}
			}
			
		}
	},

	openCalWin : function(obj, depMonthElm, depDayElm, arrMonthElm, arrDayElm) {
		var optInfo = this.CAL_OPT_ONEWAY;
		var frmInfo = {board : {month : depMonthElm, day : depDayElm}};
		if(arrMonthElm && arrDayElm) {
			var optInfo = this.CAL_OPT_ROUNDTRIP;
			frmInfo.arrival = {month : arrMonthElm, day : arrDayElm};
		}
		JLJS_CalNav.calDisplay({
			target: obj,
			option: optInfo,
			frm : frmInfo
	   });
	},
	
	chgDate : function(depMonthElm, depDayElm, arrMonthElm, arrDayElm) {
		if(arrMonthElm && arrDayElm) {
			var today = new Date();
			var year = today.getFullYear();
			var month =depMonthElm.options[depMonthElm.selectedIndex].value - 1;
			var day = depDayElm.options[depDayElm.selectedIndex].value;
			if( month < today.getMonth()) {
				year++;
			}
			var adjustToDate = new Date(year , month, parseInt(day, 10) + this.ROUNDTRIP_ADD_DAY);
			this.setDayOfWeek(depMonthElm, depDayElm);
			this.setDayOfWeek(arrMonthElm, arrDayElm, "adjustToDate", adjustToDate);
		} else {
			this.setDayOfWeek(depMonthElm, depDayElm);
		}
	},
	
	setDayOfWeek : function(month, day, func, data) {
		var dateSelector = new JLJS_DateSelector(month, day);
		dateSelector.dayOfWeekFlag = true;
		if(!func) {
			dateSelector.setDateBySelecter();
		} else {
			dateSelector[func](data);
		}
		dateSelector.setDay();
	}
}
var JLJS_SrchDateCtrl = new JLJS_SearchDateControl();

JLJS.addOnload(function(){
	JLJS_SrchDateCtrl.init();
});
