/*  Java Script - Hotel Search 
**  v1.0
**  
*/  
var CTL = "";
var gToday="";
var gFromDate="";
var gToDate="";
var gStartDate="";
var gEndDate="";
var MaxPax=9;
var MaxChildren=2;
var roomLines=1;

var gCityOpt = new String("Aberdeen, United Kingdom|Abu Dhabi, United Arab Emirates|Adelaide, SA, Australia|Airlie Beach, QLD, Australia|Albany, Australia|Albufeira, Portugal|Albury, NSW, Australia|Alice Springs, NT, Australia|Amman, Jordan|Amsterdam, Netherlands|Amsterdam Schiphol, Netherlands|Anaheim, United States|Aore Island, Vanuatu|Apia, Samoa|Apollo Bay, Australia|Armidale, Australia|Ashmore, Australia|Assisi, Italy|Atata Island, Tonga|Athens and surrounding area, Greece|Atlanta, United States|Auckland, New Zealand|Auckland-Manukau, New Zealand|Auckland-Takapuna, New Zealand|Avignon, France|Ayers Rock (Uluru), NT, Australia|Bahrain, Bahrain|Bali, Indonesia|Bali-Nusa Dua, Indonesia|Ballarat, Australia|Bandar Seri Begawan, Brunei Darussalam|Banff, Canada|Bangkok, Thailand|Barcelona, Spain|Barossa Valley, SA, Australia|Bath, United Kingdom|Bathurst, Australia|Bay of Islands|Bedarra Island, QLD, Australia|Beijing, China|Bekana Island, Fiji|Belfast, United Kingdom|Belgrade, Serbia|Bendigo, Australia|Beqa Island, Fiji|Berlin, Germany|Berne, Switzerland|Birmingham, United Kingdom|Blackpool, United Kingdom|Blenheim, New Zealand|Blue Mountains, NSW, Australia|Bokissa Island, Vanuatu|Bologna, Italy|Bora Bora Island, French Polynesia|Bordeaux, France|Boston, United States|Brampton Island, QLD, Australia|Brighton, United Kingdom|Brisbane, QLD, Australia|Broome, WA, Australia|Brussels, Belgium|Bucharest, Romania|Budapest, Hungary|Buenos Aires, Argentina|Bundaberg, QLD, Australia|Burnie Wynward, Australia|Busan (Pusan), South Korea|Busselton, Australia|Byron Bay, NSW, Australia|Cairns, QLD, Australia|Cairo, Egypt|Calgary, Canada|Caloundra, QLD, Australia|Canakkale, Turkey|Canberra, ACT, Australia|Cancun, Mexico|Cannes, France|Cape Town, South Africa|Cape Tribulation, QLD, Australia|Cardiff, United Kingdom|Casablanca, Morocco|Castaway Island, Fiji|Cebu City, Philippines|Central Coast, NSW, Australia|Chengdu, China|Chennai (Madras), India|Chiang Mai & Northern Thailand|Chiang Rai, Thailand|Chicago, United States|Chongqing, China|Christchurch, New Zealand|Coffs Harbour, NSW, Australia|Coles Bay, Australia|Cologne, Germany|Colombo, Sri Lanka|Como, Italy|Cooinda, Australia|Cook Islands|Cook Islands-Aitutaki, Cook Islands|Copenhagen, Denmark|Coral Coast, Fiji|Coral Coast - Sonaisal, Fiji|Coral Coast - Yanuca I, Fiji|Cork, Irish Republic|Cradle Mountain, TAS, Australia|Cusco, Peru|Daintree, Australia|Dalian, China|Dallas, United States|Dandenong, Australia|Darwin, NT, Australia|Darwin-Airport, Australia|Daydream Island, QLD, Australia|Denarau Island, Fiji|Devon & Cornwall, United Kingdom|Dijon, France|Doha, Qatar|Dresden, Germany|Dubai, United Arab Emirates|Dublin, Irish Republic|Dubrovnik, Croatia|Dunedin, New Zealand|Dunk Island, QLD, Australia|Durban, South Africa|Dusseldorf, Germany|Echuca, Australia|Edinburgh, United Kingdom|Ettalong, Australia|Fafa Island, Tonga|Faro, Portugal|Fiji|Florence & Pisa, Italy|Fox Glacier, New Zealand|Frankfurt, Germany|Frankfurt-Main Airport, Germany|Franz Josef, New Zealand|Fraser Island, QLD, Australia|Fremantle, Australia|French Polynesia|Fukuoka, Japan|Galway, Ireland(Republic of)|Geelong, Australia|Geneva, Switzerland|Genoa, Italy|Glasgow, United Kingdom|Gold Coast, QLD, Australia|Gold Coast - Hope Island, Australia|Gothenburg|Granada, Spain|Grand Canyon National Park, United States|Grandchester, Australia|Greymouth, New Zealand|Guam, Guam|Guangzhou, China|Guilin, China|Halls Gap, Australia|Hamburg, Germany|Hamilton, New Zealand|Hamilton Island, QLD, Australia|Hangzhou, China|Hanmer Springs, New Zealand|Hanoi, Vietnam|Harbin, China|Hawaii, United States|Hawaii-Hawaii Island, United States|Hawaii-Kauai Island, United States|Hawaii-Lanai & Molokai Islands, United States|Hawaii-Maui Island, United States|Hawaii-Oahu Island (Honolulu), United States|Hayman Island, QLD, Australia|Heidelberg, Germany|Helsinki, Finland|Heron Island, QLD, Australia|Hervey Bay|Hiroshima, Japan|Hiva Oa, French Polynesia|Hobart, TAS, Australia|Ho Chi Minh City, Vietnam|Hoi An, Vietnam|Hong Kong|Hong Kong-Kowloon, Hong Kong|Houston, United States|Huahine Island, French Polynesia|Hunter Valley, NSW, Australia|I'llot Maitre, New Caledonia|Ibiza, Spain|Iguazu, Argentina|Ile des Pins, New Caledonia|Incheon Airport, South Korea|Innsbruck, Austria|Interlaken, Switzerland|Istanbul, Turkey|Jabiru, NT, Australia|Jakarta, Indonesia|Jerusalem, Israel|Johannesburg, South Africa|Johor Bahru, Malaysia|Kadavulailai Island, Fiji|Kakadu|Kalgoorlie, Australia|Kangaroo Island, SA, Australia|Kathmandu, Nepal|Katoomba (Blue Mtns.), NSW, Australia|Killarney, Ireland(Republic of)|Kings Canyon, NT, Australia|Kingscliff, Australia|Koh Samui & Islands|Kota Kinabalu, Malaysia|Krabi & Islands|Krakow, Poland|Kuala Lumpur, Malaysia|Kuching, Malaysia|Kunming, China|Kuwait, Kuwait|Kyoto, Japan|Lake Macquarie, Australia|Lakes Entrance, Australia|Lake Tekapo, New Zealand|Langkawi, Malaysia|La Paz, Bolivia|La Spezia, Italy|Las Vegas, United States|Launceston, TAS, Australia|Lausanne, Switzerland|Lautoka, Fiji|Leura (Blue Mtns.), NSW, Australia|Lima, Peru|Lisbon, Portugal|Liverpool, United Kingdom|Liverpool & Region|Lizard Island, QLD, Australia|Ljubljana, Slovenia|Lombok, Indonesia|London, United Kingdom|London Gatwick, United Kingdom|London Heathrow, United Kingdom|London Luton, United Kingdom|London Stansted, United Kingdom|London Suburbs, United Kingdom|Long Island, QLD, Australia|Lorne, Australia|Los Angeles, United States|Lucerne, Switzerland|Lyon, France|Macau, Macau|Mackay, QLD, Australia|Madrid, Spain|Magnetic Island, Australia|Malaga, Spain|Mallorca, Spain|Mallorca-Palma, Spain|Mana Island, Fiji|Manchester, United Kingdom|Manihi, French Polynesia|Manila (Metro Manila), Philippines|Marbella, Spain|Margaret River, Australia|Marrakech, Morocco|Matamanoa Island, Fiji|Matangi Island, Fiji|Mauritius (All cities)|Melbourne|Melbourne & Regional VIC|Melbourne-Box Hill, Australia|Melbourne-Carlton, Australia|Melbourne-Hawthorn, Australia|Melbourne-Preston, VIC, Australia|Melbourne-Windsor, Australia|Methven, New Zealand|Mexico City, Mexico|Miami, United States|Milan, Italy|Mildura, Australia|Mombasa|Momi Bay, Fiji|Monkey Mia, Australia|Montevideo, Uruguay|Montpellier, France|Montreal, Canada|Moorea|Moreton Island, Australia|Mornington Peninsula, Australia|Moscow, Russia|Mossman, QLD, Australia|Mount Cook, New Zealand|Mudgee, Australia|Mulifanua, Samoa|Mumbai, India|Munich, Germany|Muscat, Oman|Mykonos, Greece|Nadi, Fiji|Nadi Airport, Fiji|Nagoya, Japan|Naigani Island, Fiji|Nairobi, Kenya|Nanjing, China|Napier-Hastings, New Zealand|Naples, Italy|Nelson, New Zealand|Nelson Bay/Port Stephens, NSW, Australia|New Caledonia, New Caledonia|Newcastle, NSW, Australia|New Delhi, India|New Orleans, United States|New Plymouth, New Zealand|New York, United States|New York Airports, United States|Niagara Falls, Canada / United States|Nice, France|Niue-Tamakautoga, Niue|Noosa, QLD, Australia|Norfolk Island, Australia|Noumea, New Caledonia|Nuku'Alofa, Tonga|Nuku Hiva, French Polynesia|Nuremberg, Germany|Oahu-Honolulu, United States|Oamaru, New Zealand|Orange, Australia|Orlando, United States|Osaka, Japan|Oslo, Norway|Oxford, United Kingdom|Paihia, New Zealand|Palermo, Italy|Palm Cove, QLD, Australia|Palmerston North, New Zealand|Papeete, French Polynesia|Paris, France|Paris Charles de Gaulle, France|Paris Disneyland, France|Paris Orly, France|Paris Suburbs, France|Parkes, Australia|Pattaya & Koh Chang|Pauanui, New Zealand|Penang, Malaysia|Penrith, Australia|Perth, WA, Australia|Perth-Scarborough, Australia|Philadelphia, United States|Phillip Island, VIC, Australia|Phi Phi Island, Thailand|Phnom Penh, Cambodia|Phuket, Thailand|Pisa, Italy|Pittsburgh, United States|Plantation Island, Fiji|Pokolbin (Hunter Valley), NSW, Australia|Port Arthur, Australia|Port Douglas, QLD, Australia|Port Macquarie, NSW, Australia|Porto, Portugal|Port Vila|Port Vila-Erakor, Vanuatu|Port Vila-Erakor Island, Vanuatu|Port Vila-Iririki Island, Vanuatu|Port Vila North, Vanuatu|Port Vila-North Erakor, Vanuatu|Port Vila-Pango, Vanuatu|Port Vila-Pango Point, Vanuatu|Positano, Italy|Prague, Czech Republic|Punakaiki, New Zealand|Qingdao (Tsingtao), China|Quebec, Canada|Queenstown, New Zealand|Quito, Ecuador|Raiatea, French Polynesia|Rakiraki, Fiji|Rangiroa, French Polynesia|Rarotonga, Cook Islands|Riga, Latvia|Rimini & Riccione, Italy|Rio de Janeiro, Brazil|Rockhampton, QLD, Australia|Rome, Italy|Rotorua, New Zealand|Rotterdam, Netherlands|Sale, Australia|Salt Lake City, United States|Salvador, Brazil|Salzburg, Austria|Samoa|San Diego, United States|San Francisco, United States|Santiago de Chile, Chile|Santiago de Compostela and surrounding area|Santorini-Fira Town, Greece|Sao Paulo, Brazil|Scamander, Australia|Seattle, United States|Seoul, South Korea|Seville, Spain|Shanghai, China|Shenyang, China|Shenzhen, China|Shepparton, Australia|Siem Reap, Cambodia|Siena, Italy|Singapore, Singapore|Siumu, Samoa|Sliema, Malta|Sofia, Bulgaria|Sorrento, Italy|South Molle Island, QLD, Australia|Stanley, Australia|Stockholm, Sweden|St Petersburg, Russia|Strahan, Australia|Strasbourg, France|Stuttgart, Germany|Sunshine Coast, QLD, Australia|Suva, Fiji|Sydney, NSW, Australia|Sydney Airport, NSW, Australia|Sydney-Artarmon, Australia|Sydney-Ashfield, Australia|Sydney-Bankstown, Australia|Sydney Bondi Beach, NSW, Australia|Sydney-Camperdown, Australia|Sydney-Coogee, NSW, Australia|Sydney Edgecliff, NSW, Australia|Sydney-Liverpool, Australia|Sydney Manly, NSW, Australia|Sydney-North Sydney, NSW, Australia|Sydney-Parramatta, Australia|Sydney-Rooty Hill, Australia|Sydney-Rushcutters, Australia|Sydney-Windsor, Australia|Taha'a, French Polynesia|Tahiti, French Polynesia|Taipei, Taiwan|Tallinn, Estonia|Tamworth, Australia|Tangier, Morocco|Taupo, New Zealand|Taveuni, Fiji|Te Anau, New Zealand|Terrigal, NSW, Australia|Tikehau Atoll, French Polynesia|Tokyo, Japan|Tokyo-Narita, Japan|Tonga|Toronto, Canada|Toulouse, France|Townsville, QLD, Australia|Treasure Island, Fiji|Turin, Italy|Tweed Heads, Australia|Twin Waters, Australia|Twizel, New Zealand|Uluru (Ayers Rock), NT, Australia|Vacy, Australia|Valencia, Spain|Vancouver, Canada|Vanuatu|Venice & Islands|Venice Mainland|Verona, Italy|Vienna, Austria|Vuda Point, Fiji|Wagga Wagga, NSW, Australia|Wanaka, New Zealand|Warsaw, Poland|Washington DC, United States|Wellington, New Zealand|Whakapapa Village, New Zealand|Whangarei, New Zealand|Whitsundays, QLD, Australia|Wuhan, China|Xian, China|Yaqeta Island, Fiji|Yarra Valley, Australia|Yeppoon, Australia|York, United Kingdom|Zagreb, Croatia|Zermatt, Switzerland|Zurich, Switzerland|Zurich Airport, Switzerland");
var gCityVal =new String("AABE |CAUH |AADL |CWSY |CALH |CALBU|CALBY|CASP |CAMM |AAMS1|CAMSB|CANA |CAORE|CAPW |CAPOL|CARM |CASHM|CASSI|CATAT|AATH1|AATL |AAKL |CMAZU|CTKPN|CAVN |CAYQ |CBAH |ABALI|CNUSA|CBLAL|CBWN |CYBA |ABKK |ABCN1|CBVAE|CBATH|CBHS |ABOI |CBEDA|APEK |CBEKA|ABEL1|CBEG |CABEV|CBEQA|ABEN |CBRN |CBHX |CBLK |CBLEH|ABMOU|CBOKI|ABLQ1|CBOB |CBOD |ABOS |CBMP |CBSH |CBNE |CBME |ABRU1|CBUH |ABUD |ABUE |CBDB |CBWT |CPUS |CBUSL|CQYN |ACNS |ACAI |CYYC |CCLOU|CCANA|CCBR |CCUN |ACEQ |CCPT |CCAPB|CCWL |CCAS |CCST |CCEB |ACENT|CCHEG|CMAA |ACNX |ACEI |ACHI |CCKG |CCHC |CCOFF|CCCOL|CCGN |CCMB |CQCM |CCDA |ACOOK|CAIT |AAACP|ACORA|CCRLA|CCRLO|AORK |CCRAD|CCUSC|CDAIN|CDALY|CDFW |CDANP|ADRW |CDRWA|CDDI |CDNAR|ADEV |CDIJ |CDOH |CDRS |ADXB |ADUB |CDBV |CDUD |CDKI |CDUR |ADUS |CECH |AEDA |CETTG|CFAFA|CFAO |AFIJI|AAFLR|CFOXG|AFRA |CFAPT|CFRAJ|CFRAQ|CJFM |APFI |CFUK |CGWY |CGEX |AGVE |CGOA |AGLS |AGOLD|CHOPI|AGOT |CGRX |AUS07|CGANC|CGREF|AGUM |CCAN |CKWL |CHALP|AHAM1|CHLZ |CHAMI|CHGH |CHANM|CHAN |CHAR3|AHAWA|AHAW1|AHAW2|AHAW3|AHAW4|AHAW5|CHIS |CQHD |AHEL |CHERO|AHVB |CHIJ |CHIX |CHBA |CSGN |CHOIA|AHKG |CKOWL|CHOU |CHUH |AHUNT|CILLA|AIBI |AIGU |CILP |CICN |CINN |CINTE|CIST |CJABI|AJKT |CJRS |AJNB |CJHB |CKADA|AKAKA|CKGI |CKANY|CKTM |CKATO|CKIR |CKINE|CKIGS|AKOSA|ABKI |AKRAB|CKRK |AKUL |CKCH |CKUNM|CKWI |CKYOT|CLAKQ|CELAK|CLAKT|ALANK|CLPB |CQLP |ALAS |ALST |CQLS |CLUTO|CLEUR|CLIM |ALIS |CLPL |ALPL |CLZR |CLJU |ALOM |CLON |ALGW |CLHR |ALTN |ASTN |ALONS|CLONN|CLORN|ALAX |CLUCE|CLYN |CMFM |CMKY |CMAD |CMAGC|CAGP |APMI |CPMI |CMNF |AMAN |CXMH |CMNL |CQRL |CMGV |CRAK |CMTAA|CATAN|AMAUR|AMEL |AAAME|CBOXH|CCRLT|CHAWT|CMLBU|CINDS|CMETV|CMEX |AMIA |AMIL |CMQL |AMBA |CMOMI|CMJK |CMVD |CMPL |CYMQ |AMOO |CMET |CMPEN|CMOW |CMOSM|CMON |CDGE |CMULF|ABOM |AMUC |CMCT |AJMK |ANADI|CNADI|CNGO |CNAIG|CNBO |CNKG |CNPE |CNAP |CNELO|ANBAY|ANEWC|C1NEW|ADEL |AMSY |CNEWL|CNYC |ANYCA|ANIAA|ANCE1|CTAMK|CNOOS|CNLK |CNOUM|CTBU |CNHV |CNUE |CHNL |COAM |COAG |AORL |COSA |AOSL |AOXFO|CPAIH|CPMO |CPALC|CPALR|CPPT |CPAR |CCDG |APARD|CORY |APARS|CPKE |APATT|CPAUA|CPEN |CPENH|APER1|CSCAE|APHL |CPHIS|CPEEP|CPNH |AHKT |CPSA |APIT |CPLNA|CPOKO|CPRTA|CPOWZ|COPOR|COPO |AVILA|CERAO|CERAK|CIRIR|CPVIN|CERAR|CPANX|CPANQ|CPOSI|APRG1|CPUNI|CTAO |AYQB |CZQN |CUIO |CRFP |CRAKI|CRGI |CRAR |CRIX |AAARR|ARIO |CROK |CROM |CROT |CRTM |CSXE |CSLC |CSSA |ASZG1|AAPW |CSAN |ASFO |CSCL |ASCQ |CSANO|CSAO |CSCAM|CSEA |CSEL |ASVQ |CSHA |CSHEY|CSHEN|CSHT |CSIEM|CSIEN|CSIN |CSIUM|CSLIE|CSOF |CSORR|CSOI |CTANY|ASTO |CLED |CSRN |CSXB |ASTR |ASUNS|CSUV |ASYDN|CSYDA|CATAZ|CASHY|CBWU |CBONB|CCMPR|CCOOY|CEDGC|CLIVZ|CMAN6|CSYDN|CSYDP|CROOT|CRUSU|CWNDS|CTAHA|APPT |ATPE |CTLL |CTMW |CTNG |CTUO |CTVU |CTEU |CTERG|CTIH |CTYO |CNRT |ATONG|AYTO |ATLS |ATOWN|CTRSU|CTRN |CTWED|CTWIW|CTWIZ|AURUL|CVACY|CVLC |AYVR |AVUI |AVCE2|AVCE3|AVRN |CVIE |CVUDA|CWAGG|CWKA |AWAW |AWAS |CWLG |CWHAK|CWRE |AWHIT|CWUH |CSIA |CYAQE|CYARR|CYEPP|CYORK|CZAG |CZERM|AZRH1|CZRHA");

