//------------------------------------------------------------------------------------------------
//-------------------------------- Flight Search Validation --------------------------------------
//------------------------------------------------------------------------------------------------
//            childAgesElemsIds
//            childAgesRowElemId
//            hfChildAgeValidityElemId 
//            hfChildAgeMsgElemId,
//            noOfNightsElemId,
function IMPACT_FltSearchValidation(
            depDateElemId,
            retDateElemId,
            depDateHFElemId,
            retDateHFElemId,
            childCountElemId,                        
            hfDateValidityElemId,
            hfDateMsgElemId,
            hfNightValidityElemId,
            hfNightMsgElemId,
            hfReturnTypeElemId,
            offset                        
            )
{
   this.depDateElem = document.getElementById(depDateElemId);
   this.retDateElem = document.getElementById(retDateElemId);
   this.depDateHFElem = document.getElementById(depDateHFElemId);
   this.retDateHFElem = document.getElementById(retDateHFElemId);
   this.childCountElem = document.getElementById(childCountElemId);
   //this.noOfNightsElem = document.getElementById(noOfNightsElemId);
   this.hfDateValidityElem = document.getElementById(hfDateValidityElemId);
   this.hfDateMsgElem = document.getElementById(hfDateMsgElemId);
   this.hfNightValidityElem = document.getElementById(hfNightValidityElemId);
   this.hfNightMsgElem = document.getElementById(hfNightMsgElemId);
   this.hfReturnTypeElem = document.getElementById(hfReturnTypeElemId);
   this.offset = offset;
   /*
   this.hfChildAgeValidityElem = document.getElementById(hfChildAgeValidityElemId);
   this.hfChildAgeMsgElem = document.getElementById(hfChildAgeMsgElemId);
   this.childAgesRowElem = document.getElementById(childAgesRowElemId);
   this.childAgesElems = new Array();
   for(var i = 0;i < childAgesElemsIds.length;i++)
   {
        this.childAgesElems[i] = document.getElementById(childAgesElemsIds[i]);
   }
   */
   this.IMPACT_validateFltSearchCriteria = IMPACT_validateFltSearchCriteria;
   //this.IMPACT_setChildCount = IMPACT_setChildCount;
   //this.IMPACT_showChildAges = IMPACT_showChildAges;   
}
function IMPACT_validateFltSearchCriteria() 
{
   var depDate = this.depDateElem.value;      
   var retDate = this.retDateElem.value;      
   var childCount = this.childCountElem.value;       
   var isDateValid = this.hfDateValidityElem.value;
   var invalidDateMsg = this.hfDateMsgElem.value ;
   var isNoOfNightsValid = this.hfNightValidityElem.value;
   var invalidNoOfNightsMsg = this.hfNightMsgElem.value;
   //var isChildAgesValid = this.hfChildAgeValidityElem.value;
   //var invalidChilAgeMsg = this.hfChildAgeMsgElem.value;
   var offset = this.offset;
   var returnType = this.hfReturnTypeElem.value;
   var noOfNights;
   // departure date validation
   if(depDate == '')
   {       
        isDateValid = false; 
        invalidDateMsg = "Departure date is empty";       
   } 
   else
   {
        if(depDate.split('/').length != 3)
        {
            isDateValid = false;
            invalidDateMsg = "Invalid departure date" ;
        }            
        else 
        {
            var day = depDate.split('/')[0];
            var month = depDate.split('/')[1];
            var year = depDate.split('/')[2];
            if(IMPACT_checkNumeric(day) && IMPACT_checkNumeric(month) && IMPACT_checkNumeric(year))
            {
                if(IMPACT_validateDate(day,month,year))
                {                       
                    if(IMPACT_isCorrectDateFlight(day,month,year,offset))
                    {
                        isDateValid = true;
                    }
                    else
                    {                            
                        isDateValid = false;
                         invalidDateMsg = "Invalid departure date. Searches cannot be made within " + offset + " days";
                    }                     
                }
                else
                {
                   isDateValid = false;
                   invalidDateMsg = "Invalid departure date" ;
                }
            }
            else
            {
                isDateValid = false;
                invalidDateMsg = "Invalid departure date" ;
            }         
        }
   }
   var day1 = depDate.split('/')[0];
   var month1 = depDate.split('/')[1];
   var year1 = depDate.split('/')[2];
   var date1 = new Date();
   date1.setFullYear(parseInt(year1), parseInt(month1)-1, parseInt(day1));
   if(returnType == "RT")
   {
       var day2 = retDate.split('/')[0];
       var month2 = retDate.split('/')[1];
       var year2 = retDate.split('/')[2];
       var date2 = new Date();
       date2.setFullYear(parseInt(year2), parseInt(month2)-1, parseInt(day2));
       noOfNights = parseInt(date2 - date1) / 86400000;
       // no of night validation
       //if(noOfNights == '')
       //{
      //      isNoOfNightsValid = false;
      //      invalidNoOfNightsMsg = "Date difference cannot be empty"; 
      // }
      // else
      // {
            if(!IMPACT_checkNumeric(noOfNights))
            {
                isNoOfNightsValid = false;
                invalidNoOfNightsMsg = "Invalid no of nights"; 
            }
            else
            {
                if(parseInt(noOfNights) > 0 && parseInt(noOfNights) < 50)
                {
                     isNoOfNightsValid = true;
                }
                else
                {
                    isNoOfNightsValid = true;
                    invalidNoOfNightsMsg = "No of nights should be less than 50 days"; 
                }
            }
       //}  
   }  
   if(!isDateValid)
   {
        alert(invalidDateMsg);
        return 'F';
   }
   else if(!isNoOfNightsValid)
   {
        alert(invalidNoOfNightsMsg);
        return 'F';
   }
   else
   {
        return 'T';
   }               
}
function IMPACT_setChildCount(count)
{
    this.childCountElem.value = count;
}
function IMPACT_showChildAges()
{
    var childCount = this.childCountElem.value;        
    var maxNoOfChildren = 9;
    if(childCount == '0')
    {
        this.childAgesRowElem.style.display = 'none';
    }
    else
    {
        this.childAgesRowElem.style.display = '';
        for(var i=0; i<parseInt(childCount); i++)
        {
            this.childAgesElems[i].style.display = '';
        }
        for(var i=parseInt(childCount); i<maxNoOfChildren; i++)
        {
            this.childAgesElems[i].style.display = 'none';
        }        
    }
}    
//------------------------------------------------------------------------------------------------
//---------------------------- End Of Flight Search Validation -----------------------------------
//------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
//-------------------------------- Global Varibles --------------------------------------
//------------------------------------------------------------------------------------------------
var IMPACT_allBoardBases = "$994DAYS#CODE#$99 Meal Deal For 4 Days#RECORD#10XTRPBRK#CODE#10X Tropical Breakfast#RECORD#1A#CODE#1A#RECORD#1B#CODE#1B#RECORD#1FRBFBRK2#CODE#1 Free Buffet Breakfast For 2#RECORD#1K#CODE#1K#RECORD#2A#CODE#2A#RECORD#2B#CODE#2B#RECORD#2BFBRPP#CODE#2 Buffet Breakfasts Per Pax#RECORD#2BK1DR#CODE#2 Breakfasts/1 Dinner#RECORD#2BK2LC2DR#CODE#2 Breakfast 2 Lunch 2 Dinner#RECORD#2BKPR#CODE#2 Breakfasts Per Room#RECORD#2CDNR#CODE#2 Course Dinner#RECORD#2CDR2P#CODE#2 Course Dinner 2 Pax#RECORD#2CLNCH#CODE#2 Course Lunch#RECORD#2CRST#CODE#2 Course Roast Meal#RECORD#2CSMDNR#CODE#2 Course Set Menu Dinner#RECORD#2CTDH#CODE#2 Course Table D'Hote#RECORD#2DBK#CODE#2 Daily Breakfasts#RECORD#2U12FR#CODE#2 x Under 12s Eat Free#RECORD#3BK4DR#CODE#3 Breakfasts/ 4 Dinners#RECORD#3CDNR#CODE#3 Course Dinner#RECORD#3CDR#CODE#3C Dinner#RECORD#3CDR5CP#CODE#3 Course Dinner 5 Couples#RECORD#3CMENU#CODE#3-Course menu#RECORD#3CRST#CODE#3 Course Roast Meal#RECORD#3CSTDNR#CODE#3 Course Set Menu Dinner#RECORD#3CTDH#CODE#3 Course Table D'Hote#RECORD#3CTDHBFDNR#CODE#3 Course TDH or Buffet Dinner#RECORD#3CTDHDNR#CODE#3 Course Table D'Hote Dinner#RECORD#3FBK2#CODE#3 Full Breakfasts For 2#RECORD#3LLCHPP#CODE#3 Light Lunches Per Person#RECORD#4BKPK#CODE#4 Breakfasts Packs#RECORD#4CDNRWINE#CODE#4 Course Dinner incl. wine#RECORD#5CDRFBKT#CODE#5 Course Dinner/Full Breakfast/Tea#RECORD#5TRPBK#CODE#5 Tropical Breakfast#RECORD#AAMBK#CODE#Adult American Breakfast#RECORD#AB#CODE#Buffet Lunch#RECORD#ABFBRK#CODE#ABF Breakfast#RECORD#ABKF2#CODE#American Breakfast 2 Pax#RECORD#ABKNYD#CODE#American Breakfast/ New Year Dinner#RECORD#AEAI#CODE#All Exclusive All Inclusive#RECORD#AI#CODE#All Inclusive#RECORD#AI-24#CODE#All Inclusive 24 Hrs#RECORD#AI-DLX#CODE#All Inclusive Deluxe#RECORD#AI-FT#CODE#All Inclusive With Free Transfers#RECORD#AI-G#CODE#All Inclusive (Gold)#RECORD#AI-NW#CODE#All Inclusive (New Wave)#RECORD#AI-P#CODE#All Inclusive Plus#RECORD#AI-S#CODE#All Inclusive Soft#RECORD#AI-SUP#CODE#All Inclusive Superior#RECORD#AI-ULR#CODE#Alll Inclusive Ultra#RECORD#AI-ULT#CODE#All Inclusive Ultimate#RECORD#AIDRKS#CODE#All Inclusive Inc Drinks#RECORD#AIHSDRKS#CODE#All Inclusive (House Drinks)#RECORD#AILDK2GD#CODE#All Inclusive Local Drinks Plus 2GD#RECORD#AINDRKS#CODE#All Inclusive Not Including Drinks#RECORD#AIS#CODE#All Inclusive Soft#RECORD#AIVA#CODE#All Inclusive Value Adds#RECORD#AL#CODE#Lunch#RECORD#ALCBK#CODE#A La Carte Breakfast#RECORD#ALCBKDR#CODE#A La Carte Breakfast And Dinner#RECORD#ALLMLSMLDG#CODE#All Meals served at main lodge#RECORD#ALML2FAM#CODE#All Meals 2 Per Family#RECORD#ALML3FAM#CODE#All Meals 3 Per Family#RECORD#ALMLADT#CODE#All Meals Adults Only#RECORD#AMLKGINL#CODE#All Meals at Knight Inlet#RECORD#ANY#CODE#Any#RECORD#AP#CODE#American Breakfast#RECORD#ASB#CODE#Board as Brochured#RECORD#ASBF#CODE#Asian Breakfast#RECORD#ATP#CODE#According To Program#RECORD#AWEBRK#CODE#Awesome Breakfast#RECORD#BB#CODE#Bed & Breakfast#RECORD#BB-FT#CODE#Bed & Breakfast With Free Transfers#RECORD#BB-SP#CODE#Bed and Breakfast + Ski Pass#RECORD#BB-SPA#CODE#Bed and Breakfast + Spa#RECORD#BBF#CODE#Bed And Buffet Breakfast#RECORD#BBGD#CODE#Bed And Breakfast Plus Game Drive#RECORD#BBQLC#CODE#BBQ Lunch#RECORD#BBSO#CODE#Bed and Breakfast Speical Offer#RECORD#BBSPT#CODE#Bed/Breakfast Plus Spa Treatment#RECORD#BBVA#CODE#Bed And Breakfast Plus Value Adds#RECORD#BD#CODE#Breakfast + Dinner#RECORD#BDCTVA#CODE#BB/Dinner Cutural Exp Value Add#RECORD#BDGMDV#CODE#Bed/Breakfast/Dinner Game Drive#RECORD#BEB#CODE#Bed and English Breakfast#RECORD#BF#CODE#Breakfast#RECORD#BF1C#CODE#Breakfast Included For 1 Child#RECORD#BF2#CODE#Buffet Breakfast For Two#RECORD#BF2A2C#CODE#Breakfast 2 Adults 2 Children#RECORD#BF2D#CODE#Breakfast For 2nd Day Only#RECORD#BF2DRAL#CODE#Breakfast For 2 Dinner For All#RECORD#BF2DRPP#CODE#Breakfast For 2 Dinner Per Person#RECORD#BF2LCDR#CODE#Breakfast For 2 - Lunch/Dinner#RECORD#BF2P#CODE#Breakfast For 2#RECORD#BF2PN#CODE#Breakfast For 2 On Paid Nights#RECORD#BFCO#CODE#Breakfast For Children Only#RECORD#BFD1OD#CODE#Breakfast Daily/1 Only Dinner#RECORD#BFDRA#CODE#Breakfast Dinner Adults Only#RECORD#BFHPLCDR#CODE#Breakfast Hamper Lunch Dinner#RECORD#BFLCDR2#CODE#Breakfast/Lunch/Dinner For 2#RECORD#BFLCDR2A2C#CODE#Breakfast/Lunch/Dinner 2A2C#RECORD#BFLCDRM2A#CODE#Breakfast/Lunch/Dinner Max 2 Adults#RECORD#BFPN#CODE#Breakfast On Paid Nights#RECORD#BFPVDR#CODE#Breakfast Provisions And Dinner#RECORD#BFTLTDTDH#CODE#Buffet or limited Table d'hote#RECORD#BFU134FR#CODE#Breakfast Under 13Yrs Eat Free X 4#RECORD#BFU8FR#CODE#Breakfast and Under 8yrs Eat Free#RECORD#BK2U12FR#CODE#Breakfast And 2 Under 12S Eat Free#RECORD#BKCKDR#CODE#Breakfast/Cocktails/Dinners#RECORD#BKU12FR#CODE#Breakfast And Under 12S Eat Free#RECORD#BKU13X2#CODE#Breakfast - Under 13Yrsx2 Eat Free#RECORD#BL#CODE#Breakfast + Lunch#RECORD#BR#CODE#Brunch#RECORD#BRKAD#CODE#Breakfast Adults Only#RECORD#BRKLG#CODE#Breakfast In Lounge#RECORD#BRKPK#CODE#Breakfast Package#RECORD#BUSHB#CODE#Bush Breakfast#RECORD#BX-ML#CODE#Boxed Meal#RECORD#BXBF#CODE#Boxed Breakfast#RECORD#CAGBF#CODE#Continental/US Or Greek Breakfast#RECORD#CANBF#CODE#Canadian Breakfast#RECORD#CB#CODE#Buffet Dinner#RECORD#CBBF#CODE#Cold Buffet Breakfast#RECORD#CBF2DR#CODE#Continental Bfst - 2 Course Dinner#RECORD#CBINCTBF#CODE#Club Intercontinental Breakfast#RECORD#CC#CODE#Cruises#RECORD#CE#CODE#Only Dinner#RECORD#CHAMBF#CODE#Child American Breakfast#RECORD#CHBF#CODE#Chinese Breakfast#RECORD#CHLCH#CODE#Child Lunch#RECORD#CKBF#CODE#Cooked Breakfast#RECORD#CMPBF#CODE#Complimentary Breakfast#RECORD#CMPBFBF#CODE#Complimentary Buffet Breakfast#RECORD#CMPBFMF#CODE#Complimentary Breakfast Mon-Fri#RECORD#CMPBR2#CODE#Complimentary Breakfast For 2#RECORD#CNBFS3CDR#CODE#Cont Breakfast Set/ 3 Course Dinner#RECORD#CNOBF#CODE#Canoe Breakfast#RECORD#CNOBF2#CODE#Canoe Breakfast For 2#RECORD#CNT2#CODE#Continental Breakfast For Two#RECORD#CNTBF1T2#CODE#Continental Breakfast 1-2 Pax#RECORD#CNTBF2GO#CODE#Continental Breakfast 2 Guests Only#RECORD#CNTBFAO#CODE#Continental Breakfast Adults Only#RECORD#CNTBFBSL#CODE#Continental Breakfast- Bistro Lunch#RECORD#CNTBFDR#CODE#Continental Breakfast Plus Dinner#RECORD#CNTBRKHMP#CODE#Continental Breakfast Hamper#RECORD#CNTDRSM#CODE#Continental Bfst AndDinner Set Menu#RECORD#CO#CODE#Only Lunch#RECORD#CONTI#CODE#Continental#RECORD#CP#CODE#Closed Package#RECORD#CP-SP#CODE#Closed Package + Ski Pass#RECORD#CPGBF#CODE#Champagne Breakfast#RECORD#CRVBFDNR#CODE#Carvery Buffet Dinner#RECORD#DAB#CODE#Dinner and Asian Breakfast#RECORD#DAM#CODE#Dinner and American Breakfast#RECORD#DB#CODE#Buffet breakfast#RECORD#DBBCE#CODE#DBB Plus Cultural Experiance#RECORD#DBFT#CODE#Dinner Buffet#RECORD#DBVA#CODE#Breakfast/Dinner Plus Value Adds#RECORD#DBXB#CODE#Dinner and Boxed Breakfast#RECORD#DC#CODE#Continental Breakfast#RECORD#DCPKG#CODE#Continental Breakfast Package#RECORD#DINNER#CODE#Dinner#RECORD#DLXCNT#CODE#Deluxe Continental Breakfast#RECORD#DLYSVC#CODE#Daily SVC#RECORD#DNRFRM#CODE#Dinner FRM#RECORD#DNRWINE#CODE#Dinner incl wine#RECORD#DRADO#CODE#Dinner Adults Only#RECORD#EB#CODE#English Breakfast#RECORD#EO#CODE#Lunch & Dinner#RECORD#EUBRK#CODE#European Breakfast (cold meats)#RECORD#EXCBCFDNR#CODE#Exclusive Beachfront Dinner#RECORD#EYBF#CODE#Early Breakfast#RECORD#FB#CODE#Full Board#RECORD#FB-D#CODE#Full Board With Drinks#RECORD#FB-FEXC#CODE#Full Board With Full Excursion#RECORD#FB-FT#CODE#Full Board With Free Transfers#RECORD#FB-HT#CODE#Full Board With Free Transfers#RECORD#FB-LEXC#CODE#Full Board With Light Excursions#RECORD#FB-S#CODE#Full Board (Silver)#RECORD#FB2A#CODE#Full Meals 2 Adult#RECORD#FB2GDREGD#CODE#FB 2GD Refreshments Excl Excpt OnGD#RECORD#FB2GDREXEG#CODE#FB 2GD Refreshments Excl Exct On+GD#RECORD#FBAM#CODE#Full Board with American Breakfast#RECORD#FBAS#CODE#Full Board with Asian Breakfast#RECORD#FBBX#CODE#Full Board Boxed Breakfast#RECORD#FBCB#CODE#Full Board With Cold Buffet Breakfast#RECORD#FBCH#CODE#Full Board Chinese Breakfast#RECORD#FBCN#CODE#Full Board - Continental Breakfast#RECORD#FBDI#CODE#Full Board Drinks Included#RECORD#FBEB#CODE#Full Board Early Breakfast#RECORD#FBEN#CODE#Full Board - English Breakfast#RECORD#FBFBRK#CODE#Full Buffet Breakfast#RECORD#FBFTCNTBRK#CODE#Full Buffet/Continental Breakfast#RECORD#FBHB#CODE#Full Board with Hot Buffet Breakfast#RECORD#FBIR#CODE#Full Board Irish Breakfast#RECORD#FBIS#CODE#Full Board - Isreali Breakfast#RECORD#FBJ#CODE#Full board Japanese Breakfast#RECORD#FBMPN#CODE#Full Board Meal Plan#RECORD#FBMR#CODE#Full Board Moroccan Breakfast#RECORD#FBPKG#CODE#Full Breakfast Package#RECORD#FBRS#CODE#Full Board - Room Service Breakfast#RECORD#FBSB#CODE#Full Board Scottish Breakfast#RECORD#FBSBV1G1BW#CODE#FB Selected Drks 1 Gm Dr 1 Bush Wk#RECORD#FBSC#CODE#Full Board Scandinavian Breakfast#RECORD#FC#CODE#Family Club#RECORD#FCKBRK#CODE#Full Cooked Breakfast#RECORD#FLTO#CODE#Flight Only#RECORD#FULLBREAK#CODE#Full Breakfast#RECORD#FULLFSH1-2#CODE#Full Day Fishing 1-2pax#RECORD#GRBF#CODE#Greek Breakfast#RECORD#GRMDNR#CODE#Gourmet Dinner#RECORD#GRPDNR#CODE#Group Dinner#RECORD#GRPLCH#CODE#Group Lunch#RECORD#HA#CODE#Bed & American Breakfast#RECORD#HB#CODE#Half Board#RECORD#HB-D#CODE#Half Board With Drinks#RECORD#HB-FT#CODE#Half Board With Free Transfers#RECORD#HB-S#CODE#Half Board (Silver)#RECORD#HB-SP#CODE#Half Board + Ski Pass#RECORD#HBAM#CODE#Half Board American Breakfast#RECORD#HBAS#CODE#Half Board Asian Breakfast#RECORD#HBBX#CODE#Half Board Boxed Breakfast#RECORD#HBCB#CODE#Half Board Cold Buffet Breakfast#RECORD#HBCH#CODE#Half Board Chinese Breakfast#RECORD#HBCT#CODE#Half Board Continental Breakfast#RECORD#HBEB#CODE#Half Board English Breakfast#RECORD#HBEY#CODE#Half Board Early Breakfast#RECORD#HBHB#CODE#Half Board Hot Buffet Breakfast#RECORD#HBIB#CODE#Half Board Isreali Breakfast#RECORD#HBIR#CODE#Half Board Irish Breakfast#RECORD#HBJB#CODE#Half Board with Japanese Breakfast#RECORD#HBMC#CODE#Half Board Moroccan Breakfast#RECORD#HBPS#CODE#Half Board Plus#RECORD#HBRB#CODE#Half Board Room Service Breakfast#RECORD#HBRK#CODE#Hot Breakfast#RECORD#HBRKDR#CODE#Hot Breakfast And Dinner#RECORD#HBSB#CODE#Half Board with Scottish Breakfast#RECORD#HBSC#CODE#Half Board Scandinavian Breakfast#RECORD#HBSO#CODE#Half Board Speical Offer#RECORD#HC#CODE#Bed & Continental Breakfast#RECORD#HD#CODE#Half Board Dinner#RECORD#HL#CODE#Half Board Lunch#RECORD#HNGICRTDNR#CODE#Hangi-Concert Dinner#RECORD#HOTLCH#CODE#Hot Lunch#RECORD#HTBF#CODE#Hot Buffet Breakfast#RECORD#HTBFDR#CODE#Hot Buffet Breakfast And Dinner#RECORD#IRBF#CODE#Irish Breakfast#RECORD#ISBF#CODE#Isreali Breakfast#RECORD#ISLBK#CODE#Isreali Breakfast#RECORD#ISLBK2#CODE#Island Breakfast For 2#RECORD#JPBF#CODE#Japanese Breakfast#RECORD#LAB#CODE#Lunch and Asian Breakfast#RECORD#LAM#CODE#Lunch and American Breakfast#RECORD#LBx#CODE#Lunch and Boxed Breakfast#RECORD#LC3DR#CODE#Lunch And 3 Course Dinner#RECORD#LCBF#CODE#Lunch and Cold Buffet Breakfast#RECORD#LCH#CODE#Lunch and Chinese Breakfast#RECORD#LCH2DR#CODE#Lunch And 2 Course Dinner#RECORD#LCT#CODE#Lunch and Continental Breakfast#RECORD#LD#CODE#Breakfast Lunch Dinner#RECORD#LEB#CODE#Lunch and English Breakfast#RECORD#LEY#CODE#Lunch and Early Breakfast#RECORD#LHB#CODE#Lunch and Hot Buffet Breakfast#RECORD#LIR#CODE#Lunch and Irish Breakfast#RECORD#LIS#CODE#Lunch and Israeli Breakfast#RECORD#LJB#CODE#Lunch and Japanese Breakfast#RECORD#LMC#CODE#Lunch and Moroccan Breakfast#RECORD#LNCH3#CODE#Lunch 3 Courses#RECORD#LRS#CODE#Lunch and Room Service Breakfast#RECORD#LSC#CODE#Lunch and Scandinavian Breakfast#RECORD#LST#CODE#Lunch and Scottish Breakfast#RECORD#LTBF#CODE#Light Breakfast#RECORD#MAI#CODE#Maximum All Inclusive#RECORD#MB#CODE#Mix Buffet Breakfast#RECORD#MCBF#CODE#Moroccan Breakfast#RECORD#MEAL2#CODE#2 Meals Daily#RECORD#MEAL3#CODE#3 Meal Plan#RECORD#MEALPCK#CODE#Meal Package#RECORD#NOEX#CODE#No Extras#RECORD#NOKITCH#CODE#No Kitchen#RECORD#OE#CODE#Lunch or Dinner#RECORD#P-RCI#CODE#2 ring hob/fridge/some utensils#RECORD#PCKEXPBRK#CODE#Packaged Express Breakfast#RECORD#PCKLCH#CODE#Packed Lunch#RECORD#PCLCH#CODE#Picnic Lunch#RECORD#PCNLHDLVD#CODE#Picnic Lunch delivered#RECORD#PKG-AI#CODE#Package All Inclusive#RECORD#PLAT2#CODE#Platter for two#RECORD#PLRY#CODE#Plan Royale All Inc#RECORD#QDKTNBRK#CODE#Quad Kitchen Breakfast#RECORD#QDKTNFBRK#CODE#Quad Kitchen Full Breakfast#RECORD#REQAOA#CODE#Request On Arrival#RECORD#RKLOBLC#CODE#Rock Lobster Lunch#RECORD#RMCB#CODE#Room with Continential Breakfast#RECORD#RO#CODE#Room Only#RECORD#RO-FT#CODE#Room Only With Free Transfers#RECORD#RO-SPA#CODE#Room Only + Spa#RECORD#ROCLTEX#CODE#Room Only Plus Cultural Experience#RECORD#ROVA#CODE#Room Only Plus Value Adds#RECORD#RSBF#CODE#Room Service Breakfast#RECORD#SAI#CODE#Super All Inclusive#RECORD#SB#CODE#Scottish Breakfast#RECORD#SC#CODE#Self Catering#RECORD#SC-FT#CODE#Self Catering With Free Transfers#RECORD#SC-RO#CODE#Self-Catering/ Room Only#RECORD#SC-SP#CODE#Self Catering + Ski Pass#RECORD#SCBF#CODE#Scandinavian Breakfast#RECORD#SCD#CODE#Self Catering With Inclusive Drinks#RECORD#SCSO#CODE#Self Catering Speical Offer#RECORD#SD#CODE#SD#RECORD#SEREN#CODE#Serenity#RECORD#SP-BK#CODE#Special Breakfast#RECORD#SPPR#CODE#Supper#RECORD#SR#CODE#Small Room#RECORD#STDN#CODE#Set Dinner#RECORD#STLC#CODE#Set Lunch#RECORD#SUPERIORAI#CODE#Superior All Inclusive#RECORD#TAMLCH#CODE#Tam Tam Lunch#RECORD#TDHBFTDNR#CODE#Table D'Hote or Buffet Dinner#RECORD#TDHDNR#CODE#Table D'Hote Dinner#RECORD#TDHLCH#CODE#Table D'Hote Lunch#RECORD#TRKBRK#CODE#Turkish Breakfast#RECORD#TRP2D#CODE#Tropical Breakfast And 2 Course Dinner#RECORD#TRPBFBK#CODE#Tropical Buffet Breakfast#RECORD#TRPBK2DR#CODE#Tropical Breakfast 2 Course Dinner#RECORD#TRPBK3DR#CODE#Tropical Breakfast/3 Course Dinner#RECORD#TRPBK4DR#CODE#Tropical Breakfast 4 Course Dinner#RECORD#TRPBKLCDR#CODE#Tropical Breakfast/Lunch/Dinner#RECORD#TRPBRKLC#CODE#Tropical Breakfast/Lunch#RECORD#TRPDR#CODE#Tropical Breakfast And Dinner#RECORD#TTCF#CODE#Toast And Tea Or Coffee#RECORD#UAI#CODE#Ultra All Inclusive#RECORD#USHBP#CODE#American Plan (Half Board)#RECORD#VCAT#CODE#Villa Category#RECORD#WSHBK#CODE#Welsh Breakfast#RECORD#XD#CODE#Xmas Dinner";
// RCIF#CODE#Oven/hob/other major appliances/sufficient utensils/crockery#RECORD#RCIM#CODE#Hob/small oven/microwave/fridge/utensils/limited working space#RECORD#
//------------------------------------------------------------------------------------------------
//-------------------------------- End of Global Varibles --------------------------------------
//------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
//-------------------------------- Hotel Search Validation --------------------------------------
//------------------------------------------------------------------------------------------------
function IMPACT_HtlSearchValidation(checkInDateElemID,
                             hfNoOfNightsElemID,
                             hfRoomCountElemID,
                             hfStarRatingElemID,
                             roomWiseChildCountIDs,                     
                             hfChildAgeValidityElemID,
                             hfChildAgeMsgElemID,
                             hfChildAgesID,
                             hfSortByID)
{
    //variables
    this.checkInDateElem = document.getElementById(checkInDateElemID);
    this.noOfNightsElem = document.getElementById(hfNoOfNightsElemID);
    this.roomCountElem = document.getElementById(hfRoomCountElemID);
    this.hfStarRatingElem = document.getElementById(hfStarRatingElemID);
    this.roomWiseChildCounts = new Array();
    for(var i = 0; i < roomWiseChildCountIDs.length; i++)
    {
        this.roomWiseChildCounts[i] = document.getElementById(roomWiseChildCountIDs[i]);
    }    
    this.hfChildAgeValidityElem = document.getElementById(hfChildAgeValidityElemID);
    this.hfChildAgeMsgElem = document.getElementById(hfChildAgeMsgElemID);
    this.hfChildAgesElem = document.getElementById(hfChildAgesID);   
    this.hfSortByElem = document.getElementById(hfSortByID);
    //methods
    this.IMPACT_validateHltSearchCriteria = IMPACT_validateHltSearchCriteria;
    this.IMPACT_setNoOfNights = IMPACT_setNoOfNights;
    this.IMPACT_setRoomCount = IMPACT_setRoomCount;
    this.IMPACT_setStarRating = IMPACT_setStarRating;
    this.IMPACT_showRoomWisePaxes = IMPACT_showRoomWisePaxes;
    this.IMPACT_setRoomWiseChildCount = IMPACT_setRoomWiseChildCount; 
    this.IMPACT_showChildCountsRoomWise = IMPACT_showChildCountsRoomWise; 
    this.IMPACT_showChildAgeBoxes = IMPACT_showChildAgeBoxes; 
    this.IMPACT_setSortBy = IMPACT_setSortBy; 
}
function IMPACT_validateHltSearchCriteria() 
{
   var depDate = this.checkInDateElem.value; 
   var noOfNights = this.noOfNightsElem.value;        
   var roomWiseChildCounts = this.roomWiseChildCounts; 
   var roomCount = parseInt(this.roomCountElem.value);   
   var isChildAgesValid = this.hfChildAgeValidityElem.value;
   var invalidChilAgeMsg = this.hfChildAgeMsgElem.value;
//   if(!isNoOfNightsValid)
//   {
//        alert(invalidNoOfNightsMsg);
//        return false;
//   }
//   else
//   {
        return true;
//   }               
}
function IMPACT_setNoOfNights(nights)
{
    this.noOfNightsElem.value = nights;
}
function IMPACT_fillHotelBoardBases()
{
    var boardBasisRecords = IMPACT_allBoardBases.split("#RECORD#");		
    var noOfRecords = boardBasisRecords.length ;
    var selElem = document.getElementById('cmbBoardBasis');	
	IMPACT_addOption(selElem,"Any","");
    for(var i=0; i < noOfRecords; ++i)
    {								
	    IMPACT_addOption(selElem,boardBasisRecords[i].split("#CODE#")[1],boardBasisRecords[i].split("#CODE#")[0]);		    						
    }
}
function IMPACT_fillHotelNoOfNights()
{ 		
    var noOfRecords = 100 ;
    var selElem = document.getElementById('cmbNoOfNights');	
	//IMPACT_addOption(selElem,"1 Night",1);	//Commented By PA on 20.10.2009 to make the drop down to be dynamic.	    						
    for(var i=IMPACT_dateDiff; i < noOfRecords; ++i)
    {								
	    IMPACT_addOption(selElem,(i) + " Night(s)", i);		    						
    }
}
function IMPACT_setRoomCount(count,hfRoomCountId) {
    this.roomCountElem.value = count;
    document.getElementById(hfRoomCountId).value = count;
}
function IMPACT_setStarRating(starRate)
{    
    this.hfStarRatingElem.value = starRate;   
}
function IMPACT_setSortBy(sortByVal)
{
    this.hfSortByElem.value = sortByVal;
}
function IMPACT_setRoomWiseChildCount(roomNumber,childCount)
{ 
    var roomWiseChildCounts = this.roomWiseChildCounts;
    roomWiseChildCounts[parseInt(roomNumber)-1].value = childCount;      
}
function IMPACT_showChildCountsRoomWise()
{
     var roomWiseChildCounts = this.roomWiseChildCounts; 
     var roomCount = parseInt(this.roomCountElem.value);
     for(var i=0; i<roomCount; i++)
     {
        alert(roomWiseChildCounts[i].value);
     }
}
function IMPACT_showRoomWisePaxes()
{    
    var roomCount = parseInt(this.roomCountElem.value);
    var paxTableID = "roomTable_"; 
    var paxTableHeaderID = "roomHeaderSentence_"; 
    var totalNoOfRooms = 5;
    for(var i=0; i<roomCount; i++)
    {
        document.getElementById(paxTableID + (i+1)).style.display = '';       
        document.getElementById(paxTableHeaderID + (i+1)).style.display = '';       
    }
    for(var i=roomCount; i<totalNoOfRooms; i++)
    {
        document.getElementById(paxTableID + (i+1)).style.display = 'none';       
        document.getElementById(paxTableHeaderID + (i+1)).style.display = 'none';       
    }   
}
function IMPACT_showChildAgeBoxes(roomNumber)
{
    var roomCount = parseInt(this.roomCountElem.value);
    var roomWiseChildCounts = this.roomWiseChildCounts;
    var childAgeBoxID = "ageCell";
    var childAgeBoxesRowID_Upper = "ageRowUpper_";
    var childAgeBoxesRowID_Lower = "ageRowLower_";
    var childAgeHeaderID = "childAgeHeader_";
    var maxNoOfChildrenPerRoom = 9;        
    if(roomWiseChildCounts[parseInt(roomNumber)-1].value == '0')
    {
        document.getElementById(childAgeBoxesRowID_Upper + roomNumber).style.display = 'none';
        document.getElementById(childAgeBoxesRowID_Lower + roomNumber).style.display = 'none';
        document.getElementById(childAgeHeaderID + roomNumber).style.display = 'none';
    }
    else
    {
        document.getElementById(childAgeBoxesRowID_Upper + roomNumber).style.display = '';
        document.getElementById(childAgeBoxesRowID_Lower + roomNumber).style.display = '';
        document.getElementById(childAgeHeaderID + roomNumber).style.display = '';
        for(var j=0; j<parseInt(roomWiseChildCounts[parseInt(roomNumber)-1].value); j++)
        {                       
             document.getElementById(childAgeBoxID + (j+1) + "_" + roomNumber).style.display = '';
        } 
        for(var j=parseInt(roomWiseChildCounts[parseInt(roomNumber)-1].value); j<maxNoOfChildrenPerRoom; j++)
        {            
             document.getElementById(childAgeBoxID + (j+1) + "_" + roomNumber).style.display = 'none';
        }             
     }   
}  
//------------------------------------------------------------------------------------------------
//---------------------------- End Of Hotel Search Validation -----------------------------------
//------------------------------------------------------------------------------------------------

