/*
Air 40 off splash page javascript

My apologies -- "retail" just means the upper booking box 

*/

//'Global variable declaration

var strASPBase = "http://www.priceline.com";

var objDealColId = {
	"air":"deal_air_master"
};

//' Functions
function checkTravelYear(vYear){
	var intYear = parseInt("0" + String(vYear),10);
	if(intYear < 100) {intYear += 2000;}
	return(intYear);
}

function lpad(n, len, ch) {
	var s = new String(n);
	while (s.length < len) s = ch + s;
	return s;
}

function openWindow(url, name, rs, w, h){
	var resize = "";
	if (rs)	resize = "resizable,";
	popupWin = window.open(url, name, 'scrollbars,' + resize + 'width=' + w + ',height=' + h);
	window.name = 'opener';
}

function init40OffForms(aspBase) {
	strASPBase = "http://"+aspBase;
}

function switchDealForm(strProduct,idxDeal,strParams) {
	var strTargetColId = "deal_col_"+strProduct+idxDeal;
	if (objDealColId[strProduct] == strTargetColId) {
		strTargetColId = "deal_" +strProduct + "_master";
	}
	var objSourceCol = document.getElementById(objDealColId[strProduct]);
	var objSourceDealInfo = document.getElementById(objDealColId[strProduct]+"_info");
	var objTargetCol = document.getElementById(strTargetColId);
	var objTargetDealInfo = document.getElementById(strTargetColId+"_info");

	objSourceCol.className = "nopads";
	objSourceCol.setAttribute("class","nopads");
	objSourceDealInfo.className = "";
	objSourceDealInfo.setAttribute("class","");
	
	
	objTargetCol.innerHTML = objSourceCol.innerHTML;
	objSourceCol.innerHTML = "";
	objDealColId[strProduct] = strTargetColId;
	
	var objDealForm = document.getElementById("form_" +strProduct + "_deal");
	objDealForm.reset();
	var arrParams = strParams.split("|");
	switch(strProduct) {
		case "air":
			// "origin|destnation"
			objDealForm["OFFER/AIRLINE_TICKET/LOCATION[0]/CITY/NAME"].value = arrParams[0];
			objDealForm["OFFER/AIRLINE_TICKET/LOCATION[1]/CITY/NAME"].value = arrParams[1];
		break;
		case "htl":
			// "destination|starlevel"
			objDealForm["OFFER/HOTELS/@SEARCH_CITY"].value = arrParams[0];
			objDealForm["starRating"].value = arrParams[1];
		break;
		case "car":
			// "destination|vehicle class"
			objDealForm["offer/rental_cars/temp/CitySearch/PickUpSearchAirportString"].value = arrParams[0];
			objDealForm["offer/rental_cars/vehicle_class"].value = arrParams[1];
		break;
		default:
		
		break;
	}

	objTargetCol.className = "bookingDrop";
	objTargetCol.setAttribute("class","bookingDrop");
	objTargetDealInfo.className = "expanded";
	objTargetDealInfo.setAttribute("class","expanded");
	

	runZapatecJSCode(objTargetCol.innerHTML);
}


// This is to extract the in-line javascript code required for the new Zapatec calendars to work
function runZapatecJSCode(contents) {
	var arr1 = contents.split("GCA");
	for (var i=0; i < arr1.length; i++) {
		var strFoo = String(arr1[i]);
		
		if (strFoo.indexOf("GCZ") > -1) {
			var arr2 = strFoo.split("//GCZ");
			var strScript = String(arr2[0]);
			eval(strScript);
		}
	}
}