var eMsg1="Please select a valid date. You can not select a date that is earlier than today.";
var eMsg2="The second date of your range cannot be earlier than the first date.";
var eMsg3="The second date of your range cannot be the same as the first date.";
var eMsg4="Date range cannot be greater than 90 days apart";
var eMsg5="Please specify a number of rooms";
var eMsg6="Please specify a room type";
var eMsg7="Cots cannot be specified for Single Rooms";
var eMsg8="The maximum number of passengers allowed is 9. For 10 passengers or more please contact one of our travel consultants.";
var eMsg9="Please specify at least one room type";
var eMsg10="The maximum number of children allowed is ";

function buildCitySelection(prompt,options,values,selected,asString) {
	var srch='<OPTION class="otherDest" value="SOTHR">'+prompt;
	var o=options.split("|");
	var v,s='';
	var str=srch;
	var selectedOpt;
	if (values==null) {
		v=o;
	} else {
		v=values.split("|");
	}
	
	for (var i=0; i < o.length; i++) {
		s=(v[i]==selected) ? 'SELECTED ' : '';
		str+='<OPTION '+s+'VALUE="'+v[i]+'">'+o[i];
	}
	str+='</SELECT>';
	if (asString) {
		return str;
	}
	document.writeln(str);
}

function CheckPaxType(who,index){
    var i;
    i=who.value.indexOf('+');
    if (i > 0){
        document.getElementById('Child'+index).style.visibility="visible"
    }else{
        document.getElementById('Child'+index).style.visibility="hidden"
    }
}

