a:6:{i:0;s:30819:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Bangkok And Pattaya Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.nextholiday.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.nextholiday.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Bangkok And Pattaya Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					
											<p class="mb5px"><b>Duration :</b> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Bangkok, Pattaya</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.nextholiday.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bangkok and Pattaya Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="194142"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_23/665781/307213.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_23/665781/307213.jpg"  width="150" height="97"    alt="Bangkok and Pattaya Tour" title="Bangkok and Pattaya Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								A major vacation hotspot of Southeast Asia, Thailand is known for its warm culture and welcoming Thai smiles. A unique mix comprising of glittering temples and tropical beaches, this land is full of variety. Couple this with a world-famous cuisine and you will have just one more reason to pay this kingdom a visit. In Bangkok, bow your head at the ornate shrines and score local goods at the floating markets. In Pattaya, go all out enjoying the famous water sports and nightclub parties. Enjoy 4 Nights and 5 Days Thai tour with NextHoliday, covering these major cities and relaxing in the comfort of our services. <br />
<br />
<br />
Hotel Details:- <br />
<br />
City<br />
2 STAR<br />
3 STAR<br />
4 STAR<br />
<br />
<br />
<br />
<br />
Pattaya<br />
Beverly Plaza pattaya <br />
Golden Beach <br />
Grand Bella pattaya <br />
Bangkok<br />
Grand Alpine Bangkok<br />
Ecotel  Bangkok<br />
D Ma Ramada								</div>
								<br />
																<div class="headHr">
					            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
					            </div>
					            
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 1:</b> Arrival in Bangkok
										</p>
										<p class="aj">Upon your arrival in Bangkok you will be transferred to Pattaya, which is a short 2 hours drive from<br />
Bangkok. Check in to the hotel .Time to relax!!<br />
In the evening, we recommend that you take an optional tour of Alcazar Show(at additional cost). The Alcazar Show a world-famous cabaret, which can give the Lido and Moulin Rouge of Paris, a run for their money, featuring a grand theatre with 1200 seats and thousands of watts of pulsating sound.<br />
Overnight at Hotel in Pattaya.<br />
*Hotel Standard Check in time is 2PM -4PM. To avail guaranteed early check in please pay INR 1,200 per person at the time of booking. Also, hotel guaranteed check-in is subject to availability at the time of booking.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 2:</b> Pattaya - Coral Island Tour with Lunch in Pattaya:-
										</p>
										<p class="aj">After breakfast, you will be transferred to the sparkling blue waters of the Gulf of Thailand by a speedboat, and arrive at the idyllic Coral Island (KohLan), where you will spend the day luxuriating under the welcoming tropical sun. You can lounge, swim, snorkel or simply enjoy the sun at the island’s immaculate golden beaches. You all have the option of viewing the beautiful coral formations around the island either through a glass-bottom boat or by diving in. Upon your return from the island, you will enjoy a scrumptious Indian lunch at Pattaya. Coral Island tour on join/shared speed boat will stop for Parasailing for those who are interested. Those who are not interested in Parasailing will wait for the rest to finish the activity.(OWN COST).Evening is free at leisure. Overnight in Pattaya.<br />
Travel tip: Don’t forget to carry your swimsuit, sunscreen and towel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 3:</b> Pattaya -  Bangkok  City tour:-
										</p>
										<p class="aj">Post a filling breakfast at the hotel, you check-out and drive back to Bangkok. On the way, you shall proceed for a half-day city tour of Bangkok on a comfortable coach. We start with Pattaya gems Gallery followed by fascinating temples around the capital (Bangkok) like golden Buddha statue and the Marble Temple. The tour will give you an in-depth understanding of the traditions and culture of Bangkok.<br />
Overnight stay remains at your hotel in Bangkok.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 4:</b> Bangkok - Full Day Safari World and Marine Park Tour:-
										</p>
										<p class="aj">After a buffet breakfast proceed for  Full day Safari world and Marine park with buffet lunch. Evening back to hotel .Overnight at Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 5:</b> Depart Bangkok:-
										</p>
										<p class="aj">Have a buffet breakfast at the hotel in the morning. After check out formalities, (The standard check out time is 1200 hours) you will be picked up for departure transfer to the airport for flight way back home.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																				<li>Transfers from Bangkok Airport to Pattaya Hotel  on Pvt Basis.</li><li>
Transfers from Pattaya Hotel to Bangkok Hotel on Pvt Basis.</li><li>
Transfers from Bangkok Hotel to Bangkok Airport on Pvt Basis.</li><li>
Alcazar Show on Pvt Basis.</li><li>
Coral island by speed boat + Lunch  -(boat join basis) – Pier transfer on Pvt.</li><li>
Bangkok City And Temple Tour (Golden + Marble Buddha) on Pvt Basis.</li><li>
Safari world + Marine park with lunch on Pvt Basis.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Expenses of personal nature like tipping, laundry, telephone/fax calls, alcoholic/non- alcoholic beverages,</li><li>
Camera/video camera fee at monuments, medical expenses, airport departure tax, any insurance etc. </li><li>
Porterage at all hotels, railway station & airports.</li><li>
National Park Fees on Island Tours</li><li>
Any meals other than the mentioned.</li><li>
Any Kind of Visa Fees </li><li>
Any other services not mentioned in the inclusions.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Booking Period</li><li>
Payment to be done</li><li>
More than 15 days of departure</li><li>
25% of the land package + non-refundable services, if any</li><li>
Remaining 75% before 15 days of departure</li><li>
Within 15 days of departure</li><li>
100%  Payment at booking creation</li></ul>					
								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								1.       All given rates are per person on Twin/Double sharing basis, unless specified, especially in the Quotation.
 
2.       Package cost at quotation level is based on real time available seats. There may be a change in price depending upon the Occupancy level at the time of confirmation of Package. Any such change will be specified accordingly. NextHoliday will not hold any services on confirmed basis until written acknowledgement from Client is received.
 
3.       The offered group package is fixed in terms of itinerary, routing and services. Client opting for fix departure packages are expected to adhere to the plan as per itinerary. In any case, there will be no amendment in the plan, based on personal requirements.
 
4.       The offered group package comprises of different inseparable components of services linked with each other in a time-bound series and hence services will be delivered in the pre-decided order only.
 
5.       Check-in and Check-out timings of Hotels are different and based on the regulations/Policies of local Hotel unions of concerned region/city or general trend of market. These will be specified at the time of quotation/communication.  
 
6.       Room allotment in Fixed departures are usually on confirmed basis but in case of unavailability of rooms in given Hotels due to any unexpected scenario/technical fault, alternate accommodation arrangement will be made in similar standard available Hotel. This will not bring any change in any scheduled activity.
 
7.       Room occupancy will strictly be in accordance with the one confirmed at the time of booking.
 
8.       In case of Triple sharing room, rolling mattress will be provided for the third person. Occupancy regulations for Family rooms and other Club rooms will be in accordance with the Hotel’s policy.
 
9.       For the issuance of flight ticket, full payment has to be deposited. NextHoliday will not hold any Air ticket on confirmed basis without final payment of air tickets share.
 
10.   Client shall share passenger details with correct and accurate information as per valid ID Card, at the time of booking. Any amendment in issued flight tickets, like – Change in Dates, Names, Timing, Airline or any other information will attract amendment charges as per Airline’s amendment policies.
 
11.   Flight ticket cancellation/refund is strictly in accordance with Airline’s Cancellation/Refund policies.
 
12.   NextHoliday Shall not be responsible for any Loss of Baggage/Loss of Belongings/Broken Baggage at Airport or anywhere else.
 
13.   Flight timings are to be kept into consideration while reaching the airport. NextHoliday shall not be responsible for any incidence where client is not able to reach airport/board the flight due to any reason of personal nature, insufficient time duration in connecting flights or any other reason related with airline’s governance like – Delay in Flight, Change in timing/Overbooking by Airline or any other factor.
 
14.   It is expected to report the assembly point as per pre-defined timings. In any such case, where client is not able to join the Departure/Flight/Sightseeing due to any reason which results in delay in joining the group, will be considered no show after waiting for a justified pre-decided waiting time.
 
15.   Vehicle provided during tour will follow the tour plan specified in the itinerary. Driver in any way will not be deviated from the specified/common route.
 
16.   Vehicle provided during the tour will not be on disposable basis. Any travel, after the activity decided in the tour will not be permitted. Late evening/late night drive apart from designed plan will be prohibited.
 
17.   There are some monuments/areas, restricted for Vehicle entrance by the local authorities. In any such case, Vehicle will drop you till the nearest possible point and further arrangements will have to be managed by Client.
 
18.   Vehicle will not be allocated on the leisure day (day free for relaxation), as specified in itinerary.
 
19.    Air Condition in Vehicles will not be operational on hilly areas (due to mechanical reasons). Driver reserves the rights to switch off/operate AC as per the terrain, climate and vehicle conditions.
 
20.   Vehicle in Group departures will be on sharing basis. Guests are expected to maintain harmony with other travelers to ensure maximum enjoyment on tour. Any misbehavior will lead to the discontinuation of Tour.
 
21.   Any entrance fees, monument fees or any other activity charges including but not limited to charges in relation to parking, transportation, tolls, taxes, camping, admission, meals, etc will not be included in the package until specified, specially in inclusion section.
 
22.   The above mentioned package may not be available with displayed price during long weekends, National Holidays and Regional festivals. There is a probability of difference in cost, which will be specified at the time of communication.
 
23.    In case of amendment in Package due to increase in number of guests, the difference in cost shall be borne by the client.
 
24.   Any charges related with on-ground modification/addition of service, which is opted by Client by his/her own choice and not affecting rest of the tour itinerary or group departure, will have to be paid directly to Driver/Supplier on the behalf of NextHoliday.
 
25.   NextHoliday reserves the right to modify or cancel the tour package, in part or in whole, at any time prior to the commencement of the tour or a particular part of the tour, as the case may be, for any reason including but not limited to the act of God, act of Human whether or not unforeseen and/or unexpected etc. In all such cases, refund will be processed according to the Cancellation policy of NextHoliday as applicable at that specific point of time.
 
26.   NextHoliday shall not be held responsible for any refund/charges, in case of services booked of non-refundable nature. NextHoliday’s liability in relation to the Package shall at all times be limited to those circumstances where an express liability has been cast on it under these Terms.
 
27.   Special payment and cancellation policy may be applicable during peak season/blackout dates. These dates usually – City Events, Regional/National Holidays, Political Conferences, Major Cultural festivals or any other Event which can affect regular tourist movement.
 
28.   In case of any on ground issues with any third party, NextHoliday shall try to support in all possible ways but shall not be held liable for the act and hence will not be liable for any sort of compensation.
 
29.   In case of any natural calamity or any other force majeure incident, NextHoliday reserves the rights to modify/change or cancel the partial or complete tour Package. NextHoliday shall not be held responsible for refund/Compensation in any such circumstances.
 
30.    Package price is a consolidation of different components inseparable in nature in terms of costing. Any unused service/services due to any unspecified reason, will not be refunded back.
 
31.   Refund on cancellation (Cancellation in accordance with Cancellation Policies) is strictly dependent on Cancellation policies and the refund process will take minimum 14 working days.
 
32.   For Group departure packages, all vouchers and tickets will be released 03 days prior to departure.
 
33.   It is expected for a Client to carry printouts of all service vouchers and tickets along with Valid ID proof. Failure in presenting required documents during security checks may lead to disqualification for onboarding by concerned authorities. In any such case, NextHoliday shall not be held responsible/liable for any refund or compensation.
 
34.   Any behavioral issue found during the tour or reported by other co-passengers or found inappropriate in sanity with successful accomplishment of entire tour will lead to the disqualification of the concerned passenger and his/her accompanied passengers from all further activities and future tours. No refund in this regard shall be processed and depending upon the gravity of the behavior, fine may be imposed on such person.  
 
35.   NextHoliday shall not be held liable for any refund/compensation in any case related with any of the factor that comprises of health issues, personal loss, discontinuation of tour due to family issues, discontinuation of tour due to behavioral factors or statutory compliance factors.
 
36.   Guests on tour are expected to take care of their belongings during the tour and NextHoliday shall not be held liable for any loss that arises, due to loss and damage of belongings.
 
37.   NextHoliday's entire liability to the Client for any claim arising out of this Package/browsing the website/application, shall be limited to the amount equivalent to the price paid by the Client for the Package giving rise to such claim minus all applicable taxes and third-party charges.
 
38.   NextHoliday shall not be liable to pay for any loss suffered by the Client, if it is found that the Client had been in violation of any express or implied directions given by or on behalf of NextHoliday, applicable law, rule and/or regulations.
 
39.   No offer, promo code or discount shall be applicable to this Package unless so expressly notified by NextHoliday on its website and this Package cannot be clubbed with any scheme, offer and package of NextHoliday or its associates.
 
40.   All grievances shall first be raised with the customer relationship team within 15 days of the occurrence of such event. In case no resolution to such a grievance is provided by our customer relation team within 30 days, the Client shall have the right to escalate the dispute in the accordance with these terms and NextHoliday’s applicable policies.
 
41.   Client shall be liable to reimburse NextHoliday for any and all losses suffered and/or charges incurred as a result of the Client’s actions, direct or indirect, in relation to the Client.
 
42.   This Package shall be governed by the laws of India, and all disputes in relation to this package shall be resolved via arbitration in Delhi in accordance with the Arbitration and Conciliation Act, 1996. The courts of Delhi shall have the exclusive jurisdiction in relation to any matter arising out of the Package.
 
43.   This Package and all of your rights and obligations in relation to the same are non-transferable and cannot be assigned without the prior permission of NextHoliday.								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Booking Period</li><li>
Payment to be done</li><li>
More than 15 days of departure</li><li>
25% portion of the land package will be retained by NextHoliday. 100% non-refundable services, if any will be retained by NextHoliday</li><li>
Within 15 days of departure</li><li>
100%  of the package price will be retained by NextHoliday</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.nextholiday.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bangkok and Pattaya Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="194142"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/havelock-tour-packages.htm" title="Havelock Tour Packages">Havelock</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/port-blair-tour-packages.htm" title="Port Blair Tour Packages">Port Blair</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/bali-tour-packages.htm" title="Bali Tour Packages">Bali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/goa-city-tour-packages.htm" title="Goa City Tour Packages">Goa City</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/shirdi-tour-packages.htm" title="Shirdi Tour Packages">Shirdi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/jaipur-tour-packages.htm" title="Jaipur Tour Packages">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/pune-tour-packages.htm" title="Pune Tour Packages">Pune</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/bangkok-tour-packages.htm" title="Bangkok Tour Packages">Bangkok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/kochi-tour-packages.htm" title="Kochi Tour Packages">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/agra-tour-packages.htm" title="Agra Tour Packages">Agra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/darjeeling-tour-packages.htm" title="Darjeeling Tour Packages">Darjeeling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/jodhpur-tour-packages.htm" title="Jodhpur Tour Packages">Jodhpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/pattaya-tour-packages.htm" title="Pattaya Tour Packages">Pattaya</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/mumbai-tour-packages.htm" title="Mumbai Tour Packages">Mumbai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/munnar-tour-packages.htm" title="Munnar Tour Packages">Munnar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/kuala-lumpur-tour-packages.htm" title="Kuala Lumpur Tour Packages">Kuala Lumpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/udaipur-tour-packages.htm" title="Udaipur Tour Packages">Udaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/singapore-city-tour-packages.htm" title="Singapore Tour Packages">Singapore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/gangtok-tour-packages.htm" title="Gangtok Tour Packages">Gangtok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.nextholiday.in/bagdogra-tour-packages.htm" title="Bagdogra Tour Packages">Bagdogra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.nextholiday.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:63:"Book Bangkok and Pattaya Tour - 4 Nights / 5 Days Tour Packages";i:2;s:120:"book bangkok and pattaya tour - 4 nights / 5 days tour packages, adventure tour packages, bangkok, pattaya tour packages";i:3;s:149:"Next Holiday offers Bangkok and Pattaya Tour - 4 Nights / 5 Days tour package, budget Adventure tour packages for Bangkok, Pattaya at exciting price.";i:4;s:1222:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bangkok, Pattaya"        
		                 },
		      "description": "A major vacation hotspot of Southeast Asia, Thailand is known for its warm culture and welcoming Thai smiles. A unique mix comprising of glittering temples and tropical beaches, this land is full of variety. Couple this with a world-famous cuisine and you will have just one more reason to pay this kingdom a visit. In Bangkok, bow your head at the ornate shrines and score local goods at the floating markets. In Pattaya, go all out enjoying the famous water sports and nightclub parties. Enjoy 4 Nights and 5 Days Thai tour with NextHoliday, covering these major cities and relaxing in the comfort of our services. 


Hotel Details:- 

City
2 STAR
3 STAR
4 STAR




Pattaya
Beverly Plaza pattaya 
Golden Beach 
Grand Bella pattaya 
Bangkok
Grand Alpine Bangkok
Ecotel  Bangkok
D Ma Ramada",
		      "name": "Bangkok and Pattaya Tour",
		      "telephone": "+91-9739008000"
		    }
		    </script>
			";i:5;N;}