function initResLauncher(){

	// *** must be set per instance ***
	// Configuration goes here; Only Edit Here

	// Should Change Per Property
	// @todo commented this line out because it's not used in the new URL

	//var_areacode 		= "LWP";
	// @todo commented this line out because it's not used in the new URL
	//var_areaname 		= "Palomar Westwood";
	var_lookandfeelid 	= 2775;

	// Constant through all Hotels
	var_domain 		= "http://kimpton.ibe.netbooker.com/web/FrontController.nb4"
	var_module 		= "PropertySearch";
	// @todo changed var_operation value to "SinglePropertySearch"
	var_operation		= "SinglePropertySearch";
	var_instanceid		= 31;
	var_execute		= "yes";
	// @todo add var_propertyCode
	var_propertyCode	= "LWP";
	// @todo add var_chainCode
	var_chainCode		= "KC";

	// ********************************

	frm = document.resLauncher;

	//
	// Begine creation of Month/Year <select>
	//
	var mnths = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];

	currDt   = new Date();
	currMnth = currDt.getMonth();
	currYear = currDt.getFullYear();
	currDay  = currDt.getDate();

	var mt,yr,dy,mnthYr,len;

	// Month
	for (var mnthIdx = 0; mnthIdx < 12; mnthIdx++) {
		lenMnth = frm.arrMnth.options.length;
		if (mnthIdx == currMnth) {
			selMnth = true;
			selMnthIdx = mnthIdx;
		} else {
			selMnth = false;
		}
		frm.arrMnth.options[lenMnth] = new Option(mnths[mnthIdx], mnthIdx, selMnth, selMnth);
	}

	//  Years
	for (var yearIdx = currYear; yearIdx < currYear + 2; yearIdx++) {
		lenYear = frm.arrYear.options.length;
		selYear = (yearIdx == currYear) ? true : false;
		frm.arrYear.options[lenYear] = new Option(yearIdx, yearIdx, selYear, selYear);
	}

	// Call Other Methods
	setDays(currDt);
	setDates();
}

//
// Build the days of the CURRENT month (in the corresponding year)
// dt is sent as a JavaScript new Date() object
//
function setDays(dt) {
	//nextYear = new Date(currYear + 1, currMnth, currDay);

	if (dt < currDt) {
		// old date; Keep current Month Selected
		frm.arrMnth.selectedIndex = selMnthIdx;
		// set date back today; handles year changes that are invalid
		setDays(currDt);
		setDates();
	} else {
		var days,yr,mt,day,tm,len,sel,tmpDt;
		yr = dt.getFullYear();
		mt = dt.getMonth();
		day = (mt==currMnth && yr==currYear) ? dt.getDate() : 1;

		var tmpMt = mt+1;
		var tmpYr = yr;
		if (tmpMt>11) {
			var tmpMt = mt-11;
			var tmpYr = yr+1;
		}
		tmpDt = new Date(tmpYr,tmpMt);
		tm = tmpDt.getTime();
		tmpDt.setTime(tm-86400000);
		dayCnt = tmpDt.getDate();

		//
		// Begine creation of date <select>
		//

		// Remove all <select> data
		frm.arrDay.options.length = 0;
		// Iterate
		for (var i=day;i<=dayCnt;i++) {
			len   = frm.arrDay.options.length;
			tmpDt = new Date(yr,mt,i);
			sel   = (tmpDt == currDt) ? true : false;

			// Create <option>
			frm.arrDay.options[len] = new Option(i,tmpDt,sel,sel);
		}
	}
}

function setDates(updateDays) {

	// When Changing Months we need to reset the
	// days to allow for for selection of any day
	if (updateDays) setDays(new Date(frm.arrYear.options[frm.arrYear.selectedIndex].value, frm.arrMnth.options[frm.arrMnth.selectedIndex].value));

}

//
// Submit!
//
function launchBE() {
	//
	// Retrieve form variables
	//

	// Nights
	var nights = frm.nights.options[frm.nights.selectedIndex].value;
	// Month/Year
	var mnthYr   = new Date(frm.arrYear.options[frm.arrYear.selectedIndex].value, frm.arrMnth.options[frm.arrMnth.selectedIndex].value);
	var thisMnth = mnthYr.getMonth();
	var thisYear = mnthYr.getFullYear();
	// Day
	var dt		= new Date(frm.arrDay.options[frm.arrDay.selectedIndex].value);
	var thisDay = dt.getDate();

	//
	// Create Arrival Date &amp; Calculate Departure Date values
	//

	// Arrival Date
	arrivalDt = (thisMnth+1)+"/"+thisDay+"/"+thisYear;
	// Calculate
	tmpDt = new Date(thisYear,thisMnth,thisDay);
	tm	= tmpDt.getTime();
	tmpDt.setTime(tm+(86400000*nights));
	//Departure Date
	departureDt = (tmpDt.getMonth()+1)+"/"+tmpDt.getDate()+"/"+tmpDt.getFullYear();

	//
	// Create the URL String
	//

	// @todo added new arguments to query string
	var url = var_domain 
		+ "?module="+var_module
		+ "&operation="+var_operation
		+ "&instanceId="+var_instanceid
		// @todo added propertyCode argument
		+ "&propertyCode="+var_propertyCode
		+ "&execute="+var_execute
		// @todo added chainCode argument
		+ "&chainCode="+var_chainCode
		// @todo commented this line out because it's not used in the new URL
		//+ "&areacode="+var_areacode
		// @todo commented this line out because it's not used in the new URL
		//+ "&areaname="+var_areaname
		+ "&lookAndFeelId="+var_lookandfeelid;

	// Add Reservation Data
	var_arriveDate = new Date(arrivalDt);

	arriveDate 	= var_arriveDate.getDate();
	arriveMonth = var_arriveDate.getMonth()+1;
	arriveYear 	= var_arriveDate.getFullYear();

	var_departDate = new Date(departureDt);

	departDate 	= var_departDate.getDate();
	departMonth = var_departDate.getMonth()+1;
	departYear 	= var_departDate.getFullYear();

	adults 			= frm.adult.value;
	children 		= frm.child.value;

	// Please Change the Variables names to the proper ones for this particular Reservation System

	url += "&arriveDate="+arriveDate+"&arriveMonth="+arriveMonth+"&arriveYear="+arriveYear+"&departDate="+departDate+"&departMonth="+departMonth+"&departYear="+departYear+"&numberOfNights="+nights+"&adults="+adults+"&children="+children

	//promotionCode = frm.promo.value;
	//url += "&promotionCode="+promotionCode;

	// Pass to Reservation Server

	// @todo added 2nd and 3rd arguments to window.open()
	window.open(url, 'reservationWin', 'width=775,height=800,location=no,scrollbars=yes,menubar=no,toolbar=no');
}