
var fullRatesCallout={init:function(){var formsToInitialize=$(':hidden[name=initFormDates]');if($(formsToInitialize).length>0)
{$(formsToInitialize).each(function(){initFormDates($(this).val());});}
var formObj=fullRatesCallout.findFullRatesCalloutForm("fullRatesCalloutForm");if(formObj)
{var corporateCodeBox=formObj.corporateCode;var groupCodeBox=formObj.groupCode;var incentivesBox=formObj.displayableIncentiveType_Number;var rewardCheckBoxElement=fullRatesCallout.findFormElementById(formObj,"rateREW","useMarriottRewardsPoint");var noneRadioButtonElement=fullRatesCallout.findFormElementById(formObj,"none","clusterCode");if(rewardCheckBoxElement&&noneRadioButtonElement)
{if((rewardCheckBoxElement.checked==true&&formObj.useMarriottRewardsPoint.value=="true")||((formObj.isClusterCodePresent.value=="false")))
{if(incentivesBox){incentivesBox.value="";}
corporateCodeBox.value="";if(groupCodeBox){groupCodeBox.value="";}
noneRadioButtonElement.checked=true;}}
else if((formObj.isClusterCodePresent.value=="false")&&noneRadioButtonElement)
{if(incentivesBox){incentivesBox.value="";}
corporateCodeBox.value="";if(groupCodeBox){groupCodeBox.value="";}
noneRadioButtonElement.checked=true;}
YAHOO.util.Event.addListener("use-rewards-point-link","click",fullRatesCallout.handleRewardPointLink);for(j=0;j<formObj.elements.length;j++){if(formObj.elements[j].name=="useMarriottRewardsPoint"||formObj.elements[j].name=="clusterCode"||formObj.elements[j].name=="corporateCode"||formObj.elements[j].name=="displayableIncentiveType_Number"||formObj.elements[j].name=="groupCode"){if(formObj.clusterCode){YAHOO.util.Event.addListener(formObj.elements[j],"click",fullRatesCallout.clusterCodeChanged);YAHOO.util.Event.addListener(formObj.elements[j],"change",fullRatesCallout.clusterCodeChanged);YAHOO.util.Event.addListener(formObj.elements[j],"focus",fullRatesCallout.clusterCodeChanged);}}}}},handleRewardPointLink:function(e)
{YAHOO.util.Event.preventDefault(e);var formObj=fullRatesCallout.findFullRatesCalloutForm("fullRatesCalloutForm");var rewardCheckBox=fullRatesCallout.findFormElementById(formObj,"rateREW","useMarriottRewardsPoint");var noRatesButton=fullRatesCallout.findFormElementById(formObj,"none","clusterCode");var corporateCodeBox=formObj.corporateCode;var groupCodeBox=formObj.groupCode;var incentivesBox=formObj.displayableIncentiveType_Number;if(incentivesBox){incentivesBox.value="";}
corporateCodeBox.value="";if(groupCodeBox){groupCodeBox.value="";}
noRatesButton.checked=true;rewardCheckBox.checked=true;if(formObj.isReservationSite.value=='true'){sendto('','','/search/redeemRewardsPoints.mi','5');}
else{sendto('US','default_domain','/search/redeemRewardsPoints.mi','5');}},validate:function(formId,offerStartDate,offerEndDate,subCategory,isRightMuSpecials,pageId,pageIdSpecials,rewardErrorMessage,rewardSpecials){var objForm=fullRatesCallout.findFullRatesCalloutForm(formId);var corporateCode;var groupCode;var formClusterCode;if(objForm.corporateCode)
{corporateCode=objForm.corporateCode.value;}
if(objForm.groupCode)
{groupCode=objForm.groupCode.value;}
var submit=false;var displayIncentiveNumber=objForm.displayableIncentiveType_Number;var objClusterSell=objForm.clusterSell;objClusterSell.value=false;var rewardCheckBox=fullRatesCallout.findFormElementById(objForm,"rateREW","useMarriottRewardsPoint");var clusterCodeGroup=objForm.elements["clusterCode"];if(clusterCodeGroup)
{for(k=0;k<clusterCodeGroup.length;k++)
{if(rewardCheckBox.checked==false&&clusterCodeGroup[k].value=="MW1")
{clusterCodeGroup[k].value="none";}
if(clusterCodeGroup[k].checked==true)
{formClusterCode=clusterCodeGroup[k].value;}}}
if(clusterCodeGroup){for(i=0;i<clusterCodeGroup.length;i++){if((clusterCodeGroup[i].checked==true)&&((clusterCodeGroup[i].value=="none"))&&((rewardCheckBox)&&(rewardCheckBox.checked==true)&&(rewardCheckBox.value=="true"||objForm.useMarriottRewardsPoint.value=="true")))
{if(objForm.numberOfRooms.value==4)
{if(confirm('The additional information is not applicable when requesting more than 3 rooms. Click "OK" to request a group room rate. Click "Cancel" to revise your search.')){$("#corporateCode,#groupCode,#displayableIncentiveType").each(function(){$(this).val('');});$('#none').attr('checked',true);objClusterSell.value=false;return true;}
else{return false;}}
else{clusterCodeGroup[i].value="MW1";formClusterCode="MW1";objClusterSell.value=true;}}
else if((clusterCodeGroup[i].checked==true)&&(clusterCodeGroup[i].value=="CORP"||clusterCodeGroup[i].value=="corp"))
{if(objForm.numberOfRooms.value==4)
{if(confirm('The additional information is not applicable when requesting more than 3 rooms. Click "OK" to request a group room rate. Click "Cancel" to revise your search.')){$("#corporateCode,#groupCode,#displayableIncentiveType").each(function(){$(this).val('');});$('#none').attr('checked',true);objClusterSell.value=false;return true;}
else{return false;}}
else if(corporateCode==''||corporateCode.length<3){alert("The corporate/promotional code you entered has fewer than three characters. Please verify the code.");objForm.corporateCode.focus();return false;}
else{objClusterSell.value=true;clusterCodeGroup[i].value='corp';}}
else if((clusterCodeGroup[i].checked==true)&&(clusterCodeGroup[i].value=="GROUP"||clusterCodeGroup[i].value=="group"))
{if(objForm.numberOfRooms.value==4)
{if(confirm('The additional information is not applicable when requesting more than 3 rooms. Click "OK" to request a group room rate. Click "Cancel" to revise your search.')){$("#corporateCode,#groupCode,#displayableIncentiveType").each(function(){$(this).val('');});$('#none').attr('checked',true);objClusterSell.value=false;return true;}
else{return false;}}
else if(groupCode==''||groupCode.length<7){alert("The group code you entered has fewer than seven characters. Please verify the code.");objForm.groupCode.focus();return false;}
else{clusterCodeGroup[i].value='group';}}
else if((clusterCodeGroup[i].checked==true)&&(clusterCodeGroup[i].value=="INT"||clusterCodeGroup[i].value=="int"))
{if(objForm.numberOfRooms.value==4)
{if(confirm('The additional information is not applicable when requesting more than 3 rooms. Click "OK" to request a group room rate. Click "Cancel" to revise your search.')){$("#corporateCode,#groupCode,#displayableIncentiveType").each(function(){$(this).val('');});$('#none').attr('checked',true);objClusterSell.value=false;return true;}
else{return false;}}
else if(displayIncentiveNumber&&displayIncentiveNumber.value=='')
{alert("You have requested a special rate without specifying an award type or number. We cannot check rates and availability unless the award type or number is specified.");return false;}
else if(displayIncentiveNumber&&displayIncentiveNumber.value!=''&&objForm.numberOfRooms.value>1)
{alert('You may only reserve one room at a time when redeeming an award.  To book more than one room, please call Marriott Individual Incentives Reservations at 1-800-899-7235.')
return false;}
else if(displayIncentiveNumber&&displayIncentiveNumber.value!=''&&(objForm.fromDate.value==''||objForm.toDate.value==''))
{alert('Please enter check-in and check-out dates when searching by award number or type');return false;}
else{clusterCodeGroup[i].value='int';}}
else if((clusterCodeGroup[i].checked==true)&&(clusterCodeGroup[i].value!="")&&(clusterCodeGroup[i].value!="none")&&(clusterCodeGroup[i].value!="INT")&&(clusterCodeGroup[i].value!="group")){objClusterSell.value=true;}}}
if(objForm.numberOfRooms.value==4&&formClusterCode!='none')
{if(confirm('The additional information is not applicable when requesting more than 3 rooms. Click "OK" to request a group room rate. Click "Cancel" to revise your search.')){$("#corporateCode,#groupCode,#displayableIncentiveType").each(function(){$(this).val('');});$('#none').attr('checked',true);objClusterSell.value=false;return true;}
else{return false;}}
if(pageId!=pageIdSpecials||(isRightMuSpecials=="true"))
{submit=validateForm(formId);}
else
{var rewardsOffers=rewardSpecials;if(validateForm(formId)==true)
{submit=ValidateOfferDates(formId,offerStartDate,offerEndDate,rewardsOffers,subCategory);}else{submit=false;}}
return submit;},findFullRatesCalloutForm:function(formId){var formObj=null;for(i=0;i<document.forms.length;i++)
{if((document.forms[i].id==formId)&&(document.forms[i].name=="fullRatesCalloutForm"))
{formObj=document.forms[i];}}
if(formObj!=null)
{return formObj;}
else{return null;}},findFormElementById:function(formObj,elementId,elementName){var elementObj=null;for(i=0;i<formObj.elements.length;i++)
{if(elementName&&formObj.elements[i].id==elementId&&formObj.elements[i].name==elementName){elementObj=formObj.elements[i];}
else
if(formObj.elements[i].id==elementId){elementObj=formObj.elements[i];}}
return elementObj;},clusterCodeChanged:function(){var clusterCode=this.form.clusterCode;var corporateCodeBox=this.form.corporateCode;var groupCodeBox=this.form.groupCode;var incentivesBox=this.form.displayableIncentiveType_Number;var noRatesButton=null;var corporateCodeButton=null;var groupCodeButton=null;var incentivesButton=null;var rewardCheckBox=null;rewardCheckBox=fullRatesCallout.findFormElementById(this.form,"rateREW","useMarriottRewardsPoint");noRatesButton=fullRatesCallout.findFormElementById(this.form,"none","clusterCode");corporateCodeButton=fullRatesCallout.findFormElementById(this.form,"corp","clusterCode");groupCodeButton=fullRatesCallout.findFormElementById(this.form,"group","clusterCode");incentivesButton=fullRatesCallout.findFormElementById(this.form,"INT","clusterCode");if(this==rewardCheckBox){if(incentivesBox){incentivesBox.value="";}
corporateCodeBox.value="";if(groupCodeBox){groupCodeBox.value="";}
noRatesButton.checked=true;}
else{if(rewardCheckBox){rewardCheckBox.checked=false;}
if(this.type=="text"){if(this==corporateCodeBox){corporateCodeButton.checked=true;if(incentivesButton){incentivesBox.value="";}
if(groupCodeButton){groupCodeBox.value="";}}
else if(this==groupCodeBox){groupCodeButton.checked=true;if(incentivesButton){incentivesBox.value="";}
if(corporateCodeButton){corporateCodeBox.value="";}}
else if(this==incentivesBox){incentivesButton.checked=true;if(corporateCodeButton){corporateCodeBox.value="";}
if(groupCodeButton){groupCodeBox.value="";}}}
else if(this.type=="radio"){if(this==corporateCodeButton){corporateCodeBox.focus();}
else{corporateCodeBox.value="";}
if(this==groupCodeButton){groupCodeBox.focus();}
else{groupCodeBox.value="";}
if(this==incentivesButton){incentivesBox.focus();}
else{if(this.form.displayableIncentiveType_Number){incentivesBox.value="";}}}}},moreOptions:function(formId,checkAvailabilityURL,netlinkResURL,netlinkId){var objForm=fullRatesCallout.findFullRatesCalloutForm(formId);var propertyCode=objForm.propertyCode.value;var fromDate=objForm.fromDate.value;var toDate=objForm.toDate.value;var numberOfGuests=objForm.numberOfGuests.value;var numberOfRooms=objForm.numberOfRooms.value;var marriottRewardsNumber=objForm.marriottRewardsNumber.value;var corporateCode=null;var groupCode=null;var submit=true;if(objForm.corporateCode)
{corporateCode=objForm.corporateCode.value;}
if(objForm.groupCode)
{groupCode=objForm.groupCode.value;}
var rewardCheckBoxElement=fullRatesCallout.findFormElementById(objForm,"rateREW","useMarriottRewardsPoint");var clusterCodeGroup=objForm.clusterCode;var clusterCodeValue=null;var params="&fromDate="+fromDate+"&toDate="+toDate+"&numberOfGuests="+numberOfGuests+"&numberOfRooms="+numberOfRooms+"&marriottRewardsNumber="+marriottRewardsNumber;if(clusterCodeGroup){for(i=0;i<clusterCodeGroup.length;i++)
{if(clusterCodeGroup[i].checked==true)
{clusterCodeValue=clusterCodeGroup[i].value;}}}
if((clusterCodeValue!=null)&&(clusterCodeValue.length>0)&&(clusterCodeValue!="INT"))
{if(rewardCheckBoxElement.checked==true&&rewardCheckBoxElement.value=="true"&&clusterCodeValue=="none")
{params=params+"&cc=MW1";corporateCode="";groupCode="";}
else if((clusterCodeValue=="CORP"||clusterCodeValue=="corp"))
{if(corporateCode==''||corporateCode.length<3){alert("The corporate/promotional code you entered has fewer than three characters. Please verify the code.");objForm.corporateCode.focus();submit=false;}
else{params=params+"&cc="+corporateCode;}}
else if((clusterCodeValue=="GROUP"||clusterCodeValue=="group")){if(groupCode==''||groupCode.length<7){alert("The group code you entered has fewer than seven characters. Please verify the code.");objForm.groupCode.focus();submit=false;}
else{params=params+"&groupCode="+groupCode+"&cc=GROUP";}}
else if((clusterCodeValue!="corp"||clusterCodeValue!="CORP")&&(clusterCodeValue!="group"||clusterCodeValue!="GROUP")){params=params+"&cc="+clusterCodeValue;}}
if(submit)
{var url=checkAvailabilityURL+propertyCode;if(netlinkId=='true')
{url=netlinkResURL+propertyCode+'&app=NetLink';}
if(objForm.isReservationSite.value=='false'&&rewardCheckBoxElement!=null&&rewardCheckBoxElement.checked==true)
{sendto('US','default_domain',url+params,'3');}
else
{document.location.href=url+params;}}},dealsPageMoreOptions:function(formId,checkAvailabilityURL,netlinkResURL,netlinkId){var objForm=fullRatesCallout.findFullRatesCalloutForm(formId);var propertyCode=objForm.propertyCode.value;var fromDate=objForm.fromDate.value;var toDate=objForm.toDate.value;var numberOfGuests=objForm.numberOfGuests.value;var numberOfRooms=objForm.numberOfRooms.value;var marriottRewardsNumber=objForm.marriottRewardsNumber.value;var corporateCode=objForm.corporateCode.value;var params="&fromDate="+fromDate+"&toDate="+toDate+"&numberOfGuests="+numberOfGuests+"&numberOfRooms="+numberOfRooms+"&marriottRewardsNumber="+marriottRewardsNumber;if(corporateCode.length>0)
{params=params+"&cc="+corporateCode;}
var url=checkAvailabilityURL+propertyCode;if(netlinkId=='true')
{url=netlinkResURL+propertyCode+'&app=NetLink';}
document.location.href=url+params;}};YAHOO.util.Event.onAvailable("layout-message-bar",fullRatesCallout.init,fullRatesCallout,true,true);function validateForm(formId){var objForm=fullRatesCallout.findFullRatesCalloutForm(formId);var fromDate=objForm.fromDate.value;var toDate=objForm.toDate.value;if(fromDate!=''||toDate!='')
{if(formId=='fullRatesCalloutForm')
{return dates.validateDates();}
else
{return dates.validateDates('','fromDate','toDate',formId);}}
else
{fullRatesCallout.moreOptions(formId,'/reservation/availability.mi?propertyCode=','/netlink/reservation/availability.mi?propertyCode=','');return false;}}
function ValidateOfferDates(formId,offerStartDate,offerEndDate,rewardsOffers,subCategory)
{if(offerStartDate!=''&&offerEndDate!=''){var startYear=offerStartDate.substring(0,offerStartDate.indexOf('-'));var startMonthDay=offerStartDate.substring(offerStartDate.indexOf('-')+1);var startMonth=startMonthDay.substring(0,startMonthDay.indexOf('-'));var startDay=startMonthDay.substring(startMonthDay.indexOf('-')+1);offerStartDate=startMonth+"/"+startDay+"/"+startYear;var endYear=offerEndDate.substring(0,offerEndDate.indexOf('-'));var endMonthDay=offerEndDate.substring(offerEndDate.indexOf('-')+1);var endMonth=endMonthDay.substring(0,endMonthDay.indexOf('-'));var endDay=endMonthDay.substring(endMonthDay.indexOf('-')+1);offerEndDate=endMonth+"/"+endDay+"/"+endYear;var offerEndDateForChkout=new Date(offerEndDate);offerEndDateForChkout.setDate(offerEndDateForChkout.getDate()+1);var objForm=fullRatesCallout.findFullRatesCalloutForm(formId);var dateFormatPattern=objForm.elements['dateFormatPattern'].value.toLowerCase();var fromDate=objForm.elements['fromDate'].value;fromDate=dateInMMDDYYFormat(fromDate,dateFormatPattern);if(!IsDateEqualOrAfter(offerStartDate,fromDate)||!IsDateEqualOrAfter(fromDate,offerEndDate)){alert("Check In Date is not valid for this offer.  Please verify your selection criteria.");return false;}
var toDate=objForm.elements['toDate'].value;toDate=dateInMMDDYYFormat(toDate,dateFormatPattern);if(!IsDateEqualOrAfter(toDate,offerEndDateForChkout)){alert("Check Out Date is not valid for this offer.  Please verify your selection criteria.");return false;}}
return true;}
function initFormDates(formId)
{var curDate=new Date();var fromDate=(curDate.getMonth()+1)+"/"+curDate.getDate()+"/"+curDate.getFullYear();var objForm=fullRatesCallout.findFullRatesCalloutForm(formId);var dateFormatPattern=(objForm.elements['dateFormatPattern'].value).toLowerCase();objForm.elements['fromDate'].value=formatDate(fromDate,dateFormatPattern);objForm.elements['toDate'].value=datePlusOne(fromDate,dateFormatPattern);}
function openAgency()
{window.open("/property/property/locatorPopUp.jsp","AgencyLocator",'toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,width=500,height=500');}
function IsDateEqualOrAfter(firstDate,secondDate)
{var dtmDate1=new Date(firstDate);var dtmDate2=new Date(secondDate);return(dtmDate1.getTime()<=dtmDate2.getTime());}