function BookHotelItem(itemindex,page,onrequest,itemcode){
    document.getElementById(ItemID).value=itemindex;
    
    // document.ItemBooking.submit();
    // document.aspnetForm.action="../?Section=Login&Follow=HotelItem"
    document.aspnetForm.action="../Login.aspx?Follow=HotelItem"
    document.aspnetForm.submit()
    // alert(document.getElementById(ItemID).value);
}


// ******************************************** DATE FUNCTIONS ****************************** //
function CheckinDateChange(){
    
    var newToDate = addDays(getDate("CheckIn"),dayDiff(gToDate,gFromDate));
	setDate(newToDate,"CheckOut");
	//gHasFromDateChanged = true;

	return true;
}


// Get display date as ISO date
function getDate(type) {
	return getDspDate(CTL+type+"_Day",CTL+type+"_Month");
}


// Set display date to specified ISO date
function setDate(date,type) {
	setDspDate(date,CTL+type+"_Day",CTL+type+"_Month");
	return true;
}



// ******************************************** Submit Search Function ****************************** //
function DoSubmit(sender, args){


if (CheckCity() && checkDates() && checkRooms()) {       
    args.IsValid =true;
}else{
    args.IsValid =false;
}
return false;

}

function checkDates() {
	var field;
	if (!isValidDateVal("CheckIn")) {
		alert(eMsg1);
		field=document.getElementById(CTL+"CheckIn_Day")
		field.focus();
		return false;
	}
	if (!isValidDateVal("CheckOut")) {
		alert(eMsg1);
		field=document.getElementById(CTL+"CheckOut_Day")
		field.focus();
		return false;
	}
	if (getDate("CheckIn")>getDate("CheckOut")) {
		alert(eMsg2);
		field=document.getElementById(CTL+"CheckOut_Day")
		field.focus();
		return false;
	}
	if (getDate("CheckIn")==getDate("CheckOut")) {
		alert(gMsg3);
		field=document.getElementById(CTL+"CheckOut_Day")
		field.focus();
		return false;
	}
	if (dayDiff(getDate('CheckOut'),getDate('CheckIn'))>90) {
		alert(gMsg4);
		field=document.getElementById(CTL+"CheckOut_Day")
		field.focus();
		return false;
	}
	return true;
}

