var pInputMonth;var pInputDay;var pInputYear;var today=new Date;var javaDate=today;var year=today.getFullYear();var javaYear=year;var month=today.getMonth();var javaMonth=today.getMonth();var inputDateField;var inputDate;var defaultDate;var vertical;var tInputMonth;var tInputDay;var tInputYear;var calShim;var kCal;var kCalShim;var pkId="";var pkJsMOver=" ";var pkJsMOut=" ";var pkJsOnClick=" ";var activeCal="";var foo=true;var javaLimitYear=3E3;var calendarDuration=1;
function stopBubble(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true}function wrtPkDayDtls(pkLabel){var tlabel=pkLabel.toString();document.getElementById("pkDayDtls").innerHTML=tlabel;clickLayer("pkDayDtls",2,-15)}function killAllCalendars(){kCal=activeCal;kCalShim=activeCal+"Shim";setVisible(false,activeCal,activeCal+"Shim")}function parseToDoubleDigit(number){return number<10?"0"+number:number}
function parseToSingleDigit(number){var str=""+number;return str=str.replace(/^0+/g,"")}function getAllDaysInMonth(month){var days;var year=month>=javaMonth?javaYear:javaYear+1;if(month==0||month==2||month==4||month==6||month==7||month==9||month==11)days=31;else if(month==3||month==5||month==8||month==10)days=30;else if(month==1)if(isThisLeapYear(year))days=29;else days=28;return days}function isThisLeapYear(Year){if(Year%4==0&&Year%100!=0||Year%400==0)return true;else return false}
function parseDate(dateString){function trim(sString){var re1=/\s{2,10}/g;sString=sString.replace(re1," ");while(sString.substring(0,1)==" ")sString=sString.substring(1,sString.length);while(sString.substring(sString.length-1,sString.length)==" ")sString=sString.substring(0,sString.length-1);return sString}function convertMonthAbbreviation(inputString){var alphaMonth;var numericMonth;var numericString;var re1=/^[a-zA-Z]*/;var re2=/^[a-zA-Z]{3}/;if(inputString.length<3)return;if(inputString.match(re1)){alphaMonth=
inputString.match(re2);for(i=0;i<alphaMonthArray.length;i++)if(alphaMonth==alphaMonthArray[i]){numericMonth=i+1;numericString=inputString.replace(re1,numericMonth);return numericString}}}function matchPattern(sString){var normString=sString;var normStringTwo=sString;var testPattern=rDelimRegEx;var re2=/^([a-zA-z])/;if(normString.match(re2))normStringTwo=convertMonthAbbreviation(normString);if(normStringTwo.match(testPattern))return normStringTwo;return normString}function parseDateMain(dateString){var inputString;
var normString;var normStringTwo;inputString=trim(dateString);normString=delimit(inputString);normStringTwo=matchPattern(normString);setDateInputs(normStringTwo)}function setDateInputs(dateString){var re1="|";if(dateString!=null){var dateTokenArray=dateString.split(re1);pInputMonth=dateTokenArray[CONST_MONTH_IDX];pInputDay=dateTokenArray[CONST_DATE_IDX];pInputYear=dateTokenArray[CONST_YEAR_IDX]}else return}parseDateMain(dateString)}
function getDatePart(datePart,dateString){var re1="|";if(dateString!=null){var dateTokenArray=dateString.split(re1);if(datePart=="m")return dateTokenArray[CONST_MONTH_IDX];if(datePart=="d")return dateTokenArray[CONST_DATE_IDX];if(datePart=="y")return dateTokenArray[CONST_YEAR_IDX]}else return-1;return-1}
function delimit(sString){var thisString;var re1=/,\s/g;var re2=/([|]|[.]|[-]|[,]|[;]|[\s]|[\/])/g;thisString=sString.replace(re1,",");thisString=thisString.replace(re2,"|");thisString=thisString.toLowerCase();return thisString}
function isDatePatternCorrect(sString){var normString=sString;var testPattern=rDelimRegEx;if(normString.match(testPattern)){var theMonth=parseInt(getDatePart("m",sString),10);if(theMonth<=0||theMonth>12)return false;var theDate=parseInt(getDatePart("d",sString),10);if(theDate<=0||theDate>31)return false;return true}return false}function processMonth(startMonthField,endMonthField){endMonthField.selectedIndex=startMonthField.selectedIndex}
function process(num,cal){var sDelimitedDate=delimit(dtDefaultDate);var defaultDate=new Date(parseInt(getDatePart("y",sDelimitedDate),10),parseInt(getDatePart("m",sDelimitedDate),10)-1,parseInt(getDatePart("d",sDelimitedDate),10),0,0,0);if(num==-1)if(month==0){month=11;year--;today.setFullYear(year)}else month--;if(num==1)if(month==11){month=0;year++;today.setFullYear(year)}else month++;today.setMonth(month);today.setMonth(month);if(today<defaultDate){today=defaultDate;javaDate=today}writeCalendar(cal)}
function returnMonth(thismonth,thisYear){monthArray=alphaMonthArray;var theMonthYear=MonthDayOrder.replace("[Month]",monthArray[thismonth]);theMonthYear=theMonthYear.replace("[Year]",thisYear);return theMonthYear}
function setVisible(state,sCal,sCalShim){if(!state){sCal=kCal;sCalShim=kCalShim}if(document.getElementById(sCal))var divRef=document.getElementById(sCal);else return;if(document.getElementById(sCalShim))var ifrRef=document.getElementById(sCalShim);else return;if(state){divRef.style.display="block";ifrRef.style.width=divRef.offsetWidth;ifrRef.style.height=divRef.offsetHeight;ifrRef.style.top=divRef.style.top;ifrRef.style.left=divRef.style.left;ifrRef.style.zIndex=divRef.style.zIndex-1;ifrRef.style.display=
"block";ifrRef.onClick=true}else{divRef.style.display="none";ifrRef.style.display="none"}}function closeCalendar(cCal,cCalShim){kCal=cCal;kCalShim=cCalShim;setVisible(false)}
function getTimePart(sTimePart){var currTimePicked=document.getElementById(sTimeFieldID).value;var arrTimeSplit=currTimePicked.split(" ");var iHourAdder=0;var bTwentyFourHourClock=false;if(arrTimeSplit.length>1){if(arrTimeSplit[1].toLowerCase()=="pm")iHourAdder=12}else bTwentyFourHourClock=true;var arrTheTime=arrTimeSplit[0].split(":");sTimePart=sTimePart.toLowerCase();var theTimePart=0;if(sTimePart=="h"){var iHour=parseInt(arrTheTime[0],10);if((iHourAdder==0||iHourAdder==12)&&iHour==12&&!bTwentyFourHourClock)iHour=
0;theTimePart=iHour+iHourAdder}if(sTimePart=="m")theTimePart=arrTheTime[1];return theTimePart}function getGMTMS(dtConversion,iOffsetMS){var theMSAtLocation=dtConversion.getTime()+iOffsetMS;return theMSAtLocation}
function isTimeInPast(sDelimitedDate){var dtTheClientDate=new Date;var iYear=1900;if(getDatePart("y",sDelimitedDate).length<4)iYear=parseInt(getDatePart("y",sDelimitedDate),10)+2E3;else iYear=parseInt(getDatePart("y",sDelimitedDate),10);var dtPickedDate=new Date(iYear,parseInt(getDatePart("m",sDelimitedDate),10)-1,getDatePart("d",sDelimitedDate),getTimePart("h"),getTimePart("m"),0,0);var dtTheClientDate=new Date;var iDiffFromGMTMS=dtTheClientDate.getTimezoneOffset()*60*1E3;var iGMTClientMS=dtTheClientDate.getTime()+
iDiffFromGMTMS;var theLocationLocalTimeMS=iGMTClientMS+iGMTOffsetMins*1E3*60;var iPickedDateMS=dtPickedDate.getTime();if(theLocationLocalTimeMS>iPickedDateMS)return true;return false}
function setField(userDateField,userSiblingDate,userDate,userVertical){killAllCalendars();inputDateField=userDateField;inputDate=userDate;vertical=userVertical;var dToday=today;defaultDate=dtDefaultDate;var sDelimDate=delimit(inputDate);if(isDatePatternCorrect(sDelimDate)==false){inputDate=dtDefaultDate;userDateField.value=dtDefaultDate;alert(sDefaultFormatErrMsg)}if(isTimeInPast(sDelimDate)==true){inputDate=dtDefaultDate;userDateField.value=dtDefaultDate;alert(sTimeInPastMessage)}if(inputDate==defaultDateString)if(userSiblingDate==
defaultDateString)inputDate=defaultDate;else inputDate=userSiblingDate;else if(inputDate.length<1)inputDate=defaultDate;try{parseDate(inputDate)}catch(e){parseDate(defaultDate);inputDate=defaultDate}if(parseToSingleDigit(pInputMonth)>12)parseDate(defaultDate);tInputMonth=parseToSingleDigit(pInputMonth);tInputDay=parseToSingleDigit(pInputDay);tInputYear=pInputYear.length<=2?"20"+pInputYear:pInputYear;month=tInputMonth-1;today.setMonth(month);year=tInputYear;today.setFullYear(year)}
function splitToLength(sNumericVal,iLength,isYear){iLength=parseInt(iLength,10);var theRet=sNumericVal;if(iLength>4||iLength==3)return sNumericVal;if(iLength==1&&isYear==false){theRet=parseToSingleDigit(sNumericVal);return theRet}if(iLength==2&&isYear==false){theRet=parseToDoubleDigit(sNumericVal);return theRet}if(isYear==true&&iLength==4)return sNumericVal;theRet=sNumericVal.substr(2);return theRet}
function returnDate(inDay,cal){var thisDay=inDay;var thisMonth=month+1;var thisYear=year;var thisYearString=""+thisYear;var arrFormat=defaultDateString.split(sDateDelim);var arrLocalizedDate=new Array(3);arrLocalizedDate[CONST_MONTH_IDX]=splitToLength(thisMonth,arrFormat[CONST_MONTH_IDX].length,false);arrLocalizedDate[CONST_DATE_IDX]=splitToLength(thisDay,arrFormat[CONST_DATE_IDX].length,false);arrLocalizedDate[CONST_YEAR_IDX]=splitToLength(thisYear,arrFormat[CONST_YEAR_IDX].length,true);inputDateField.value=
"";for(iDateItr=0;iDateItr<arrLocalizedDate.length;iDateItr++){if(inputDateField.value.length>0)inputDateField.value+=sDateDelim;inputDateField.value+=arrLocalizedDate[iDateItr]}var theField=document.getElementById(hidVarName);theField.value=inputDateField.value;var theField2=document.getElementById("RestaurantProfile_RestaurantProfileRRTabCtrl_RestSearchBox_OTDateSearch_hidDtVal");if(theField2!=null)theField2.value=inputDateField.value;ValidateDateTime();closeCalendar(cal,calShim)}
function writeCalendarFor(el,cal){var bNoReturn=false;try{if(typeof jQuery=="undefined"||!Object.isValidObject(jQuery))return writeCalendar(cal);var bOverride=jQuery&&jQuery.browser.msie&&jQuery.browser.version>=9;if(!bOverride)return writeCalendar(cal);var eParent=jQuery(el);var oOffset=eParent.offset();oOffset.top+=eParent.innerHeight();var eCalendar=jQuery("#"+cal);if(!eCalendar.parent().is("body"))eCalendar.detach().appendTo(document.body);eCalendar.css({top:oOffset.top,left:oOffset.left,marginTop:0});
bNoReturn=true;writeCalendar(cal);var eShim=jQuery("#"+calShim);if(!eShim.parent().is("body"))eShim.detach().appendTo(document.body);eShim.css({top:oOffset.top,left:oOffset.left,marginTop:0})}catch(ex){if(!bNoReturn)writeCalendar(cal)}}
function writeCalendar(cal){activeCal=cal;calShim=cal+"Shim";blankColumn="<td class='clickableDays partOfCal'>&nbsp;</td>";tableOutput="<table cellpadding='0' cellspacing='0' border='0'><tr><td class='partOfCal' colspan='7'></td></tr><tr>";var theFirstDayOfWeek=iFirstDayOfWeek;for(iDOWIndex=0;iDOWIndex<arrDayOfWeekName.length;iDOWIndex++){tableOutput+="<td class='weekdays partOfCal'>";tableOutput+=arrDayOfWeekName[theFirstDayOfWeek%arrDayOfWeekName.length];theFirstDayOfWeek++;tableOutput+="</td>"}tableOutput+=
"</tr><tr align='right'>";var days=getAllDaysInMonth(month);var firstOfMonth=new Date(year,month,1);var startingPos=firstOfMonth.getDay();startingPos-=parseInt(iFirstDayOfWeek);if(startingPos<0)startingPos=7+startingPos;days+=startingPos;var columnCount=0;for(i=0;i<startingPos;i++){tableOutput+=blankColumn;columnCount++}var currentDay=0;for(i=startingPos;i<days;i++){currentDay=i-startingPos+1;var pStyle=" ";var pStyleCode=" ";var sltdDt=" ";var sltdDtA=" ";var pkMonth=parseToDoubleDigit(month+1);
var pkCurrentDay;pkCurrentDay=parseToDoubleDigit(currentDay);year=""+year;pkYear=year.substring(2,4);var pkId=" ";pkId="pk"+pkMonth+pkCurrentDay+pkYear;pkJsMOver=" ";pkJsMOut=" ";pkJsOnClick=" ";if(vertical=="flights"){function checkPkDays(pkId){var label=" ";var showLabel;for(var i in peakDays){label=peakDays[i];if(pkId==i){pkJsMOver=" onmouseover='wrtPkDayDtls(\""+label+"\");' ";pkJsMOut=" onmouseout='javascript:hideLayer(\"pkDayDtls\");' ";pkJsOnClick=" onclick='javascript:hideLayer(\"pkDayDtls\");' ";
pStyleCode=" pkD "}}}checkPkDays(pkId)}if(month+1==tInputMonth&&currentDay==tInputDay){sltdDt='style="border:1px solid #9CADBD; background-color:#FFEF9C;"';sltdDtA='style="background-color:#FFEF9C;"'}var verticalDate=ComputeLocalTime(javaDate);var nonClickableDayString="<td "+pkJsMOver+pkJsMOut+pkJsOnClick+" class='nonclickableDays partOfCal "+pStyleCode+"' "+">"+currentDay+"</td>";if(bIsFavPage==1)var clickableDayString="<td "+pkJsMOver+pkJsMOut+pkJsOnClick+" class='clickableDays partOfCal "+pStyleCode+
"' "+" id='"+pkId+"' "+sltdDt+"><a href='#' onclick=javascript:returnDate("+currentDay+",'"+cal+"');returnDate("+currentDay+",'cal1'); class='clickableDays partOfCal "+pStyleCode+"' "+" id=' "+pkId+"' "+sltdDtA+">"+currentDay+"</a></td>";else var clickableDayString="<td "+pkJsMOver+pkJsMOut+pkJsOnClick+" class='clickableDays partOfCal "+pStyleCode+"' "+" id='"+pkId+"' "+sltdDt+"><a href=javascript:returnDate("+currentDay+",'"+cal+"');returnDate("+currentDay+",'cal1'); class='clickableDays partOfCal "+
pStyleCode+"' "+" id=' "+pkId+"' "+sltdDtA+">"+currentDay+"</a></td>";if(vertical!="pastpurchase")if(month<=javaMonth&&year==javaYear)if(month==javaMonth&&currentDay>=verticalDate.getDate())tableOutput+=clickableDayString;else tableOutput+=nonClickableDayString;else if(year>=javaLimitYear)if(month>javaLimitMonth||month==javaLimitMonth&&currentDay>=javaLimitDate||year>javaLimitYear)tableOutput+=nonClickableDayString;else tableOutput+=clickableDayString;else if(year<javaYear)tableOutput+=nonClickableDayString;
else tableOutput+=clickableDayString;else tableOutput+=clickableDayString;columnCount++;if(columnCount%7==0)tableOutput+="</tr><tr>"}for(i=days;i<34;i++){tableOutput+=blankColumn;columnCount++;if(columnCount%7==0){tableOutput+="</tr>";if(i<33)tableOutput+="<tr>"}}var leftarrow;var rightarrow;if(vertical=="pastpurchase")leftarrow="<a class='partOfCal' href='javascript:process(-1,\""+cal+"\")'><img class='partOfCal' src='/img/dnbase/left.gif' width='11' height='17' border='0'></a>";else if(month==javaMonth&&
year==javaYear)leftarrow="<img class='partOfCal' src='/img/dnbase/spacer.gif' width='11' height='17' border='0'>";else leftarrow="<a class='partOfCal' href='javascript:process(-1,\""+cal+"\")'><img class='partOfCal' src='/img/dnbase/left.gif' width='11' height='17' border='0'></a>";if(vertical=="pastpurchase")rightarrow="<a class='partOfCal' href='javascript:process(1,\""+cal+"\")'><img class='partOfCal' src='/img/dnbase/right.gif' width='11' height='17' border='0'></a>";else{if(bIsPDPage==1)calendarDuration=
2;if(month==javaMonth-1&&year==javaYear+calendarDuration)rightarrow="<img class='partOfCal' src='/img/dnbase/spacer.gif' width='11' height='17' border='0'>";else rightarrow="<a class='partOfCal' href='javascript:process(1,\""+cal+"\")'><img class='partOfCal' src='/img/dnbase/right.gif' width='11' height='17' border='0'></a>"}tableOutput+="</table>";monthOutput="<table cellspacing='0' cellpadding='0' border='0' id=imageCal><tr><td class='partOfCal' bgcolor='#333333' colspan='5'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td></tr><tr><td class='partOfCal' bgcolor='#333333'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td><td class='partOfCal' bgcolor='#FFFFFF'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td><td class='partOfCal'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='150' height='1' border='0'><br class='partOfCal' /><table cellpadding='0' cellspacing='0' border='0' bgcolor='#9CADBD'><tr><td class='partOfCal' bgcolor='#9CADBD' height='15' valign='top'>"+
leftarrow+"</td><td align='center' valign='middle' class='months partOfCal' bgcolor='#9CADBD'>"+returnMonth(month,year)+"</td><td class='partOfCal' align='right' bgcolor='#9CADBD' valign='top'>"+rightarrow+"</td></tr></table>";if(bIsFavPage==1)disclaimer="<table cellspacing='0' cellpadding='0' border='0'><tr><td class='partOfCal' bgcolor='#333333' colspan='2'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td></tr><tr><td class='partOfCal' align='center' valign='bottom'></td><td class='partOfCal' align='right' valign='bottom'><a class='partOfCal' href= '#' onclick='javascript:closeCalendar(\""+
cal+'","'+calShim+"\")'><img class='partOfCal' src='/img/dnbase/close.gif' width='16' height='12' border='0' vspace=3 align=right></a></td></tr></table></td><td class='partOfCal' bgcolor='#FFFFFF'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td><td class='partOfCal' bgcolor='#333333'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td></tr><tr><td class='partOfCal' bgcolor='#333333' colspan='5'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td></tr></table>";
else disclaimer="<table cellspacing='0' cellpadding='0' border='0'><tr><td class='partOfCal' bgcolor='#333333' colspan='2'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td></tr><tr><td class='partOfCal' align='center' valign='bottom'></td><td class='partOfCal' align='right' valign='bottom'><a class='partOfCal' href='javascript:closeCalendar(\""+cal+'","'+calShim+"\")'><img class='partOfCal' src='/img/dnbase/close.gif' width='16' height='12' border='0' vspace=3 align=right></a></td></tr></table></td><td class='partOfCal' bgcolor='#FFFFFF'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td><td class='partOfCal' bgcolor='#333333'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td></tr><tr><td class='partOfCal' bgcolor='#333333' colspan='5'><img class='partOfCal' src='/img/dnbase/spacer.gif' width='1' height='1' border='0'></td></tr></table>";
tableOutput=monthOutput+tableOutput+disclaimer;document.getElementById(cal).innerHTML=tableOutput;setVisible(true,cal,calShim)}
function exteriorCloseCal(e){var myObj=new Object;if(!e)if(window.event)e=window.event;else return;if(document.all)myObj=e.srcElement;else myObj=e.target;var oCtlChk=new RegExp("theOTDate","ig");var arrCtlMatch=new Array;if(myObj.name!=null)arrCtlMatch=myObj.name.match(oCtlChk);if(arrCtlMatch==null)arrCtlMatch=new Array;if(myObj.className.indexOf("partOfCal")==-1&&arrCtlMatch.length==0&&myObj.name!="endDate"&&myObj.name!="travelStartDate")killAllCalendars()}
function ValidateDateTime(){var bValid=true;var ctlUserDateField=document.getElementById(sDateFieldID);var dtDate=ctlUserDateField.value;var dtTimeDD=document.getElementById(sTimeFieldID);var defTime=document.getElementById(sDefaultTimeValID);inputDate=dtDate;var dToday=today;defaultDate=dtDefaultDate;var sDelimDate=delimit(inputDate);if(isDatePatternCorrect(sDelimDate)==false){inputDate=dtDefaultDate;ctlUserDateField.value=dtDefaultDate;alert(sDefaultFormatErrMsg);bValid=false}if(isTimeInPast(sDelimDate)==
true){inputDate=dtDefaultDate;ctlUserDateField.value=dtDefaultDate;alert(sTimeInPastMessage);dtTimeDD.value=defTime.value;bValid=false}return bValid}function ComputeLocalTime(dtBrowserTime){var dtCurrentLocalTime=new Date;try{var iDiffFromGMTMS=dtBrowserTime.getTimezoneOffset()*60*1E3;var iGMTClientMS=dtBrowserTime.getTime()+iDiffFromGMTMS;var theLocationLocalTimeMS=iGMTClientMS+iGMTOffsetMins*1E3*60;dtCurrentLocalTime=new Date(theLocationLocalTimeMS)}catch(e){}return dtCurrentLocalTime}
document.onclick=exteriorCloseCal;