function promoSubmitForm(productForm) {
	var strFormId = "form_" +productForm;
	var objForm = document.getElementById(strFormId);

	var promoInternalRefId = objForm["PROMO_INTERNAL_REF_ID"].value;
	var promoInternalRefClickId = objForm["PROMO_INTERNAL_REF_CLICK_ID"].value;

	var actionBase = "";
	
	//NEW -- stanardized calendar fields, custom split inputs
	splitDates(productForm);
	
	switch(productForm) {
		case "air_deal":
			actionBase = strASPBase +"/travel/airlines/lang/en-us/itinerary.asp";
		break;
		case "htl_rtl":
			objForm.checkInDate.value = objForm["cal_start_htl_rtl_ctl"].value;
			objForm.checkOutDate.value = objForm["cal_end_htl_rtl_ctl"].value;
			actionBase = strASPBase +"/hotels/lang/en-us/itinerary.asp";
		break;
		case "car_rtl":
			actionBase = strASPBase +"/qp.asp?productid=8&OMC=O";
		break;
		case "vac_rtl":
			actionBase = strASPBase +"/vacations/lang/en-us/vacations_ver.asp";
		break;
		case "apc_rtl":
			actionBase = strASPBase +"/travel/airlines/lang/en-us/itinerary.asp";
		break;
		case "air_opq":
			actionBase = strASPBase +"/travel/airlines/lang/en-us/itinerary.asp";
		break;
		case "htl_opq":
			objForm.checkInDate.value = objForm["cal_start_htl_opq_ctl"].value;
			objForm.checkOutDate.value = objForm["cal_end_htl_opq_ctl"].value;
			actionBase = strASPBase +"/hotels/lang/en-us/itinerary.asp";
		break;
		case "car_opq":
			actionBase = strASPBase +"/qp.asp?productid=8&OMC=O";
		break;
		default:
			break;
	}
			

	var urlParts = actionBase.split("?");
	var baseURL = urlParts[0];
	var qs = String(urlParts[1]).replace("undefined","");
	
	// Check for a trailing '&'
	if (qs.length > 1 && qs.substr(qs.length-1) != "&") {
		qs += "&";
	}
	
	// Assemble final action URL
	objForm.action = baseURL + "?" + qs + "irefid=" + promoInternalRefId + "&irefclickid=" + promoInternalRefClickId;
		
	objForm.submit();

}

function splitDates(productForm) {
	//NEW -- stanardized calendar fields, custom split inputs
	var strFormId = "form_" +productForm;
	var strStartDateId = "cal_start_" +productForm + "_ctl";
	var strEndDateId = "cal_end_" +productForm + "_ctl";
	var objDateForm = document.getElementById(strFormId)
	var strStartDate = objDateForm[strStartDateId].value;
	var strEndDate = objDateForm[strEndDateId].value;

	var arrDateFields = {
		"air_deal":["DepartureMonth","DepartureDay","DepartureYear","ReturnMonth","ReturnDay","ReturnYear"],
		"air_opq":["DepartureMonth","DepartureDay","DepartureYear","ReturnMonth","ReturnDay","ReturnYear"]
	};
	
	var arrDate = strStartDate.split("/");
	objDateForm[arrDateFields[productForm][0]].value = (lpad(String(arrDate[0]),1,"0"));
	objDateForm[arrDateFields[productForm][1]].value = String(arrDate[1]);
	objDateForm[arrDateFields[productForm][2]].value = String(checkTravelYear(arrDate[2]));
	var arrDate = strEndDate.split("/");
	objDateForm[arrDateFields[productForm][3]].value = (lpad(String(arrDate[0]),1,"0"));
	objDateForm[arrDateFields[productForm][4]].value = String(arrDate[1]);
	objDateForm[arrDateFields[productForm][5]].value = String(checkTravelYear(arrDate[2]));
	
	//' Fix for zero-based month
	if ((productForm.indexOf("air") > -1) || (productForm.indexOf("apc") > -1) || (productForm.indexOf("vac") > -1)) {
		objDateForm[arrDateFields[productForm][0]].value -= 1;
		objDateForm[arrDateFields[productForm][3]].value -= 1;
	}
	
}

function submitITLink() {
	var objITForm = document.getElementById("it_form");
	var strRefclick = document.getElementById("refclick").value;
	var strQstring = '?irefid=HPFL_insidetrack&irefclickid=';
	if (strRefclick !="") {
		strQstring += strRefclick;
	}else{
		strQstring = "";
	}
	if ((objITForm["directionFrom"].value != "") && (objITForm["directionTo"].value != "")) {
		objITForm.action = "/insideTrack/flights/" +objITForm["directionFrom"].value + "-" + objITForm["directionTo"].value + ".html" + strQstring;
		objITForm.submit();
	}
}