function isValidDateVal(type) {
	return isValidDspDate(getDate(type),gStartDate,gEndDate);
}
function isValidDspDate(isoDate, earliestDate, latestDate) {
	return (isValidDate(isoDate) && isoDate>= earliestDate && isoDate<=latestDate);
}


function AdultPaxCount(roomtype){
if (roomtype=="TB") return 2;
if (roomtype=="TB+") return 2;
if (roomtype=="DB") return 2;
if (roomtype=="DB+") return 2;
if (roomtype=="SB") return 1;
if (roomtype=="TS") return 1;
if (roomtype=="TR") return 3;
if (roomtype=="Q") return 4;
return 0;
}

function ChildPaxCount(roomtype){
    if ((roomtype=="TB+") || (roomtype=="DB+")) {
        return 1;
    }else{
        return 0;
    }
}


function checkRooms() {
    var roomOb, roomCountOb, roomAgeOb, roomCotOb;
    var PaxCount,AdultCount,ChildCount;
    var type,count,cots;
    var i;
    
    PaxCount=0;AdultCount=0;ChildCount=0;
    for (i=1; i<roomLines+1; i++) {
        roomOb=document.getElementById(CTL+"cbo_RoomType_"+i);
        roomCountOb=document.getElementById(CTL+"cbo_NoRooms_"+i);
        roomAgeOb=document.getElementById(CTL+"cbo_ChildAge_"+i);
        roomCotOb=document.getElementById(CTL+"cbo_NoCots_"+i);
        type=roomOb.value;
		count=Number(roomCountOb.value);
		cots=Number(roomCotOb.value);
		
		//alert("[" + i + "] Type: '" + type + "' Count: " + count + " Cots: " + cots + "\nCTL:" + CTL+"cbo_RoomType_"+i)
		
		
		if (type!='' || count!=0 || cots!=0) {
		    // Room Type Not Selected
		    if (type=='') {
				alert(eMsg6);
				roomOb.focus();
				return false;
			}
			// Room Count is 0
			if (count==0) {
				alert(eMsg5);
				roomCountOb.focus();
				return false;
			}			
			// Cots aren't allowed for SBs (do we want this or not?)
			if (type=='SB' && cots!=0) {
				alert(eMsg7);
				roomCotOb.focus();
				return false;
			}
			
			AdultCount += AdultPaxCount(type) * count;
			ChildCount += ChildPaxCount(type);
			
			// CHeck Child Age
			
		}
    }
    
    PaxCount = AdultCount + ChildCount;
    if (PaxCount > MaxPax) {
		alert(eMsg8);
		return false;
	}
	if (PaxCount==0) {
		alert(eMsg9);
		return false;
	}
	if (ChildCount > MaxChildren) {
		alert(eMsg10+MaxChildren);
		return false;
	}

	return true;
}