<ahref="#"class="dropdown-toggle"data-toggle="dropdown"role="button"aria-haspopup="true"aria-expanded="false">Plan Your Trip<spanclass="caret"></span></a>
<p>Travelling with us? Tag your travels with #asiahighlights and you may be featured.</p>
<spanclass="followUs">Follow us <aclass="fb fa fa-facebook"title="Follow us on Facebook"rel="nofollow"href="https://www.facebook.com/AsiaHighlights"target="_blank"></a><aclass="tw fa fa-twitter"title="Share us on Twitter"rel="nofollow"href="https://twitter.com/Asiahighlights"target="_blank"></a></span></div>
<spanclass="hidden-xs privacyLinks"><ahref="/privacy.htm">Privacy policy</a><ahref="/terms-of-use.htm">Terms of use</a></div>
</div>
</div>
</div>
<script>
if(!Array.from){Array.from=(function(){var toStr=Object.prototype.toString;var isCallable=function(fn){return typeof fn==="function"||toStr.call(fn)==="[object Function]"};var toInteger=function(value){var number=Number(value);if(isNaN(number)){return 0}if(number===0||!isFinite(number)){return number}return(number>0?1:-1)*Math.floor(Math.abs(number))};var maxSafeInteger=Math.pow(2,53)-1;var toLength=function(value){var len=toInteger(value);return Math.min(Math.max(len,0),maxSafeInteger)};return function from(arrayLike){var C=this;var items=Object(arrayLike);if(arrayLike==null){throw new TypeError("Array.from requires an array-like object - not null or undefined")}var mapFn=arguments.length>1?arguments[1]:void undefined;var T;if(typeof mapFn!=="undefined"){if(!isCallable(mapFn)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){T=arguments[2]}}var len=toLength(items.length);var A=isCallable(C)?Object(new C(len)):new Array(len);var k=0;var kValue;while(k<len){kValue=items[k];if(mapFn){A[k]=typeofT==="undefined"?mapFn(kValue,k):mapFn.call(T,kValue,k)}else{A[k]=kValue}k+=1}A.length=len;returnA}}())}if(!Array.prototype.forEach){Array.prototype.forEach=function(callback){varT,k;if(this==null){thrownewTypeError("thisisnullornotdefined")}varO=Object(this);varlen=O.length>>>0;if(typeof callback!=="function"){throw new TypeError(callback+" is not a function")}if(arguments.length>1){T=arguments[1]}k=0;while(k<len){varkValue;if(kinO){kValue=O[k];callback.call(T,kValue,k,O)}k++}}}functioncreateImageLoader(settings){varloadImageByUrl=function(target){target.addEventListener("load",function(){target.style.opacity=1});target.setAttribute("src",target.getAttribute("originalsrc"))};varimageList=Array.from(document.querySelectorAll("img[loader=ready]"));imageList.forEach(function(element,index){element.style.opacity=0;element.style.transition="opacity0.5sease-in-out";loadImageByUrl(element)});varlazyloader=createLazyloader();lazyloader();functionthrottle(fn,delay,atleast){vartimeout=null,startTime=newDate();returnfunction(){varcurTime=newDate();clearTimeout(timeout);if(curTime-startTime>=atleast){fn();startTime=curTime}else{timeout=setTimeout(fn,delay)}}}function getOffset(el){var box=el.getBoundingClientRect();return{top:box.top+window.pageYOffset-document.documentElement.clientTop,left:box.left+window.pageXOffset-document.documentElement.clientLeft}}function createLazyloader(){var lazyImageList=Array.from(document.querySelectorAll("img[loader=lazy]"));lazyImageList.forEach(function(element,index){element.style.opacity=0;element.style.transition="opacity 0.5s ease-in-out"});return function(){var seeHeight=window.innerHeight;var scrollTop=(document.documentElement&&document.documentElement.scrollTop)||(document.body&&document.body.scrollTop);lazyImageList=lazyImageList.filter(function(element,index){var offsetTop=getOffset(element).top;var hasVisible=offsetTop<seeHeight+scrollTop;if(hasVisible){loadImageByUrl(element)}return!hasVisible})}}if(window.addEventListener){window.addEventListener("scroll",throttle(lazyloader,500,500),false)}else{if(window.attachEvent){window.attachEvent("onscroll",throttle(lazyloader,500,500))}}};createImageLoader();